by Brian E. Thomas

Taking machine learning to new heights using Docker containers

Jan 25, 20184 mins
ContainersMachine LearningTechnology Industry

Joining the robust capabilities of containers and the innovative technology of machine learning presents new challenges, but new opportunities as well.

container technology cloud
Credit: Thinkstock

There is a lot of hype around machine learning with developers today, and rightfully so. They say machine learning really is the new artificial intelligence (AI). So how does this apply to Docker containers? We’ve talked extensively about machine learning in past articles, and you are probably feeling fairly confident on your understanding of it at this point. However, to best explain the use of machine learning combined with Docker, we must first learn the fundamentals of Docker containers.

We know that Docker containers essentially package software into uniform components for development, implementation and consumption. Simply explained, containers provide new ways to construct and implement portable cloud applications. Moreover, it is now an innovative way to deploy applications that utilize machine learning. Elaborating slightly more, Aqua Security states,

“Docker is a technology that allows you to incorporate and store your code and its dependencies into a neat little package – an image. This image can then be used to spawn an instance of your application – a container.”

For more information, see their Docker container wiki page.

What is the value proposition for adopting Docker containers?

By now you’ve heard of Docker containers, or you may be already deploying them in your environment.  Again, if you are new to the technology, a minor but cautionary tidbit – using a Docker container does require a bit of upfront learning.  However, using them in your deployment is certainly worth the benefits. Let’s look at just a few good reasons why deploying a Docker container is the way to go.

Intuitive GUI for environment configuration

Occasionally your code goes south in production, however, it is very simple to revert to a previous Docker image. This guarantees you can rapidly get back to a working state within your production environment.

Environment configurations between teams

Don’t let software configuration get your down. With Docker’s model of configuring just once and run anywhere, your coworkers and customers won’t have to deal with environment setup and put more emphasis on deploying machine learning models.

Dependable implementations

Having less downtime and errors in production can be commonplace now that both your dev and production environments are identical.

At the end of the day, you want a faster and more robust deployment for your applications to multiple environments that can be used by both internal and external applications. Containers are a recommended option to package your application’s code and configurations for versioning, efficiency, reliability, and throughput.

Unleashing the true power

While this technology is relatively new, it by far is one of the fastest growing and developing platforms in the technology space. What’s amazing is the simple nature of how you can easily make powerful deployments in no time.

Additionally, infusing machine learning into a Docker container is what really makes this platform so popular, yet powerful.  In just one example of this, a customer can utilize a particular app with a Docker container to search through millions of profile photos in social media accounts using facial recognition. They can customize the criteria from picking just the best picture out of several, ensuring the image is a human face, or eliminating any group photos. By the nature of this deployment using a Docker container, it streamlines the work and makes it scalable allowing the business to focus on other initiatives or objectives.

While this article just gives you a taste of the subject matter, it is important to highlight a few items, so you walk away with a better understanding.

When joining the robust capabilities of containers and the innovative technology of machine learning, you can make an application much more powerful and communal. Simply stated, creating machine learning programs that are independent that can be used on various platforms without the required testing. They can function in a substantially distributed environment due to being self-contained. These containers can be in proximity to data that these applications may be analyzing as well.

One of the bigger benefits is having the availability to share the machine learning services that reside inside of these containers to other external applications without having to move any code.  Are you ready to deploy?