Mastering Docker Enterprise
eBook - ePub

Mastering Docker Enterprise

A companion guide for agile container adoption

  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

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.

Trusted by 375,005 students

Access to over 1.5 million titles for a fair monthly price.

Study more efficiently using our study tools.

Information

Year
2019
Print ISBN
9781789612073
eBook 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

  1. Title Page
  2. Copyright and Credits
  3. About Packt
  4. Contributors
  5. Preface
  6. Section 1: Getting Started with Docker Enterprise
  7. Making the Case for Docker Enterprise
  8. Docker Enterprise - an Architectural Overview
  9. Getting Started - Docker Enterprise Proof of Concept
  10. Section 2: Piloting Docker Enterprise
  11. Prepare the Docker Enterprise Pilot Cluster
  12. Prepare and Deploy a Docker Enterprise Pilot Application
  13. Design and Pilot a Docker Enterprise CI Pipeline
  14. Pilot Docker Enterprise Platform Monitoring and Logging
  15. Section 3: In Production with Docker Enterprise
  16. First Application in Production with Docker Enterprise
  17. Important Docker Enterprise Production Topics
  18. More on Kubernetes with Docker Enterprise
  19. Taking the Docker Enterprise Platform into the Future
  20. Assessments
  21. Other Books You May Enjoy

Frequently asked questions

Yes, you can cancel anytime from the Subscription tab in your account settings on the Perlego website. Your subscription will stay active until the end of your current billing period. Learn how to cancel your subscription
No, books cannot be downloaded as external files, such as PDFs, for use outside of Perlego. However, you can download books within the Perlego app for offline reading on mobile or tablet. Learn how to download books offline
Perlego offers two plans: Essential and Complete
  • Essential is ideal for learners and professionals who enjoy exploring a wide range of subjects. Access the Essential Library with 800,000+ trusted titles and best-sellers across business, personal growth, and the humanities. Includes unlimited reading time and Standard Read Aloud voice.
  • Complete: Perfect for advanced learners and researchers needing full, unrestricted access. Unlock 1.5M+ books across hundreds of subjects, including academic and specialized titles. The Complete Plan also includes advanced features like Premium Read Aloud and Research Assistant.
Both plans are available with monthly, semester, or annual billing cycles.
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.5 million books across 990+ topics, we’ve got you covered! Learn about our mission
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 about Read Aloud
Yes! You can use the Perlego app on both iOS and Android devices to read anytime, anywhere — even offline. Perfect for commutes or when you’re on the go.
Please note we cannot support devices running on iOS 13 and Android 7 or earlier. Learn more about using the app
Yes, you can access Mastering Docker Enterprise by Mark Panthofer in PDF and/or ePUB format, as well as other popular books in Informatik & Betriebssysteme. We have over 1.5 million books available in our catalogue for you to explore.