Developer Workflow with
From Development to Production
I am not trying to create a generalized workflow for all application developers. The
idea is to give an overview of available solutions.
● 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
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 Salient Features
● Unified Interface for managing containers on public cloud and privately hosted
● Integration with Docker Compose and Docker Swarm.
● Integration with Docker Hub (public and private repositories)
● Security scanning in Docker Cloud
● Automating deployment, scaling, and management of containerized
● Various ways to set up local development environment e.g. minikube,
kmachine, Red Hat CDK.
● 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 builds upon Docker and CoreOS to provide a lightweight Paas.
○ Uses Docker and Kubernetes and builds on top of it.
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.
● Local development environment through ADB/CDK
○ ADB : Atomic Developer Bundle.
○ CDK: Container Development Kit.
● OpenShift Online.
● OpenShift Origin.
● OpenShift Dedicated.
● Automates application builds, deployments, scaling, health management and
● 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
● 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
● 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.
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,
● 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.