Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Modern DevOps with Spinnaker - Olga Kundzich


Published on

Modern DevOps with Spinnaker with Olga Kundzich at SpringOne Tour

Published in: Software
  • Be the first to comment

  • Be the first to like this

Modern DevOps with Spinnaker - Olga Kundzich

  1. 1. DevOps with Spinnaker Olga Kundzich Product Manager, Pivotal @olgakundzich
  2. 2. Cover w/ Image Topics 1. What is Spinnaker? 2. Where Spinnaker Fits in the DevOps Toolchain? 3. What Spinnaker Brings to Kubernetes? 4. Spinnaker OSS Governance and Roadmap 5. Demo 6. Q&A "Spinnaker" by Craig Stanfill is licensed under CC BY-SA 2.0
  3. 3. What is Spinnaker?
  4. 4. Spinnaker Is an OSS Multi-Cloud Delivery Platform Spinnaker Community “...the passionate open source community dedicated to making deployment pain go away.”
  5. 5. Spinnaker Embeds CD Expertise “We want to provide guardrails, not gates.” —Dianne Marsh, Netflix 2012 2019 Netflix built Asgard for managing cloud-based applications and infrastructure Netflix expanded Asgard ideas and introduced Spinnaker internally Spinnaker open sourced Spinnaker community grows Canary analysis and chaos monkey added to Spinnaker Pivotal becomes third largest contributor to Spinnaker OSS Spinnaker joins Continuous Delivery Foundation
  6. 6. Application Centric Control Plane = Turn monitoring into action Deploy safely with speed
  7. 7. Leveraging the Inventory Automated Canary Analysis Corrective Actions Chaos Engineering Scanning for Security Vulnerabilities Artifact Traceability Built-in corrective actions
  8. 8. Guardrails - Go Fast With Safety ■ Automated rollbacks ■ Deployment windows ■ Chaos monkeys ■ Deployment strategies ■ Automated canary analysis ■ Cluster locking ■ Traffic guards ■ Manual judgements ■ Conditional pipeline & stage execution ■ Notifications
  9. 9. Spinnaker Best Practices ● Blue/green deployments ● Rollbacks ● Automated canary analysis
  10. 10. Minimizing Production Deployment Risk
  11. 11. Multiple Application Versions for Rollback Allows zero-downtime rollbacks to a set number of previous application versions without rebuilding the code
  12. 12. Automated Canary Analysis Ensures your applications meet your SLAs
  13. 13. Spinnaker Ecosystem Cloud Providers App Engine Amazon Web Services Azure Cloud Foundry DC/OS Google Compute Engine Kubernetes Openstack Oracle CI Systems Jenkins Travis CI Wercker Artifact Support Docker GitHub HTTP S3 Artifactory Google Cloud Storage Nexus (coming soon) Monitoring Datadog Prometheus Stackdriver Atlas SignalFx (10+ more on roadmap) Notifications Email HipChat Slack SMS via Twilio
  14. 14. Orca Front50 Spring Boot Gate Clouddriver Rosco Fiat Deck Echo Igor Halyard Kayenta
  15. 15. Where Spinnaker Fits in the DevOps Toolchain?
  16. 16. he-4-phases-of-devops DevOps Stages
  17. 17. Establishing a repeatable, traceable, scalable framework that ● Enables fast, iterative development and testing ● Deploys apps seamlessly, securely, and safely ● Actively operates apps in production - bridge between deployment and monitoring systems Continuous Delivery of Modern Apps Monitoring Managing Resiliency Develop Security Compliance Validation IaaS, Kubernetes, CF. Lambda Deploy Operate Planning Test-Driven Dev CI/Build Development Users
  18. 18. Establishing a repeatable, traceable, scalable framework that ● Enables fast, iterative development and testing ● Deploys apps seamlessly, securely, and safely ● Actively operates apps in production - bridge between deployment and monitoring systems Continuous Delivery of Modern Apps CO Develop CD IaaS, Kubernetes, CF. Lambda Deploy Operate CI Development Users
  19. 19. Source code system of record Artifact system of record Runtime app system of record CI/Build automation Delivery automation Code to Cloud: Managing App Release and Operation Systems of Record Automation
  20. 20. CI and CD are two Different Related Processes Source Code Repository CD Pipeline Development Production CI Pipeline Artifact Repository CI CD Spinnaker Here Other triggers for a CD pipeline are possible
  21. 21. Different Requirements Continuous Integration ● Accelerate developer feedback ● Continuous testing—fail fast ● Daily code integration practices ● Iterate until your code is “ready to release” Continuous Delivery ● Accelerate software release process ● Security & compliance ● Safe deployment strategies that can scale ● Operationalize apps
  22. 22. Different Resource Utilization Models CI Systems ● Each deployment is a separate isolated job/container ● Long running deployment jobs putting a lot of strain on the systems ● Impossible to size and scale due to unpredictable load Spinnaker ● Efficiently performs multiple cloud operations in parallel ● Do not use for random tasks such as CI ● Easy to size and scale if only used for cloud operations
  23. 23. What Spinnaker Brings to Kubernetes?
  24. 24. Spinnaker is complementary to Kubernetes ● Deployed itself on Kubernetes ● Manages apps on all other envs ● Orchestrates business process of releasing software across multiple Kubernetes clusters (dev/test/prod) ● Deploys Kubernetes manifests, any manifests including CRDs (executes kubectl apply -f …)
  25. 25. Imperative Software Release Process with Declarative Deployment into Each Environment From Google PM Andrew Phillips Spinnaker Here Kubernetes Here
  26. 26. Using Spinnaker in the Early Days was Tough ● Netflix runs Spinnaker of master and deploys Spinnaker with Spinnaker ● Problem for the community: Identify set of microservices to deploy together ● Problem for the community: Identify configuration yaml, primarily for credentials
  27. 27. What did Google and the community do? Deployment ● hal CLI and halyard (subset of Spinnaker) for managing Spinnaker (remember it’s 2016) ● Helm chart for Spinnaker with hal command (2018). ● Next: helm chart with dynamic account configuration Release Process ● Two month release cadence with patches ● Nightly build with integration tests ● BOM for Spinnaker microservices ● Hal takes a version and translates it to published BOM
  28. 28. Kubernetes V1 provider ● Leverages Spinnaker resource model and implements it for Kubernetes ● Too restrictive, doesn’t cover all Kubernetes resources ● Kubernetes clusters and manifests differ across organizations
  29. 29. Kubernetes Manifests as Templates From Google PM Andrew Phillips: rk-kubernetes-cicd-patterns-for-kubernetes
  30. 30. Native Kubernetes V2 provider ● Native Kubernetes Manifests based ● Deploys any manifests including CRDs and Istio ● Leverages “kubectl apply -f” ● Blue/green, canary, rollbacks for applications (replicasets, configmaps, services) ● Helm, kustomize support
  31. 31. Spinnaker Artifacts and Triggers ● Multiple types of artifacts: manifests, docker images, kubernetes objects ● Multiple triggers for pipelines ● Stateful system: keeps track of artifacts consumed and produced
  32. 32. Manifest Processing ● Compile manifests before submitting to Spinnaker ● Use Spinnaker SPEL expressions ● Deploy Manifest stage binds artifacts (docker, kubernetes) to manifests
  33. 33. GitOps - Things to Consider ● GitOps is a practice requiring to store state in Git and triggering deployments of it ● Whether you use Spinnaker to push manifests into cluster with kubectl or pull with CRDs from within cluster you will have different pros/cons ● Manifests are statements of intent ● Kubernetes mutates manifests based on its configuration ● Delete problem: delete manifest needs to be explicit ● RBAC considerations: delegating it to Git vs Spinnaker and Kubernetes
  34. 34. Community Governance, Spinnaker Summit, Roadmap
  35. 35. Community Governance ● Technical Oversight Committee ● Special Interest Groups: Kubernetes, Security, UI, Declarative Delivery
  36. 36. Roadmap ● Dynamic external configuration ● Declarative delivery: templated pipelines and managed delivery ● Security: expanding RBAC ● Increasing adoption ● Internal investments: technical debt and improvements ● Kubernetes: simplification and performance improvements ● Istio and Knative?
  37. 37. Resources ● ● ● /spinnaker-for-gcp ● (Andrew Phillips’ Presentations)
  38. 38. Talks ● "Scalable Anomaly Detection (with Zero Machine Learning)" by Arthur Gonigberg ● "How NOT to Measure Latency" by Gil Tene
  39. 39. Demo
  40. 40. Demo Setup "Getting a new Spinnaker instance up and running with Spinnaker for GCP was really simple," says Ola Karlsson, SRE on the Chrome Ops Developer Experience team. “The solution takes care of the details of managing Spinnaker and still gives us the flexibility we need. We're now using it to manage our production and test Spinnaker installations”. cts/devops-sre/introducing-spinnaker -for-google-cloud-platform-continuou s-delivery-made-easy ● Google recently announced Spinnaker on Google Cloud Platform ● Example from the GCP tutorial ● Uses Cloud Build ● Google Container Registry ● Modified to run on two Kubernetes clusters and Git artifacts
  41. 41. Questions?
  42. 42. EXTRA
  43. 43. Org-centric CI/CD = Spinnaker
  44. 44. Deliver Better Software All the Time Continuous Delivery