top of page

Phase 2: Cloud Native


With our core systems and data successfully shifted over to Azure's cloud during the "lift and shift" phase, we could now turn our sights to the real prize - re-architecting and modernizing our applications to be truly cloud-native. This multi-year transformation would allow us to go beyond just replicating our on-premises footprint to actually unlock the full potential of the cloud computing model.


The central goals of this cloud-native drive were:

Application Modernization

  • Break monolithic app codebases into microservices architecture

  • Adopt cloud-native design patterns like event-driven, CQRS, asynchrony

  • Build APIs and embrace API economy models

  • Refactor for elasticity, scalability, and resiliency

DevOps and Automation

  • Implement DevOps practices with CI/CD pipelines

  • Infrastructure-as-code with ARM, Bicep, and Terraform

  • Automated release management and deployment

  • Immutable infrastructure and configuration drift control

Cloud Platforms and Services

  • Containerize applications using Azure Kubernetes Service

  • Serverless computing with Azure Functions and Logic Apps

  • Modern data architecture with Cosmos DB, Synapse, and Data Lake

  • Leverage advanced AI, IoT, and analytics services

Operability and Observability

  • Move to automated monitoring, logging, and telemetry

  • Enable self-service, on-demand provisioning capabilities

  • Build azure SRE practices - chaos engineering, incident response

  • Robust cost management and FinOps processes

The core technical ingredients involved containerization, orchestration platforms like AKS, a proliferation of managed PaaS services, and rigorous DevOps practices around CI/CD and IaC. But the bigger shift was adopting cloud-native architectural philosophies:

  • Decomposing our monoliths into independent microservices

  • Embracing asynchronous, event-driven communication patterns

  • Decoupling stateless app compute from backends and data stores

  • Building API integration layers to allow greater composability

Of course, this couldn't happen in a vacuum - our people, processes and even cultural mindsets had to transform in parallel. Developers had to become fluent in containers, infrastructure-as-code, deployment automation, and modern application architecture patterns. Our operations teams evolved into a unified Cloud Platform group providing self-service infrastructure provisioning and support.

We made major investments in upskilling through training and new talent acquisition in critical areas like:

  • Cloud architecture and distributed systems

  • DevOps automation and GitOps

  • SRE practices and resilience engineering

  • FinOps and cost optimization

Organizationally, we reorganized into cross-functional product teams that owned end-to-end services from code to cloud. Each team became responsible for operationalizing their applications with DevOps rigor.

It was a huge cultural transformation, but one that paid massive dividends as we fully embraced agile, product-centric ways of working. The slowdown of annual "big bang" releases gave way to rapid iteration cycles. Resources dynamically scaled to match demand. Our cloud operations went from bulky human-driven processes to automated self-service simplicity.

By thoughtfully balancing both technical and organizational change, we were able to realize the true cloud-native nirvana - where compute, apps, data, and operations become wonderfully composable, scalable, and resilient. Our years of Azure cloud investment had officially borne fruit.


8/27/2016 Sash Barige


Links

Cloud Strategy

Phase 1

Phase 2

Phase 3

Making it Happen

DevOps Rigor

Comments


bottom of page