With Containers as a Service (CaaS) IT organizations and developers can work together in a secured and managed application environment to build, ship and run their applications anywhere. In last week’s blog post, we introduced Containers as a Service and discussed how it can provide a modern platform. In this post, we discuss in more detail the characteristics that uniquely power CaaS.
The reason developers don’t adopt locked down platforms is because software development is an exercise in both discovery and creation. It is critical to keep this in mind when considering application platforms.
What Does It Take to Be Everything Agnostic?
As the core design principle, this becomes the lens by which we look at requirements for each layer of the application stack enabled by CaaS. Let’s dig into these one at a time.
Provide Tooling for both Developers and IT Ops
Developers and IT ops have differing needs but in order to ship more software faster, they MUST work more closely together. The abstractions created by Docker allow for portability across networks, storage and compute without having to worry about the application. For developers, this abstraction allows them to focus on how applications should behave versus what the physical infrastructure can support. For IT ops, this empowers them with flexible control over the infrastructure that wasn’t previously possible. Additionally, IT ops is able to provide secure and trusted base content back to developers – creating a bi-directional application pipeline. CaaS is a unifying framework connecting dev and IT ops together – each responsible for their separate areas of concerns but sharing a common view.
Provide Tooling Across the Entire Application Lifecycle
A system cannot bring together developers and IT operations without supporting the entire application lifecycle. With the Docker mission to build, ship and run application – CaaS is delivered by integrating a suite of products together with a common API so what is built in dev is simply and quickly deployed to production without requiring any changes to the application code. Without replacing specialized systems like test integration or release management, CaaS allows the flexibility to augment those workflows for a specific team’s needs.
Any Operating System
Who defines themselves as a developer? Instead of building TO an operating system, developers start with their language/framework of choice. The OS fundamentally should not become a potential point of lock-in. Originally created for Linux, Docker and Microsoft are bringing support for Windows Server. With this CaaS can bring to bear an application with a mix of Windows and Linux services.
The only choice your developers should be making is “which language do I want to use?” not “which languages am I allowed to use?” Languages and tooling are always evolving and limiting developers from using newer capabilities only diminishes the quality of software or results in shadow IT scenarios. Docker does not believe in prescribing a set of languages to developers. CaaS is designed to facilitate the use of any language and version, in your application without conflict.
Restricting this portability creates roadblocks in agile development and ultimately slows down the pipeline to deployment. Also, once a critical mass of applications have been deployed to a specific infrastructure and conformed to a set of APIs, it is extremely difficult to migrate those applications somewhere else. Docker believes that applications must be portable – across environments and across infrastructures. CaaS is not confined to a specific infrastructure but sits across any number of infrastructure providers that make up your environment. If a solution is not infrastructure-agnostic, there is no way to ensure portability across environments – whether that is from development to test clusters to production systems in a datacenter or to the cloud. CaaS is also the only option for managing workloads across clouds.
Open APIs, Extensibility and Broad Ecosystem Support
Without these three things, what you have is a software-walled garden. This is problematic because you often don’t have the luxury of retooling the rest of your environment to adopt a closed, black box system. Why have an isolated island of applications within your IT infrastructure that you need to manage differently? Docker emphasizes providing open APIs and a plugin model to simply work with the environment you have today and allow changes without breaking the applications. Additionally, this openness invites and cultivates a robust ecosystem to provide choice and specialized capabilities to your CaaS.
CaaS Today, CaaS Tomorrow
The list of characteristics may appear long but when listening to what the experienced Docker community has been doing and what those newer to Docker are trying to accomplish, these characteristics rise up as critical needs to accommodate the current and future state. Flexibility and portability is the key because software is always changing and none of us can predict the future. New methodologies, tools and frameworks are emerging all the time. So the components you use today will likely be very different than the ones you choose down the road.
Those who have already tasted a bit of this freedom are not turning back — and are spreading the word. The everything agnostic approach is what guides CaaS as the unifying framework sitting across multiple infrastructure, clouds, operating systems, languages, tools and even teams. With this flexibility, every company can have a CaaS that is right for their business and their applications.
In the next CaaS blog post, we will discuss the Docker technologies and capabilities that power CaaS in your application environment – stay tuned!
Here are some resources to help you learn more about CaaS:
- Modern Application Architecture for the Enterprise
- Learn more about our Server and Cloud based solutions
- Get a free 30 day trial
The journey to CaaS starts with a single use case. We would love to hear about your application based initiatives and how Docker and containers are enabling them.
Learn More about Docker
- New to Docker? Try our 10 min online tutorial
- Share images, automate builds, and more with a free Docker Hub account
- Read the Docker 1.10 Release Notes
- Subscribe to Docker Weekly
- Sign up for upcoming Docker webinars and Docker Online Meetups
- Attend upcoming Docker Meetups
- Register for DockerCon 2016
- Watch DockerCon EU 2015 videos
- Start contributing to Docker