SlideShare a Scribd company logo
Developer Experience Cloud Native
-
From Code Gen to Git Commit
without a CI/CD Pipeline
Michael Hofmann
https://hofmann-itconsulting.de
Developer Experience Cloud Native
generate/create
code
Docker image
deploy to
(local) K8S
test and
debug
Git push
Developer Experience Cloud Native
New challenges
●
Docker image
●
K8S deployment
●
K8S environment (DNS, env vars, volumes, …)
Efficient roundtrip without tooling?
Developer Experience Cloud Native
Why should we develop in a cloud-native way?
●
delivering and deploying
●
new K8S environment brings new bugs
●
dependencies to local system
●
local system with different versions and behavior
Generate/Create Code
MicroProfile Starter
●
Only Maven
Spring Initalizr
●
Maven
●
Gradle
Generate Docker Image
Build image with Docker Daemon?
●
Security
●
Scalability
Dockerfile or proprietary description?
Maven/Gradle plugin or standalone tool?
On build server or in K8S?
Maven:
docker-client (Spotify)
docker-maven-plugin (Spotify)
dockerfile-maven (Spotify)
docker-maven-plugin (fabric8)
jib-maven-plugin (Google)
Generate Docker Image
started with 10+
Maven plugins for
Docker
today: 2 still exist
Generate Docker Image
Gradle:
gradle-docker (Palantir)
jib-gradle-plugin (Google)
gradle-docker-plugin (Benjamin Muschko)
Generate Docker Image
Standalone Tools (emerging):
●
BuildKit (Docker) (next generation ‘docker build’)
●
Kaniko (Google)
●
Buildah (RedHat)
●
Source-to-Image (RedHat)
●
Makisu (Uber)
●
...
Generate Docker Image
Big topic on it’s own!
Generate Code and Docker Image
Demo
Deploy to (local) K8S
Local K8S
●
Minikube
●
Docker Desktop
●
Minishift (OpenShift < 4.x)
●
CodeReady Container (OpenShift 4.x) (since
19.10.2019)
Deploy to (local) K8S
same situation as Maven/Gradle plugins?
Draft (Microsoft), Gitkube, Ksonnet, Metaparticle,
Forge, ...
But! New Kids on the Block!
Skaffold, Helm, Kustomize, ...
Deploy to (local) K8S
Helm 3 (13.11.2019) (Microsoft, Google, Bitnami)
“The package manager for Kubernetes”
Now without Tiller!
Manage K8S applications
Create own Helm charts or use existing
(Helm Hub https://hub.helm.sh)
CNCF Survey
2018:
Helm usage 68%
Deploy to (local) K8S
Interaction with K8S:
A lot of shell commands necessary ‘kubectl’-ing
(and a lot of ‘yaml’-ing)
Simplify: bash completion
(https://github.com/scop/bash-completion)
Deploy to (local) K8S
Demo
Test and Redeploy
simplified testing:
Kubefwd
(https://github.com/txn2/kubefwd)
„Bulk port forwarding Kubernetes services for
local development“
Developer Experience Cloud Native - From Code Gen to Git Commit without a CI/CD Pipeline
Test and Redeploy
simplified log analysis:
Stern
(https://github.com/wercker/stern)
„Multi pod and container log tailing for
Kubernetes“
Test and Redeploy
Redeploy:
Same round trip as
before or shorter?
kubectl cp
Precondition: Can
container reload new files?
Test and Redeploy
Ksync
(https://github.com/ksync/ksync)
similar functionality as kubectl cp, but
●
installs DaemonSet in your K8s cluster
●
works bi-directional
●
local watch process keeps local folder and pod
folder in sync
●
new pods will also be synced (scale --replicas=2)
Test and Redeploy
Demo
Debugging
Remote Debugging with your IDE
Squash (https://github.com/solo-io/squash)
“Debug your microservice applications from your terminal
or IDE while they run in Kubernetes”
Debugging across multiple services
also for Istio debugging
IDE support so far: VS Code (IntelliJ and Eclipse)
Debugging
Telepresence
Cloud Native Computing Foundation sandbox
project
Debugging
Telepresence
●
debugging a service mesh
●
substitutes a two-way network proxy for your K8S pod
●
proxies data from K8S environment (e.g., TCP
connections, environment variables, volumes) to the
local process
●
local process has its networking transparently
overridden so that DNS calls and TCP connections are
routed through the proxy to K8S
Debugging
Service Application Pod
Telepresence Pod
Deployment
Deployment
K8S
Telepresence Shell
swap
VolumeEnv
Env
Volume
Local
Debugging
Demo
The Big Players
Skaffold (Google)
„continous build & deploy on
code changes”
basis for commercial product
“Cloud Code“
daemon watches source
workflow-config (skaffold.yaml)
apiVersion: skaffold/v1
kind: Config
build:
artifacts:
- image: gcr.io/k8s-skaffold/image
custom:
buildCommand: build.sh
dependencies:
paths:
- .
deploy:
kubectl:
manifests:
- ./k8s/**
The Big Players
Kabanero (IBM)
supports development, architecture and
operations
platform architect designs platform
solution architect provides software stacks (PaaS)
developer can use predefined stack
IDE tools
TM
Final Thoughts
steep learning curve (Docker, Kubernetes)
new responsibility of a developer: deploy to Kubernetes
you have to deal with it, especially in solving environment errors
shown tools are easy to handle and make live of a developer
easier
selected tools should not interfere with each other
Final Thoughts
tools come and go; maybe you sit on the wrong horse
biggest challenge: find the right tool for a special purpose
there is no single golden bullet: but stay in sync with your CI/CD
pipeline; maybe you can use the same tools (e.g. Helm, ...)
as always: documentation could be better
the big companies smell a deal ...

More Related Content

What's hot (20)

PDF
Docker Platform Internals: Taking runtimes and image creation to the next lev...
Docker, Inc.
 
PDF
Running Production-Grade Kubernetes on AWS
DoiT International
 
PDF
Containerizing Hardware Accelerated Applications
Docker, Inc.
 
PDF
How to build your containerization strategy
Docker, Inc.
 
PDF
Gordon's secret session kubernetes on windows
Docker, Inc.
 
PPTX
2016 - Continuously Delivering Microservices in Kubernetes using Jenkins
devopsdaysaustin
 
PDF
Skynet vs. Planet of The Apes: Duel!
Docker, Inc.
 
PDF
Docker for .NET Developers - Michele Leroux Bustamante, Solliance
Docker, Inc.
 
PDF
Docker Multi-arch All The Things
Docker, Inc.
 
PDF
Docker for developers on mac and windows
Docker, Inc.
 
PPTX
Deploying Windows Apps to Kubernetes with Draft and Helm
Jessica Deen
 
PDF
Lean Cloud Starterkit - Beta
Dennis Seidel
 
PPTX
Docker containerd Kubernetes sig node
Patrick Chanezon
 
PDF
A vision of persistence
Docker, Inc.
 
PPTX
DockerCon EU 2015: Placing a container on a train at 200mph
Docker, Inc.
 
PDF
Building Your Docker Swarm Tech Stack
Bret Fisher
 
PDF
Kubernetes with docker
Docker, Inc.
 
PDF
DCEU 18: State of the Docker Engine
Docker, Inc.
 
PPTX
Containerd Donation to CNCF Cloud Native Conference Berlin 2017
Patrick Chanezon
 
PDF
Packaging software for the distribution on the edge
Docker, Inc.
 
Docker Platform Internals: Taking runtimes and image creation to the next lev...
Docker, Inc.
 
Running Production-Grade Kubernetes on AWS
DoiT International
 
Containerizing Hardware Accelerated Applications
Docker, Inc.
 
How to build your containerization strategy
Docker, Inc.
 
Gordon's secret session kubernetes on windows
Docker, Inc.
 
2016 - Continuously Delivering Microservices in Kubernetes using Jenkins
devopsdaysaustin
 
Skynet vs. Planet of The Apes: Duel!
Docker, Inc.
 
Docker for .NET Developers - Michele Leroux Bustamante, Solliance
Docker, Inc.
 
Docker Multi-arch All The Things
Docker, Inc.
 
Docker for developers on mac and windows
Docker, Inc.
 
Deploying Windows Apps to Kubernetes with Draft and Helm
Jessica Deen
 
Lean Cloud Starterkit - Beta
Dennis Seidel
 
Docker containerd Kubernetes sig node
Patrick Chanezon
 
A vision of persistence
Docker, Inc.
 
DockerCon EU 2015: Placing a container on a train at 200mph
Docker, Inc.
 
Building Your Docker Swarm Tech Stack
Bret Fisher
 
Kubernetes with docker
Docker, Inc.
 
DCEU 18: State of the Docker Engine
Docker, Inc.
 
Containerd Donation to CNCF Cloud Native Conference Berlin 2017
Patrick Chanezon
 
Packaging software for the distribution on the edge
Docker, Inc.
 

Similar to Developer Experience Cloud Native - From Code Gen to Git Commit without a CI/CD Pipeline (20)

PPTX
[20200720]cloud native develoment - Nelson Lin
HanLing Shen
 
PDF
Put the dev back in devops - Cloud-native at local speed! - RH Summit 19
Jorge Morales
 
PDF
Developer Experience Cloud Native - Become Efficient and Achieve Parity
Michael Hofmann
 
PDF
GCP-DevOps-projectintroduxtionfir devopsproject.pdf
Masar10
 
PDF
Kubernetes for Java Developers
Anthony Dahanne
 
PDF
Effective Building your Platform with Kubernetes == Keep it Simple
Wojciech Barczyński
 
PDF
Shifting Left with Cloud Native CI/CD
C4Media
 
PDF
Hands-On Introduction to Kubernetes at LISA17
Ryan Jarvinen
 
PDF
Get you Java application ready for Kubernetes !
Anthony Dahanne
 
PDF
My kubernetes toolkit
Sreenivas Makam
 
PDF
use case ibm k8s_service+devops
Shoichiro Sakaigawa
 
PDF
Using Kubernetes for Continuous Integration and Continuous Delivery
Carlos Sanchez
 
PDF
Using Kubernetes for Continuous Integration and Continuous Delivery. Java2days
Carlos Sanchez
 
PDF
DevEx | there’s no place like k3s
Haggai Philip Zagury
 
PDF
The Self-Service Developer - GOTOCon CPH
Laszlo Fogas
 
PPTX
An Introduction to Kubernetes its architecture and code
removed_7e30d0915f14b559919f338a71e486d1
 
PDF
Run K8s on Local Environment
Ganesh Pol
 
PPTX
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
Oleg Shalygin
 
PDF
Effective Kubernetes - Is Kubernetes the new Linux? Is the new Application Se...
Wojciech Barczyński
 
PDF
KubeCon 2017: Kubernetes from Dev to Prod
Subhas Dandapani
 
[20200720]cloud native develoment - Nelson Lin
HanLing Shen
 
Put the dev back in devops - Cloud-native at local speed! - RH Summit 19
Jorge Morales
 
Developer Experience Cloud Native - Become Efficient and Achieve Parity
Michael Hofmann
 
GCP-DevOps-projectintroduxtionfir devopsproject.pdf
Masar10
 
Kubernetes for Java Developers
Anthony Dahanne
 
Effective Building your Platform with Kubernetes == Keep it Simple
Wojciech Barczyński
 
Shifting Left with Cloud Native CI/CD
C4Media
 
Hands-On Introduction to Kubernetes at LISA17
Ryan Jarvinen
 
Get you Java application ready for Kubernetes !
Anthony Dahanne
 
My kubernetes toolkit
Sreenivas Makam
 
use case ibm k8s_service+devops
Shoichiro Sakaigawa
 
Using Kubernetes for Continuous Integration and Continuous Delivery
Carlos Sanchez
 
Using Kubernetes for Continuous Integration and Continuous Delivery. Java2days
Carlos Sanchez
 
DevEx | there’s no place like k3s
Haggai Philip Zagury
 
The Self-Service Developer - GOTOCon CPH
Laszlo Fogas
 
An Introduction to Kubernetes its architecture and code
removed_7e30d0915f14b559919f338a71e486d1
 
Run K8s on Local Environment
Ganesh Pol
 
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
Oleg Shalygin
 
Effective Kubernetes - Is Kubernetes the new Linux? Is the new Application Se...
Wojciech Barczyński
 
KubeCon 2017: Kubernetes from Dev to Prod
Subhas Dandapani
 
Ad

More from Michael Hofmann (12)

PDF
Service Specific AuthZ In The Cloud Infrastructure
Michael Hofmann
 
PDF
New Ways To Production - Stress-Free Evolution Of Your Cloud Applications
Michael Hofmann
 
PDF
The Easy Way to Secure Microservices
Michael Hofmann
 
PDF
Service Mesh vs. Frameworks: Where to put the resilience?
Michael Hofmann
 
PDF
Service Mesh vs. Frameworks: Where to put the resilience?
Michael Hofmann
 
PDF
Servicierung von Monolithen - Der Weg zu neuen Technologien bis hin zum Servi...
Michael Hofmann
 
PDF
Service Mesh mit Istio und MicroProfile - eine harmonische Kombination?
Michael Hofmann
 
PDF
Service Mesh - kilometer 30 in a microservice marathon
Michael Hofmann
 
PDF
Service Mesh - Kilometer 30 im Microservices-Marathon
Michael Hofmann
 
PDF
API-Economy bei Financial Services – Kein Stein bleibt auf dem anderen
Michael Hofmann
 
PPTX
Microprofile.io - Cloud Native mit Java EE
Michael Hofmann
 
PPTX
Microservices mit Java EE - am Beispiel von IBM Liberty
Michael Hofmann
 
Service Specific AuthZ In The Cloud Infrastructure
Michael Hofmann
 
New Ways To Production - Stress-Free Evolution Of Your Cloud Applications
Michael Hofmann
 
The Easy Way to Secure Microservices
Michael Hofmann
 
Service Mesh vs. Frameworks: Where to put the resilience?
Michael Hofmann
 
Service Mesh vs. Frameworks: Where to put the resilience?
Michael Hofmann
 
Servicierung von Monolithen - Der Weg zu neuen Technologien bis hin zum Servi...
Michael Hofmann
 
Service Mesh mit Istio und MicroProfile - eine harmonische Kombination?
Michael Hofmann
 
Service Mesh - kilometer 30 in a microservice marathon
Michael Hofmann
 
Service Mesh - Kilometer 30 im Microservices-Marathon
Michael Hofmann
 
API-Economy bei Financial Services – Kein Stein bleibt auf dem anderen
Michael Hofmann
 
Microprofile.io - Cloud Native mit Java EE
Michael Hofmann
 
Microservices mit Java EE - am Beispiel von IBM Liberty
Michael Hofmann
 
Ad

Recently uploaded (20)

PDF
MiniTool Partition Wizard 12.8 Crack License Key LATEST
hashhshs786
 
PPTX
Fundamentals_of_Microservices_Architecture.pptx
MuhammadUzair504018
 
DOCX
Import Data Form Excel to Tally Services
Tally xperts
 
PPTX
Equipment Management Software BIS Safety UK.pptx
BIS Safety Software
 
PPTX
Agentic Automation Journey Session 1/5: Context Grounding and Autopilot for E...
klpathrudu
 
PPTX
MailsDaddy Outlook OST to PST converter.pptx
abhishekdutt366
 
PPTX
Feb 2021 Cohesity first pitch presentation.pptx
enginsayin1
 
PDF
Capcut Pro Crack For PC Latest Version {Fully Unlocked} 2025
hashhshs786
 
PPTX
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pptx
Varsha Nayak
 
PDF
Executive Business Intelligence Dashboards
vandeslie24
 
PPTX
MiniTool Power Data Recovery Full Crack Latest 2025
muhammadgurbazkhan
 
PDF
Thread In Android-Mastering Concurrency for Responsive Apps.pdf
Nabin Dhakal
 
PDF
iTop VPN With Crack Lifetime Activation Key-CODE
utfefguu
 
PDF
vMix Pro 28.0.0.42 Download vMix Registration key Bundle
kulindacore
 
PDF
Build It, Buy It, or Already Got It? Make Smarter Martech Decisions
bbedford2
 
PPTX
A Complete Guide to Salesforce SMS Integrations Build Scalable Messaging With...
360 SMS APP
 
PDF
Streamline Contractor Lifecycle- TECH EHS Solution
TECH EHS Solution
 
PPTX
How Apagen Empowered an EPC Company with Engineering ERP Software
SatishKumar2651
 
PPTX
Comprehensive Guide: Shoviv Exchange to Office 365 Migration Tool 2025
Shoviv Software
 
PPTX
Writing Better Code - Helping Developers make Decisions.pptx
Lorraine Steyn
 
MiniTool Partition Wizard 12.8 Crack License Key LATEST
hashhshs786
 
Fundamentals_of_Microservices_Architecture.pptx
MuhammadUzair504018
 
Import Data Form Excel to Tally Services
Tally xperts
 
Equipment Management Software BIS Safety UK.pptx
BIS Safety Software
 
Agentic Automation Journey Session 1/5: Context Grounding and Autopilot for E...
klpathrudu
 
MailsDaddy Outlook OST to PST converter.pptx
abhishekdutt366
 
Feb 2021 Cohesity first pitch presentation.pptx
enginsayin1
 
Capcut Pro Crack For PC Latest Version {Fully Unlocked} 2025
hashhshs786
 
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pptx
Varsha Nayak
 
Executive Business Intelligence Dashboards
vandeslie24
 
MiniTool Power Data Recovery Full Crack Latest 2025
muhammadgurbazkhan
 
Thread In Android-Mastering Concurrency for Responsive Apps.pdf
Nabin Dhakal
 
iTop VPN With Crack Lifetime Activation Key-CODE
utfefguu
 
vMix Pro 28.0.0.42 Download vMix Registration key Bundle
kulindacore
 
Build It, Buy It, or Already Got It? Make Smarter Martech Decisions
bbedford2
 
A Complete Guide to Salesforce SMS Integrations Build Scalable Messaging With...
360 SMS APP
 
Streamline Contractor Lifecycle- TECH EHS Solution
TECH EHS Solution
 
How Apagen Empowered an EPC Company with Engineering ERP Software
SatishKumar2651
 
Comprehensive Guide: Shoviv Exchange to Office 365 Migration Tool 2025
Shoviv Software
 
Writing Better Code - Helping Developers make Decisions.pptx
Lorraine Steyn
 

Developer Experience Cloud Native - From Code Gen to Git Commit without a CI/CD Pipeline

  • 1. Developer Experience Cloud Native - From Code Gen to Git Commit without a CI/CD Pipeline Michael Hofmann https://hofmann-itconsulting.de
  • 2. Developer Experience Cloud Native generate/create code Docker image deploy to (local) K8S test and debug Git push
  • 3. Developer Experience Cloud Native New challenges ● Docker image ● K8S deployment ● K8S environment (DNS, env vars, volumes, …) Efficient roundtrip without tooling?
  • 4. Developer Experience Cloud Native Why should we develop in a cloud-native way? ● delivering and deploying ● new K8S environment brings new bugs ● dependencies to local system ● local system with different versions and behavior
  • 5. Generate/Create Code MicroProfile Starter ● Only Maven Spring Initalizr ● Maven ● Gradle
  • 6. Generate Docker Image Build image with Docker Daemon? ● Security ● Scalability Dockerfile or proprietary description? Maven/Gradle plugin or standalone tool? On build server or in K8S?
  • 7. Maven: docker-client (Spotify) docker-maven-plugin (Spotify) dockerfile-maven (Spotify) docker-maven-plugin (fabric8) jib-maven-plugin (Google) Generate Docker Image started with 10+ Maven plugins for Docker today: 2 still exist
  • 8. Generate Docker Image Gradle: gradle-docker (Palantir) jib-gradle-plugin (Google) gradle-docker-plugin (Benjamin Muschko)
  • 9. Generate Docker Image Standalone Tools (emerging): ● BuildKit (Docker) (next generation ‘docker build’) ● Kaniko (Google) ● Buildah (RedHat) ● Source-to-Image (RedHat) ● Makisu (Uber) ● ...
  • 10. Generate Docker Image Big topic on it’s own!
  • 11. Generate Code and Docker Image Demo
  • 12. Deploy to (local) K8S Local K8S ● Minikube ● Docker Desktop ● Minishift (OpenShift < 4.x) ● CodeReady Container (OpenShift 4.x) (since 19.10.2019)
  • 13. Deploy to (local) K8S same situation as Maven/Gradle plugins? Draft (Microsoft), Gitkube, Ksonnet, Metaparticle, Forge, ... But! New Kids on the Block! Skaffold, Helm, Kustomize, ...
  • 14. Deploy to (local) K8S Helm 3 (13.11.2019) (Microsoft, Google, Bitnami) “The package manager for Kubernetes” Now without Tiller! Manage K8S applications Create own Helm charts or use existing (Helm Hub https://hub.helm.sh) CNCF Survey 2018: Helm usage 68%
  • 15. Deploy to (local) K8S Interaction with K8S: A lot of shell commands necessary ‘kubectl’-ing (and a lot of ‘yaml’-ing) Simplify: bash completion (https://github.com/scop/bash-completion)
  • 16. Deploy to (local) K8S Demo
  • 17. Test and Redeploy simplified testing: Kubefwd (https://github.com/txn2/kubefwd) „Bulk port forwarding Kubernetes services for local development“
  • 19. Test and Redeploy simplified log analysis: Stern (https://github.com/wercker/stern) „Multi pod and container log tailing for Kubernetes“
  • 20. Test and Redeploy Redeploy: Same round trip as before or shorter? kubectl cp Precondition: Can container reload new files?
  • 21. Test and Redeploy Ksync (https://github.com/ksync/ksync) similar functionality as kubectl cp, but ● installs DaemonSet in your K8s cluster ● works bi-directional ● local watch process keeps local folder and pod folder in sync ● new pods will also be synced (scale --replicas=2)
  • 23. Debugging Remote Debugging with your IDE Squash (https://github.com/solo-io/squash) “Debug your microservice applications from your terminal or IDE while they run in Kubernetes” Debugging across multiple services also for Istio debugging IDE support so far: VS Code (IntelliJ and Eclipse)
  • 24. Debugging Telepresence Cloud Native Computing Foundation sandbox project
  • 25. Debugging Telepresence ● debugging a service mesh ● substitutes a two-way network proxy for your K8S pod ● proxies data from K8S environment (e.g., TCP connections, environment variables, volumes) to the local process ● local process has its networking transparently overridden so that DNS calls and TCP connections are routed through the proxy to K8S
  • 26. Debugging Service Application Pod Telepresence Pod Deployment Deployment K8S Telepresence Shell swap VolumeEnv Env Volume Local
  • 28. The Big Players Skaffold (Google) „continous build & deploy on code changes” basis for commercial product “Cloud Code“ daemon watches source workflow-config (skaffold.yaml) apiVersion: skaffold/v1 kind: Config build: artifacts: - image: gcr.io/k8s-skaffold/image custom: buildCommand: build.sh dependencies: paths: - . deploy: kubectl: manifests: - ./k8s/**
  • 29. The Big Players Kabanero (IBM) supports development, architecture and operations platform architect designs platform solution architect provides software stacks (PaaS) developer can use predefined stack IDE tools TM
  • 30. Final Thoughts steep learning curve (Docker, Kubernetes) new responsibility of a developer: deploy to Kubernetes you have to deal with it, especially in solving environment errors shown tools are easy to handle and make live of a developer easier selected tools should not interfere with each other
  • 31. Final Thoughts tools come and go; maybe you sit on the wrong horse biggest challenge: find the right tool for a special purpose there is no single golden bullet: but stay in sync with your CI/CD pipeline; maybe you can use the same tools (e.g. Helm, ...) as always: documentation could be better the big companies smell a deal ...