top of page

Phase 2: Cloud Native

  • Writer: Sash Barige
    Sash Barige
  • Aug 27, 2016
  • 2 min read

Updated: Apr 1, 2024


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

コメント


bottom of page