Enterprises have benefited greatly from the elastic scalability and multi-region availability by moving to AWS, but the fundamental deployment model remains the same.
At Intuit, we have adopted k8s as our new saas platform and re-invented our CI/CD pipeline to take full advantage of k8s. In this presentation, we will discuss our journey from Spinnaker to Argo CD.
1. Reduce CI/CD time from 60 minutes to 10 minutes.
2. Reduce production release (or rollback) from 10 minutes to 2 minutes.
3. Enable concurrent deployment using spinnaker and argo cd as HA/DR to safely adopt the new platform with no downtime.
4. Be compatible with the existing application monitoring toolset.
7. Deployment Comparison
App Code
Runtime Dependencies
App Configuration
Infrastructure as code
(kubernetes yaml spec)
App Code
Runtime Dependencies
(Chef Recipes)
App Configuration
Infrastructure
(Spinnaker)
From To
(Docker Image)(AMI)
8. Intuit Modern SaaS Platform
AWS
(IaaS - ALB/NLB, RDS, DynamoDB, Elasticache …)
AWS
Service Broker
EKS
Elastic K8S
Service
Github
(Apps as Code)
IBP 2.0 Jenkins
(CI/d)
JFrog
Artifactory
Intuit Kubernetes Service (IKS, IKSM)
(Core Kubernetes with Intuit Network & Security policies & best practices)
Continuous Operations
(Monitoring, Analytics, Remediation)
Argo CD
(GitOps)
Splunk
(Logging)
Wavefront
(Monitoring)
PagerDuty
(Alerts)
ServiceNow
(CM)
Appdynamics
(Monitoring)
Service Onboarding
Quality
Frameworks
(TDS, Overwatch, TrinityJS,
Hubble…)
Multi-Cluster
Service Mesh
Service Management
Security &
Compliance
Service Monitoring
Developer Portal
NetGenie
(Certs))
Olympus
(SSO & AWS Roles)
IDPS
(Secrets)
9. Intuit Modern SaaS Platform
Github
(Apps as Code)
IBP 2.0 Jenkins
(CI/d)
AWS
(IaaS - ALB/NLB, RDS, DynamoDB, Elasticache …)
AWS
Service Broker
EKS
Elastic K8S Service
JFrog
Artifactory
Argo CD
(GitOps)
Intuit Kubernetes Service (IKS, IKSM)
(Core Kubernetes with Intuit Network & Security policies & best practices)
Continuous Operations
(Monitoring, Analytics, Remediation)
Wavefront
(Monitoring)
Splunk
(Logging)
PagerDuty
(Alerts)
ServiceNow
(CM)
Appdynamics
(Monitoring)
Service Onboarding
Quality
Frameworks
(TDS, Overwatch, TrinityJS, Hubble…)
Multi-Cluster
Service Mesh
Service Management
Security &
Compliance
NetGenie
(Certs))
Service Monitoring
Developer Portal
Olympus
(SSO & AWS Roles)
IDPS
(Secrets)
10. Spinnaker Pros
● Excellent UI to monitoring EC2 fleet status
● Store Infrastructure metadata in DB (no need for CFN)
● Support Immutable AMI image
○ Easy rollback
○ Easy to re-deploy to any environment
11. Spinnaker Cons
● UI is ASG/EC2 centric (Does not support k8s resources)
● Does not embrace Infrastructure as Code
● With AMI:
○ Bakery with Chef recipes ~ 15 minutes
○ Require EC2 start up for deployment
12. No native K8s CD solution to support
● Generation of yaml for each environment
● Embrace GitOps for environment changes
● Comparison between Kubernetes vs Deployment Git Repo
● UI tool to support common devops operations like:
- Rollback
- Re-deploy
- Synchronize
13. Argo CD
● Environment Specific Yaml Overrides
● Excellent UI to monitor a fleet of components
- Kubernetes Service
- Side cars
- Pods
- Replicas Set
- Deployment
14. Argo CD Adoption
And many more …
Main Use Cases
● Software development and delivery - CI/CD
● Open source project
16. Blue Ocean Jenkins
● Customizable pipelines through Jenkinsfile (Code)
● Complete CI/CD view
● Enable Parallel Deployment (HA/DR)
- Classic Jenkins Pipeline with Spinnaker in AWS US-West 2 Region
- BO Jenkins with Argo CD in AWS US-East 2 Region
17. Spinnaker vs Intuit Modern Saas
Spinnaker Intuit Modern Saas
CI Build Time ~ 14 mins ~ 4 mins
Code Deployment Time ~ 90 mins ~ 20 mins
Release Time ~ 18 mins ~ 3 mins
Rollback Time ~ 18 mins ~ 3 mins