SlideShare a Scribd company logo
1 of 60
Andrew Phillips
Community member
Spinnaker
● Been on most sides of this space: developer,
infra builder, product owner, evangelist and
more
● Long-standing open-source contributor
● Author and regular conference and meetup
presenter
● Co-organizer of ContainerDays Boston & NYC
The bio slide
Breaking down app deployment & Continuous Delivery
The deployment complexity scale & tooling implications
Spinnaker as a dedicated tool for app rollouts, application
management and domain-specific “secret sauce”
Agenda
Demo
Q&A
Beyond a certain level of deployment complexity it makes sense to
consider a dedicated deployment automation tool
A good deployment automation tool supports deployment and
operational best practice for rollouts and application management
Spinnaker embodies a lot of these best practices and includes
additional domain-specific “smarts” with proven value
3 takeaways
Breaking down CD
Breaking down CD
Common thought pattern: CI = glue, CD = more glue (or some combination
of “balls of mud” and “blobs of glue”
Breaking down CD
+
Breaking down CD
Not very useful as it really only talks about implementation details and less
about types of value delivered
Makes it hard to decide which kind of tooling is needed and how to choose it
Value
Instead, let’s look at it from a different perspective, motivated by the fact
that deployment sits at that critical boundary between build & manage (a.k.a.
dev and Ops)
Value = AR + AM + DS
Three components of value:
• Application rollout
• Application management
• Domain smarts
AR = application rollout
= the part of CD that generally comes to mind
Process of moving a release candidate through a number of verification
phases to production
Can be triggered once per code commit (“combined CI/CD”) but also (esp.
in more complex situations) independently of code changes (“decoupled
CI/CD”, e.g. release trains)
AR = application rollout
A sequence of commands, so often initially implemented with a
general-purpose orchestrator/automation tool
Ranges from simple one-shot git push <runtime> to long-running,
multi-step processes
More complex sequences already run into challenges specific to the domain:
access control, complex step sequences, concern about current state, need
for recoverability etc.
Some essential complexity across teams, but often incidental divergence
AM = application management
= often considered more of an operational issue
Fundamental question: “Which versions of which applications are/were
running in which environment?”
Generally not well supported either by GPOs (no representation of runtime
state) or monitoring tools (insufficient application/service model)
Becomes a significantly harder problem across different target runtimes
E.g. how to represent a set of VMs and a set of serverless functions in a
consistent way?
AM = application management
Not just about understanding the current state of the application landscape
and its evolution, but also about performing maintenance, troubleshooting
etc. actions
E.g. diverting load/traffic, scaling up or down, taking part of an application
offline, rolling back part of an application etc.
Want to do so safely - happens in high-pressure situations where the risk of
making a follow-on mistake is increased (limited review of changes etc.)
DS = domain smarts
Generally not well (or not at all) served by general-purpose orchestrators
Ex. updating an auto-scaling group or watching a Kubernetes deployment
Retrieving artifact information from triggers or context
Tasks for de-/reactivating current or previous application version, scaling
them up or down, directing traffic to/away from them etc.
DS = domain smarts
Support for various models of best practice sharing (locked-down and/or
use-as-template)
Traffic guards, judgements and requests for input, execution windows,
flexible failure-handling modes
Consistent domain model across runtime platforms
Traffic management, canary analysis etc. etc.
...
The deployment complexity scale
We all start with the GPO
Application deployment is not a “one size fits all” tooling problem
Almost every team that runs some kind of automated tasks on code commit
(e.g. a CI build) has a general-purpose orchestrator already
Natural choice to also start using this for application deployment
The GPO gets painful
At some point, using a GPO becomes pretty painful
The GPORGD gets painful
The GPO gets painful
At some point (“the Rube Goldberg stage”), using a GPO becomes pretty
painful
Still, investing time into addressing this is always tricky
Natural reluctance to adopt additional tools
“Something we want to fix next time”
Deployment complexity
When is “enough” enough?
Deployment complexity as a useful guide
Deployment complexity
When is “enough” enough?
Deployment complexity as a useful guide
DC = MR / pi * e ^ -i * RP
Deployment complexity
Just joking ;-)
Not rigorous science; just a rough guide to evaluating your scenario
Deployment complexity
Common dimensions:
• # teams
• # runtime platforms
• # process executions (esp. if scalability starts to bite)
• Complexity of rollouts (many components, many stages)
• Separation of concerns
• Regulatory/compliance/audit requirements
• Safe overview and management
• ...
How to use this?
Ask yourself these questions
If you recognize pain in more than two or three dimensions, consider taking
a look at a deployment tool
Timebox the effort and create your own evaluation criteria based on your
pain points
No analyst-provided spreadsheets! No check-box exercises! No endless
bake-offs!
How to use this?
No free lunch - will take effort, time, require training etc.
But lots of free snacks - many features you will find useful even if you initially
didn’t see much need for them
Don’t underestimate the draw of contributing to a funky open-source
project!
Spinnaker
What is Spinnaker?
Open-source project led by Netflix, Google and other CI/CD thought leaders
Aims to embody deployment and operational good practice and incorporate
domain-specific “smarts” across many teams and runtime platforms
“We built Spinnaker because the other CD tools on the market don’t scale to
Netflix’s needs.”
“Spinnaker is the dream: [...] an abstraction layer. Something that’s
long-term sustainable.”
What is Spinnaker?
Scales far beyond most other tools in this space
...but also non-trivial to configure and operate (area of ongoing work)
“Provider model” to support different target runtimes in a consistent way
...working on improving the single-runtime experience
Also lots of integration capabilities with upstream and downstream tools and
information sources, e.g. source repositories, build tools, monitoring
systems etc.
Demo time!
Demo
Let’s deploy some code!
Rollout process
Application management
Domain smarts
Demo
Let’s deploy some code!
Rollout process
Application management
Domain smarts
Let’s go
already!
Rollout process
Application management
Domain smarts
Site: spinnaker.io
Install: spinnaker.io/setup/
Kubernetes codelab:
codelabs.developers.google.com/codelabs/cloud-spinnaker-kubernetes-cd/
Forum: community.spinnaker.io
Slack: join.spinnaker.io
Source: github.com/spinnaker/spinnaker
Kayenta: github.com/spinnaker/kayenta
Some links
Beyond a certain level of deployment complexity it makes sense to
consider a dedicated deployment automation tool
A good deployment automation tool supports deployment and
operational best practice for rollouts and application management
Spinnaker embodies a lot of these best practices and includes
additional domain-specific “smarts” with proven value
3 takeaways
Thank you!
Site: spinnaker.io
Install: spinnaker.io/setup/
Kubernetes codelab:
codelabs.developers.google.com/codelabs/cloud-spinnaker-kubernetes-cd/
Forum: community.spinnaker.io
Slack: join.spinnaker.io
Source: github.com/spinnaker/spinnaker
Kayenta: github.com/spinnaker/kayenta
Questions?

