Default HubSpot Blog

Deploy applications, not containers!

[fa icon="calendar"] Feb 9, 2015 4:52:43 PM / by Ritesh Patel

 

Its 2015 and Docker continues to build on the momentum it gained last year [1], with huge developer traction and a growing ecosystem. Even large enterprise software vendors have started to embrace Docker and are announcing Docker based solutions, that are likely to accelerate adoption of Docker in enterprises. Some in the press even predict that while Docker will continue to dominate in 2015 [2], competing technologies such as CoreOS Rocket [3] and Ubuntu LXD will emerge.

Getting started is easy

Docker is extremely easy to get started with and you can build and run a container within minutes. For developers, it is very easy to launch a container with simple applications like Wordpress or Nginx. In fact, Wordpress is very commonly used by vendors to demonstrate Docker support.

There are several open source tools out there, including Fig (recently acquired by Docker, Inc), which enable defining containers clusters. IaaS vendors are starting to offer container services that can help launch several container clusters across multiple nodes. However all of these solutions are missing a key point - developers care about applications and not containers! Being able to deploy containers is an infrastructure-centric view and is not enough.

What about deploying applications?

Unless you are working with applications that fit in a single container, defining and operating an application requires more capabilities than provided by a container management service.

Applications are getting more distributed and as a result more complex. Most applications have complex dependencies, require versioning as well as have specific hardware requirements. Also, in any enterprise applications have a life-cycle and may simultaneously exist in multiple runtime environments.

This leads to some very interesting requirements for application orchestration. For example, application containers may need to be deployed in a particular order or different application containers be deployed on different types of VMs. Also more interestingly, cloud native applications, often built using the Microservices style architecture [4] , introduce additional application orchestration requirements. Microservices style applications are highly distributed and dynamic, and require service discovery as well as dynamic request routing. Ability to version individual services and be able to deploy them independently of other services is essential for deployment agility. Rolling upgrades as well as quick rollback to earlier version is also needed. An intelligent application orchestration solution should be able to address these requirements in addition to enabling basic resiliency and scaling up/down of containers.

Another interesting pattern emerging is that of a hybrid application, deployed across public and multiple private clouds. This pattern is more commonly seen with IoT applications and network devices where the management application (control plane) resides in the cloud and software components, usually VMs, deployed on customer premises behind a firewall. Containers can help simplify the deployment and management of such applications but most existing tools are not designed to address such complex deployments.

The good news is that software vendors in this space have recently been discussing the definition of an “application blueprint” [6]. This is a great starting point and will hopefully evolve to meet the various requirements for orchestrating complex applications, that may use containers as a runtime solution.

Summary

To accelerate adoption of containers within the enterprise, it is not enough to just provide container clustering and management tools. Intelligent application orchestration along with comprehensive application lifecycle management is needed.

At Nirmata, our goal has been to build just that. Inspired by the work done by Adrian Cockroft and the Netflix OSS [7] team, we have launched a Microservices operations and management solution, designed for Enterprise DevOps teams. Nirmata’s comprehensive application blueprint simplifies deployment of complex, Microservices style applications across public and private clouds.

Check out our videos below and if interested, you can sign up for our free beta or just reach out to us to request a demo. We would love to hear your comments and suggestions.

-Ritesh Patel

Follow us on Twitter @NirmataCloud

References

[1] Docker project year in review: <a href="http://blog.docker.com/2015/01/docker-project-2014-a-whirlwind-year-in-review/">http://blog.docker.com/2015/01/docker-project-2014-a-whirlwind-year-in-review/</a>
[2] Why Docker Is Going To Dominate Your 2015: <a href="http://readwrite.com/2014/12/23/docker-to-dominate-in-2015">http://readwrite.com/2014/12/23/docker-to-dominate-in-2015</a>
[3] Docker-Rocket Conflict is a Good Sign: <a href="http://www.linuxinsider.com/story/81672.html">http://www.linuxinsider.com/story/81672.html</a>
[4] Cloud Native Software: Microservices: <a href="http://nirmata.com/2014/07/cloud-native-software-microservices-2/">http://nirmata.com/2014/07/cloud-native-software-microservices-2/</a>
[5] Orchestration Holds The Key To Enterprise Adoption Of Containers: <a href="http://nirmata.com/2014/09/orchestration-holds-key-enterprise-adoption-containers/">http://nirmata.com/2014/09/orchestration-holds-key-enterprise-adoption-containers/</a>
[6] Big software players talking common microservices definitions: <a href="http://www.theregister.co.uk/2015/01/22/big_software_players_talking_common_microservices_definitions/">http://www.theregister.co.uk/2015/01/22/big_software_players_talking_common_microservices_definitions/</a>
[7] Neflix OSS: <a href="http://netflix.github.io/#repo">http://netflix.github.io/#repo</a>

 

 

Topics: cloud applications, Containers, Product, DevOps

Ritesh Patel

Written by Ritesh Patel

Subscribe to Email Updates

Recent Posts