Introduction
The open source release of Docker in March 2013 triggered a major shift in the way in which the software development industry is aspiring to package and deploy modern applications. The creation of many competing, complimentary and supporting container technologies has followed in the wake of Docker, and this has lead to much hype, and some disillusion, around this space. This article series aims to cut through some of this confusion, and explains how containers are actually being used within the enterprise.
This articles series begins with a look into the core technology behind containers and how this is currently being used by developers, and then examines core challenges with deploying containers in the enterprise, such as integrating containerisation into continuous integration and continuous delivery pipelines, and enhancing monitoring to support a changing workload and potential transience. The series concludes with a look to the future of containerisation, and discusses the role unikernels are currently playing within leading-edge organisations.
Contents
The Challenge of Monitoring Containers at Scale
The adoption of containers, and the associated desire to build microservices, is causing a paradigm shift within the monitoring space. Application functionality is becoming more granular and more independently scalable and resilient, which is a challenge for traditional monitoring solutions. InfoQ recently sat down with a series of container monitoring experts (Chris Crane, Kevin McGuire, Ilan Rabinovitch and Alois Reitbauer) and explored these challenges.
"Using Docker" Book Review and Q&A with Author Adrian Mouat
InfoQ recently sat down with Adrian Mouat, author of “Using Docker”, and explored the motivations for writing the book, his thoughts on the reasons why Docker has captured the IT industry’s attention such as short time span, and how containers can be best utilised within a typical software development lifecycle.
Lessons Learned from Scheduling One Million Containers with HashiCorp Nomad
HashiCorp's Million Container Challenge is a test for how efficiently its scheduler, Nomad, can schedule one million containers across 5,000 hosts. The goal of the challenge is to observe and optimize the behavior of Nomad at exceptional scale. Ultimately Nomad was able to schedule one million containers across 5,000 hosts in under five minutes. Kevin Fishner outlines in this article the lessons learned.
Continuous Deployment with Containers
Many of us have already experimented with Docker - for example, running one of the pre-built images from Docker Hub. However, a comprehensive build pipeline is required before deploying any containers into a production environment. Viktor Farcic outlines the steps you need to take for a fully automated continuous-deployment pipeline that builds microservices deployed via Docker containers.
Build You Own Container Using Less than 100 Lines of Go
Shipping containers and software containers share a lot in common, but the analogy has limits. Julian Friedman explores this relationship further by demonstrating how it possible to build a simple container using less than 100 lines of Golang code. Topics covered include namespaces, cgroups and layered filesystems.
Controlling Hybrid Cloud Complexity with Containers: CoreOS, rkt, and Image Standards
Public IaaS or PaaS offerings may not satisfy the regulatory, security, or performance demands of every workload. Josh Wood explores how CoreOS have studied the emerging state-of-the-art application design and deployment patterns, and created and integrated a number of open source projects in pursuit of a modular platform that satisfies the needs of modern container cluster infrastructure.
Series Manager
Daniel Bryant is leading change within organisations and technology with OpenCredo. His current work includes enabling agility within organisations by introducing better requirement gathering and planning techniques, focusing on the relevance of architecture within agile development, and facilitating continuous integration/delivery. Daniel’s current technical expertise focuses on ‘DevOps’ tooling, cloud/container platforms and microservice implementations. He is also a leader within the London Java Community (LJC), contributes to several open source projects, writes for well-known technical websites such as InfoQ, DZone and Voxxed, and regularly presents at international conferences such as QCon, JavaOne and Devoxx.