More Related Content

What's hot

User story refinement in Project GATE
User story refinement in Project GATEUser story refinement in Project GATE
User story refinement in Project GATEPin-Ying Tu
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme ProgrammingKnoldus Inc.
 
Agile Practices - eXtreme Programming
Agile Practices - eXtreme ProgrammingAgile Practices - eXtreme Programming
Agile Practices - eXtreme ProgrammingAniruddha Chakrabarti
 
Audrys Kažukauskas - Introduction into Extreme Programming
Audrys Kažukauskas - Introduction into Extreme ProgrammingAudrys Kažukauskas - Introduction into Extreme Programming
Audrys Kažukauskas - Introduction into Extreme ProgrammingAgile Lietuva
 
extreme Programming
extreme Programmingextreme Programming
extreme ProgrammingBilal Shah
 
Agile Software Development Methodologies
Agile Software Development MethodologiesAgile Software Development Methodologies
Agile Software Development Methodologiesguy_davis
 
DevOps is a Journey - Choose Your Own Adventure
DevOps is a Journey - Choose Your Own AdventureDevOps is a Journey - Choose Your Own Adventure
DevOps is a Journey - Choose Your Own AdventureFabian Iannarella
 
Xp exterme-programming-model
Xp exterme-programming-modelXp exterme-programming-model
Xp exterme-programming-modelAli MasudianPour
 
Introduction To Extreme Programming
Introduction To Extreme ProgrammingIntroduction To Extreme Programming
Introduction To Extreme ProgrammingJoe Drumgoole
 
