E-Handbook: To succeed with containerized applications, nail the details Article 3 of 4

artemegorov - stock.adobe.com


How to prepare your own container development kit

A container development kit helps confederate containerized application development and transition developed components between clusters. Here's how to create your own.

The key to get the most out of a container ecosystem is to integrate multiple platforms and tools from many sources.

Providers like Red Hat already bundle container tools into a baseline ecosystem and have a container development kit (CDK) that provides support for the full development cycle and links to container orchestration for deployment and redeployment. However, you can assemble your own CDK with the right tooling and API features.

What is a container development kit?

Think of a CDK as a sort of PaaS that lets developers create applications for containers and then test them in an environment similar to the deployment environment. Because of this, a CDK enables developers to maintain a container-first mindset from the first steps of the development process. While most applications can already deploy in a container on their own, CDKs make the transition easier.

Generally, CDKs are a single-node Kubernetes cluster available for development and testing. This approach makes it easier to move developed components to a larger sized cluster in order to test things like scaling, hybrid and multi-cloud, and integration with other deployment models, such as virtual machines (VMs) and bare metal.

Preparing for your container development kit

The first step is to organize hosting, deployment and redeployment. Kubernetes is the most popular tool for that task. There are other container orchestration tools out there, but Kubernetes has the most appeal and highest adoption rate. Kubernetes supports data center, cloud and hybrid deployments, and it integrates well with the other required platform elements.

Two factors contribute to Kubernetes' popularity. First, task orchestration related to application deployment and redeployment is central to container success, and for that, Kubernetes is the industry choice. Second, Kubernetes is open and extensible, and there's a multitude of projects that work to extend it.

But keep in mind that other container orchestration options exist beyond Kubernetes. Apache Mesos, Mesosphere, Marathon and DC/OS are specifically designed for large-scale container deployments. Mesos and the rest of the open source options listed are based on infrastructure abstraction, which means container hosting occurs on a high-level virtual abstraction that maps to VMs, containers or bare metal as needed. This makes it easy to frame a container development environment since you can simply create a hosting abstraction and map it to your development and test environments.

Networking and your container development kit

Kubernetes has a virtual network plugin capability and already supports a number of commercial and open source networking tools. These tools provide connections for the pods or containers that hold application components, and some also provide things like data center connectivity and virtual WANs. Regardless of what virtual networking tool you use in production, make sure to use that same tool with your CDK.

Kubernetes documentation offers a list of virtual networking tools. All of these tools provide some container connectivity and some ability to link with company virtual private networks and the internet, but the features vary significantly. It's important to select tools that not only work for your present goals, but will also support your future container virtual networking plans.

When it comes to your virtual network strategy, consider three key points. First, will the virtual network tool work with your data center and data center interconnect networks? Second, can it extend into the cloud? Finally, does it provide connectivity through the full range of scaling and redeployment hosting options you plan to use?

Also, if you have a dominant network equipment vendor, consider its container virtual network choices first. That might help ensure that all your networking runs seamlessly.

Consider your container ecosystem

Your platform doesn't stop here, though. Container applications also need load balancing, monitoring, event handling and lifecycle process scripting. All these aspects make up the container ecosystem that your platform must ultimately support.

And when you incorporate these things in your deployed applications, they must also fit into the CDK. No test environment is helpful if it doesn't mimic the real world, so keep your CDK synchronized with your container use to remain trouble-free.

Dig Deeper on Application development and design

Software Quality
Cloud Computing