SlideShare a Scribd company logo
1 of 33
Download to read offline
Developing on Kubernetes
Michael Hausenblas @mhausenblas

Developer Advocate, Red Hat

2018-03-14, DevOps Amsterdam, Amsterdam Schiphol
Hit me up on Twitter: @mhausenblas
2
• Developer Advocate @ Red Hat (Go, Kubernetes, OpenShift)
• Developer Advocate @ Mesosphere
• Chief Data Engineer @ MapR
• Applied research (IE/AT)
• Nowadays mainly Go (Python, Node, Java, C++)
• Dev turned ops
$ whois mhausenblas
Hit me up on Twitter: @mhausenblas
3
admin
SRE
developer
QA
architect
PM
PHB
https://unsplash.com/photos/m0wptz8vYpw
why?
Hit me up on Twitter: @mhausenblas
5
https://www.pexels.com/photo/people-running-during-daytime-33703/
out-perform competition
Hit me up on Twitter: @mhausenblas
6
https://pixabay.com/en/logistics-stock-transport-shipping-852936/
ship around the clock!
Hit me up on Twitter: @mhausenblas
7
togetherness
https://unsplash.com/photos/GnU2altkUSQ
how?
Hit me up on Twitter: @mhausenblas
9
• You are part of a devops team, developing three µS
that in turn depend on five µS outside of your control
• Have Node.js/Java/Python and Kubernetes cluster 

as target runtime environment
• Want ✓ high development velocity

✓ dev/ops parity
An example brief …
Containers & Container Orchestration
Hit me up on Twitter: @mhausenblas
11
Containers 101
containerz.info
… a process group on steroids using namespaces, cgroups, and a copy-on-write filesystem
Hit me up on Twitter: @mhausenblas
12
Container orchestration
Hit me up on Twitter: @mhausenblas
13
Container orchestration
kubernetes.io
• Container lifecycle management
• Declarative, state-driven
• Extensible, modular API
• Robust, flexible, scalable
Developing Cloud Native
Hit me up on Twitter: @mhausenblas
15
Status quo
build artefacts build tooling runtime
config
code
creds
CI/CD pipeline
||||
code repo binary
bare metal server/VMs
Hit me up on Twitter: @mhausenblas
16
Doing it the cloud native way
build artefacts build tooling runtime
CI/CD pipeline
||||
code repo container
container orchestrator +

service mesh
config
code creds
container
image
manifest
container
runtime
manifest
service
mesh
manifest
container

registry
Hit me up on Twitter: @mhausenblas
17
Development setups (conceptually)
remote
local
cluster
dev
cluster
dev
cluster
dev
dev
cluster
pure off-line proxied live pure on-line
Hit me up on Twitter: @mhausenblas
18
Tooling
www.telepresence.io
vapor-ware.github.io/ksync/
www.openshift.org
kubed.sh
kedgeproject.org
ksonnet.io
Minikube
Minishift
Docker Community Edition for Mac & Windows
github.com/GoogleCloudPlatform/skaffold
draft.sh
Hit me up on Twitter: @mhausenblas
19
Example 1: all local/not containerized
• Each service developed locally (e.g.,
on your laptop)
• Natively, that is, in a non-
containerized manner
Hit me up on Twitter: @mhausenblas
20
Example 1: all local/not containerized
• Pros
• continue to work as you “always did”
• high development velocity
• Cons
• dependency hell
• dev/prod imparity
Hit me up on Twitter: @mhausenblas
21
Example 2: all local/containerized
• Each service developed locally (e.g.,
on your laptop)
• One container image per service,
locally managed (build, run, etc.)
Hit me up on Twitter: @mhausenblas
22
Example 2: all local/containerized
• Pros
• minimal overhead, can learn in hours
• no dependency hell
• high development velocity
• Cons
• still not full dev/ops parity
Hit me up on Twitter: @mhausenblas
23
Example 3: mixed local/cluster
• “Your” service developed locally
(containerized or not)
• Other service(s) run in the cluster
Hit me up on Twitter: @mhausenblas
24
Example 3: mixed local/cluster
• Pros
• almost full dev/ops parity
• Cons
• requires tooling (proxy, CI/CD)
• Neutral
• development velocity depends on tooling
Hit me up on Twitter: @mhausenblas
25
Example 4: all in-cluster
• “Your” service developed locally and
container image is pushed to
cluster (registry)
• All services run in the cluster
Hit me up on Twitter: @mhausenblas
26
Example 4: all in-cluster
• Pros
• full dev/ops parity
• scalability (testing!)
• Cons
• development velocity sucks
Hit me up on Twitter: @mhausenblas
27
Which development setup should I choose?
Demo time!
github.com/kubernauts/dok-example-us
Resources
Hit me up on Twitter: @mhausenblas
30
Hit me up on Twitter: @mhausenblas
31
Articles and related resources (1)
• What should be proper (local) development workflow?—Kubernetes Issue #43665
• https://abhishek-tiwari.com/local-development-environment-for-kubernetes-using-minikube/
• https://dzone.com/articles/a-development-workflow-for-kubernetes-services
• http://blog.jonparrott.com/building-a-paas-on-kubernetes/
• https://kubecloud.io/minikube-workflows-d7166e1da290
• https://developer.atlassian.com/blog/2017/07/kubernetes-workflow/
• https://blog.codersociety.com/node-js-development-workflow-for-kubernetes-part-1-c05e3771d40a
Hit me up on Twitter: @mhausenblas
32
Articles and related resources (2)
• https://stackoverflow.com/questions/29746926/how-to-do-local-development-with-kubernetes
• https://kubernetes.io/docs/user-journeys/users/application-developer/intermediate/
• Declarative application management in Kubernetes by Brian Grant (09/2017)
• https://docs.microsoft.com/en-us/azure/container-service/kubernetes/container-service-draft-up
• https://thenewstack.io/microsoft-launches-brigade-event-driven-scripting-tool-kubernetes/
• https://blog.openshift.com/live-code-updates-using-webdav/
• HN discussion on Google Skaffold – Easy and Repeatable Kubernetes Development
plus.google.com/+RedHat
linkedin.com/company/red-hat
youtube.com/user/RedHatVideos
facebook.com/redhatinc
twitter.com/RedHatNews
learn.openshift.com

More Related Content

Similar to 2018 03-14-adam devops-developing-on-kubernetes

How not to be all a flutter about Twitter
How not to be all a flutter about TwitterHow not to be all a flutter about Twitter
How not to be all a flutter about Twitter
Margaret Hazel
 

Similar to 2018 03-14-adam devops-developing-on-kubernetes (20)

Yet Another Session about Docker and Containers
Yet Another Session about Docker and ContainersYet Another Session about Docker and Containers
Yet Another Session about Docker and Containers
 
Developers: Why Care About the User? (February 2020)
Developers: Why Care About the User? (February 2020)Developers: Why Care About the User? (February 2020)
Developers: Why Care About the User? (February 2020)
 
Contribute to Eclipse projects
Contribute to Eclipse projectsContribute to Eclipse projects
Contribute to Eclipse projects
 
How not to be all a flutter about Twitter
How not to be all a flutter about TwitterHow not to be all a flutter about Twitter
How not to be all a flutter about Twitter
 
Developers: Why Care About the User? (September 2021)
Developers: Why Care About the User? (September 2021)Developers: Why Care About the User? (September 2021)
Developers: Why Care About the User? (September 2021)
 
The Platform Revolution: Making Online Work Happen
The Platform Revolution: Making Online Work HappenThe Platform Revolution: Making Online Work Happen
The Platform Revolution: Making Online Work Happen
 
One cluster to serve them all
One cluster to serve them allOne cluster to serve them all
One cluster to serve them all
 
jhipster-geekle-gbloch
jhipster-geekle-gblochjhipster-geekle-gbloch
jhipster-geekle-gbloch
 
Using Social Media to Enhance #TBI #ABI Research: A Skills-Based Workshop for...
Using Social Media to Enhance #TBI #ABI Research: A Skills-Based Workshop for...Using Social Media to Enhance #TBI #ABI Research: A Skills-Based Workshop for...
Using Social Media to Enhance #TBI #ABI Research: A Skills-Based Workshop for...
 
Role of Integration and Service Mesh in Cloud Native Architecture KubeCon 2108
Role of Integration and Service Mesh in Cloud Native Architecture KubeCon 2108Role of Integration and Service Mesh in Cloud Native Architecture KubeCon 2108
Role of Integration and Service Mesh in Cloud Native Architecture KubeCon 2108
 