Being Agile - Doing Scrum
Being Agile - Doing ScrumBeing Agile - Doing Scrum
Being Agile - Doing Scrumevdherberg
 
Agile methodology
Agile methodologyAgile methodology
Agile methodologyDhruv Kumar
 
Overview: Agile Methodology and Scrum
Overview: Agile Methodology and ScrumOverview: Agile Methodology and Scrum
Overview: Agile Methodology and ScrumIgor Corrêa
 
What is agile model?Working of agile model
What is agile model?Working of agile modelWhat is agile model?Working of agile model
What is agile model?Working of agile modelzoomers
 

What's hot (20)

User story refinement in Project GATE
User story refinement in Project GATEUser story refinement in Project GATE
User story refinement in Project GATE
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 
Agile Practices - eXtreme Programming
Agile Practices - eXtreme ProgrammingAgile Practices - eXtreme Programming
Agile Practices - eXtreme Programming
 
SDLC Smashup
SDLC SmashupSDLC Smashup
SDLC Smashup
 
Audrys Kažukauskas - Introduction into Extreme Programming
Audrys Kažukauskas - Introduction into Extreme ProgrammingAudrys Kažukauskas - Introduction into Extreme Programming
Audrys Kažukauskas - Introduction into Extreme Programming
 
extreme Programming
extreme Programmingextreme Programming
extreme Programming
 
Agile
AgileAgile
Agile
 
Agile Software Development Methodologies
Agile Software Development MethodologiesAgile Software Development Methodologies
Agile Software Development Methodologies
 
Codess Prague - Agile vs Traditional Methods - Apr 2014
Codess Prague - Agile vs Traditional Methods - Apr 2014Codess Prague - Agile vs Traditional Methods - Apr 2014
Codess Prague - Agile vs Traditional Methods - Apr 2014
 
Agile methodology and scrum development
Agile methodology and scrum developmentAgile methodology and scrum development
Agile methodology and scrum development
 
Agile Modeling
Agile ModelingAgile Modeling
Agile Modeling
 
DevOps is a Journey - Choose Your Own Adventure
DevOps is a Journey - Choose Your Own AdventureDevOps is a Journey - Choose Your Own Adventure
DevOps is a Journey - Choose Your Own Adventure
 
What is xp
What is xpWhat is xp
What is xp
 
Xp exterme-programming-model
Xp exterme-programming-modelXp exterme-programming-model
Xp exterme-programming-model
 
Introduction To Extreme Programming
Introduction To Extreme ProgrammingIntroduction To Extreme Programming
Introduction To Extreme Programming
 
Being Agile - Doing Scrum
Being Agile - Doing ScrumBeing Agile - Doing Scrum
Being Agile - Doing Scrum
 
What is agile model
What is agile modelWhat is agile model
What is agile model
 
Agile methodology
Agile methodologyAgile methodology
Agile methodology
 
Overview: Agile Methodology and Scrum
Overview: Agile Methodology and ScrumOverview: Agile Methodology and Scrum
Overview: Agile Methodology and Scrum
 
What is agile model?Working of agile model
What is agile model?Working of agile modelWhat is agile model?Working of agile model
What is agile model?Working of agile model
 

Similar to OpenDev 2018: "Open CD for Open Infrastructure - Hybrid and Multi-Cloud Deployments with Spinnaker"

Making software development processes to work for you
Making software development processes to work for youMaking software development processes to work for you
Making software development processes to work for youAmbientia
 
Microservices at Scale: How to Reduce Overhead and Increase Developer Product...
Microservices at Scale: How to Reduce Overhead and Increase Developer Product...Microservices at Scale: How to Reduce Overhead and Increase Developer Product...
Microservices at Scale: How to Reduce Overhead and Increase Developer Product...DevOps.com
 
WinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOps
WinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOpsWinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOps
WinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOpsWinOps Conf
 
Agile paris 2022 sharing
Agile paris 2022   sharingAgile paris 2022   sharing
Agile paris 2022 sharingJas Chong
 
Scrum and Test-driven development
Scrum and Test-driven developmentScrum and Test-driven development
Scrum and Test-driven developmenttoteb5
 
Ci tips and_tricks_linards_liepins
Ci tips and_tricks_linards_liepinsCi tips and_tricks_linards_liepins
Ci tips and_tricks_linards_liepinsLinards Liep
 
