3. Outline
â What is DevOps?
â What is Docker?
â Containers vs VM
â Advantages of Docker
â Concepts
â General Guidelines
â Honourable Mention
â Resources
â QA
â DEMO
4. What is DevOps?
â A set of practices that combines software development (Dev) and IT (Ops) to
shorten the systems development life cycle while delivering features, fixes,
and updates frequently.
â Combining the right tools and culture to innovate rapidly
â DevOps is a culture
â Agile principles
â Error tolerance
â Post mortems
â You canât buy DevOps
5. What is Docker?
â Containers
â Decouple applications (and their environments) from operating system
â Virtualizes user space
â More lightweight and portable compared to HyperVisor based virtualization
â Go to option for microservice architecture
â Ephemeral storage by default*
â Docker
â Development tool and runtime environment for containers
â Released March 13, 2013
â Runs on Linux, MacOS and Windows
â Alternatives: lxc, rkt, containerd*
7. Advantages of Docker
â Shorten development time
â Portable
â Standardization
â Minimal resource overhead
â Isolation
â MicroService architecture
8. Docker Concepts
â Dockerfile
â Set of instructions or specifications that define the
structure of a container
â Image
â Read-only templates
â Static specification of what a container should be at
runtime
â Registry
â Storage and distribution of images
â Can be private
â Local, DockerHub, Quay, AWS ECR, Red Hat
Container Catalog etc
Twistlock
9. General Guidelines
â Follow the Twelve-Factor App guidelines
â Keep images as small as possible
â Databases
â Be careful. Especially in production
â Caches - Memcache, Redis
â Security
â Use trusted images from trusted sources
â Code defensively
â Donât run as root
10. Honourable Mention: Kubernetes (k8s)
â Orchestration engine
â Initial release: 7 June 2014
â Built by Google, mid-2014
â Handed over to CNCF
â Cluster
â Control
â Data
â Workers
â Competition
â Docker Swarm
â Mesosphere
â Cattle (Rancher)
â Portainer*
â k3s
Docker needs little resources
Isolated application environments including networks
Imageception*
12 Factor Guidelines:
Store configurations in env vars
Keep environments as similar as possible
Can be disposed easily
Although there are projects like KubeDB, be careful when relying on k8s.
Use k8s for custom clustering (i.e. Citus - PostgreSQL)
Founders: Joe Beda, Brendan Burns and Craig McLuckie
K8s - manage, deploy, monitor, scale containers
Cluster is resource intensive
K3s - strips out unnecessary items