Creating an Open Source Office: Lessons from Twitter
Creating an Open Source Office: Lessons from TwitterCreating an Open Source Office: Lessons from Twitter
Creating an Open Source Office: Lessons from Twitter
 
2018 ABRF Tools for improving rigor and reproducibility in bioinformatics
2018 ABRF Tools for improving rigor and reproducibility in bioinformatics2018 ABRF Tools for improving rigor and reproducibility in bioinformatics
2018 ABRF Tools for improving rigor and reproducibility in bioinformatics
 
JHipster presentation by Gaetan Bloch
JHipster presentation by Gaetan BlochJHipster presentation by Gaetan Bloch
JHipster presentation by Gaetan Bloch
 
認識開源社群運作
認識開源社群運作認識開源社群運作
認識開源社群運作
 
Tutorial: Social Semantic Web and Crowdsourcing - E. Simperl - ESWC SS 2014
Tutorial: Social Semantic Web and Crowdsourcing - E. Simperl - ESWC SS 2014 Tutorial: Social Semantic Web and Crowdsourcing - E. Simperl - ESWC SS 2014
Tutorial: Social Semantic Web and Crowdsourcing - E. Simperl - ESWC SS 2014
 
Artem Denysov "Easy ways to speed up your web application"
Artem Denysov "Easy ways to speed up your web application"Artem Denysov "Easy ways to speed up your web application"
Artem Denysov "Easy ways to speed up your web application"
 
SciSoftDays Talk - Howison: Spreading the work in software ecosystems
SciSoftDays Talk - Howison: Spreading the work in software ecosystemsSciSoftDays Talk - Howison: Spreading the work in software ecosystems
SciSoftDays Talk - Howison: Spreading the work in software ecosystems
 
Open Source Development Tooling with GitHub
Open Source Development Tooling with GitHubOpen Source Development Tooling with GitHub
Open Source Development Tooling with GitHub
 
Revolutionize Your Workflow with ChatOps
Revolutionize Your Workflow with ChatOpsRevolutionize Your Workflow with ChatOps
Revolutionize Your Workflow with ChatOps
 
DevXDay KubeCon NA 2021: "From Kubernetes to PaaS to Developer Control Planes"
DevXDay KubeCon NA 2021: "From Kubernetes to PaaS to Developer Control Planes"DevXDay KubeCon NA 2021: "From Kubernetes to PaaS to Developer Control Planes"
DevXDay KubeCon NA 2021: "From Kubernetes to PaaS to Developer Control Planes"
 

Recently uploaded

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Recently uploaded (20)

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
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
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
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
 
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...
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
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...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 