Evolving to Cloud-Native - Nate Schutta (2/2)
Evolving to Cloud-Native - Nate Schutta (2/2)Evolving to Cloud-Native - Nate Schutta (2/2)
Evolving to Cloud-Native - Nate Schutta (2/2)VMware Tanzu
 
Workday "Creating an Effective Developer Experience on Kubernetes"
Workday "Creating an Effective Developer Experience on Kubernetes"Workday "Creating an Effective Developer Experience on Kubernetes"
Workday "Creating an Effective Developer Experience on Kubernetes"Daniel Bryant
 
TechRadarCon 2022 | Have you built your platform yet ?
TechRadarCon 2022 | Have you built your platform yet ?TechRadarCon 2022 | Have you built your platform yet ?
TechRadarCon 2022 | Have you built your platform yet ?Haggai Philip Zagury
 
Building software using Rich Clients Platforms Rikard Thulin
Building software using Rich Clients Platforms Rikard ThulinBuilding software using Rich Clients Platforms Rikard Thulin
Building software using Rich Clients Platforms Rikard ThulinRikard Thulin
 
DevOps - Introduction to data science
DevOps - Introduction to data scienceDevOps - Introduction to data science
DevOps - Introduction to data scienceFrank Kienle
 
What is a Deployment Tool and How Can it Help Me?
What is a Deployment Tool and How Can it Help Me?What is a Deployment Tool and How Can it Help Me?
What is a Deployment Tool and How Can it Help Me?XebiaLabs
 
NYIT DSC/ Spring 2021 - Introduction to DevOps (CI/CD)
NYIT DSC/ Spring 2021 - Introduction to DevOps (CI/CD)NYIT DSC/ Spring 2021 - Introduction to DevOps (CI/CD)
NYIT DSC/ Spring 2021 - Introduction to DevOps (CI/CD)Hui (Henry) Chen
 
DevOps by examples - Continuous Lifecycle London 2017
DevOps by examples - Continuous Lifecycle London 2017DevOps by examples - Continuous Lifecycle London 2017
DevOps by examples - Continuous Lifecycle London 2017Giulio Vian
 
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as CodeConfoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as CodeSteve Mercier
 
Evolving to Cloud-Native - Nate Schutta 2/2
Evolving to Cloud-Native - Nate Schutta 2/2Evolving to Cloud-Native - Nate Schutta 2/2
Evolving to Cloud-Native - Nate Schutta 2/2VMware Tanzu
 
Data Engineer's Lunch #68: DevOps Fundamentals
Data Engineer's Lunch #68: DevOps FundamentalsData Engineer's Lunch #68: DevOps Fundamentals
Data Engineer's Lunch #68: DevOps FundamentalsAnant Corporation
 

Similar to OpenDev 2018: "Open CD for Open Infrastructure - Hybrid and Multi-Cloud Deployments with Spinnaker" (20)

Making software development processes to work for you
Making software development processes to work for youMaking software development processes to work for you
Making software development processes to work for you
 
Microservices at Scale: How to Reduce Overhead and Increase Developer Product...
Microservices at Scale: How to Reduce Overhead and Increase Developer Product...Microservices at Scale: How to Reduce Overhead and Increase Developer Product...
Microservices at Scale: How to Reduce Overhead and Increase Developer Product...
 
WinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOps
WinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOpsWinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOps
WinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOps
 
Agile paris 2022 sharing
Agile paris 2022   sharingAgile paris 2022   sharing
Agile paris 2022 sharing
 
Scrum and Test-driven development
Scrum and Test-driven developmentScrum and Test-driven development
Scrum and Test-driven development
 
Ci tips and_tricks_linards_liepins
Ci tips and_tricks_linards_liepinsCi tips and_tricks_linards_liepins
Ci tips and_tricks_linards_liepins
 
Evolving to Cloud-Native - Nate Schutta (2/2)
Evolving to Cloud-Native - Nate Schutta (2/2)Evolving to Cloud-Native - Nate Schutta (2/2)
Evolving to Cloud-Native - Nate Schutta (2/2)
 
software lecture
software lecturesoftware lecture
software lecture
 
