Here is my highlevel framework for working with customers to migrate their application to Azure. It is work in progress, but I wanted to get version 1.0 out there so 2.0 can happen one day!
Before we begin, here is our fictitious three-tiered app:
- UI – ASP.NET Web Forms, stateful
- API – .NET, java, monolith
- DB – SQL, cross-database queries, tempDB
Here is what my agenda looks like for an app migration session to Azure:
- Discovery: Ask questions about EACH component
- Lift and shift, modernize, refactor, rewrite for cloud native
- What else is key to the solution?
- Windows or Linux?!
- Containers, serverless, microservices, PaaS
- Scalability, manageability, HA, DR
- Reuse vs redo
- Compliance, data governance
- Stateful vs stateless
- Outline the options in Azure and educate the customer about each one
- Compute, storage, database, etc
- Solution Design:
- Drive toward a solution by building/drawing the future state on the whiteboard (or draw.io) as you make key architectural decisions
- Examples:
- AKS
- UI, API
- Microservices
- DB
- CI/CD
- Inbound
- Backend services
- Serverless
- Monitoring
- High Availability
- Disaster Recovery
- AKS