DEV QAINT PRODBuild
What is the immutable pattern?
A pattern or strategy for managing services in which infrastructure is divided into “data” and “everything else”. “Everything else” components are replaced at every deployment, with changes made only by modifying a versioned definition, rather than being updated in-place.
Source – https://highops.com/insights/immutable-infrastructure-6-questions-6-experts/
Pets vs Cattle
Benefits
Simpler than config as code
Mimicking production is easy
Resilient with instant rollbacks
Reuse one pipeline across many apps
Bigger paradigm shift than config as code
Technology and tooling is new and evolving
Creating VMs from scratch is slower than patches
Hard to migrate complex monolithic apps
Challenges
Open cloud
Active OSS
Immutable pipeline
Why Azure Spinnaker?
Trigger Build
Orchestrate across stagesDev checks in
code Azure VM Scale Set
Trigger pipeline Promote to
Prod
Azure Spinnaker : Toolchain
Trigger Build
Orchestrate across stagesDev checks in
codeBuild and Bake
app into image Production
Trigger Immutable
pipeline Promote to
Prod
Reuse the same image across stages
Azure Spinnaker : Immutability
Trigger Build
Orchestrate across stagesDev checks in
codeBuild app Production
Trigger Immutable
pipeline Promote to
Prod
Reuse the same image across stages
Azure Spinnaker : Immutability
Packer
Bake app
into image
Real world cluster view
Azure Jenkins Integrations
Kubernetes
Azure Container Service (Deploy)
Azure VM (Agents)
Docker Registry
MICROSOFT CONFIDENTIAL
http://aka.ms/trydevops