Workday "Creating an Effective Developer Experience on Kubernetes"
Workday "Creating an Effective Developer Experience on Kubernetes"Workday "Creating an Effective Developer Experience on Kubernetes"
Workday "Creating an Effective Developer Experience on Kubernetes"
 
TechRadarCon 2022 | Have you built your platform yet ?
TechRadarCon 2022 | Have you built your platform yet ?TechRadarCon 2022 | Have you built your platform yet ?
TechRadarCon 2022 | Have you built your platform yet ?
 
Building software using Rich Clients Platforms Rikard Thulin
Building software using Rich Clients Platforms Rikard ThulinBuilding software using Rich Clients Platforms Rikard Thulin
Building software using Rich Clients Platforms Rikard Thulin
 
DevOps - Introduction to data science
DevOps - Introduction to data scienceDevOps - Introduction to data science
DevOps - Introduction to data science
 
What is a Deployment Tool and How Can it Help Me?
What is a Deployment Tool and How Can it Help Me?What is a Deployment Tool and How Can it Help Me?
What is a Deployment Tool and How Can it Help Me?
 
NYIT DSC/ Spring 2021 - Introduction to DevOps (CI/CD)
NYIT DSC/ Spring 2021 - Introduction to DevOps (CI/CD)NYIT DSC/ Spring 2021 - Introduction to DevOps (CI/CD)
NYIT DSC/ Spring 2021 - Introduction to DevOps (CI/CD)
 
Containerization Strategy
Containerization StrategyContainerization Strategy
Containerization Strategy
 
India Agile Week 2015
India Agile Week 2015India Agile Week 2015
India Agile Week 2015
 
DevOps by examples - Continuous Lifecycle London 2017
DevOps by examples - Continuous Lifecycle London 2017DevOps by examples - Continuous Lifecycle London 2017
DevOps by examples - Continuous Lifecycle London 2017
 
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as CodeConfoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
 
Evolving to Cloud-Native - Nate Schutta 2/2
Evolving to Cloud-Native - Nate Schutta 2/2Evolving to Cloud-Native - Nate Schutta 2/2
Evolving to Cloud-Native - Nate Schutta 2/2
 
Data Engineer's Lunch #68: DevOps Fundamentals
Data Engineer's Lunch #68: DevOps FundamentalsData Engineer's Lunch #68: DevOps Fundamentals
Data Engineer's Lunch #68: DevOps Fundamentals
 

More from Andrew Phillips

Spinnaker Summit 2019: Where are we heading? The Future of Continuous Delivery
Spinnaker Summit 2019: Where are we heading? The Future of Continuous DeliverySpinnaker Summit 2019: Where are we heading? The Future of Continuous Delivery
Spinnaker Summit 2019: Where are we heading? The Future of Continuous DeliveryAndrew Phillips
 
Docker New York City: From GitOps to a scalable CI/CD Pattern for Kubernetes
Docker New York City: From GitOps to a scalable CI/CD Pattern for KubernetesDocker New York City: From GitOps to a scalable CI/CD Pattern for Kubernetes
Docker New York City: From GitOps to a scalable CI/CD Pattern for KubernetesAndrew Phillips
 
Continuous Delivery NYC: From GitOps to an adaptable CI/CD Pattern for Kubern...
Continuous Delivery NYC: From GitOps to an adaptable CI/CD Pattern for Kubern...Continuous Delivery NYC: From GitOps to an adaptable CI/CD Pattern for Kubern...
Continuous Delivery NYC: From GitOps to an adaptable CI/CD Pattern for Kubern...Andrew Phillips
 
Spinnaker Summit 2018: CI/CD Patterns for Kubernetes with Spinnaker
Spinnaker Summit 2018: CI/CD Patterns for Kubernetes with SpinnakerSpinnaker Summit 2018: CI/CD Patterns for Kubernetes with Spinnaker
Spinnaker Summit 2018: CI/CD Patterns for Kubernetes with SpinnakerAndrew Phillips
 
New York Kubernetes: CI/CD Patterns for Kubernetes
New York Kubernetes: CI/CD Patterns for KubernetesNew York Kubernetes: CI/CD Patterns for Kubernetes
New York Kubernetes: CI/CD Patterns for KubernetesAndrew Phillips
 
