Mastering Docker Enterprise
eBook - ePub

Mastering Docker Enterprise

A companion guide for agile container adoption

Mark Panthofer

Share book
  1. 488 pages
  2. English
  3. ePUB (mobile friendly)
  4. Available on iOS & Android
eBook - ePub

Mastering Docker Enterprise

A companion guide for agile container adoption

Mark Panthofer

Book details
Book preview
Table of contents
Citations

About This Book

A journey toward containerized applications in production with a cloud-portable, secure, robust and highly available Docker Enterprise platform.

Key Features

  • Get an insider's view into the container movement and Docker Enterprise
  • Manage the transformation associated with enterprise container adoption
  • Walk through the enterprise container adoption journey

Book Description

While known mostly as the open source engine behind tens of millions of server nodes, Docker also offers commercially supported enterprise tooling known as the Docker Enterprise. This platform leverages the deep roots from Docker Engine - Community (formerly Docker CE) and Kubernetes, but adds support and tooling to efficiently operate a secure container platform at scale. With hundreds of enterprises on board, best practices and adoption patterns are emerging rapidly. These learning points can be used to inform adopters and help manage the enterprise transformation associated with enterprise container adoption.

This book starts by explaining the case for Docker Enterprise, as well as its structure and reference architecture. From there, we progress through the PoC, pilot and production stages as a working model for adoption, evolving the platform's design and configuration for each stage and using detailed application examples along the way to clarify and demonstrate important concepts.The book concludes with Docker's impact on other emerging software technologies, such as Blockchain and Serverless computing.

By the end of this book, you'll have a better understanding of what it takes to get your enterprise up and running with Docker Enterprise and beyond.

What you will learn

  • Understand why containers are important to an enterprise
  • Understand the features and components of Docker Enterprise 2
  • Find out about the PoC, pilot, and production adoption phases
  • Get to know the best practices for installing and operating Docker Enterprise
  • Understand what is important for a Docker Enterprise in production
  • Run Kubernetes on Docker Enterprise

Who this book is for

This book is for Software Architects, DevOps Engineers, Tech Ops, Docker professionals, or any IT professional working with Docker and containers who wants to move containerized workloads to production. This book discusses the enterprise adoption of Docker and Kubernetes, therefore a basic understanding of Docker concepts will be helpful.

Frequently asked questions

How do I cancel my subscription?
Simply head over to the account section in settings and click on “Cancel Subscription” - it’s as simple as that. After you cancel, your membership will stay active for the remainder of the time you’ve paid for. Learn more here.
Can/how do I download books?
At the moment all of our mobile-responsive ePub books are available to download via the app. Most of our PDFs are also available to download and we're working on making the final remaining ones downloadable now. Learn more here.
What is the difference between the pricing plans?
Both plans give you full access to the library and all of Perlego’s features. The only differences are the price and subscription period: With the annual plan you’ll save around 30% compared to 12 months on the monthly plan.
What is Perlego?
We are an online textbook subscription service, where you can get access to an entire online library for less than the price of a single book per month. With over 1 million books across 1000+ topics, we’ve got you covered! Learn more here.
Do you support text-to-speech?
Look out for the read-aloud symbol on your next book to see if you can listen to it. The read-aloud tool reads text aloud for you, highlighting the text as it is being read. You can pause it, speed it up and slow it down. Learn more here.
Is Mastering Docker Enterprise an online PDF/ePUB?
Yes, you can access Mastering Docker Enterprise by Mark Panthofer in PDF and/or ePUB format, as well as other popular books in Computer Science & Operating Systems. We have over one million books available in our catalogue for you to explore.

Information

Year
2019
ISBN
9781789617245
Edition
1

Section 1: Getting Started with Docker Enterprise

The chapters in this section cover positioning the Docker Enterprise platform and explain its structure, reference architectures, installation, configuration, and pilot application deployments.
The following chapters are included in this section: 
  • Chapter 1, Making the Case for Docker Enterprise
  • Chapter 2, Docker Enterprise – an Architectural Overview
  • Chapter 3, Getting Started – Docker Enterprise Proof of Concept

Making the Case for Docker Enterprise

If you have been around the technology scene for a while, you have probably figured out that guiding principles are key to achieving long-term success and without them you end up running in circlesalways bouncing to the next cool tech fad without actually getting anything done.
Furthermore, these same guiding principles inspire enterprise practices as a means to ensure the principles are achieved. Finally, principles and practices combine to inform our choice and style for the tools used to make it all happen. Therefore, before we jump into the details of using Docker's Enterprise tooling, it is important to understand how we got here, what running Docker means, and where Docker's enterprise tooling fits into the enterprise platform space.
The following are globally some sample principles and practices to help guide your enterprise container adoption journey:
Principles, Practices and Tools for Enterprise Container Adoption
Now lets take a look at the topics which will be covered in this chapter:
  • What are Docker, Inc., Docker Engine-Community, and Docker Enterprise?
  • Where did containers come from and why are they so popular?
  • How do Kubernetes and Docker fit together?
  • How do containers impact your business?
  • Why would I choose Docker Enterprise?

Zero to everywhere in five years

Technical operations teams are justifiably skeptical about new technology platforms such as containers. They are usually most concerned about hardening for security and reliability because they exist to keep enterprise applications up and running securely. At the same time, product owners within their organizations need to deliver better, often more complex, software faster. Yes, the business landscape has changed profoundly; in today's business world, software is not only used to achieve competitive advantage, it is the business and provides the frontline customer experience.
Subsequently, significant pressure is mounting to accelerate the software pipeline in nearly every organization. This section briefly explains the roots of containers and why their benefits (a secure and fast software pipeline) have driven such a rapid adoption of containers.

