The Definitive Guide To Docker Containers



Similar documents
Modern App Architecture for the Enterprise Delivering agility, portability and control with Docker Containers as a Service (CaaS)

Modern Application Architecture for the Enterprise

WHITEPAPER INTRODUCTION TO CONTAINER SECURITY. Introduction to Container Security

The Virtualization Practice

STRATEGIC WHITE PAPER. The next step in server virtualization: How containers are changing the cloud and application landscape

RED HAT CONTAINER STRATEGY

Evolution of the Modern Software Supply Chain The Docker Survey, 2016

Container Clusters on OpenStack

A lap around Team Foundation Server 2015 en Visual Studio 2015

Building a Continuous Integration Pipeline with Docker

Private Cloud Management

Docker : devops, shared registries, HPC and emerging use cases. François Moreews & Olivier Sallou

Linstantiation of applications. Docker accelerate

Oracle s Cloud Computing Strategy

Do Containers fully 'contain' security issues? A closer look at Docker and Warden. By Farshad Abasi,

How Bigtop Leveraged Docker for Build Automation and One-Click Hadoop Provisioning

80% 50x. 30x. CASE STUDY: How WaveMaker Got Faster, Better, More Agile with Docker. Lower Costs. Better Performance. Greater App Density

Linux A first-class citizen in Windows Azure. Bruno Terkaly bterkaly@microsoft.com Principal Software Engineer Mobile/Cloud/Startup/Enterprise

DevOps with Containers. for Microservices

Sacha Dubois RED HAT TRENDS AND TECHNOLOGY PATH TO AN OPEN HYBRID CLOUD AND DEVELOPER AGILITY. Solution Architect Infrastructure

Getting Started Using Project Photon on VMware Fusion/Workstation

Jenkins World Tour 2015 Santa Clara, CA, September 2-3

Intro to Docker and Containers

Platform as a Service and Container Clouds

Application Containers

TOSCA Interoperability Demonstration

The Promise and the Reality of a Software Defined Data Center

White Paper Server. SUSE Linux Enterprise Server 12 Modules

Cloud Computing and Open Source: Watching Hype meet Reality

Five Cloud Strategy Must -Dos for the CIO

How To Compare The Cost Of A Microsoft Private Cloud To A Vcloud With Vsphere And Vspheon

Microsoft Azure IaaS: Virtual Machine e Open Source interoperability

OpenShift. OpenShift platform features. Benefits Document. openshift. Feature Benefit OpenShift. Enterprise

Azul pitches Docker as alternative to virtualization for heavy-duty Java applications

IBM Bluemix, the digital innovation platform

Bridge Development and Operations for faster delivery of applications

Containerization and the PaaS Cloud

Cisco Application-Centric Infrastructure (ACI) and Linux Containers

Ryu SDN Framework What weʼ ve learned Where weʼ ll go

Building Docker Cloud Services with Virtuozzo

Data Centers and Cloud Computing. Data Centers. MGHPCC Data Center. Inside a Data Center

Global Headquarters: 5 Speen Street Framingham, MA USA P F

How To Install Project Photon On Vsphere 5.5 & 6.0 (Vmware Vspher) With Docker (Virtual) On Linux (Amd64) On A Ubuntu Vspheon Vspheres 5.4

Software Defined Everything

White Paper. SDN 101: An Introduction to Software Defined Networking. citrix.com

Build & Manage Clouds with Red Hat Cloud Infrastructure Products. TONI WILLBERG Solution Architect Red Hat toni@redhat.com

Whither Enterprise Cloud Platform Linux, Docker and more Loo Chia Zyn Head of Sales Consulting, Japan & Asia Pacific Oracle Linux & Oracle VM

Hadoop in the Hybrid Cloud

An Oracle White Paper March What It Takes to Deploy and Manage a Private Cloud with Oracle VM

Modern IT Operations Management. Why a New Approach is Required, and How Boundary Delivers

Red Hat Cloud Ecosystem

Build Clouds Without Limits Gordon Haff

Considerations for Adopting PaaS (Platform as a Service)

TRANSFORMING TO NEXT-GEN APP DELIVERY FOR COMPETITIVE DIFFERENTIATION

Data Centers and Cloud Computing. Data Centers

Software-Defined Storage: What it Means for the IT Practitioner WHITE PAPER

