Popular Off-The-Shelf Container Tooling
With the rise of Infrastructure as a Service (IaaS), more and more people are turning to containers (and microservices) as new models of application development that take full advantage of everything the cloud has to offer.
These models offer many benefits over old ways of working, but bring with them a unique set of new challenges: service discovery, infrastructure management, cluster orchestration, monitoring, container-centric continuous integration, to name just a few.
Thankfully, there are a number of popular off-the-shelf tools that can help you with these challenges.
We'll take a look at a few of those tools in this post.
HashiCorp's Consul is a distributed service that allows processes to register themselves and discover other services.
Consul is similar to other service monitoring platforms, with several key additional features: failure detection and rerouting, scales across multiple datacenters, and key-value configuration capabilities.
Check out our previous post that uses Terraform to provision DigitalOcean infrastructure, and then deploys Deis on top of that infrastructure.
Deis v. 1.9.0 first introduced Kubernetes and Mesos as scheduling offers. Kubernetes, like Deis, runs on top of the CoreOS layer in your stack.
Kubernetes handles cluster management, container health checks, creating new services, port allocation, and more. Kubernetes bolsters Docker by allowing developers to create pods (to make sense of this terminology: consider that a pod is a social group of whales) which run individual services on a cluster. If a pod is grouped with others, these all will be able to discover one another via localhost.
Kubernetes is also a standout when working with containers due to its ability to allocate a workload across available system resources. With Kubernetes, services will be scheduled and assigned to a cluster based on the resources available at the exact minute a task is being called up. If a container fails, Kubernetes will restart it.
Kubernetes can run thousands of nodes with ease and has become the de-facto answer for those looking to run services at scale in production as opposed to working strictly with vanilla Docker containers.
Sysdig Cloud provides not container monitoring as well as application monitoring.
Sysdig Cloud maps to the topology of your technology stack, enabling a macro-view of process level communications between containers.
Integrating with a number of different technologies, Sysdig Cloud is able to extract metrics from outside of a container (i.e. the host environment) as well as the environment and applications running within it.
Collected metrics are displayed in real-time, with historical replay available to help analyse and report on past outages.
Sysdig Cloud has recently announced support for Kubernetes, allowing those running Kubernetes pods and clusters to obtain similar visibility into their containers as those running Docker by itself.
With Sysdig Cloud able to understand and navigate the Kubernetes hierarchy, you can now explore your Kubernetes clusters using the csysdig visual CLI tool that comes with hotkeys for quick pod actions, as well as cluster exploration and drill down.
Codeship is a continuous integration platform that integrates with AWS and EC2 Containers.
With Codehsip, you can test and run your own Docker images, images off the Docker Hub, or image provided by other third party vendors.
Codeship uses Parallel CI to let developers test their builds in parallel, allowing for faster and more efficient build times.
And to make things even easier, Codeship offers an AWS deployment-ready EC2 container which allows developers to plug in their deployment tools without having to include them in testing or in the production-ready container itself.
Codeship's Docker infrastructure replicates some of the functionality of Docker Compose for the purposes of defining the build environment. It also allows you to specify your own CI and CD steps and run those locally in your own dev environment as well as remotely within the Codeship environment.
Codeship's Docker infrastructure is currently available on an invite-only basis, though you can easily request access.
In this post we looked at a number of popular container tools:
- Consul: a distributed service discovery and configuration platform
- Kubernetes: an all in one container cluster manager that allows for rapid scaling
- Sysdig Cloud: an enterprise solution for monitoring containers and containerized applications
- Codeship: A parallel CI and CD platform for containerized applications at scale
These tools are just a small selection from the large and constantly evolving container ecosystem.
Off-the-shelf products exist to solve many of the challenges that a container model presents. And by using these products, not only do you get to leverage the expertise of the community, you can save yourself the time and money required to develop and maintain your own custom solutions.