Developer Workflow with
Docker
From Development to Production
Disclaimer
I am not trying to create a generalized workflow for all application developers. The
idea is to give an overview of available solutions.
$ whoami
● Lalatendu Mohanty
● @lalatenduM on Twitter.
● lalatenduM on Freenode.
● Homepage/Blogs : lalatendu.org
● Working for Red Hat as a software engineer.
Things I am trying to cover in this talk
● Opinionated workflow for Kubernetes and Docker Compose/Swarm.
● As I have just 30 minutes for the presentation, I will only demo one project
from each Kubernetes and Docker Compose/Swarm ecosystem.
Note: Pivotal Cloud Foundry is absent in this the talk as they do not directly use Kubernetes or Docker
Compose/Swarm.
Docker Compose Ecosystem
● Docker Toolbox (For Non-Linux/GNU OS)
○ Docker Compose
○ Docker Swarm
● Linux/GNU distributions have native support.
● Managing Production deployments.
○ Docker Cloud
○ Rancher 1.0
Note : Due to lack to time I am going to talk about Docker Cloud in this presentation.
Docker Cloud
Docker Cloud Salient Features
● Unified Interface for managing containers on public cloud and privately hosted
machines
● Integration with Docker Compose and Docker Swarm.
● Integration with Docker Hub (public and private repositories)
● Security scanning in Docker Cloud
Docker Cloud Live Demo
Kubernetes
● Automating deployment, scaling, and management of containerized
applications.
● Various ways to set up local development environment e.g. minikube,
kmachine, Red Hat CDK.
Why PaaS?
● Complete lifecycle management of application.
● Developers can deploy application without help from operation team.
● Stable and transparent developer workflow.
● Supports the idea of continuous deployment (DevOps).
Cloud Native Paas Based On Kubernetes
● Deis
○ Deis builds upon Docker and CoreOS to provide a lightweight Paas.
● OpenShift
○ Uses Docker and Kubernetes and builds on top of it.
● Kel
All of the above Paas solutions are open source. Both Deis and OpenShift
supports both private and public Clouds.
● Rancher 1.0 also have a nice interface and tooling to deploy containers on a Kubernetes cluster.
● There are Kubernetes support in Public clouds too.
OpenShift
● Local development environment through ADB/CDK
○ ADB : Atomic Developer Bundle.
○ CDK: Container Development Kit.
● OpenShift Online.
● OpenShift Origin.
● OpenShift Dedicated.
OpenShift
● Automates application builds, deployments, scaling, health management and
more.
● Developers have the choice and the ability to run multiple languages,
frameworks, and databases on the same platform.
● It is a self service platform for application developers.
● Runs on top of physical or virtual, public or private cloud, and even hybrid
cloud infrastructure.
● OpenShift dedicated for deploying/running it on public cloud e.g. AWS and
Google Compute Engine.
● Suited for running micro-services kind of applications.
OpenShift Salient Features
● Uses Kubernetes orchestration, management and Docker as the container
technology.
● Automated image builds and promotion.
● Deployments integrated with builds and CI.
● Source to image build process.
● Integrated networking (SDN, DNS, routing) for container networking.
● Fully integrated Docker registry.
● Integrate with Docker Hub and other 3rd party enterprises registries.
● Support for persistent volumes with various cloud storage solutions.
● Integrated enterprise features e.g authentication (LDAP etc), quota etc.
OpenShift Architecture
OpenShift Demo On CDK
Red Hat Container Development Kit 2.0
● Development environment same as the production environment.
● Easiest way to setup OpenShift.
○ One command to set up/destroy i.e. “vagrant up” roy" and “vagrant destroy”
○ There are templates of sample applications.
● Quickly get single node Kubernetes setup or Docker run time Windows, OS X,
Linux/GNU.
● Overview: http://developers.redhat.com/products/cdk/overview/
● The upstream project of CDK is called Atomic Developer Bundle.
How to get CDK?
● Sign up for developer.redhat.com.
● Follow: http://developers.redhat.com/products/cdk/get-started/
Atomic Developer Bundle
● Upstream community project of Red Hat Container Development Kit.
● Helps to create developer environment for Docker, OpenShift Origin,
Kubernetes, Mesos Marathon.
● Github Url: https://github.com/projectatomic/adb-atomic-developer-bundle.
Questions?
References
● http://blog.kubernetes.io/2015/11/Kubernetes-as-Foundation-for-Cloud-
Native-PaaS.html
● https://www.openshift.com/enterprise/features.html
● https://www.youtube.com/watch?v=wjWgVApNbQA
● http://developers.redhat.com/products/cdk/overview/

