SlideShare a Scribd company logo
Make Your Data Work For You
Package & deploy
Microservices
Nico Meisenzahl
January 2019
@panagenda Consultant.
@DockerRosenheim founder.
Blogger, speaker & IBM Champion.
Loves K8s, Containers & automation. His desk is a
ping pong table.
Nico Meisenzahl
@nmeisenzahl
https://meisenzahl.org
nico@meisenzahl.org
https://panagenda.com
nico.meisenzahl@panagenda.com
Agenda
1. Build Docker Images with Kaniko
2. Compose & Helm
3. Future (Helm 3.0 & Cloud Native Application Bundle)
Everything starts with a Dockerfile
• Describes the Image
• Best practises
– choose the base image wisely
– use multi-stage builds
– combine commands into few
instructions as possible
– use curl/wget for non-persistent files
(installer, etc.)
– reduce waste
– know how caching works
4
Image build process
• “docker build” is the common way
• locally
– available with every Docker installation
→ we love it and it just works
• containerized
– mostly used in build pipelines
– Docker-in-Docker (DinD) is needed → Security issues!
• Docker daemon needs to be mounted
• privileged flag is needed
• not allowed in a K8s environment (hopefully)
→ could be better...
5
Kaniko can help
• Builds Images without privileges in a container
• developed by Google
• part of the Knative serverless stack
– Istio, Kaniko, Knative
• Docker Image: http://gcr.io/kaniko-project/executor
• More details: https://github.com/GoogleContainerTools/kaniko
6
Kaniko (Demo)
• can be used with
– “docker run”
– as a Pod definition (Kubernetes)
– in build pipelines
– ...
7
Running a microservice can’t be that hard...
docker run -d my-microservice
8
But, what if ...
• your application is based on various microservices?
• you would like to have a portable and easy deployment?
→ you will need a tool to package your application
9
Where Compose and Helm can help (Demo)
• can be used to define and run bundled multi-container Microservices
– portable deployments & updates
– versioning & rollbacks (Helm only)
– Repositories (Helm, docker-app)
• Compose can be used with
– pure Docker
– Swarm
– docker-app
• Helm is the defacto default package manager for Kubernetes
• more details
– https://helm.sh
– https://docs.docker.com/compose
– https://github.com/docker/app
10
Helm 3.0
• removal of Tiller
– Client-only
– based on RBAC, CRD
• embedded Lua engine
– optional and mixable
– more flexible
– work with objects not YAML
• Chart repo authentication & upload
– helm login
– helm push
• more details: https://www.youtube.com/watch?v=XUqNLhFWbl8
11
Helm 2 vs. 3 (Lua)
12
CNAB (Cloud Native Application Bundle)
• a spec for packaging distributed apps
• designed by Microsoft, Docker, bitnami & HashiCorp
• is not platform-specific: Containers, Functions, VMs, IaaS and PaaS
– Compose / Helm / Kubernetes
– Ansible / Terraform
– Azure , OpenStack on-premises, ….
• a CNAB is defined by a bundle.json and will be deployed by a invocation
image
13
CNAB (Cloud Native Application Bundle)
• CLIs supporting CNAB specs
– duffle by Microsoft
– docker-app by Docker
– ...
• CNABs can be pushed to Docker Hub (using docker-app)
• more details
– https://cnab.io
– https://github.com/deislabs/cnab-spec
– https://duffle.sh
– https://github.com/docker/app
– https://medium.com/01001101/cloud-native-application-bundle-a-spec-for-packagi
ng-distributed-apps-7f1a7e3fc6fe
14
Questions?
• Slides
– http://slideshare.net/nmeisenzahl
• Demos
– https://gitlab.com/nmeisenzahl/docker-meetup-package-deploy
15
Headquarters, Austria:
panagenda GmbH (Ltd.)
Schreyvogelgasse 3/10
AT 1010 Vienna
Phone: +43 1 89 012 89
Fax: +43 1 89 012 89-15
E-Mail: info@panagenda.com
Headquarters, Germany:
panagenda GmbH (Ltd.)
Lahnstraße 17
DE 64646 Heppenheim
Phone: +49 6252 67 939-00
Fax: +49 6252 67 939-16
E-Mail: info@panagenda.com
USA:
panagenda Inc.
60 State Street, Suite 700
MA 02109 Boston
Phone: +1 617 855 5961
Fax: +1 617 488 2292
E-Mail: info@panagenda.com
Germany:
panagenda Consulting GmbH (Ltd.)
Donnersbergstrasse 1
DE 64646 Heppenheim
Phone: +49 6252 67 939-86
Fax: +49 6252 67 939-16
E-Mail: info@panagenda.com
The Netherlands:
Trust Factory B.V.
11th Floor,
Koningin Julianaplein 10
NL 2595 AA The Hague
Phone: +31 70 80 801 96
E-Mail: info@trust-factory.com
© 2007-2015 panagenda
Make Your Data Work For You