nycdevops: "Breaking Down the Prod/Dev Wall"
nycdevops: "Breaking Down the Prod/Dev Wall"nycdevops: "Breaking Down the Prod/Dev Wall"
nycdevops: "Breaking Down the Prod/Dev Wall"Andrew Phillips
 
Metrics-driven Continuous Delivery
Metrics-driven Continuous DeliveryMetrics-driven Continuous Delivery
Metrics-driven Continuous DeliveryAndrew Phillips
 
BASE Meetup: "Analysing Scala Puzzlers: Essential and Accidental Complexity i...
BASE Meetup: "Analysing Scala Puzzlers: Essential and Accidental Complexity i...BASE Meetup: "Analysing Scala Puzzlers: Essential and Accidental Complexity i...
BASE Meetup: "Analysing Scala Puzzlers: Essential and Accidental Complexity i...Andrew Phillips
 
Scala Up North: "Analysing Scala Puzzlers: Essential and Accidental Complexit...
Scala Up North: "Analysing Scala Puzzlers: Essential and Accidental Complexit...Scala Up North: "Analysing Scala Puzzlers: Essential and Accidental Complexit...
Scala Up North: "Analysing Scala Puzzlers: Essential and Accidental Complexit...Andrew Phillips
 
The Multiple Dimensions of Cross-Cloud Computing
The Multiple Dimensions of Cross-Cloud ComputingThe Multiple Dimensions of Cross-Cloud Computing
The Multiple Dimensions of Cross-Cloud ComputingAndrew Phillips
 
Implementing Continuous Deployment
Implementing Continuous DeploymentImplementing Continuous Deployment
Implementing Continuous DeploymentAndrew Phillips
 
Know your cirrus from your cumulus (with notes)
Know your cirrus from your cumulus (with notes)Know your cirrus from your cumulus (with notes)
Know your cirrus from your cumulus (with notes)Andrew Phillips
 
Know your cirrus from your cumulus
Know your cirrus from your cumulusKnow your cirrus from your cumulus
Know your cirrus from your cumulusAndrew Phillips
 
Deployment is the new build
Deployment is the new buildDeployment is the new build
Deployment is the new buildAndrew Phillips
 

More from Andrew Phillips (14)

Spinnaker Summit 2019: Where are we heading? The Future of Continuous Delivery
Spinnaker Summit 2019: Where are we heading? The Future of Continuous DeliverySpinnaker Summit 2019: Where are we heading? The Future of Continuous Delivery
Spinnaker Summit 2019: Where are we heading? The Future of Continuous Delivery
 
Docker New York City: From GitOps to a scalable CI/CD Pattern for Kubernetes
Docker New York City: From GitOps to a scalable CI/CD Pattern for KubernetesDocker New York City: From GitOps to a scalable CI/CD Pattern for Kubernetes
Docker New York City: From GitOps to a scalable CI/CD Pattern for Kubernetes
 
Continuous Delivery NYC: From GitOps to an adaptable CI/CD Pattern for Kubern...
Continuous Delivery NYC: From GitOps to an adaptable CI/CD Pattern for Kubern...Continuous Delivery NYC: From GitOps to an adaptable CI/CD Pattern for Kubern...
Continuous Delivery NYC: From GitOps to an adaptable CI/CD Pattern for Kubern...
 
Spinnaker Summit 2018: CI/CD Patterns for Kubernetes with Spinnaker
Spinnaker Summit 2018: CI/CD Patterns for Kubernetes with SpinnakerSpinnaker Summit 2018: CI/CD Patterns for Kubernetes with Spinnaker
Spinnaker Summit 2018: CI/CD Patterns for Kubernetes with Spinnaker
 
New York Kubernetes: CI/CD Patterns for Kubernetes
New York Kubernetes: CI/CD Patterns for KubernetesNew York Kubernetes: CI/CD Patterns for Kubernetes
New York Kubernetes: CI/CD Patterns for Kubernetes
 
nycdevops: "Breaking Down the Prod/Dev Wall"
nycdevops: "Breaking Down the Prod/Dev Wall"nycdevops: "Breaking Down the Prod/Dev Wall"
nycdevops: "Breaking Down the Prod/Dev Wall"
 
Metrics-driven Continuous Delivery
Metrics-driven Continuous DeliveryMetrics-driven Continuous Delivery
Metrics-driven Continuous Delivery
 