The Docker story

Docker was born out of a lightning talk presentation, entitled The future of Linux Containers, delivered at PyCon on Friday, March 15, 2013. The presenter was Solomon Hykes, the founder of Docker. On that day, the software world changed even though Linux containers had been evolving in the Linux community for nearly 13 years. It was not the technology that Solomon shepherded that got the Docker movement off the ground, it was the vision behind it and the packaging of the container ecosystem. Solomon's vision was to create tools for mass innovation and his packaging of Linux containers in the Docker experience delivered this powerful technology and put containers within the grasp of mere mortals. Today, Docker runs on tens of millions of servers around the world.
Here are some notes on Linux containers:
  • They have been evolving since 2000
  • Linux Containers (LXC) was released in 2008
  • Google's lmctfy (let me container that for you) supports Docker's libcontainer in 2015
  • Standards emerged, including OCI, and CNCF, around 2015
  • Center for internet security benchmark support
Over the last 5 years, thousands of developers joined Docker's open source community to deliver what is known as Docker Community Edition (Docker Engine-Community). Docker has remained committed to an open platform and a level playing field. Docker has donated significant assets to the open source and standards community, including the Docker container format and runtime, to provide the cornerstone of the Open Container Initiative (OCI) in 2015 and the container runtime to the Cloud Native Computing Foundation (CNCF) in 2017.
At Dockercon in 2017, Solomon Hykes released Project Moby, which effectively gives anyone the tooling they need to build their own Docker. This was very cool and ultimately in the best interests of the container community. However, this well-intentioned effort led to some comprehensive repackaging of Docker community assets without community buy-in. From a big-picture point of view, Docker has demonstrated its commitment to the community and Solomon's vision of tools for mass innovation.

Containers change application development and deployment

Containers allow application developers to package up their application, along with all of their dependencies, into a portable unit called an image. These images are then stored in a remote repository where they can be pulled and run on any compliant container engine. Furthermore, the applications running on each container engine are isolated from each other and the host operating system:
  • Illustrative scenario: Let's say I want to test out NGINX without installing anything (I already have Docker installed of course). I create a sample HTML page called index.html in my local directory and run the following:
docker run -p 8000:80 -v ${PWD}:/usr/share/nginx/html:ro -d nginx
  • What is happening here?
    • I'm telling Docker to run the official nginx image in the background on my local Docker Engine, forwarding my host adapter's port 8000 to the container's port 80 and mounting my local directory to share my HTML file with nginx as a read-only folder.
    • Then, I point my local browser at http://localhost:8000 and I see my HTML page rendered. When I'm done, I ask Docker to remove the container. So, in the span of about a minute, I created a test web page, used NGINX to render it locally without installing anything locally, and ran it in complete isolation. The only possible collision with a host resource was around the host adapter's port 8000, which was arbitrary.
  • This is cool, but don't VMs already do that for us?
    • Conceptually there are some similarities, but container implementation is much more lightweight and efficient. The key implementation differences are:
      • All containers share the host's kernel:
        • Docker uses Linux container security futures to isolate containers from the host and other containers.
        • Since the kernel is already running, startup time for containers is usually a second or two, versus waiting a minute or two for the guest OS to boot on a VM.
      • Containers use a layered filesystem with caching:
        • Docker images are composed of read-only layers that can be cached and shared across multiple containers.
        • Major portions of Docker images can be shared across containers, meaning you don't have to pull the entire image every time. VMs on the other hand have a monolithic, opaque filesystem that's completely reloaded every time it's started. This leads to slow load times and inefficient image storage with VMs.
In the following figure, you can see how the applications in the VMs (right side of the diagram) have a full copy of the OS and the supporting binaries in each virtual machine, whereas the containerized applications (left side of the diagram) all share the same Alpine binaries (no kernel necessary ~ 3 MB) and runtime binaries. There have been various reports on the financial impact of containers versus VMs, but the number I have seen ranges from a 15% to a 70% reduction in operational costs. As they say, your mileage may vary based on your OS, binaries, and whether or not you move to bare metal to eliminate hypervisor licensing costs:
Containerized apps vs VM apps

Containers gain popularity

The following is globally a summary of what I hear from customers and students:
  • Faster developer onboarding: Container-based development
  • Easy to run and test on dev machines: Great for simulating production
  • Faster release cycles and shorter time to fix bugs: No more monolithic deployments
  • Better quality software: Consistent images across all environments
  • It is too hard to manage microservices without them: Stacks are great for isolation and deployment
  • Easier to support legacy web applications: Containerize old apps and manage them on a modern platform
  • Reduction of VMware tax: Better use of compute resources through increased density and consolidation of multiple non-prod environments (using Docker Enterprise RBAC)
Even the free stuff will cost you something:
I am closing this section on a practical note by suggesting your initial operational savings will be offset by the investment required to transform your enterprise to a container platform. When done right, the impact of container adoption impacts a broad group within the enterprise, spanning the entire software development and delivery pipeline. Like any transformation worth doing, there is some investment required. More about the impact of container adoption later.

Docker Engine-Community – free Docker

The open source version of Docker is called Docker Engine-Community and it is distributed under the Apache 2.0 licence. Sometimes referred to as free Docker, this version is self-and community-supported. Docker has two packaging schemes:
  • Docker Engine-Community for x86 64-bit desktop architectures for Mac and Windows 10 Pro+
  • Server CE for targeting CentOS, Debian, Fedora, and Ubuntu Linux distributions
In addition to the platform packaging, Docker Engine-Community comes with two channels. It is important to note that as of Docker Engine-Community version 18.09, the stable channel will release ...

Table of contents