SlideShare a Scribd company logo
Make Your Data Work For You
How to Package &
Deploy Microservices
Nico Meisenzahl
February 2019
Speakers
Daniel Klas
@panagenda
Inbound Marketing Coordinator
panagenda
Nico Meisenzahl
@nmeisenzahl
Consultant
panagenda
Join the conversation using #DevOps & @panagenda
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
Docker Meetup Rosenheim: Package & deploy Microservices
PPTX
Azure container service docker-ha noi com
PDF
On Prem Container Cloud - Lessons Learned
PDF
ContainerDayVietnam2016: Dockerize a small business
PDF
ContainerDayVietnam2016: Docker at scale with Mesos
PPTX
DevOps, Microservices, and Azure Container Service
PPTX
Azure Container Service
PPTX
How (and why) to roll your own Docker SaaS
Docker Meetup Rosenheim: Package & deploy Microservices
Azure container service docker-ha noi com
On Prem Container Cloud - Lessons Learned
ContainerDayVietnam2016: Dockerize a small business
ContainerDayVietnam2016: Docker at scale with Mesos
DevOps, Microservices, and Azure Container Service
Azure Container Service
How (and why) to roll your own Docker SaaS

What's hot (20)

PDF
Production Ready Containers from IBM and Docker
PPTX
Docker- Ha Noi - Year end 2015 party
PDF
ContainerDayVietnam2016: Containers with OpenStack
PPTX
Kube what? for NodeJs developers
PPT
Sebastien goasguen cloud stack and docker
PDF
KUBERNETES AS A FRAMEWORK FOR WRITING DEVOPS & MICROSERVICES TOOLING
KEY
20120317 CloudFoundry #pyfes
PDF
DockerDay2015: Docker Security
PPTX
Azure Container Services
PPTX
Koop: Using 3rd Party Services in ArcGIS
PPTX
GIDS 2019: Developing Apps with Containers, Functions and Cloud Services
PDF
ContainerDayVietnam2016: Docker for JS Developer
PDF
Introduction to containers a practical session using core os and docker
PDF
Building a Docker Swarm cluster on ARM by Dieter Reuter and Stefan Scherer
PDF
Docker on Docker
PDF
Proof of Concept: Serverless with Swarm by Nirmal Mehta, Booz Allen Hamilton
PDF
Continuous Delivery to Kubernetes with Jenkins and Helm
PPTX
Boston Cloud Meetup - IBM Containers
PPTX
DockerCon SF 2015: Networking Breakout
PDF
Building Cloud-Native Applications with Kubernetes, Helm and Kubeless
Production Ready Containers from IBM and Docker
Docker- Ha Noi - Year end 2015 party
ContainerDayVietnam2016: Containers with OpenStack
Kube what? for NodeJs developers
Sebastien goasguen cloud stack and docker
KUBERNETES AS A FRAMEWORK FOR WRITING DEVOPS & MICROSERVICES TOOLING
20120317 CloudFoundry #pyfes
DockerDay2015: Docker Security
Azure Container Services
Koop: Using 3rd Party Services in ArcGIS
GIDS 2019: Developing Apps with Containers, Functions and Cloud Services
ContainerDayVietnam2016: Docker for JS Developer
Introduction to containers a practical session using core os and docker
Building a Docker Swarm cluster on ARM by Dieter Reuter and Stefan Scherer
Docker on Docker
Proof of Concept: Serverless with Swarm by Nirmal Mehta, Booz Allen Hamilton
Continuous Delivery to Kubernetes with Jenkins and Helm
Boston Cloud Meetup - IBM Containers
DockerCon SF 2015: Networking Breakout
Building Cloud-Native Applications with Kubernetes, Helm and Kubeless
Ad

Similar to How to Package & Deploy Microservices (20)

PDF
Containers docker-docker hub-azureacr-azure aci
PDF
CD in kubernetes using helm and ksonnet. Stas Kolenkin
PDF
Docker + jenkins in the enterprise (3)
PDF
Docker at MoneyBird
PDF
Docker from A to Z, including Swarm and OCCS
PPTX
Docker Indy Meetup - An Opinionated View of Building Docker Images and Pipelines
PDF
Rails Applications with Docker
PDF
Docker in the Oracle Universe / WebLogic 12c / OFM 12c
PPTX
Cloud native buildpacks-cncf
PDF
Continuous Integration with Docker on AWS
PPTX
.docker : How to deploy Digital Experience in a container, drinking a cup of ...
PPTX
docker : how to deploy Digital Experience in a container drinking a cup of co...
PPTX
.docker : how to deploy Digital Experience in a container drinking a cup of c...
PPTX
Dockerize the World
PPTX
Accelerate your development with Docker
PDF
Accelerate your software development with Docker
PPTX
Docker Overview
PDF
Securing Containers From Day One | null Ahmedabad Meetup
PDF
Securing Containers From Day One | null Ahmedabad Meetup
PDF
Containers docker-docker hub-azureacr-azure aci
CD in kubernetes using helm and ksonnet. Stas Kolenkin
Docker + jenkins in the enterprise (3)
Docker at MoneyBird
Docker from A to Z, including Swarm and OCCS
Docker Indy Meetup - An Opinionated View of Building Docker Images and Pipelines
Rails Applications with Docker
Docker in the Oracle Universe / WebLogic 12c / OFM 12c
Cloud native buildpacks-cncf
Continuous Integration with Docker on AWS
.docker : How to deploy Digital Experience in a container, drinking a cup of ...
docker : how to deploy Digital Experience in a container drinking a cup of co...
.docker : how to deploy Digital Experience in a container drinking a cup of c...
Dockerize the World
Accelerate your development with Docker
Accelerate your software development with Docker
Docker Overview
Securing Containers From Day One | null Ahmedabad Meetup
Securing Containers From Day One | null Ahmedabad Meetup
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)

PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Encapsulation theory and applications.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Approach and Philosophy of On baking technology
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
Cloud computing and distributed systems.
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
cuic standard and advanced reporting.pdf
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
KodekX | Application Modernization Development
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Encapsulation theory and applications.pdf
Unlocking AI with Model Context Protocol (MCP)
Approach and Philosophy of On baking technology
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Cloud computing and distributed systems.
Review of recent advances in non-invasive hemoglobin estimation
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm
Network Security Unit 5.pdf for BCA BBA.
cuic standard and advanced reporting.pdf
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Building Integrated photovoltaic BIPV_UPV.pdf
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Digital-Transformation-Roadmap-for-Companies.pptx
KodekX | Application Modernization Development
Understanding_Digital_Forensics_Presentation.pptx
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
20250228 LYD VKU AI Blended-Learning.pptx

How to Package & Deploy Microservices

  • 1. Make Your Data Work For You How to Package & Deploy Microservices Nico Meisenzahl February 2019
  • 2. Speakers Daniel Klas @panagenda Inbound Marketing Coordinator panagenda Nico Meisenzahl @nmeisenzahl Consultant panagenda Join the conversation using #DevOps & @panagenda
  • 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