Developer workflow with docker

  • 1.
    Developer Workflow with Docker FromDevelopment to Production
  • 2.
    Disclaimer I am nottrying to create a generalized workflow for all application developers. The idea is to give an overview of available solutions.
  • 3.
    $ whoami ● LalatenduMohanty ● @lalatenduM on Twitter. ● lalatenduM on Freenode. ● Homepage/Blogs : lalatendu.org ● Working for Red Hat as a software engineer.
  • 4.
    Things I amtrying to cover in this talk ● Opinionated workflow for Kubernetes and Docker Compose/Swarm. ● As I have just 30 minutes for the presentation, I will only demo one project from each Kubernetes and Docker Compose/Swarm ecosystem. Note: Pivotal Cloud Foundry is absent in this the talk as they do not directly use Kubernetes or Docker Compose/Swarm.
  • 5.
    Docker Compose Ecosystem ●Docker Toolbox (For Non-Linux/GNU OS) ○ Docker Compose ○ Docker Swarm ● Linux/GNU distributions have native support. ● Managing Production deployments. ○ Docker Cloud ○ Rancher 1.0 Note : Due to lack to time I am going to talk about Docker Cloud in this presentation.
  • 6.
  • 7.
    Docker Cloud SalientFeatures ● Unified Interface for managing containers on public cloud and privately hosted machines ● Integration with Docker Compose and Docker Swarm. ● Integration with Docker Hub (public and private repositories) ● Security scanning in Docker Cloud
  • 8.
  • 9.
    Kubernetes ● Automating deployment,scaling, and management of containerized applications. ● Various ways to set up local development environment e.g. minikube, kmachine, Red Hat CDK.
  • 10.
    Why PaaS? ● Completelifecycle management of application. ● Developers can deploy application without help from operation team. ● Stable and transparent developer workflow. ● Supports the idea of continuous deployment (DevOps).
  • 11.
    Cloud Native PaasBased On Kubernetes ● Deis ○ Deis builds upon Docker and CoreOS to provide a lightweight Paas. ● OpenShift ○ Uses Docker and Kubernetes and builds on top of it. ● Kel All of the above Paas solutions are open source. Both Deis and OpenShift supports both private and public Clouds. ● Rancher 1.0 also have a nice interface and tooling to deploy containers on a Kubernetes cluster. ● There are Kubernetes support in Public clouds too.
  • 12.
    OpenShift ● Local developmentenvironment through ADB/CDK ○ ADB : Atomic Developer Bundle. ○ CDK: Container Development Kit. ● OpenShift Online. ● OpenShift Origin. ● OpenShift Dedicated.
  • 13.
    OpenShift ● Automates applicationbuilds, deployments, scaling, health management and more. ● Developers have the choice and the ability to run multiple languages, frameworks, and databases on the same platform. ● It is a self service platform for application developers. ● Runs on top of physical or virtual, public or private cloud, and even hybrid cloud infrastructure. ● OpenShift dedicated for deploying/running it on public cloud e.g. AWS and Google Compute Engine. ● Suited for running micro-services kind of applications.
  • 14.
    OpenShift Salient Features ●Uses Kubernetes orchestration, management and Docker as the container technology. ● Automated image builds and promotion. ● Deployments integrated with builds and CI. ● Source to image build process. ● Integrated networking (SDN, DNS, routing) for container networking. ● Fully integrated Docker registry. ● Integrate with Docker Hub and other 3rd party enterprises registries. ● Support for persistent volumes with various cloud storage solutions. ● Integrated enterprise features e.g authentication (LDAP etc), quota etc.
  • 15.
  • 16.
  • 17.
    Red Hat ContainerDevelopment Kit 2.0 ● Development environment same as the production environment. ● Easiest way to setup OpenShift. ○ One command to set up/destroy i.e. “vagrant up” roy" and “vagrant destroy” ○ There are templates of sample applications. ● Quickly get single node Kubernetes setup or Docker run time Windows, OS X, Linux/GNU. ● Overview: http://developers.redhat.com/products/cdk/overview/ ● The upstream project of CDK is called Atomic Developer Bundle.
  • 18.
    How to getCDK? ● Sign up for developer.redhat.com. ● Follow: http://developers.redhat.com/products/cdk/get-started/
  • 19.
    Atomic Developer Bundle ●Upstream community project of Red Hat Container Development Kit. ● Helps to create developer environment for Docker, OpenShift Origin, Kubernetes, Mesos Marathon. ● Github Url: https://github.com/projectatomic/adb-atomic-developer-bundle.
  • 20.
  • 21.