2018 03-14-adam devops-developing-on-kubernetes

  • 1. Developing on Kubernetes Michael Hausenblas @mhausenblas
 Developer Advocate, Red Hat
 2018-03-14, DevOps Amsterdam, Amsterdam Schiphol
  • 2. Hit me up on Twitter: @mhausenblas 2 • Developer Advocate @ Red Hat (Go, Kubernetes, OpenShift) • Developer Advocate @ Mesosphere • Chief Data Engineer @ MapR • Applied research (IE/AT) • Nowadays mainly Go (Python, Node, Java, C++) • Dev turned ops $ whois mhausenblas
  • 3. Hit me up on Twitter: @mhausenblas 3 admin SRE developer QA architect PM PHB
  • 5. Hit me up on Twitter: @mhausenblas 5 https://www.pexels.com/photo/people-running-during-daytime-33703/ out-perform competition
  • 6. Hit me up on Twitter: @mhausenblas 6 https://pixabay.com/en/logistics-stock-transport-shipping-852936/ ship around the clock!
  • 7. Hit me up on Twitter: @mhausenblas 7 togetherness
  • 9. Hit me up on Twitter: @mhausenblas 9 • You are part of a devops team, developing three µS that in turn depend on five µS outside of your control • Have Node.js/Java/Python and Kubernetes cluster 
 as target runtime environment • Want ✓ high development velocity
 ✓ dev/ops parity An example brief …
  • 10. Containers & Container Orchestration
  • 11. Hit me up on Twitter: @mhausenblas 11 Containers 101 containerz.info … a process group on steroids using namespaces, cgroups, and a copy-on-write filesystem
  • 12. Hit me up on Twitter: @mhausenblas 12 Container orchestration
  • 13. Hit me up on Twitter: @mhausenblas 13 Container orchestration kubernetes.io • Container lifecycle management • Declarative, state-driven • Extensible, modular API • Robust, flexible, scalable
  • 15. Hit me up on Twitter: @mhausenblas 15 Status quo build artefacts build tooling runtime config code creds CI/CD pipeline |||| code repo binary bare metal server/VMs
  • 16. Hit me up on Twitter: @mhausenblas 16 Doing it the cloud native way build artefacts build tooling runtime CI/CD pipeline |||| code repo container container orchestrator +
 service mesh config code creds container image manifest container runtime manifest service mesh manifest container
 registry
  • 17. Hit me up on Twitter: @mhausenblas 17 Development setups (conceptually) remote local cluster dev cluster dev cluster dev dev cluster pure off-line proxied live pure on-line
  • 18. Hit me up on Twitter: @mhausenblas 18 Tooling www.telepresence.io vapor-ware.github.io/ksync/ www.openshift.org kubed.sh kedgeproject.org ksonnet.io Minikube Minishift Docker Community Edition for Mac & Windows github.com/GoogleCloudPlatform/skaffold draft.sh
  • 19. Hit me up on Twitter: @mhausenblas 19 Example 1: all local/not containerized • Each service developed locally (e.g., on your laptop) • Natively, that is, in a non- containerized manner
  • 20. Hit me up on Twitter: @mhausenblas 20 Example 1: all local/not containerized • Pros • continue to work as you “always did” • high development velocity • Cons • dependency hell • dev/prod imparity
  • 21. Hit me up on Twitter: @mhausenblas 21 Example 2: all local/containerized • Each service developed locally (e.g., on your laptop) • One container image per service, locally managed (build, run, etc.)
  • 22. Hit me up on Twitter: @mhausenblas 22 Example 2: all local/containerized • Pros • minimal overhead, can learn in hours • no dependency hell • high development velocity • Cons • still not full dev/ops parity
  • 23. Hit me up on Twitter: @mhausenblas 23 Example 3: mixed local/cluster • “Your” service developed locally (containerized or not) • Other service(s) run in the cluster
  • 24. Hit me up on Twitter: @mhausenblas 24 Example 3: mixed local/cluster • Pros • almost full dev/ops parity • Cons • requires tooling (proxy, CI/CD) • Neutral • development velocity depends on tooling
  • 25. Hit me up on Twitter: @mhausenblas 25 Example 4: all in-cluster • “Your” service developed locally and container image is pushed to cluster (registry) • All services run in the cluster
  • 26. Hit me up on Twitter: @mhausenblas 26 Example 4: all in-cluster • Pros • full dev/ops parity • scalability (testing!) • Cons • development velocity sucks
  • 27. Hit me up on Twitter: @mhausenblas 27 Which development setup should I choose?
  • 30. Hit me up on Twitter: @mhausenblas 30
  • 31. Hit me up on Twitter: @mhausenblas 31 Articles and related resources (1) • What should be proper (local) development workflow?—Kubernetes Issue #43665 • https://abhishek-tiwari.com/local-development-environment-for-kubernetes-using-minikube/ • https://dzone.com/articles/a-development-workflow-for-kubernetes-services • http://blog.jonparrott.com/building-a-paas-on-kubernetes/ • https://kubecloud.io/minikube-workflows-d7166e1da290 • https://developer.atlassian.com/blog/2017/07/kubernetes-workflow/ • https://blog.codersociety.com/node-js-development-workflow-for-kubernetes-part-1-c05e3771d40a
  • 32. Hit me up on Twitter: @mhausenblas 32 Articles and related resources (2) • https://stackoverflow.com/questions/29746926/how-to-do-local-development-with-kubernetes • https://kubernetes.io/docs/user-journeys/users/application-developer/intermediate/ • Declarative application management in Kubernetes by Brian Grant (09/2017) • https://docs.microsoft.com/en-us/azure/container-service/kubernetes/container-service-draft-up • https://thenewstack.io/microsoft-launches-brigade-event-driven-scripting-tool-kubernetes/ • https://blog.openshift.com/live-code-updates-using-webdav/ • HN discussion on Google Skaffold – Easy and Repeatable Kubernetes Development