BASE Meetup: "Analysing Scala Puzzlers: Essential and Accidental Complexity i...
BASE Meetup: "Analysing Scala Puzzlers: Essential and Accidental Complexity i...BASE Meetup: "Analysing Scala Puzzlers: Essential and Accidental Complexity i...
BASE Meetup: "Analysing Scala Puzzlers: Essential and Accidental Complexity i...
 
Scala Up North: "Analysing Scala Puzzlers: Essential and Accidental Complexit...
Scala Up North: "Analysing Scala Puzzlers: Essential and Accidental Complexit...Scala Up North: "Analysing Scala Puzzlers: Essential and Accidental Complexit...
Scala Up North: "Analysing Scala Puzzlers: Essential and Accidental Complexit...
 
The Multiple Dimensions of Cross-Cloud Computing
The Multiple Dimensions of Cross-Cloud ComputingThe Multiple Dimensions of Cross-Cloud Computing
The Multiple Dimensions of Cross-Cloud Computing
 
Implementing Continuous Deployment
Implementing Continuous DeploymentImplementing Continuous Deployment
Implementing Continuous Deployment
 
Know your cirrus from your cumulus (with notes)
Know your cirrus from your cumulus (with notes)Know your cirrus from your cumulus (with notes)
Know your cirrus from your cumulus (with notes)
 
Know your cirrus from your cumulus
Know your cirrus from your cumulusKnow your cirrus from your cumulus
Know your cirrus from your cumulus
 
Deployment is the new build
Deployment is the new buildDeployment is the new build
Deployment is the new build
 

Recently uploaded

A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 

Recently uploaded (20)

A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 

