LegacyApplicationMODERNIZATION
Whatismodernization?
Modernization is moving a Legacy application to a newer tiered architecture model where the usageofnewerUI,database,cachetools,ETLtoolsandDevOpsareaccommodated.
● New UI: Building a new UI-based solution with the latest technologies, that include AngularJS,ReactJS,NodeJS(Nunjucks),Web3.0etc.
● Redefined Database: Cloud database solutions provide improved/advanced solutions for reliability (clustering), scalability (real-time scaling of the system), and disaster recovery (backups/recovery).
● Tools: Cloud solution providers, help with the easier deployment of advanced tools and solutions,thisinclude,Caching,MQ’s,ETLtoolsetc
● DevOps: CI/CD pipeline gives developers capabilities to develop agile and not worry about theoperations,CloudinfrastructureprovidesreadilyavailabletoolsforSourceCode version control, build tools, deployment tools and alerting tools to handle end-to-end DevOpsfunctionality
● Architecture: Plan the newer architecture, which supports cloud-based application developmentandweb-basedapplication,whichcanusemicroservicetechnologies.
● Infrastructure: Modernization includes identifying the newer infrastructure to use, which includessupportformicroservicetechnologies.
Whydowedomodernization?
Modernizationrequirementscanbefromanyofthebelowrequirements.
● Businessrequirementstoimproveapplicationincludingperformance/functionality
● Improvefrontendsolution,tomovetoabetterGUI-basedplatform.
● Tomovetoasolutionwhereadditionalfunctionalityisbuiltanddeployedeasily
● Toenhanceapplicationfunctionality/security
ApproachforModernization:
● Settingupagoalforthemodernization
○ Whatwillmodernizationachieve
○ Whatistheendtargetforthemodernization
○ What is the key item on modernization, performance, improved functionality, Improveddeliveryoffunctionalityetc.
● BusinessandTechnologyteam:
○ The business team needs to be involved to understand the business process and understandthebusinessrequirements
○ Technology key SMEs are involved early in the process to understand the complexityoftheapplicationandhaveitdocumented.
● ChoosetherightArchitecture:
○ Three-tiered architecture is the most commonly used architecture (presentation layer, application layer and data layer) which gives the application capability to adapteasily
○ Architecturegivesconfidenceinthenewersolution.
● Build,test,testandtest
○ Buildingthesolutionwiththerightarchitectureandtoolsets
○ Continuoustestingiskeytogetapplicationsintherightdirection
● Automateeverything
○ Withthetoolsetsavailable,automateasmuchaspossible.
Howdowemodernize:
InDreamguysTechnologies,wehavemultipleoptionsformodernization,whichinclude
● Replacingwithanavailablesolution
● Engineeringanewsolution
● Incrementrebuildoftheapplication
Replacingwithanavailablesolution:
● With thismethod,wejustbuyanewerapplicationwhichisalreadyavailable,butthismethod isthecostlierofalltheapproaches
Engineeringanewsolution:
● In this methodology, we engineer a new solution which includes, UI, application logic and database.
● This is a big-bang approach where the complete solution is being built in the newer cloud solution.
Incrementrebuildoftheapplication:
● In this solution, we improve any one part of the application solution, most probably the UI first, provide the business with a new improved UI solution, once the solutions are been implementedandadopted,migratetheapplicationlogicanddatabasesolutionsetc
ModernizationSteps
Step1:Gathering
● Gathertherequirementsfromboththebusinessandtechnologyside
● Document all the requirements as user stories, whichincludeskeepingaclearrecordintools likeJIRAetc.
● Define and design the UI solution, end-to-end design of the UI solution and linking the UI solutiondesigntotheuserstories.UsetoolslikeFigmaetc.
● Understandthearchitecturetobeusedanddocumentthearchitectureasthebasetobeused
● Performance, Security, Scalability,Reliability,andReusabilityconstraintsareunderstoodand documented
Step2:POCorBaseModel
● Build a base model or a POC, whichaccommodatesthearchitectureprovidedandcoversthe basefunctionality.
● This is to make sure that the architecture is as per expected, and the solution provided is understoodbythestakeholdersandagreedupon.
● Abasemodelsolutionthencanbeiterativelybuiltandused
Step3:Buildingtheend-to-endapplication
● Buildingthesolutionthroughawaterfalloragilemethodologybasedontherequirements.
● DevOps solutions are accommodated early in the stage of development, to make sure the developmentisruneffectively.
● DeliverythroughaSprint-basedsolutionisdefinedandmonitoredcontinuously.
● Test,testandtesttheapplicationcontinuously,tohaveahighlevelofstability.
Step4:Agilemethodologytoaddonadditionalfunctionality
● Once we have the defined solution inplace,thesolutionneedstobeanalyzedandfeaturesto bedevelopedontopofit
● Feature development and performance improvement come hand in hand with application delivery
Step5:DeploymentSolution
● Deploymentsolutionstobediscussedanddocumented,
○ Swappingoldtonewapplications?
○ Incrementalapproach?
○ Sectionalapproach?
● Documentingthesolution
● Trainingpeoplenecessary Architecture
Choosing the architecture to be used is one oftheimportantandhiddenstepsofmodernization.Defining architecture early in the stage will give guidance to theentireteamtostructureeffectivelyandfollowthe guidelines.
MicroServicesolution
● Utilizingmicroarchitectureisanessentialinapplicationdevelopmentintherecentyears,
● Microservicearchitecturegivescapabilitytodividetheapplicationintosmallerservices.
● Eachsmallerservicesarethendevelopedandintegratedintothecompleteapplication
● Usingmicroservices,It'seasytounderstandtheservices,buildtheservicesandtesttheservices.
TieredArchitecture
● Tiered architecture is how the application is being structured, so that the development process followsit.
● 3-tier architecture is the well known architecture where the presentation layer, application layer and data layer are separated into separate micro services and built separately which then work togetherinaconnectivemanner.
● Tieredsolution’sareeffectivelyunderstoodandhavethecapabilitytoadoptanycloudsolutions.
Datadrivensolution(primarilyforreporting)
● Datadrivensolutionistohoweffectivelythedataisbeinghandled
● ETL solutions, Extract, Transform and Load, which uses the currentdataandtransformsittothe datamodelthatisthenconsumed.
● Mostofthesesolutionsarequitehelpfulwithgeneratingreportsandgatheringviewsofthedata.
● Cloud tools are effectively used with data driven solutions to help adopt the solution easily and efficiently