and Integration • CloudBees Jenkins Consulting About The Container Enablement Company • Continuous Integration, Delivery, and Deployment • Application Modernization • Cloud Migration
1979 2008 2013 Chroot Filesystem isolation FreeBSD Jails Early container technology Linux Namespaces Process isolation Solaris Zones Similar to jails; snapshots, cloning Google Process Containers Process aggregation for resource management Linux Control Groups Process containers renamed and merged into kernel 2.6.24 LXC Linux Containers Userland tooling DotCloud Docker Inc. Introduction of Docker Open Source Project
applications in isolation • Isolation includes namespacing pid, network, users, restricting root, cpu and memory limits, and providing separate filesystem • Many of the technologies are old, but haven't been packaged in an easy to use toolset before Docker 6 “Docker containers wrap up a piece of software in a complete filesystem that contains everything it needs to run: code, runtime, system tools, system libraries – anything you can install on a server.” (https://www.docker.com/what-docker)
- binaries and libraries - entire guest operating system Containers: - Include application and all dependencies - Share kernel with other containers - Run as an isolated process not tied to any specific infrastructure Virtual Machines Containers 7
Host Virtualization Containers are used in partnership with current IaaS stacks. Docker and other container platforms still need a host. Container: Application Virtualization Take advantage of the streamlined process for VM based IaaS and gain efficiencies in: • Higher density workloads • Scale • Portability • Security
containers go back to a clean image state • Running containers write to an isolated space Immutable • Data is stored outside of the container • Separates data from your application
Dev Test Prod. Painful and slow software delivery. Solution: Developer Self-Service. Automate and consolidate with Docker. Docker packages applications and their dependencies into containers to allow for easy transport from a developers laptop to any target test or prod environment. This accelerates the software lifecycle, increases reliability, and reduces job time. - Begin with a “Trusted Known State” - Control and Approve Content - Track Promotion Cryptographically Developer Version control Sysadmin QA / QE
and difficult to change/bug fix/upgrade Hard to scale, obsolete APIs, costly and difficult to support and maintain. Solution: Microservices architecture. Technology diversity. Modular boundaries. Mulit-tier applications can be deployed in parts and each tier is an independent container. Each of the containers can be used for a single service. Legacy applications can be migrated to the cloud through either a “lift & shift” or “refactoring” methodology, or potentially a combination.
the filesystem, environment variables, and default entry points. • Containers are an instance of an image. They isolate the application from the host, and even from other containers. 15
• Containers add a single RW layer to isolate changes • Layers are cached for fast builds • Layers are named with a hash inside the engine 17 Docker Images
developer • OS native clients using internally available virtualization: xhyve and Hyper-V • Full Docker CLI from native OS shell 18 Red Hat Container Dev Kit • Pre-built container development environment • Choice of virtualization platforms: Virtualbox, Hyper-V, Linux KVM • Eclipse and docker CLI integration
base on your image • Options for: Volumes: link external data into the container for persistence Networking: bridged, overlay, access with exposed ports
O/S duplication… Lengthy boot and replication times. Hardware, Storage, and Hypervisor costs $$. Solution: Docker’s containers as a service (CaaS) and orchestration platform. Policy driven architecture. Deployment flexibility (On-Premise, Cloud, Hybrid). Docker containers share resources with the host OS, which makes them significantly more efficient than VMs. Containers can be started and stopped in a fraction of a second. They are lightweight, fast, and maximize consolidation. Swisscom reduced their VM footprint from 400 to 20 for a database as a service offering, driving tremendous cost savings.