Developers love Docker. It’s simple, fast, and lightweight. There’s even an open-source community behind this tech that’s growing at an exponential rate. And there’s a decent chance that your organization is already using Docker; 70% of enterprises are using containers.
Further, Docker usage is serious business, notes Donnie Berkholz, Research Director at 451 Research (slide 13 of the deck):
Build or Buy
For organizations considering the next step in their evolution toward cloud-native development, a new choice emerges: Build on my current container usage today and advance it into a Platform with internal resources, or look outside my organization to buy these capabilities?
These two options are summarized nicely by Sam Ramji, CEO of the Cloud Foundry Foundation. Cloud Foundry is represented as the Platform option on the left. The Do It Yourself option on the right features the Kubernetes/Mesos approach to Docker.
Each option offers a thoughtful ways to embrace the 4 principles that will shape the future of IT. Both choices:
- Are based on open-source.
- Embrace the elastic, cheap compute of the public cloud (and private cloud where required).
- Offer significant abstraction, keeping IT out of the guts of the stack. Some assembly is required to get to this point for the "Do It Yourself" path, of course.
The Focal Point
Containers are at the center of each option. So organizations can capitalize on their experiences to-date with Docker. Now, let’s do a tale-of-the-tape:
|Category||Cloud Foundry (Buy)||Kubernetes / Mesos (Build)|
|Approach to Containers||App + Buildpacks||Provide Your Own - more of the container interface is accessible directly to the user|
|Great for Microservices||Yes||Yes|
|Optimized with Agile & DevOps Teams||Yes||Yes – plus operations-only benefits|
|Pace of New Features||Rapid||Rapid|
|Vendors to Manage||One||Multiple|
|Time to Availability||As soon as you purchase a license||Variable – requires in-house expertise to build|
|Control||Some, but within the confines an ecosystem||Substantial, across several ecosystems|
|Flexibility||Limited - purposely opinionated about how apps are deployed and accessed||High - developer has more control and access to underlying components|
|Cost||Pivotal Licensing||Human capital to build, plus support contracts from vendors if desired|
|Ongoing cost to operate||Minimal||Variable|
The Buy Side
Cloud Foundry has gained traction in recent times as a turnkey "suite" to help enterprise developers build better software, with common patterns for IoT, Big Data, mobile, and predictive analytics. That means you can simplify and speed up your development in areas crucial to your business.
Also, a large library of third-party services are available. So it’s not like the single-vendor suites of yore, with new features coming from only one place. As if to underscore this break from the past, Pivotal has worked with companies like Netflix to bring useful open-source tooling to Cloud Foundry.
The most successful adoption of Cloud Foundry has been with organizations that undergo (or have undergone) a purposeful agile and DevOps transformation. This is an important point, as it shows that the "buy" approach might be the best one for companies who require a holistic revamp of how they think about software development.
What can we learn from Kubernetes/Mesos usage to-date? The scenarios have been far ranging and organic, as one would expect from various open-source projects that haven't formally joined forces to accelerate commercial adoption. The endeavors mirror Docker so far, broadly focused on infrastructure optimization and DevOps. A positive look at emerging patterns with Docker from RedMonk is also worth a read.
Three observations can be made about the "build" path:
- Kubernetes & Mesos can streamline and simplify operations and infrastructure tasks, not just development. This means many tactical benefits can be achieved in the data center today with these products.
- Users have far more control over the stack – what's included, how it works, the configuration, and so on. You can even add on a PaaS-type service like Openshift if desired. The question, though, is what does this control deliver for the business?
- That's why Point 2 is both the good and bad thing about the "Build" path. It always has been and always will be. Many engineers will embrace the "fun factor" of building things out of the new open-source tech that everyone is buzzing out. This bottoms-up, build-it-myself approach is what started the Docker buzz and should be embraced. However, organizations do need to be careful and ensure efforts align to the goal of building great software to differentiate your business.
But choosing to build it also means choosing not to build every single element presented in the "buy" path. And that’s why there is plenty of value in deploying this tech in various places in your enterprise, where it makes sense to do so. And to bring it back full circle to our introduction, that’s probably what is going on in your development and IT operations teams today.
A Little of Column A and a Little of Column B
The "Build or Buy" answer is likely to be more nuanced than the answers to other questions we've examined.
Enterprise developers who need to build and run transformative business apps can likely get there faster with a tool like Cloud Foundry. Sure, they might be able to build a platform for this purpose. But the track record of building things inside of enterprise IT is mixed at best (remember private cloud, anyone)? On the other hand, this recent piece shows that containers are no magic elixir. The time (and people) investment required to build a platform -- rather than building apps to run on it -- is especially magnified when time-to-market is crucial to the success of custom software projects. When many of the new experiences rely on data from legacy systems (such as a mobile banking app surfacing data from mainframes), many teams are going to want as much of a head start as possible.
On the "build" side, there’s a good chance your development and operations teams are looking to expand their Docker usage with tools like Kubernetes. So continue to empower these teams to reap these operational benefits.
The developer workflow for this option, once built, can also rival that of the "buy" path. But it’s hard to recommend this option to businesses that are only just now embracing IT as a differentiator, as there are ready-made alternatives that simplify the journey.
Important note: the "Build" space is evolving rapidly, and there are providers starting to offer more polished Container-as-a-Service capabilities that compete with the pre-packaged elegance of Cloud Foundry. To wit, Docker recently acquired a firm with expertise in Apache Aurora to help simplify container orchestration and scheduling.
The Most Important Thing: Try 'Em Out
For our part at CenturyLink Cloud, we support lots of this tech in an elastic environment, including multiple options for Cloud Foundry (unmanaged, managed single-tenant, or multi-tenant with AppFog). We just launched a new container service featuring Docker on Kubernetes, as well as offering ElasticKube through our recent acquisition of ElasticBox. We also have a Blueprint for Mesosphere.
The best way to learn is by doing. We invite you to try out Cloud Foundry via AppFog. Sign-up for a beta of our managed Pivotal Cloud Foundry service to try your hand at our new container service based on Kubernetes with a free trial.