Docker is hot!
Docker was the #2 “best overall open source cloud project” according to a survey by The Linux Foundation and The New Stack in July 2014. Google Trends sheds some light, though, on the relatively new entrance and rapid acceleration of Docker versus OpenStack and “Virtualization”.
Google Trends - March 5, 2015
So, why is Docker so hot?
Software used to have a major delivery drag – it had to be delivered on some physical medium like tape, disk or download and then installed. Since software could only be consumed so quickly, the impetus of independent software vendors (ISVs) to build and deliver new software was perhaps at an annual or semi-annual basis. SaaS has changed all of that. Now, there’s no reason why a bug cannot be fixed and delivered…instantly, or at least as “fast as possible.”
Web scale SaaS companies (a la Facebook, Netflix, and a big slew of smaller SaaS companies) have been striving to optimize their software release stream to do just that. These modern ISVs have given rise to “DevOps” teams that focus on this task of “Continuous Delivery”. This has given rise to scripting technologies like Puppet and Chef for automating release cycles.
The problem with these approaches is they are still prone to error. Creating a test environment via scripts is not 100% guaranteed to build an exact replica of the development environment, for example. So when QA finds a bug that is not reproducible in the development environment, valuable time is wasted determining if the bug is in the software or the environments.
Docker changes this paradigm. Instead of pulling your hair out to recreate “identical” environments, Docker gets much closer to actually just moving the actual environment around. This eliminates the errors due to release environment differences and the need to build and maintain lots of complex scripts.
Docker provides additional benefits to SaaS ISVs as well. Docker is very light weight, and fast, which makes it easy to scale, resource efficient, and for new cloud ISVs that may not be invested in technology like VMware, Docker providers many of the classic benefits of virtualization.
Enterprises need Docker too
Understandably, large scale SaaS ISVs lead the way in innovation, including Docker implementation. Enterprise developers learn from these best practices and are starting to adopt Docker. Enterprises, too, benefit from the speed and efficiency of continuous delivery (CD), especially those enterprises building customer-facing scaled SaaS applications. But there’s an even larger number of internal applications that perhaps don’t need the daily updates, but certainly need greater efficiency delivered by Docker on internal teams with limited resources.
What enterprise IT may not realize is that if they do not provide Docker for their developers, their developers have numerous external choices now for public hosted Docker services. In many cases, IT does not want their apps, workloads and data running on unsanctioned services, and the real problem is they probably won’t know it’s happening until well after the fact.
Forward thinking IT are providing Docker for their developers, and those furthest along are discovering additional benefits of Docker ranging from lower costs via greater resource utilization or reduced VMware licensing costs to workload portability for moving apps to/from public and private cloud infrastructures.
But it ain’t quite that simple
But what enterprise IT departments are also realizing is that Docker is not so simple to implement, especially given the unique needs of an enterprise. Docker is not an out of the box solution. To implement Docker, you must not only manage containers and orchestration, but ensure resource isolation and access control for security; streamline diverse stack support and upgrades; optimize data snapshotting, backups and recovery; implement monitoring at machine, instance, container and workload levels; and integrate with existing systems like LDAP or Active Directory.
SaaS ISVs need to scale a single application, on a single app stack, on a single infrastructure, and they have engineering resources dedicated to implementing Docker and all requisite components. Enterprises, on the other hand, have diverse workloads, varied app stacks, heterogeneous infrastructures, limited resources, and additional needs for security, control, visibility, governance and compliance, so implementing all of the Docker related technologies for these permutations can be daunting.
That’s were PaaS comes in. A Docker-optimized PaaS for enterprise should take care of implementing Docker and required components, while meeting additional needs like role based access control based on existing IDM with visibility and monitoring. A well designed PaaS will also leverage the unique advantages of Docker to deliver features like idle workload hibernation for further infrastructure cost savings.
Docker is young in the timeline of enterprise technology, but we’ve rarely seen one grow and rise so quickly. Enterprises will lag slightly behind SaaS ISVs in Docker adoption, but the smart IT organizations will not only provide Docker to their developers before they wander elsewhere, but will also discover the other powerful advantages of Docker unique to enterprises without spending an arm and a leg.