Continuous Delivery
with Spinnaker
A better way to deliver value…
Faster, Safer, Easier
What is Spinnaker?
“Spinnaker is an open source, multi-cloud
continuous delivery platform that helps you
release software changes with high velocity and
confidence”
- spinnaker.io
• Started by Netflix
• Integrations to the major cloud providers (incl. K8s)
• Backed-up: Google, Microsoft, AWS
• Based on experience and lessons learned
Continuous Delivery?
• Continuous Delivery is getting changes of all types—including new
features, configuration changes, bug fixes and experiments—into
production (environments), and the hands of users, safely and
quickly in a sustainable way.
- continuousdelivery.com
Environments & Tools
• This setup is for Kubernetes deployments only.
• K8s clusters in CD
 Dev: 1 per engineering team
 Staging / UAT: shared organisation wide
 Prod: Production.
• Docker
Different pieces and tools come into the CD process.
Environments & Tools
• Jenkins CI builds still remain
• Static code analysis (SonarQube Scans)
• Security Scans & test
• Automated QA tests:
 Selenium tests
 Newman (Postman cli)
Environments and tools available in the CD process.
Jenkins “Pipeline”
• Jenkins is good at CI
• The pipelines are actually:
 Multiple Jobs chained together with post build actions. Not really a pipeline
 So many scripts
 Auto-manual promotions. Still requires moving from job to job
• Not Immutable
• Plugins have caused instability
• If When Jenkins goes down
Question: So what about our Jenkins pipeline? why change those?
What’s Different?
• Automated promotion (hands-off)
• 1 “single” view of:
 Delivery/Deployment Pipeline
 Infrastructure
• Notifications
• Automated trigger
What’s Different?
• Automated promotion (hands-off)
• One “single” view
• Notifications
• Automated trigger
• View your deployments (demo)
• Infrastructure
• Clusters (deployments > replica set > pods)
• Health
• Images
• Labels
• Events
• Manifest
• Logs
• Load Balancers (services)
• Services (urls) for now
• Hopefully we’ll have ingress urls too.
Concepts
Application management
Concepts
Application Deployment
Setup
• Requirements
 Kubernetes cluster
 Persistent Volume enabled
• Installation
 Installing using Helm. Following the steps listed here.
 There’s also Halyard and Kubernetes operator options
 Expose your spin-deck service with a Kubernetes ingress.
Typical Pipeline
Dev
UAT
• Typical not absolute
• CR: change request ticket.
• Starts with every merge to Dev
Demo
What to improve. • Automated CR
• CR Approvals
• Immutable builds
• Add other scans and tests to pipeline
• Ingress in load balancers
• Rolling update
• Add canary checks
• CI as Code
Any
Questions?

CD with spinnaker

  • 1.
    Continuous Delivery with Spinnaker Abetter way to deliver value… Faster, Safer, Easier
  • 2.
    What is Spinnaker? “Spinnakeris an open source, multi-cloud continuous delivery platform that helps you release software changes with high velocity and confidence” - spinnaker.io • Started by Netflix • Integrations to the major cloud providers (incl. K8s) • Backed-up: Google, Microsoft, AWS • Based on experience and lessons learned
  • 3.
    Continuous Delivery? • ContinuousDelivery is getting changes of all types—including new features, configuration changes, bug fixes and experiments—into production (environments), and the hands of users, safely and quickly in a sustainable way. - continuousdelivery.com
  • 4.
    Environments & Tools •This setup is for Kubernetes deployments only. • K8s clusters in CD  Dev: 1 per engineering team  Staging / UAT: shared organisation wide  Prod: Production. • Docker Different pieces and tools come into the CD process.
  • 5.
    Environments & Tools •Jenkins CI builds still remain • Static code analysis (SonarQube Scans) • Security Scans & test • Automated QA tests:  Selenium tests  Newman (Postman cli) Environments and tools available in the CD process.
  • 6.
    Jenkins “Pipeline” • Jenkinsis good at CI • The pipelines are actually:  Multiple Jobs chained together with post build actions. Not really a pipeline  So many scripts  Auto-manual promotions. Still requires moving from job to job • Not Immutable • Plugins have caused instability • If When Jenkins goes down Question: So what about our Jenkins pipeline? why change those?
  • 7.
    What’s Different? • Automatedpromotion (hands-off) • 1 “single” view of:  Delivery/Deployment Pipeline  Infrastructure • Notifications • Automated trigger
  • 8.
    What’s Different? • Automatedpromotion (hands-off) • One “single” view • Notifications • Automated trigger • View your deployments (demo) • Infrastructure • Clusters (deployments > replica set > pods) • Health • Images • Labels • Events • Manifest • Logs • Load Balancers (services) • Services (urls) for now • Hopefully we’ll have ingress urls too.
  • 9.
  • 10.
  • 11.
    Setup • Requirements  Kubernetescluster  Persistent Volume enabled • Installation  Installing using Helm. Following the steps listed here.  There’s also Halyard and Kubernetes operator options  Expose your spin-deck service with a Kubernetes ingress.
  • 12.
    Typical Pipeline Dev UAT • Typicalnot absolute • CR: change request ticket. • Starts with every merge to Dev
  • 13.
  • 14.
    What to improve.• Automated CR • CR Approvals • Immutable builds • Add other scans and tests to pipeline • Ingress in load balancers • Rolling update • Add canary checks • CI as Code
  • 15.