More Related Content

PDF
How to Package & Deploy Microservices
PPTX
Azure container service docker-ha noi com
PDF
ContainerDayVietnam2016: Docker at scale with Mesos
PDF
ContainerDayVietnam2016: Dockerize a small business
PDF
ContainerDayVietnam2016: Containers with OpenStack
KEY
CloudFoundry@home
PPT
Docker and CloudStack
PDF
ContainerDayVietnam2016: Docker for JS Developer
How to Package & Deploy Microservices
Azure container service docker-ha noi com
ContainerDayVietnam2016: Docker at scale with Mesos
ContainerDayVietnam2016: Dockerize a small business
ContainerDayVietnam2016: Containers with OpenStack
CloudFoundry@home
Docker and CloudStack
ContainerDayVietnam2016: Docker for JS Developer

What's hot (20)

PDF
CI/CD with Kubernetes, Helm & Wercker (#madScalability)
PDF
Building a Docker Swarm cluster on ARM by Dieter Reuter and Stefan Scherer
PPTX
DockerCon SF 2015: Networking Breakout
PPT
Kubernetes on CloudStack with coreOS
PDF
DockerCon SF 2015: Orchestration for Sysadmins
PDF
Automated Deployment with Capistrano
PDF
Microsoft Azure Container Service - DockerCH
PDF
DockerCon 2015: Docker Engine Breakout Session
PPTX
Angular boilerplate generator
PDF
Production Ready Containers from IBM and Docker
PPTX
Continous Delivery to Kubernetes using Helm
PPTX
Setting up Kubernetes with tectonic
PPTX
Develop with docker 2014 aug
PDF
Development Swarm Cluster
PDF
Containerize Your Game Server for the Best Multiplayer Experience
PPTX
Hashicorp: Delivering the Tao of DevOps
PDF
Preparing your dockerised application for production deployment
PPTX
Docker for Ops: Docker Networking Deep Dive, Considerations and Troubleshooti...
PDF
DockerCon SF 2015: Getting Started w/ Docker
PDF
Testing strategies for Docker containers
CI/CD with Kubernetes, Helm & Wercker (#madScalability)
Building a Docker Swarm cluster on ARM by Dieter Reuter and Stefan Scherer
DockerCon SF 2015: Networking Breakout
Kubernetes on CloudStack with coreOS
DockerCon SF 2015: Orchestration for Sysadmins
Automated Deployment with Capistrano
Microsoft Azure Container Service - DockerCH
DockerCon 2015: Docker Engine Breakout Session
Angular boilerplate generator
Production Ready Containers from IBM and Docker
Continous Delivery to Kubernetes using Helm
Setting up Kubernetes with tectonic
Develop with docker 2014 aug
Development Swarm Cluster
Containerize Your Game Server for the Best Multiplayer Experience
Hashicorp: Delivering the Tao of DevOps
Preparing your dockerised application for production deployment
Docker for Ops: Docker Networking Deep Dive, Considerations and Troubleshooti...
DockerCon SF 2015: Getting Started w/ Docker
Testing strategies for Docker containers
Ad

Similar to Docker Meetup Rosenheim: Package & deploy Microservices (20)

PDF
How to Package & Deploy Microservices
PDF
Dockercon 2018 EU Updates
PDF
CD in kubernetes using helm and ksonnet. Stas Kolenkin
PPTX
Leveraging Helm to manage Deployments on Kubernetes
PDF
DockerCon EU 2018 Announcements & Updates
PDF
The App Developer's Kubernetes Toolbox
PPTX
Deploying Windows Containers with Draft, Helm and Kubernetes
PDF
A DevOps guide to Kubernetes
PPTX
Building CI/CD Pipelines with Jenkins and Kubernetes
PDF
Kubernetes Application Deployment with Helm - A beginner Guide!
PDF
Microservices are ‘easy’ dependencies are hard
PDF
Slide DevSecOps Microservices
PPTX
Csa container-security-in-aws-dw
PDF
Buildpacks: the other way to build container images
PPTX
Introduction to docker
PDF
Using Docker Developing and Deploying Software with Containers 1st Edition Ad...
PDF
Kubernetes Operability Tooling (LEAP 2019)
PDF
CI/CD Across Multiple Environments
PPTX
Continuous Deployment using Kubernetes
PDF
A curtain-raiser to the container world Docker & Kubernetes
How to Package & Deploy Microservices
Dockercon 2018 EU Updates
CD in kubernetes using helm and ksonnet. Stas Kolenkin
Leveraging Helm to manage Deployments on Kubernetes
DockerCon EU 2018 Announcements & Updates
The App Developer's Kubernetes Toolbox
Deploying Windows Containers with Draft, Helm and Kubernetes
A DevOps guide to Kubernetes
Building CI/CD Pipelines with Jenkins and Kubernetes
Kubernetes Application Deployment with Helm - A beginner Guide!
Microservices are ‘easy’ dependencies are hard
Slide DevSecOps Microservices
Csa container-security-in-aws-dw
Buildpacks: the other way to build container images
Introduction to docker
Using Docker Developing and Deploying Software with Containers 1st Edition Ad...
Kubernetes Operability Tooling (LEAP 2019)
CI/CD Across Multiple Environments
Continuous Deployment using Kubernetes
A curtain-raiser to the container world Docker & Kubernetes
Ad

More from Nico Meisenzahl (20)

PDF
Cloud-Native & Sustainability: How and Why to Build Sustainable Workloads
PDF
Container Day Security: How to Prevent Your Kubernetes Cluster From Being Hacked
PDF
Festive Tech Calendar: Festive time with AKS networking
PDF
ContainerConf 2022: Hijack Kubernetes
PDF
ContainerConf 2022: Kubernetes is awesome - but...
PDF
KCD Munich 2022: How to Prevent Your Kubernetes Cluster From Being Hacked
PDF
KCD Munich 2022: Hijack a Kubernetes Cluster - a Walkthrough
PDF
Cloud Love Conference: Kubernetes is awesome, but...
PDF
How to Prevent Your Kubernetes Cluster From Being Hacked
PDF
Container Days: Hijack a Kubernetes Cluster - a Walkthrough
PPTX
Hijack a Kubernetes Cluster - a Walkthrough
PDF
Azure Zürich User Group: Azure Kubernetes Service – more than just a managed ...
PDF
Hijack a Kubernetes Cluster - a Walkthrough
PDF
azdevcom - Hijack a Kubernetes Cluster
PDF
Continuous Lifecycle: Enhance Your Compliance and Governance With Policy-Base...
PDF
Continuous Lifecycle: Hijack Kubernetes
PDF
Hijack a Kubernetes Cluster - a Walkthrough
PDF
GitLab Commit: Enhance your Compliance with Policy-Based CI/CD
PDF
Azure Meetup Hamburg: Production-Ready Terraform Deployments on Azure
PDF
Microsoft DevOps Forum 2021 – DevOps & Security
Cloud-Native & Sustainability: How and Why to Build Sustainable Workloads
Container Day Security: How to Prevent Your Kubernetes Cluster From Being Hacked
Festive Tech Calendar: Festive time with AKS networking
ContainerConf 2022: Hijack Kubernetes
ContainerConf 2022: Kubernetes is awesome - but...
KCD Munich 2022: How to Prevent Your Kubernetes Cluster From Being Hacked
KCD Munich 2022: Hijack a Kubernetes Cluster - a Walkthrough
Cloud Love Conference: Kubernetes is awesome, but...
How to Prevent Your Kubernetes Cluster From Being Hacked
Container Days: Hijack a Kubernetes Cluster - a Walkthrough
Hijack a Kubernetes Cluster - a Walkthrough
Azure Zürich User Group: Azure Kubernetes Service – more than just a managed ...
Hijack a Kubernetes Cluster - a Walkthrough
azdevcom - Hijack a Kubernetes Cluster
Continuous Lifecycle: Enhance Your Compliance and Governance With Policy-Base...
Continuous Lifecycle: Hijack Kubernetes
Hijack a Kubernetes Cluster - a Walkthrough
GitLab Commit: Enhance your Compliance with Policy-Based CI/CD
Azure Meetup Hamburg: Production-Ready Terraform Deployments on Azure
Microsoft DevOps Forum 2021 – DevOps & Security

Recently uploaded (20)

PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
Cloud computing and distributed systems.
PDF
KodekX | Application Modernization Development
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Machine learning based COVID-19 study performance prediction
PDF
Approach and Philosophy of On baking technology
PDF
Empathic Computing: Creating Shared Understanding
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Electronic commerce courselecture one. Pdf
Per capita expenditure prediction using model stacking based on satellite ima...
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Cloud computing and distributed systems.
KodekX | Application Modernization Development
Unlocking AI with Model Context Protocol (MCP)
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
“AI and Expert System Decision Support & Business Intelligence Systems”
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Building Integrated photovoltaic BIPV_UPV.pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
MYSQL Presentation for SQL database connectivity
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
20250228 LYD VKU AI Blended-Learning.pptx
Machine learning based COVID-19 study performance prediction
Approach and Philosophy of On baking technology
Empathic Computing: Creating Shared Understanding
Review of recent advances in non-invasive hemoglobin estimation
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Electronic commerce courselecture one. Pdf

Docker Meetup Rosenheim: Package & deploy Microservices

  • 1. Make Your Data Work For You Package & deploy Microservices Nico Meisenzahl January 2019
  • 2. @panagenda Consultant. @DockerRosenheim founder. Blogger, speaker & IBM Champion. Loves K8s, Containers & automation. His desk is a ping pong table. Nico Meisenzahl @nmeisenzahl https://meisenzahl.org nico@meisenzahl.org https://panagenda.com nico.meisenzahl@panagenda.com
  • 3. Agenda 1. Build Docker Images with Kaniko 2. Compose & Helm 3. Future (Helm 3.0 & Cloud Native Application Bundle)
  • 4. Everything starts with a Dockerfile • Describes the Image • Best practises – choose the base image wisely – use multi-stage builds – combine commands into few instructions as possible – use curl/wget for non-persistent files (installer, etc.) – reduce waste – know how caching works 4
  • 5. Image build process • “docker build” is the common way • locally – available with every Docker installation → we love it and it just works • containerized – mostly used in build pipelines – Docker-in-Docker (DinD) is needed → Security issues! • Docker daemon needs to be mounted • privileged flag is needed • not allowed in a K8s environment (hopefully) → could be better... 5
  • 6. Kaniko can help • Builds Images without privileges in a container • developed by Google • part of the Knative serverless stack – Istio, Kaniko, Knative • Docker Image: http://gcr.io/kaniko-project/executor • More details: https://github.com/GoogleContainerTools/kaniko 6
  • 7. Kaniko (Demo) • can be used with – “docker run” – as a Pod definition (Kubernetes) – in build pipelines – ... 7
  • 8. Running a microservice can’t be that hard... docker run -d my-microservice 8
  • 9. But, what if ... • your application is based on various microservices? • you would like to have a portable and easy deployment? → you will need a tool to package your application 9
  • 10. Where Compose and Helm can help (Demo) • can be used to define and run bundled multi-container Microservices – portable deployments & updates – versioning & rollbacks (Helm only) – Repositories (Helm, docker-app) • Compose can be used with – pure Docker – Swarm – docker-app • Helm is the defacto default package manager for Kubernetes • more details – https://helm.sh – https://docs.docker.com/compose – https://github.com/docker/app 10
  • 11. Helm 3.0 • removal of Tiller – Client-only – based on RBAC, CRD • embedded Lua engine – optional and mixable – more flexible – work with objects not YAML • Chart repo authentication & upload – helm login – helm push • more details: https://www.youtube.com/watch?v=XUqNLhFWbl8 11
  • 12. Helm 2 vs. 3 (Lua) 12
  • 13. CNAB (Cloud Native Application Bundle) • a spec for packaging distributed apps • designed by Microsoft, Docker, bitnami & HashiCorp • is not platform-specific: Containers, Functions, VMs, IaaS and PaaS – Compose / Helm / Kubernetes – Ansible / Terraform – Azure , OpenStack on-premises, …. • a CNAB is defined by a bundle.json and will be deployed by a invocation image 13
  • 14. CNAB (Cloud Native Application Bundle) • CLIs supporting CNAB specs – duffle by Microsoft – docker-app by Docker – ... • CNABs can be pushed to Docker Hub (using docker-app) • more details – https://cnab.io – https://github.com/deislabs/cnab-spec – https://duffle.sh – https://github.com/docker/app – https://medium.com/01001101/cloud-native-application-bundle-a-spec-for-packagi ng-distributed-apps-7f1a7e3fc6fe 14
  • 15. Questions? • Slides – http://slideshare.net/nmeisenzahl • Demos – https://gitlab.com/nmeisenzahl/docker-meetup-package-deploy 15
  • 16. Headquarters, Austria: panagenda GmbH (Ltd.) Schreyvogelgasse 3/10 AT 1010 Vienna Phone: +43 1 89 012 89 Fax: +43 1 89 012 89-15 E-Mail: info@panagenda.com Headquarters, Germany: panagenda GmbH (Ltd.) Lahnstraße 17 DE 64646 Heppenheim Phone: +49 6252 67 939-00 Fax: +49 6252 67 939-16 E-Mail: info@panagenda.com USA: panagenda Inc. 60 State Street, Suite 700 MA 02109 Boston Phone: +1 617 855 5961 Fax: +1 617 488 2292 E-Mail: info@panagenda.com Germany: panagenda Consulting GmbH (Ltd.) Donnersbergstrasse 1 DE 64646 Heppenheim Phone: +49 6252 67 939-86 Fax: +49 6252 67 939-16 E-Mail: info@panagenda.com The Netherlands: Trust Factory B.V. 11th Floor, Koningin Julianaplein 10 NL 2595 AA The Hague Phone: +31 70 80 801 96 E-Mail: info@trust-factory.com © 2007-2015 panagenda Make Your Data Work For You