December 17, 2019
Every enterprise would like to mark its presence in the cloud to be part of a digital transformation journey.
The cloud platform would offer enterprise services on the best economical scale that is otherwise priced heavily when its done on-premises. The cloud transformation offers many distinct benefits, in particular
- Cost of ownership
- Design innovative solutions by leveraging the latest cloud services
- Business Continuity / Availability
- On-demand scale
Concisely, the need was to move applications out from on-premises data centers and derive costs for running each application under the enterprise portfolio.
The cloud transformation journey is not trivial and can pose adverse effects when it not assessed and planned properly. As part of the program, it is key to assess the “AS-IS” environment and identify the key challenges in the “TO-BE” state. The following are few challenges present as we embarked on the transformation.
- Legacy applications developed in different timeframes (more than decade-old apps)
- Heterogeneous identify management solutions present at on-premises
- Remediate applications to different runtime containers
- Migrate database servers to different cloud database services
- Refactor legacy applications to make it cloud compatible – In particular Platform as a Service (PaaS)
- Harmonize the application build/release cycles
- Centralize the application code base that supports modern DevOps practices/tools
The Microsoft Azure was chosen as part of the target state. All applications are destined to be part of the PaaS service. The entire solution devised around people, process and technology to meet in the best possible timeframe with minimal cost.
- Re-organized the teams with unique skills on product/business owners, cloud infra engineering and application architecture/development
- Application architecture/development teams divided into distinct technology streams with specific reusable solutions for each of those stacks
- SCRUM adopted as an engineering process with a 02-week sprint duration. Teams are distributed and used Azure DevOps tools for end-to-end traceability and tracking
- The business/product owner team(s) is ahead of engineering teams with a gap analysis on candidate apps. That is the primary artefact available for DEV teams to kick start transformation activities.
- The entire program is divided into distinct phases like pilot followed by bulk transformations. The pilot phase helped to unlock any technical spikes and baseline the target architecture. The theme for the pilot phase was “fail fast and cheap”
- All experiences and solutions recorded and made it as reusable solutions for repeated problems.
- Many of the Azure services used for the betterment of the existing application. Created the automated environment for application deployment and its monitoring. Few noteworthy Azure services used are - AppServices, Azure Deployment Slots, Logic Apps, Web Jobs/Schedulers, Key Vault, Redis Cache, Azure AD, Hybrid Connection Managers, Azure Portal Services, Application Insights, Azure DevOps CI/CD pipelines, Azure Automation Jobs, ARM templates, KUDU, Azure Storage accounts, Maven Feed, Azure SQL Managed Instances, API Management etc.
Many applications transformed to Azure PaaS with better application maintenance and monitoring with frequent release cycles. The dedicated environments for the application development cycle created otherwise it was not available. On-demand basis, the application wise costing /billing details are available with the latest Azure capabilities. This has helped to make informed decisions on application future state.