OpenDev 2018: "Open CD for Open Infrastructure - Hybrid and Multi-Cloud Deployments with Spinnaker"

  • 1.
  • 3. ● Been on most sides of this space: developer, infra builder, product owner, evangelist and more ● Long-standing open-source contributor ● Author and regular conference and meetup presenter ● Co-organizer of ContainerDays Boston & NYC The bio slide
  • 4. Breaking down app deployment & Continuous Delivery The deployment complexity scale & tooling implications Spinnaker as a dedicated tool for app rollouts, application management and domain-specific “secret sauce” Agenda Demo Q&A
  • 5. Beyond a certain level of deployment complexity it makes sense to consider a dedicated deployment automation tool A good deployment automation tool supports deployment and operational best practice for rollouts and application management Spinnaker embodies a lot of these best practices and includes additional domain-specific “smarts” with proven value 3 takeaways
  • 7. Breaking down CD Common thought pattern: CI = glue, CD = more glue (or some combination of “balls of mud” and “blobs of glue”
  • 9. Breaking down CD Not very useful as it really only talks about implementation details and less about types of value delivered Makes it hard to decide which kind of tooling is needed and how to choose it
  • 10. Value Instead, let’s look at it from a different perspective, motivated by the fact that deployment sits at that critical boundary between build & manage (a.k.a. dev and Ops)
  • 11. Value = AR + AM + DS Three components of value: • Application rollout • Application management • Domain smarts
  • 12. AR = application rollout = the part of CD that generally comes to mind Process of moving a release candidate through a number of verification phases to production Can be triggered once per code commit (“combined CI/CD”) but also (esp. in more complex situations) independently of code changes (“decoupled CI/CD”, e.g. release trains)
  • 13. AR = application rollout A sequence of commands, so often initially implemented with a general-purpose orchestrator/automation tool Ranges from simple one-shot git push <runtime> to long-running, multi-step processes More complex sequences already run into challenges specific to the domain: access control, complex step sequences, concern about current state, need for recoverability etc. Some essential complexity across teams, but often incidental divergence
  • 14. AM = application management = often considered more of an operational issue Fundamental question: “Which versions of which applications are/were running in which environment?” Generally not well supported either by GPOs (no representation of runtime state) or monitoring tools (insufficient application/service model) Becomes a significantly harder problem across different target runtimes E.g. how to represent a set of VMs and a set of serverless functions in a consistent way?
  • 15. AM = application management Not just about understanding the current state of the application landscape and its evolution, but also about performing maintenance, troubleshooting etc. actions E.g. diverting load/traffic, scaling up or down, taking part of an application offline, rolling back part of an application etc. Want to do so safely - happens in high-pressure situations where the risk of making a follow-on mistake is increased (limited review of changes etc.)
  • 16. DS = domain smarts Generally not well (or not at all) served by general-purpose orchestrators Ex. updating an auto-scaling group or watching a Kubernetes deployment Retrieving artifact information from triggers or context Tasks for de-/reactivating current or previous application version, scaling them up or down, directing traffic to/away from them etc.
  • 17. DS = domain smarts Support for various models of best practice sharing (locked-down and/or use-as-template) Traffic guards, judgements and requests for input, execution windows, flexible failure-handling modes Consistent domain model across runtime platforms Traffic management, canary analysis etc. etc. ...
  • 19. We all start with the GPO Application deployment is not a “one size fits all” tooling problem Almost every team that runs some kind of automated tasks on code commit (e.g. a CI build) has a general-purpose orchestrator already Natural choice to also start using this for application deployment
  • 20. The GPO gets painful At some point, using a GPO becomes pretty painful
  • 21. The GPORGD gets painful
  • 22. The GPO gets painful At some point (“the Rube Goldberg stage”), using a GPO becomes pretty painful Still, investing time into addressing this is always tricky Natural reluctance to adopt additional tools “Something we want to fix next time”
  • 23. Deployment complexity When is “enough” enough? Deployment complexity as a useful guide
  • 24. Deployment complexity When is “enough” enough? Deployment complexity as a useful guide DC = MR / pi * e ^ -i * RP
  • 25. Deployment complexity Just joking ;-) Not rigorous science; just a rough guide to evaluating your scenario
  • 26. Deployment complexity Common dimensions: • # teams • # runtime platforms • # process executions (esp. if scalability starts to bite) • Complexity of rollouts (many components, many stages) • Separation of concerns • Regulatory/compliance/audit requirements • Safe overview and management • ...
  • 27. How to use this? Ask yourself these questions If you recognize pain in more than two or three dimensions, consider taking a look at a deployment tool Timebox the effort and create your own evaluation criteria based on your pain points No analyst-provided spreadsheets! No check-box exercises! No endless bake-offs!
  • 28. How to use this? No free lunch - will take effort, time, require training etc. But lots of free snacks - many features you will find useful even if you initially didn’t see much need for them Don’t underestimate the draw of contributing to a funky open-source project!
  • 30. What is Spinnaker? Open-source project led by Netflix, Google and other CI/CD thought leaders Aims to embody deployment and operational good practice and incorporate domain-specific “smarts” across many teams and runtime platforms “We built Spinnaker because the other CD tools on the market don’t scale to Netflix’s needs.” “Spinnaker is the dream: [...] an abstraction layer. Something that’s long-term sustainable.”
  • 31.
  • 32.
  • 33.
  • 34. What is Spinnaker? Scales far beyond most other tools in this space ...but also non-trivial to configure and operate (area of ongoing work) “Provider model” to support different target runtimes in a consistent way ...working on improving the single-runtime experience Also lots of integration capabilities with upstream and downstream tools and information sources, e.g. source repositories, build tools, monitoring systems etc.
  • 36. Demo Let’s deploy some code! Rollout process Application management Domain smarts
  • 37. Demo Let’s deploy some code! Rollout process Application management Domain smarts Let’s go already!
  • 39.
  • 40.
  • 41.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57. Site: spinnaker.io Install: spinnaker.io/setup/ Kubernetes codelab: codelabs.developers.google.com/codelabs/cloud-spinnaker-kubernetes-cd/ Forum: community.spinnaker.io Slack: join.spinnaker.io Source: github.com/spinnaker/spinnaker Kayenta: github.com/spinnaker/kayenta Some links
  • 58. Beyond a certain level of deployment complexity it makes sense to consider a dedicated deployment automation tool A good deployment automation tool supports deployment and operational best practice for rollouts and application management Spinnaker embodies a lot of these best practices and includes additional domain-specific “smarts” with proven value 3 takeaways
  • 60. Site: spinnaker.io Install: spinnaker.io/setup/ Kubernetes codelab: codelabs.developers.google.com/codelabs/cloud-spinnaker-kubernetes-cd/ Forum: community.spinnaker.io Slack: join.spinnaker.io Source: github.com/spinnaker/spinnaker Kayenta: github.com/spinnaker/kayenta Questions?