The Platform Players

So far, the solutions we’ve seen need “some assembly required.” That means you can adopt them incrementally and defer commitment. Optionality comes at a cost, though, because you’ll end up devoting time and resources plumbing together different parts. For example, a basic yet frustrating aspect of rolling your own platform is getting all the authentication and role-based authorization systems working together. Another common stumbling block is integrating the components’ monitoring to provide a unified view.

At the other end of the integration spectrum, we have the platform players. The platform is to the data center what the operating system is to the personal computer. It abstracts the underlying infrastructure and presents a friendlier programming model. It manages resources and schedules tasks, just across multiple computers. A platform offers assurance that its parts will all work together coherently.

The population of platform players persistently permutes. At the time of writing, the top contenders are Google’s Kubernetes,[46] Apache’s Mesos,[47] CloudFoundry,[48] and Docker’s “Swarm Mode.”[49] The odds are good that one or more new players will arrive before this book hits print.

A distinguishing feature of the platforms versus the cloud providers is about location. With the platforms, the software is available to be installed at any location: on your premises, in a hosting facility, or on top of a public cloud.

It’s relatively easy for one team in a large organization to deploy its own monitoring framework. That’s not the case with the platforms. They require care and feeding in their own right. It is more likely that a big group within an organization will move to one of the prefab platforms. That also means that individual teams probably don’t have the capacity or authority to build their own platforms. (It wouldn’t be cost-efficient anyway, because you need to amortize the support cost across a larger number of teams to justify it.)

When these platforms work well, it can be an amazingly smooth experience to deploy services. A single command can bundle up a JAR file or Python project with its runtime, build a virtual machine or container image, run it, and set up DNS for you.

If you are adopting one of these platforms, you should really embrace it. There’s no point in using one at arm’s length. Don’t try to wrap the API or provide your own set of scripts. You’re investing a lot in the platform, so get the most you can out of it!

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.226.104.27