I have been talking a lot recently about the bleeding edge technologies that are offloading the complexity of DevOps management, and software quality. My last post on service virtualization is the latest example. Not lets talk about the software defined data centers. A dense topic, but a massive leap into automating, and unshackling a previously immutable component in the software delivery pipeline.
A lot of the heavy elements in DevOps have already been automated: orchestration for servers, and configuration management for OS and server configuration. But not a lot has been done yet for the data centers they sit on. And because many large applications cannot leverage public cloud due to compliance or complexity. They turn to hybrid and private clouds self managed data centers. For example the complex trading apps that JPMorgan creates and runs in their private datacenter of 100,000+ servers. Wouldn’t it be great if there was a way to script out data centers as you would individual servers.
DevOps teams need to put data centers on auto-pilot, with a common software layer managing resources and orchestrating distributed systems like a single host operating system (OS) running a single machine. Mesosphere, the company commercializing the open source Apache Mesos project with its recent $36 million Series B funding calls this software layer as the Data Center Operating System (DCOS). The notion of a single OS spanning across all servers in a physical or cloud-based datacenter aligns with the software-defined IT future as intended by the DevOps movement. It creates a single pool of resources shared intelligently in a dynamic datacenter environment.
The concept of the DevOps approach facilitating continuous delivery depends on the unification of systems that Devs and Ops use for service creation and delivery. Dynamic allocation of datacenter resources also raises the pain of implementing rapid changes in continuous improvement of reliability, quality and security delivered via automation. And while automation and orchestration tools alleviate this pain. The ability to create, test and release improvements and product features as part of iterative development sprints remains challenging in existing datacenter environments, where servers are still immutable. Treating all available resources as a single entity on the other hand allows DevOps teams to virtualize the entire datacenter spinning up server clusters, scaling and optimizing resources, building and deploying tools and applications in the blink of an eye.
Unshackling the infrastructure is critical to enable true DevOps strategies. Changing, maintaining and expanding applications throughout the development lifecycle is not a simple process, and DevOps teams need to go beyond traditional orchestration to develop, configure and deploy through all process spanning across the datacenter. The datacenter OS solution enables continuous integration and delivery of distributed application elements that must be deployed under a unified operating system. It allows the delivery process to not only deploy code, but outlay entirely new IT environment for each deployment for the new code to run on.
The datacenter OS works as a software layer to unify these separate resources and create high levels of automation for to keep the application in its entirety from development to release. The ability to accommodate these changes in parallel also ensures continuous integration and delivery, the two critical elements of DevOps strategy.
Datacenter operating system also allows DevOps teams to enforce precise quality standards to enable automated testing practices throughout the development lifecycle. The QA police can create requirements during the early development stages and validate their coding efforts by re-using the same test-cases as the required application test behaviors are not lost or broken across a single virtualized OS for the entire datacenter. In highly coupled application architectures, environments comprising of QA, testing and production are broken down into subsets duplicated across multiple machines. Maintaining, building, removing and managing these environments is a time and resource-intensive operation that must take place as DevOps teams scale resources dynamically.
The Mesosphere Datacenter operating system in particular gives DevOps teams the ability to scale rapidly and migrate entire operations to any datacenter and deploy any Linux application without necessitating code changes. These capabilities allow organizations to avoid vendor lock-in, optimize datacenter investments as well as automating rebalancing of server resources and creating high fault tolerance for the system.
Software defined data centers, or Datacenter OS if you prefer, is removing the complexity that large applications sit on, and bringing them into the familiar world of scripting and automation. This creates repeatable, stable environments that are easier to manage, and duplicate. It also means that applications are not just considered code, they are considered as the datacenter, servers, OS configurations, frameworks, networking, and finally the code that rest on these components. All as one single unit. This is the most advanced approach to controlling the variables, and complexity that the fast moving, and more complex modern development world has imposed on us.