Many organizations see containers as a way to accelerate their application development process, a scenario that begs the question: "What was holding back their application development process in the first place?"
Developers like to call out the operations team as the key blocker for rapid application deployment. They argue that there's too much process in place, meaning it takes a lot of time and a lot of effort to introduce changes to a production application.
Ops teams are likely to respond that they carry the responsibility of uptime, security and compliance. Of course they are risk-averse—not only are crashed applications bad for business, but it's the operations team's collective head that's on the block if an application goes down or gets breached. No matter how good or bad the code that caused the crash.
At some point, developers learn about containers and microservices and sing their praises from the mountaintops. Containers have some natural operational advantages, but in many cases the ops team has a hard time seeing containers as more than a packaging format. Even when the ops team looks at some of the popular container orchestration tools, they see incomplete solutions for production systems.
This disconnect happens because they are all looking at just one small piece of the problem when it comes to doing anything in production. For organizations to achieve the full potential of containers, they have to consider the full application lifecycle. This is where the idea of container operations comes into play.
We break container operations into 3 major components: Application-development lifecycle management (aka continuous integration, or CI); container orchestration (aka continuous delivery, or CD); and runtime infrastructure.
Application development lifecycle management (CI)
CI includes a number of important processes that are not always easy to integrate into a functional system. These include pushing changes to the source code repository; building container artifacts; performing unit, system, security and performance testing; and pushing the container into the artifact repository.
Mesosphere built its new Velocity product to address this set of challenges while still letting users work with the tools they already know and love. The open source Jenkins system, which is the industry standard for CI/CD automation software, is a linchpin of Velocity. Technology partners on Velocity include GitHub, Container Solutions and JFrog, creator of Artifactory:
- Git is a popular distributed revision control system with an emphasis on speed, data integrity, and non-linear workflows.
- Container Solutions provides consulting services and support for programmable infrastructure technologies, including the DCOS and its components.
- Artifactory is the leading artifact repository manager for all language artifacts and containers.
The initial incarnation of Velocity will let Mesosphere Datacenter Operating System (DCOS) customers easily deploy and scale a Jenkins environment, with partners stepping up to ensure integration with their systems. Future versions of Velocity will drastically improve the CI with an end-to-end experience delivered right out of the box.
Container orchestration (CD)
Container orchestration comes into play when applications are ready for deployment, either to a staging environment or into production. Our Marathon technology excels at container orchestration, including advanced migration capabilities such as Blue/Green deployment, which allows for zero-downtime upgrades (and, if need be, easy rollbacks) of live applications. Old containers are spun down, updated ones come online and the only thing users notice is a better application.
Marathon also handles the rest of the container orchestration picture, including things such as scalability, failover, network isolation, building "container groups" and dependencies, fine-grained access control and support for stateful services. Future versions of Marathon will take these capabilities even further, bringing advanced features around networking, auto-scaling, privacy and more.
And if users want to bring these capabilities to non-Docker containers, or even to applications not packaged as containers, Marathon supports them, as well. For the ops team, this is a really big deal. Marathon, running on the DCOS, provides a single, shared platform for running whatever types of applications a company has in a highly available, highly scalable and minimally complex environment.
Runtime infrastructure and "Day 2 operations"
One often overlooked part of the container orchestration discussion is that the infrastructure running containers also has to be rock-solid. It, too, should:
- Be highly available.
- Be scalable.
- Provide automatic detection of, and recovery from, failure.
- Simplify common operational tasks such as scaling up or scaling down services.
- Allow operators to easily perform regular operational tasks such as maintenance, patching and adding/removing nodes to the cluster.
These things are often overlooked because the companies pushing some of these products start and stop their thinking at the container level. However, providing rock-solid infrastructure is where the Mesosphere DCOS shines. Its Apache Mesos core, complemented by the enterprise-grade features we have built into the DCOS, means that it will keep everything from Docker containers to Apache Cassandra clusters up, running and scalable with minimal maintenance required.
At the end of the day, containers cannot and should not be separated from the infrastructure on which they run. Nor should the operational expectations for applications running in containers be somehow reduced just because there is a new type of architecture in place.
With the combination of Marathon, Velocity and the DCOS, developers can confidently develop applications and push them into production, knowing that their applications will be ready for primetime. Operators can now be more confident that applications and the infrastructure they run on are reliable, secure, compliant and even easy to manage.
Container operations is the future of application management, and Mesosphere is delivering it. Visit the Velocity web page to learn more about the technology and to sign up for early access.
Visit the following pages to: