Developers play an increasingly central role in enterprise computing, including figuring out the infrastructure that runs their apps. Containers and SDDC are at the forefront of the shift.
Okay, operations teams, let's talk candidly about developers. You may hate how hard they make your job. You may cringe whenever you hear people (like me) repeat Redmonk's maxim that "Developers are the new kingmakers." You may think their fetish for containers is crazy. And you despise "DevOps" as an insidious way of giving the devs permission to screw up the ops.
But guess what? They're in control, and everything points to them gaining even more control.
SEE Docker and Mesos: Like peanut butter and jelly (TechRepublic)
In a world built by software, that software is becoming ever more accessible and pliable for developers. Open source. Cloud. Containers. Everything is designed to make developers more productive, so much so that software-defined data centers (SDDC), so beloved by ops teams, will largely be driven by developers, too.
Get out of my way, I'm coding
Containers are the most recent indication of the continued rise of developers. As New Relic's second annual user survey reveals, developers are turning to containers to skirt restrictions imposed by ops teams. Commenting on the data, Abner Germanow, senior director of strategic marketing at New Relic, noted:
[Dev groups] can't obtain virtual machines or servers as fast as they would like. There are multiple instances of ops teams getting really excited about improving their pipeline, and watching their requests for new servers or VMs all of a sudden flatline, and when they tried to figure out what happened, they found out the dev teams deployed Docker.
While Docker's advantages for development teams may seem obvious (full control over the execution environment, for example), containers can also be good for ops, as developer Philipp Hauer points out, e.g., less effort maintaining application environments. Containers solve problems like service lifecycle management (i.e., How do i start up an app instance?), dependency management (i.e., How do i make sure this works the same way in production?), and service discovery (i.e., How do i connect to the database?).
These benefits make developers happy.
However, as Hauer goes on to note, containers can be hard to cluster, as they share the same kernel and so can't be isolated in the same way VMs can. They also introduce additional complexity derived from a new layer to manage.
Whatever the difficulties inherent in taming container creep within an enterprise, it's too late to try to rein them in. The problem for ops teams is that the software-defined data centers they have embraced to bring sanity to their operations will increasingly be influenced by the developers that plague them.
SDDCs and containers
Operations teams love software-defined data centers and look at containers as crazy. Developers, for their part, love containers like Docker but view SDDC as crazy. They're both right, in their own way, because while the technologies share a lot in common, these different users want very different things out of their platforms.
Ultimately we'll have both—an SDDC that's chosen by developers, which suggests that Docker has a long, healthy life ahead of it.
SEE Docker's no longer all about test-and-dev, says Docker CEO (TechRepublic)
SDDCs are tools that infrastructure teams use to virtualize, pool, and distribute hardware to application teams. SDDC solves problems like hardware lifecycle management (i.e., How do I buy new servers and add them to my datacenter?), driver compatibility (i.e., Will this new hard drive work with all of my existing workloads?), and resource utilization (i.e., How do i pack more work onto my existing servers?). SDDCs are all about managing the performance, security, availability, and stability of the infrastructure these applications run on.
Containers enter the picture as a cross-cloud control plane.
Application teams are tired of integrating with each and every SDDC to make their apps portable. Instead of integrating with the SDDC, app teams can integrate with a container runtime like Kubernetes, Swarm, or Mesos. All of the "portability" work now happens in the container runtime. Crucially, the industry is making Kubernetes, Swarm, and Mesos work on top of all of the SDDCs so you don't have to.
Ops teams and the vendors who love them (like VMware) are rushing to support these new system management tools. In turn, the tools, like Kubernetes, are starting to build in developer-oriented features. According to the Kubernetes blog: "Kubernetes defines not only an API for administrators to perform management actions, but also an API for containerized applications to interact with the management platform." This latter API is new to Kubernetes, but we should expect it (and more like it) to cater to developers.
Maybe it's too strong to suggest that work like this indicates that developers have won. At a minimum, however, it's telling that the emerging generation of ops tools has developer needs firmly in mind as they grow. Developers, after all, are the new kingmakers.
- Building the Software Defined Data Center (ZDNet)
- How the "pure magic" of Mesos can make your enterprise run like Google (TechRepublic)
- Docker and Mesos: Like peanut butter and jelly (TechRepublic)
- 10 things you should know about Docker (TechRepublic)
- Docker's no longer all about test-and-dev, says Docker CEO (TechRepublic)
- OpenStack is overkill for Docker (TechRepublic)