spinnaker chadev

39
Deploy with Confidence Spinnaker & Continuous Deployment Ethan Rogers Build & Release Engineer Skuid

Upload: ethan-rogers

Post on 23-Jan-2018

220 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Spinnaker Chadev

Deploy with Confidence

Spinnaker & Continuous Deployment

Ethan Rogers

Build & Release Engineer

Skuid

Page 2: Spinnaker Chadev

About Me• Build & Release @ Skuid

• Spinnaker Contributor

• CI/CD Enthusiast

• @e_frogers (Twitter)

• @ethanfrogers (Slack/Github)

Page 3: Spinnaker Chadev

A Quick Survey

Page 4: Spinnaker Chadev

Overview• What is Spinnaker?

• Concepts

• Deploying with Spinnaker (Demo!)

• Conclusion

Page 5: Spinnaker Chadev
Page 6: Spinnaker Chadev
Page 7: Spinnaker Chadev
Page 8: Spinnaker Chadev

What about a Canary?

Page 9: Spinnaker Chadev

What about Rollbacks?

Page 10: Spinnaker Chadev

Why Spinnaker?• Safe, repeatable deployments

• Clear picture of what’s running

• Easy scaling and rollbacks

• Multiple deployment strategies OOB

• Consolidated best practices

Page 11: Spinnaker Chadev

What is Spinnaker?

Page 12: Spinnaker Chadev

Spinnaker is an open source, multi-cloud continuous delivery platform for releasing software changes with high velocity and confidence.

- spinnaker.io

Page 13: Spinnaker Chadev
Page 14: Spinnaker Chadev

History• Developed at Netflix for AWS - 2014

• Open sourced in November 2015

• Lead by Netflix, Google and others

Page 15: Spinnaker Chadev

Stats• Netflix runs over 100,000 AWS instances

• Spinnaker deploys 95% of them

• Runs OSS Spinnaker with additional features layered on top

• 150k pipeline executions (8mil tasks) - Netflix

https://goo.gl/phqX8z

Page 16: Spinnaker Chadev

Features• Setup/Admin CLI

• Deployment Strategies

• Email/Chat Notifications

• VM Bakery

• CI Integration

• Chaos Monkey

Page 17: Spinnaker Chadev

Concepts• Components

• Server Groups & Clusters

• Pipelines

Page 18: Spinnaker Chadev

Architecture• Made up of 9 microservices

• Minimum viable install - 5 services + Redis + S3

• Written in Java/Groovy/Kotlin (Spring)

• github.com/spinnaker/spinnaker

Page 19: Spinnaker Chadev

• Deck - UI

• Gate - API Gateway

• Clouddriver - Multi-cloud integrator

• Orca - Task orchestrator

• Front50 - Persistent Storage (S3/GCS/Redis)

‣Please don’t use Redis.

Minimum Installation

Page 20: Spinnaker Chadev

• Igor - Jenkins/Travis integration

• Fiat - Authorization

• Echo - Notifications/Cron Triggers

• Rocso - Image Bakery via Packer

• Halyard - Configuration/Installation

Bells & Whistles

Page 21: Spinnaker Chadev
Page 22: Spinnaker Chadev

Instances & Server Groups• Instance is a single VM or Container

• Server Group is group of Instances

Page 23: Spinnaker Chadev

Instance

Page 24: Spinnaker Chadev

Server Group

chadev-test-v000

Page 25: Spinnaker Chadev

Naming Convention• Netflix Frigga

• Used to identify resources

• application-stack-detail-version

Page 26: Spinnaker Chadev

chadev-test-integration-v001

application stack detail version

Page 27: Spinnaker Chadev

Server Group Actions• Deploy (Create)

• Resize

• Enable/Disable - remove from service

• Clone

• Destroy

• Rollback

Page 28: Spinnaker Chadev

Clusters• Logical grouping of Server Groups (enabled/disabled)

• Based on application-stack-detail

• demoapp-staging & demoapp-production

Page 29: Spinnaker Chadev

chadev-test-v000 chadev-staging-v000

Clusters

Page 30: Spinnaker Chadev

Applications• Logical grouping of Clusters

• Based on application-stack-detail

• demoapp

• Multiple environments/regions

Page 31: Spinnaker Chadev

Applications

chadev-staging-v000 chadev-production-v000chadev-testing-v000

Page 32: Spinnaker Chadev

Pipelines• Declarative Deployments

• Multiple trigger sources

• Serial/Parallel stages

Page 33: Spinnaker Chadev
Page 34: Spinnaker Chadev

Demo Time!!

Page 35: Spinnaker Chadev

• Create a Load Balancer to expose traffic

• Deploy an API service to Kubernetes

• Build a canary pipeline

• Deploy a new version automatically

Page 36: Spinnaker Chadev

Drawbacks• Missing good “infra as code” solution

‣ Versioned S3 buckets

‣https://github.com/spinnaker/dcd-spec

• Can only deploy to cloud based stacks with Docker/VM

• Programatic API access is…difficult

• Built in auditing mechanism

Page 37: Spinnaker Chadev

Case Studies

https://goo.gl/tXJoKV https://goo.gl/QcLwhE

Page 38: Spinnaker Chadev

Reference• blog.spinnaker.io

• spinnaker.io

• github.com/spinnaker/spinnaker

• http://join.spinnaker.io/

Page 39: Spinnaker Chadev

We’re hiring!

https://www.skuid.com/careers/