CI/CD with Robert Erez
Summary
Robert Erez of Octopus Deploy discusses the evolution of CI/CD, highlighting early continuous delivery practices at Skype, including using New Zealand for canary deployments. He defines the stages from YOLO to continuous deployment, noting that full continuous deployment isn't suitable for all regulated industries. Erez explains Kubernetes' rise as a cross-platform container orchestration winner, used both cloud-native and on-premise, and its declarative state management. He clarifies GitOps' four pillars (declarative, versioned/immutable, pull, continuous reconciliation), emphasizing that not everything, especially secrets, belongs in Git. The discussion also covers the emergence of platform teams for standardizing deployment workflows and AI's anticipated impact on CI/CD, predicting higher code velocity and increased reliance on progressive delivery techniques like feature toggles for risk mitigation. Octopus Deploy's SaaS and on-premise operational challenges are also explored.
Key takeaway
For DevOps Engineers managing complex deployments, prioritize progressive delivery strategies like feature toggles to decouple feature releases from code deployments. This allows for rapid, controlled rollouts and immediate rollbacks of individual features, significantly reducing risk compared to full application rollbacks, especially with stateful systems. Additionally, embrace GitOps principles for declarative infrastructure management, but avoid dogmatically putting all configurations, particularly secrets, into Git.
Key insights
Effective software delivery balances automation, controlled progressive releases, and adaptable infrastructure, prioritizing practical outcomes over dogmatic approaches.
Principles
- Continuous delivery progresses from YOLO to full automation.
- Declarative state management simplifies infrastructure orchestration.
- Decouple feature release from code deployment via toggles.
Method
Progressive delivery de-risks releases using techniques like canary deployments, blue/green strategies, and feature toggles to gradually expose changes and manage risk.
In practice
- Begin progressive delivery by implementing a single feature toggle.
- Utilize ephemeral environments for pre-merge branch testing.
- Prioritize rolling forward with hotfixes over complex rollbacks.
Topics
- Continuous Delivery
- Progressive Delivery
- GitOps
- Kubernetes
- Feature Toggles
- Platform Engineering
Best for: DevOps Engineer, Software Engineer, MLOps Engineer
Related on AIssential
Editorial summary, takeaway, and curation by AIssential. Original article published by The Pragmatic Engineer.