CI/CD in lightspeed with K8s &
Argo CD
Billy Yuen & Parin Shah
Agenda
● Intuit’s DevOps Journey
● Deployment Comparison
● Intuit’s Modern SaaS Platform
● Why Argo CD?
● Demo
Intuit mission
Powering Prosperity Around the World
Who we are
Founded
8,900
Employees
50M
Customers
1993
IPO
$6B
FY18
Revenue
21
Locations
1983
Intuit’s DevOps Journey
Development Deployment Infrastructure
Data Center PD Ops PI
AWS Spinnaker PD PD PD
AWS Modern SaaS PD PD SRE/DevOps
Our Goals
From To
Recoverability (mins) <30 <3
Release cycle time (days)
(PR to deploy)
5 1
Release frequency (days) <7 <1
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)
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)
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)
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
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
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
Argo CD
● Environment Specific Yaml Overrides
● Excellent UI to monitor a fleet of components
- Kubernetes Service
- Side cars
- Pods
- Replicas Set
- Deployment
Argo CD Adoption
And many more …
Main Use Cases
● Software development and delivery - CI/CD
● Open source project
DEMO
DEMO
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
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
Thank You

CI:CD in Lightspeed with kubernetes and argo cd

  • 1.
    CI/CD in lightspeedwith K8s & Argo CD Billy Yuen & Parin Shah
  • 2.
    Agenda ● Intuit’s DevOpsJourney ● Deployment Comparison ● Intuit’s Modern SaaS Platform ● Why Argo CD? ● Demo
  • 3.
  • 4.
  • 5.
    Intuit’s DevOps Journey DevelopmentDeployment Infrastructure Data Center PD Ops PI AWS Spinnaker PD PD PD AWS Modern SaaS PD PD SRE/DevOps
  • 6.
    Our Goals From To Recoverability(mins) <30 <3 Release cycle time (days) (PR to deploy) 5 1 Release frequency (days) <7 <1
  • 7.
    Deployment Comparison App Code RuntimeDependencies 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 SaaSPlatform 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 SaaSPlatform 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 ● ExcellentUI 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 ● UIis 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 K8sCD 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 ● EnvironmentSpecific Yaml Overrides ● Excellent UI to monitor a fleet of components - Kubernetes Service - Side cars - Pods - Replicas Set - Deployment
  • 14.
    Argo CD Adoption Andmany more … Main Use Cases ● Software development and delivery - CI/CD ● Open source project
  • 15.
  • 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 IntuitModern 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
  • 18.