Spinnaker Chadev
-
Upload
ethan-rogers -
Category
Technology
-
view
220 -
download
0
Transcript of Spinnaker Chadev
Deploy with Confidence
Spinnaker & Continuous Deployment
Ethan Rogers
Build & Release Engineer
Skuid
About Me• Build & Release @ Skuid
• Spinnaker Contributor
• CI/CD Enthusiast
• @e_frogers (Twitter)
• @ethanfrogers (Slack/Github)
A Quick Survey
Overview• What is Spinnaker?
• Concepts
• Deploying with Spinnaker (Demo!)
• Conclusion
What about a Canary?
What about Rollbacks?
Why Spinnaker?• Safe, repeatable deployments
• Clear picture of what’s running
• Easy scaling and rollbacks
• Multiple deployment strategies OOB
• Consolidated best practices
What is Spinnaker?
Spinnaker is an open source, multi-cloud continuous delivery platform for releasing software changes with high velocity and confidence.
- spinnaker.io
History• Developed at Netflix for AWS - 2014
• Open sourced in November 2015
• Lead by Netflix, Google and others
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
Features• Setup/Admin CLI
• Deployment Strategies
• Email/Chat Notifications
• VM Bakery
• CI Integration
• Chaos Monkey
Concepts• Components
• Server Groups & Clusters
• Pipelines
Architecture• Made up of 9 microservices
• Minimum viable install - 5 services + Redis + S3
• Written in Java/Groovy/Kotlin (Spring)
• github.com/spinnaker/spinnaker
• 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
• Igor - Jenkins/Travis integration
• Fiat - Authorization
• Echo - Notifications/Cron Triggers
• Rocso - Image Bakery via Packer
• Halyard - Configuration/Installation
Bells & Whistles
Instances & Server Groups• Instance is a single VM or Container
• Server Group is group of Instances
Instance
Server Group
chadev-test-v000
Naming Convention• Netflix Frigga
• Used to identify resources
• application-stack-detail-version
chadev-test-integration-v001
application stack detail version
Server Group Actions• Deploy (Create)
• Resize
• Enable/Disable - remove from service
• Clone
• Destroy
• Rollback
Clusters• Logical grouping of Server Groups (enabled/disabled)
• Based on application-stack-detail
• demoapp-staging & demoapp-production
chadev-test-v000 chadev-staging-v000
Clusters
Applications• Logical grouping of Clusters
• Based on application-stack-detail
• demoapp
• Multiple environments/regions
Applications
chadev-staging-v000 chadev-production-v000chadev-testing-v000
Pipelines• Declarative Deployments
• Multiple trigger sources
• Serial/Parallel stages
Demo Time!!
• Create a Load Balancer to expose traffic
• Deploy an API service to Kubernetes
• Build a canary pipeline
• Deploy a new version automatically
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
Case Studies
https://goo.gl/tXJoKV https://goo.gl/QcLwhE
Reference• blog.spinnaker.io
• spinnaker.io
• github.com/spinnaker/spinnaker
• http://join.spinnaker.io/
We’re hiring!
https://www.skuid.com/careers/