Developers building applications on Kubernetes today are being asked to not just develop applications -- they are also responsible for releasing and running their applications, too. In this talk, we’ll discuss the secular shift towards what Netflix calls “Full Cycle Development” or what Google calls “Service Ownership”. With developers managing so much of the cloud-native development loop, a new class of infrastructure has emerged -- the developer control plane. We’ll explore the evolution from Kubernetes to PaaS, to the developer control planes in use today. We’ll draw on our personal experiences and podcast chats with the larger CNCF community, and discuss real-world examples of developer control planes used at New Relic, Spotify, InVision, and Twitter. We’ll wrap this talk with a walk through of the CNCF ecosystem through the developer control plane lens, and look at what’s next in the future of this important emerging category.
DevXDay KubeCon NA 2021: "From Kubernetes to PaaS to Developer Control Planes"
1. @danielbryantuk | @ambassadorlabs
From Kubernetes to PaaS to
Developer Control Planes
Daniel Bryant | Director of DevRel, Ambassador Labs
@danielbryantuk
2. @danielbryantuk | @ambassadorlabs
tl;dr
As a [cloud native] community, we need to:
● Treat platform as a product
● Realise that you can’t have good DevX without good UX
● Focus on workflows and tooling interoperability (developer control plane)
3. @danielbryantuk | @ambassadorlabs
Developers are being told to “shift left”
Makes sense - think about the ‘ilities earlier
But the abstractions, APIs, and tooling have to help us
Tool sprawl can be an issue...
devopedia.org/shift-left
7. @danielbryantuk | @ambassadorlabs
Looking back at my dev career
Year
(Approx)
App Architecture Infra / Fabric My (Developer)
Responsibility
Developer
Control Planes
2000 Monolith In-house tin Code IDE, CVS, deploy portal
2005 Monolith / SOA In-house / colo /
cloud
Code, ship, [limited
run]
IDE, Mercurial, Jenkins,
[PXE, bash, Puppet]
2010 Monolith Heroku / CF Code, run IDE, Git, Heroku CLI,
Heroku UI, New Relic
UI
2015 Microservices Cloud Code, ship, run IDE, Git, Docker Hub,
Jenkins+plugins, AWS
Console, bash,
Terraform, Chef...
2020 Microservices++ K8s Full lifecycle
(code, ship, run)++
IDE, Git, K8s
8. @danielbryantuk | @ambassadorlabs
Looking back at my dev career
Year
(Approx)
App Architecture Infra / Fabric My (Developer)
Responsibility
Developer
Control Planes
2000 Monolith In-house tin Code IDE, CVS, deploy portal
2005 Monolith / SOA In-house / colo /
cloud
Code, ship, [limited
run]
IDE, Mercurial, Jenkins,
[PXE, bash, Puppet]
2010 Monolith Heroku / CF Code, run IDE, Git, Heroku CLI,
Heroku UI, New Relic
UI
2015 Microservices Cloud Code, ship, run IDE, Git, Docker Hub,
Jenkins+plugins, AWS
Console, bash,
Terraform, Chef...
2020 Microservices++ K8s Full lifecycle
(code, ship, run)++
IDE, Git, K8s
🤔
🤯
🥳
Cognitive Load
🙂
9. @danielbryantuk | @ambassadorlabs
What did I learn?
Treat platform as a product 🚉🎛
You can’t have good DevX without good UX ✨
Focus on workflows and tooling interoperability 🏭🤝
12. @danielbryantuk | @ambassadorlabs
Pinterest built a wrapper around Spinnaker...
“They had a product manager, they had a UX designer, they had back-end people, they had
front-end people. It was a product team that built this internal continuous deployment platform.
I don't have a product manager for this effort. I don't have a platform team for this effort. My
team is two people and 0.1 time from a manager that used to be an individual contributor.
We're trying to centralize our processes and build more standardized,
opinionated ways of doing things in a decentralized way. It's an experiment.”
Dave Sudia, CTO Upchieve
getambassador.io/podcasts/dave-sudia-on-kubernetes-local-development-building-a-paas-and-platform-personas/
15. @danielbryantuk | @ambassadorlabs
Shout out to the Argo Project
argoproj.github.io/argo-cd
argoproj.github.io/argo-rollouts
infoq.com/podcasts/continuous-delivery-with-kubernetes/
16. @danielbryantuk | @ambassadorlabs
Good UX (for platforms)
● Think personas
● User research is key
● Watch users in their daily
tasks (with your tooling)
18. @danielbryantuk | @ambassadorlabs
Workflow and interop
netflixtechblog.com/full-cycle-developers-at-netflix-a08c31f83249
srvaroa.github.io/paas/infrastructure/platform/kubernetes/cloud/2020/01/02/talk-how-to-build-a-paas-for-1500-engineers.html
19. @danielbryantuk | @ambassadorlabs
Tooling interoperability
“Well, I see in the industry that we go through waves of expansion and waves of consolidation.
And so I don't actually know where we are in that matrix, in that cycle at the moment.
But what I do know is that in order to create effective tooling for anybody--you, me, another
company, and so on--you need to integrate together a lot of different pieces.
So, in times of consolidation, you end up with products [...] that integrate with lots and
lots of tools -- and specifically tools you use”
Bjorn Freeman-Benson
CTO/SVP Ambassador Labs
www.getambassador.io/ambassador-developer-office-hours-developer-control-planes-an-architect-s-point-of-view
21. @danielbryantuk | @ambassadorlabs
Where are we now?
“I could imagine platform teams building [Backstage] plugins that [developers]
need to use. And then saying, 99% of the time just use this.
You don't need to be talking to us as individuals to request stuff."
Cheryl Hung, former VP Ecosystems, CNCF
“It should not be up to me as an SRE to define how your application gets deployed
or at what point it needs to be rolled back, or at what point it needs to be changed,
or when its health check should be modified.”
Mario Loria, Senior SRE, CartaX
"It's not just Kubernetes now -- that's just the common framework. It's all
the other stuff that's the hard part now: linking everything together and
making it work."
Kasper Nissen, Lead Platform Architect, Lunarbank
22. @danielbryantuk | @ambassadorlabs
Insights
● Successful orgs are investing in platforms (and platform teams)
● Yaml is the lingua franca of cloud config (although verbose…)
● A good UI “paints a thousand CLIs” (although show the CLI some ❤)
● GitOps is a workflow best practice for deployment (Operators)
● Adopting the Kubernetes Resource Model enables tool interop (CRDs)
24. @danielbryantuk | @ambassadorlabs
The CNCF ecosystem is the foundation for a
modern developer control plane
getambassador.io/developer-control-plane
27. @danielbryantuk | @ambassadorlabs
Conclusion: What’s next for Platforms?
As a [cloud native] community, we need to:
● Treat platform as a product
● Realise that you can’t have good DevX without good UX
● Focus on workflows and tooling interoperability (developer control plane)