Learn How to Leverage System z in Your Cloud

Practical Guide to Platform as a Service.

OpenStack PHP Usergroup Berlin, April 2011

Portable, Interoperable Cloud Applications using TOSCA

Elastic Private Clouds

Clodoaldo Barrera Chief Technical Strategist IBM System Storage. Making a successful transition to Software Defined Storage

ACCELERATE DEVOPS USING OPENSHIFT PAAS

The future Cloud. Peter H. Moser, Jr. Manager, Portfolio Architects & Account CTOs

Monitor Open stack environments from the bottom up and front to back. Roger Ruttimann VP Engineering, GroundWork OpenSource November 17, 2015

ISLET: Jon Schipp, Ohio Linux Fest An Attempt to Improve Linux-based Software Training

Virtualization. Dr. Yingwu Zhu

I D C T E C H N O L O G Y S P O T L I G H T

The State of Containers and the Docker Ecosystem: Anna Gerber

Batch and Cloud overview. Andrew McNab University of Manchester GridPP and LHCb

SESSION 703 Wednesday, November 4, 9:00am - 10:00am Track: Advancing ITSM

Overview. The Cloud. Characteristics and usage of the cloud Realities and risks of the cloud

How To Build An Open Cloud

Virtualization. Introduction to Virtualization Virtual Appliances Benefits to Virtualization Example Virtualization Products

Sistemi Operativi e Reti. Cloud Computing

TOP 5 REASONS WHY FINANCIAL SERVICES FIRMS SHOULD CONSIDER SDN NOW

What new with Informix Software as a Service and Bluemix? Brian Hughes IBM

Geoff Raines Cloud Engineer

Testing Automation for Distributed Applications By Isabel Drost-Fromm, Software Engineer, Elastic

DevOps Best Practices for Mobile Apps. Sanjeev Sharma IBM Software Group

With Red Hat Enterprise Virtualization, you can: Take advantage of existing people skills and investments

Automation and DevOps Best Practices. Rob Hirschfeld, Dell Matt Ray, Opscode

The Role of the Operating System in Cloud Environments

Distributed Scheduling with Apache Mesos in the Cloud. PhillyETE - April, 2015 Diptanu Gon

Cloud Simulator for Scalability Testing

Hybrid Cloud: Overview of Intercloud Fabric. Sutapa Bansal Sr. Product Manager Cloud and Virtualization Group

Migration and Disaster Recovery Underground in the NEC / Iron Mountain National Data Center with the RackWare Management Module

Securing the Virtualized Data Center With Next-Generation Firewalls

Microsoft Private Cloud. A comparative look at Functionality, Benefits, and Economics

Transforming Control System to a Virtualized Platform, including On Process Migration. Anneke Vemer ExxonMobil

How To Compare The Two Cloud Computing Models

Transcription:

The Definitive Guide To Docker Containers

