There are certain important considerations when implementing a Docker based environment, especially when the environment has to be setup on-prem, and has to adhere to existing ITIL processes. Following are some of the considerations that are often encountered when implementing a Docker based environment.
- Docker Host – Whether to run the containers on baremetal or on virtual machines. How to manage the lifecycle of hosts?
- Docker Storage for Containers – Which one to choose from OverlayFS, AUFS, Devicemapper etc.
- Docker Storage for Volumes – NFS, SAN, GlusterFS, Ceph etc
- Host and Container Networking – Whether to use overlay or not.
- Docker Orchestration – Functionalities like user authentication & authorization, exposing of services, resource management, HA, backup etc are specific to orchestration software.
- Docker Image Build & Distribution – What base image to be used, handling multi-architecture builds, scanning and certification of images, whether to use public registry or private registry are important decision points.
The choices will ofcourse vary and will be dictated by factors specific to each implementation.
I was fortunate to share my learnings w.r.to Kubernetes in the recently concluded Bangalore Container Conference 2017 and had some great discussions with folks having similar experiences in production Docker/Kubernetes deployments. You can find the full slides of the talk in the following link – http://www.slideshare.net/CodeOps/on-prem-container-cloud-lessons-learned
Please share your experiences on production deployments of Docker environments in the comments section. Would love to learn from your experiences.