Application modernization overview: DevOps, Infrastructure-as-code (IAC), and other cloud native ideas are used to modernize legacy applications, improve performance, and respond to changing business speeds. To modernize legacy apps, data, and infrastructure, examine them and choose the proper method (rehost, re-platform, rework, or rebuild).
Unpacking Application Modernization
Rebuild provides the most advantage but takes a lot of investment, while rehost moves programs and data to the cloud without optimization and requires less cost but less value. To adapt to technology and business changes, modernized applications are installed, monitored, and updated. Complexity and resource demands are obstacles, but adaptability, cost-effectiveness, and competitiveness are rewards. Many companies realize that cloud migration is not providing enough value or agility/speed beyond platform-level automation. Conway’s law states that IT organization affects how applications/services are designed and managed. This creates these issues:
- IT systems/components with redundant or overlapping capabilities create sticky dependencies and proliferations, affecting productivity and speed to market.
- Duplicative capabilities across applications and channels lead to duplicate IT resources.
- Duplication of capabilities, data, business rules, etc. causes uneven customer experience.
- Lack of IT-business alignment affects time to market and business-IT. Enterprises construct several band-aids and architectural layers to support new business objectives and innovations.
Therefore, application modernization programs must focus on business value and turn applications into business capabilities-aligned components and services. Many CIOs/CTOs are hesitant to invest owing to the cost and timescales involved in reaping value. Many are creating enterprise-specific accelerators to expedite modernization, such as IBM Consulting Cloud Accelerators. For modernization acceleration and cost optimization, Generative AI is becoming a vital enabler. This article will demonstrate acceleration aspects.
The following diagram shows a simplified application modernization program lifecycle.
Finding and creating
Discovery involves understanding historical applications, infrastructure, data, application-service-data interactions, and security. Planning divides the complicated portfolio of apps into iterations to be modernized and forms an iterative roadmap and implementation strategy.
Modernization approach determines blueprint/design phase activities (decomposing application and using domain-driven design or establishing goal architecture using new technologies to generate executable designs). Build, test, and deploy follow. Let’s study Generative AI across various lifecycles.
Facilitating discovery and design of old applications without SME engagement is crucial for accelerating progress. Since SMEs are usually preoccupied with systems lights-on activities, their experience may be restricted by how long they have supported the systems. The team spends most of modernization’s time on discovery and design, although development is easier after decoding legacy application functionality, integration, logic, and data complexity.
Modernization teams use code analysis tools to analyse various dated documents. Rewrites require mapping functional capabilities to legacy application context for domain-driven design/decomposition. The models must be tuned/contextualized for a given enterprise domain model or functional capability map, but generative AI can correlate domain/functional capabilities to code and data and establish business capabilities view and connected application code and data. This study mentions generative AI-assisted API mapping. Event-storming requires process maps, which Generative AI contextualizes and maps using process mining tools. Use cases are generated by generative AI using code insights and functional mapping. By making older apps and dependencies visible, Generative AI reduces modernization risk.
By tweaking models based on defined patterns (ingress/egress, application services, data services, composite patterns, etc.), generative AI generates target design for specific cloud service provider frameworks. Several other Generative AI use cases generate target technology framework-specific security code patterns. User stories, UX wire frames, API specifications (e.g. Swagger files), component connection diagrams, and component interaction diagrams are generated using generative AI.
A modernization program must balance concurrent and sequential efforts, and identify co-existence scenarios to create a macro plan. This is usually done once through Program Increments (PIs), but planning exercises with execution-level inputs is much harder. Using historical data (domain area maps, effort and complexity factors, dependence patterns, etc.), generative AI can produce roadmaps for modernization programs in a certain industry or domain.
Only by making it consumable via a portfolio of assets and accelerators that address enterprise complexity can this be done. Generative AI helps match application portfolio data with dependencies.
Build and test
Generating code is a common Generative AI use case. It involves generating various code artifacts, such as IAC (Terraform or Cloud Formation Template), pipeline code/configurations, embedded security design points, application code generation from swaggers or legacy data, and firewall configurations. By orchestrating design tool outputs and predefined application reference structures constructed from patterns, generative AI generates the above.
Generative AI may generate accurate test cases, code, and data to optimize test execution.
When deploying, last-mile activities might take days to weeks, depending on enterprise complexity. Generating security validation insights from application and platform logs, design points, IAC, etc. will accelerate security review and approval cycles. Generative AI leverages configuration management inputs (CMDB) and modifying management inputs depending on release notes from Agility tool work items accomplished per release.
While the above use cases across modernization phases appear to be a silver bullet, enterprise complexities will require contextual orchestration of many of the Generative AI use cases-based accelerators to realize value, and IBM are far from establishing enterprise contextual patterns that accelerate modernization programs. IBM have found great value in tailoring various Generative AI accelerators for repeatable patterns upfront and ongoing.