EXECUTIVE SUMMARY THE DEFINITIVE GUIDE TO DOCKER CONTAINERS Executive Summary We are in a new technology age software is dramatically changing. The era of off big packaged applications is shifting to an era defined by vibrant open source projects and lots of small, specialized applications. Driven first by the desire for a more agile application development model, the ripple effect has created a movement changing not only the technology but the people and process that build it. Docker has emerged as a key enabling technology for this movement, from enabling DevOps methodologies to powering some of the most innovative websites/companies/applications in operation today. Popular amongst developers, Docker is gaining in popularity beyond open source devotees to large enterprises and even those beyond Linux. This guide provides an introduction to the Docker technology, containerization, ecosystem and the resulting shift from monolithic to micro services architectures. Intended for readers new to Docker, this paper will discuss the following topics: Technology trends driving the change to distributed applications Overview of the Docker technology Impact to the application delivery ecosystem Key use cases and benefits Distributed Applications Call for Containers Many enterprises are moving away from monolithic applications to distributed applications. Fueled by a desire to innovate faster, organizations are moving away from waterfall style development practices traditionally linked to monolithic applications in favor of distributed applications and DevOps methodologies. With traditional applications, each additional line of code introduced grew the QA cycles exponentially and ultimately slowed innovation in favor of testing and bug fixing. The promise of distributed applications is that a collection of micro services can be developed and independently, frequently and freely. What is a distributed or micro services application? They fundamentally look and behave much differently than their predecessors. Instead of having a single application server containing an ever-expanding code base, that application is now a collection of loosely coupled smaller applications otherwise knows as micro services. Instead of being written in a single language, each service can now be written in the best language stack and version for the capability it is intended to provide the end user. In an era of hybrid cloud, these services want to be distributed running wherever is optimal from a performance and cost standpoint for that workload. The idea behind micro services is that if one service fails, then the whole application does not have to fail and the developer can simply fix it, without affecting the other services that make up the application. Modern websites like Gilt, LinkedIn, Facebook and many others all use this type of architecture. Gilt, an online flash sale retailer has an ecommerce site comprised of roughly 400 applications. The code that serves up the pictures on the product page and the search functionality are actually separate applications. In the case of LinkedIn, if the upload capability fails, the entire LinkedIN application doesn t go down with it. The user simply gets the mes sage LinkedIN Upload capability is temporarily unavailable instead of having the entire application freeze or crash. Monolithic Slow Changing Big Servers 2000 This approach creates a new paradigm for building better software but is not also raises new challenges. With hundreds small applications connected together, new complexities are introduced with multiplicity of language stacks, versions, dependencies and hardware compatibility. Maintaining order becomes a challenge as a new matrix headache emerges. Today Loosely Coupled Services Rapidly Updated Many Small Servers Enter Docker, a platform for packaging up the application and all of its dependencies into a standardized unit of software the Docker container. Binaries Libraries System tools Runtime 2

EXECUTIVE SUMMARY THE DEFINITIVE GUIDE TO DOCKER CONTAINERS Docker Basics Before we dive into how the different components of the Docker technology, architecture and how they work, below are the core terminology and their definitions. App 1 App 2 App 3 Bins/Libs Bins/Libs Bins/Libs Dockerfile: This tells the image builder (i.e Jenkins) what the image should look like. Image: The basis of a Docker container at rest. These artifacts are stored and managed in a registry. Once instantiated via a Docker run command a container is created. Container: The standard unit in which the application service resides. At run, the image is turned into a container. Docker Engine: Installed on physical, virtual or cloud hosts, this lightweight runtime is what pulls images, creates and runs containers. Registry: A service where Docker images are stored, managed and distributed. Understanding Docker Containers Writable Container A Docker container wraps up a piece of References software in a complete Parent Image filesystem that contains everything it needs to run: code, runtime, system tools, system libraries anything you can install on a server. By encapsulating and isolating everything in a container, this guarantees that the container will always run the same, regardless of the environment it is running in. Add Apache Image Add Emacs Image Debian Base Image bootfs Kernel Docker containers are built from Docker images, which use union filesystems and share image layers which further attribute to their lightweight nature. Docker Engine Operating System Infrastructure Docker containers make distributed applications: Composable: Lightweight containers start instantly and use minimal resources because they share the kernel of the underlying operating system Dynamic: Quick to spin up and easy to scale and change make containers ideal for agile teams Portable: Able to run on any physical, virtual or cloud environment running Docker. Containers can uniquely turn very diverse set of application services into standardized software units. From the outside the containers all look the same which regardless of the binaries, libraries and code inside the container. This makes it easy to build tooling around container to move them along every stage of the application lifecycle. You can create simple single container or complex multi-container applications. Writable Container Add Apache Image Add Emacs Image Debian Base Image References Parent Image bootfs Kernel Containers are created from an image with the docker run command. Once initiated, the Docker Engine spins up that container from the defined image (it can also spin them down). Every command is executed to the Docker Engine including creating new containers, scaling existing containers, stopping, removing and much more. 3

