This content is part of the Essential Guide: Get to know Docker, container technology out of the box

Blaze a trail to Docker containers in five basic steps

Containers are gaining steam in the cloud market with Docker leading the pack. To steer your application to containers, follow these five steps.

Docker containers are taking the cloud computing world by storm with many major providers getting behind the technology. So what makes Docker containers so popular? For starters, containers provide application portability between clouds, as well as a way to break applications into distributed components. Additionally, users can manage and scale those containers as clusters.

As enterprises prepare to move applications to containers, it's important to understand the application migration process. Here are five basic steps to move your apps to Docker containers.

Step 1: Decompose

Applications are typically complex and have many components. For example, most applications depend on database or middleware services for data storage, retrieval and integration. Therefore, break out these services into their own container through design and deployment. The more distributed an application becomes, the more options there are to scale the application. However, becoming more distributed also means more complexity to manage.

Step 2: Select a base image

When migrating an application, don't reinvent the wheel. Search the Docker Registry to find a basic Docker image to use as the application's foundation.

As time goes on, enterprises will find more value in these Docker Registry base images. Remember that Docker supports a community of Docker developers, so success depends on users' participation in image management and improvements.

Step 3: Address security and governance

Security and governance need to be a priority; enterprises can no longer add them to the application or containers as a final step. Instead, enterprises must plan security and governance from the beginning, design them into applications and proactively manage them during operations. This is where enterprises need to apply substantial effort.

Container-based applications are distributed applications. Enterprises should update older applications to support federated identity management approaches, which are more helpful for securing distributed applications. To do this, provide each application component and data with a unique identifier that allows enterprises to manage security at a fine-grained level. Enterprises should also add a logging approach.

Step 4: Add code

To create an image, enterprises need to use a Dockerfile, which defines the necessary steps to build the image. Once the image is created, enterprises can add it to the Docker Hub.

Step 5: Configure, test, deploy

Configure the application running in the container so it knows where to connect with external resources or other containers in the application cluster. Enterprises can place these configurations within the container, or use environmental variables.

Testing container-based applications is similar to testing other distributed applications. Enterprises can component-test each container and the container cluster as a whole. Determine how the application is able to scale under an increasing load. If you're using a cluster manager, such as Swarm, test its performance as well.

Finally, deploy the container into production. To proactively observe how the container-based application runs, implement monitoring and management mechanisms. Make sure to turn logging on.

Many applications moving to the cloud are destined for containers. While the migration is a bit more complex, containers protect the application investment and should give it a longer life.

About the author:
David "Dave" S. Linthicum is senior vice president of Cloud Technology Partners and an internationally recognized cloud industry expert and thought leader. He is the author or co-author of 13 books on computing, including the best-selling Enterprise Application Integration. Linthicum keynotes at many leading technology conferences on cloud computing, SOA, enterprise application integration and enterprise architecture.

His latest book is Cloud Computing and SOA Convergence in Your Enterprise: A Step-by-Step Guide. His industry experience includes tenures as chief technology officer and CEO of several successful software companies and upper-level management positions in Fortune 100 companies. In addition, he was an associate professor of computer science for eight years and continues to lecture at major technical colleges and universities, including the University of Virginia, Arizona State University and the University of Wisconsin.

Next Steps

AWS developers don't feel the Docker container love

Docker addresses scalability with orchestration tools

Kubernetes out in front of Docker in container orchestration

Dig Deeper on IT Ops Implications of Continuous Delivery