What about virtual machines? But wait, what about virtual machines (VMs)? For years virtual machines were seen as the status quo for packaging and running applications. Containers and VMs seem similar, but containers utilize a different architectural approach. VMs require a full operating system (OS) inside of each VM in order to run the service inside of it. This allows for many OS s to run on the same physical server, which is beneficial for some use cases. On the other hand, containers share the OS kernel on the host thus being able to achieve higher levels of density per host but require the same OS. App 1 Bins/Libs App 2 App 3 Bins/Libs VMs and containers are Hypervisor designed for different types of applications but are complimentary and have a natural intersection. Virtual machines are popular places to deploy and run Docker containers. Infrastructure Docker is able to run on physical and cloud infrastructure while uniquely provides portability for your applications across those environments. Additionally a single physical server could host a number of virtual machines with different OS s and each running their respective containers. Docker Tooling and the Ecosystem Bins/Libs Guest OS Guest OS Guest OS The beauty of containers is that they are a standard, lightweight, and extremely portable to run in any environment on any infrastructure with sub second boot up times. Combined with open APIs and a pluggable architecture, Docker s unique characteristics have spawned a vibrant and vast ecosystem across the application delivery lifecycle. Docker APIs are critical to a seamless Docker experience. As the Docker platform has grown beyond running a single container on a single Engine the capabilities have expanded to automated provisioning (Machine), host clustering and container scheduling (Swarm), multi-container applications (Compose), image registries (Hub and Trusted Registry), security, networking, volumes to products that deploy and manage the Docker application environment (Universal Control Plane, Tutum) to complete the application lifecycle. These APIs enable the ecosystem to build value added tooling and services into the Docker platform. to the plugin API. This allows the same Docker commands to execute actions against a cluster, network or volume and the plugin translates the actions to the underlying provider. Docker containers introduce an application first architecture, allowing teams to focus their time on building and shipping code through standardized units to package their software. Docker abstracts away the underlying infrastructure and compute, thus removing away the issues of works on my machine which plagues many software engineering, QA and IT Ops teams. This model also allows developers to granularly define requirements for their application at the container level like networking, volumes, resources, and more. Developers can develop, test and deploy applications, while IT Ops teams can provision, manage and secure infrastructure and applications across any environment. Docker Use Cases Today, the use of Docker tools within the enterprise has flourished. And of the enterprises using Docker tools, 40% are running Docker containers within their production environments, solidifying the tool as not just an awesome tool developing applications and making it easy to test them, but also for managing and deploying dockerized distributed applications in production. Teams have pulled over 1.3 billion images (and counting) from Docker Hub alone, using them as the basis for building their applications. Docker gives enterprises the agility, portability and control that their developers and operations teams require. Developers can create applications quickly, define the needs of each container, and can easily move containers from development and test environments. IT operations teams can keep up with the changes in business needs, and also control, manage and secure their environments, allowing them to meet the SLAs their customers expect. Here are a few use cases for Docker containers within the enterprise. Continuous Integration/Continuous Delivery ING, one of the top 10 largest financial firms in the world, was struggling with their container deployment process. Prior to using the containers it took up to 9 months for their applications to get deployed. Today, using the Docker platform, they are able deploy 1,500 times per week. Speed is very important to us and Continuous Delivery is how we do it. Says Kolk, In ING IT, we are all developers and we want to be better - meaning better code and more customer satisfaction and Docker is the part of our strategy to do all of this, especially faster. Henk Kolk, Chief Architect of ING Netherlands Pluggable architecture uniquely gives the ability to maintain the Docker user experience with the flexibility to change out the underlying provider for technologies like; networking, storage, clustering, service discovery. Docker supports and maintains the plugin to the Docker Engine and third party providers build 4

Infrastructure Optimization and Responsiveness Gilt Groupe, the online flash sale fashion vendor, was using monolithics applications within their environment. They needed to keep up with the massive demand from their 6 million customers They took a very interesting approach in that they didn t do a dramatic shift to distributed apps. What they instead did was containerize each of the 7 monolithic applications they had. They then managed these containers, and made updates to them as needed. I love Docker. It s simple for developers and it works for ops. There is a really positive emotional connection that Docker has created with our developer community. At Docker our mission is to help you build, ship and run distributed applications anywhere. Containerizing your applications and moving to micro services is just one piece of that journey. The power of the Docker platform is to deliver a secure and managed application environment that gives you speed and freedom in application development and delivery. For more information take a look at the following resources: Learn more about Docker www.docker.com/enterprise Docker Self-paced Training: https://training.docker.com/selfpaced-training Contact our sales team: www.docker.com/contact - Gilt Groupe Containers-As-A-Service Booz Allen in partnership with the GSA, the largest federal buying organization, used Docker to transform their monolithic applications to in an agile DevOps environment, using a containers as a service (CaaS) methodology. Making the government s testing more agile. 5

www.docker.com