Recently, the Open Container Project was publicly announced with media praising both its diversity of sponsors and goals to build better software. Sponsors range from major enterprise players like Microsoft to Docker, one of the hottest startups in containers. The OCP charter says its mission is “to promote and promulgate a set of common, minimal industry standards around container technology.”
What is exciting to me as a solutions architect at Apprenda is that the software industry is now catching on to principles we have been embracing for years. Here is a quote from the OCP landing page regarding containers, with Docker as the reference technology:
“…there is widespread interest in a more formal, open, industry specification, which is: not bound to higher level constructs such as a particular client or orchestration stack not tightly associated with any particular commercial vendor or project portable across a wide variety of operating systems, hardware, CPU architectures, public clouds, etc.”
At Apprenda, we’ve helped our customers achieve the basic goals stated by the OCP and more through their Apprenda PaaS implementations for years. We know and understand that the application lifecycle is not revolutionary, but instead evolutionary. That’s why we proudly enable our customers to make even their legacy applications portable using PaaS. Enterprises want the benefits of containerization and portability now and for the foreseeable future.
The Open Container Project lays out five principles for what they call “Standard Containers.” These principles are:
1. Standard operations
4. Designed for automation
5. Industrial grade delivery
I’d like to address each of these principles and how they are handled by Apprenda, but before I do that, we must define what a container is, understand where the need for containers comes from, why they’re important, and when to use them.
Plain and simple, “container” is short for application container. It is sufficient to know that there are other types of containers but the one under discussion is the application container.
An application container can be said to offer a number of key ingredients including but not limited to:
● Process isolation
● Communication channels
Containers have been around for some time, especially when you consider other types of containers. The operating system itself could be considered a container type, which provides a common interface to hardware. Virtual machines (VMs) are another container type, which enables us to run multiple (and different) OS instances on the same hardware. VMs have even been setup to contain appliance-like functionality.
Application containers, such as servlet containers, have also been around for years. Unlike these other examples, today’s application containers have the promise of being lightweight. Lightweight application containers are becoming popular because of the need for security and isolation of runtime processes from each other.
The promise of lightweight containers is to make application components into standardized parts. Containers are important as a means for modern software architecture to improve scalability, portability, maintainability, extensibility and reusability quickly, for entire systems. Keep in mind that everything cloud is part of a larger system. Containers also promise to fill the need for finer grained control.
The industrial age was both simplified and enhanced by mass production of pluggable components on assembly lines. If it can be done for tangible goods, surely it can be done for the virtual bits that compose software. That’s the Holy Grail for software, and the industry has been “on the verge” of figuring it out for decades.
Shipping containers are standardized and designed to hold a wide variety of different shaped and sized items. Once the items are containerized, there are systems in place to manage the content in a common way; load them on ships, move them across land, open and close them, stack them, etc. Application containers are going to serve your software solution best when you have systems to manage them and that’s where PaaS comes in.
Apprenda enables enterprises to deploy many types of application components. They may live inside a Docker-style container or simply be hosted in a web-application container or some other service-host-runtime container. Apprenda already supports Docker containers and when the OCP achieves its ultimate goals, Apprenda will be there to handle all standardized containers as well.
The Apprenda PaaS has many use cases. Here are just 5 areas of functionality (based on the OCP 5 principles):
Apprenda enables developers and DevOps teams to start, stop, deploy, scale and manage containerized and non-containerized components in a standardized way.
Containers and applications are uploaded and managed using a consistent format regardless of the type, runtime or process that is implemented.
Apprenda enables containers and application workloads to be portable across any runtime that hosts the foundation of the container workload. The entire platform can be run in a multi-cloud environment, which lives in a private data center, Amazon Web Services, Azure, or any other public/private combination.
Designed for Automation
One of Apprenda’s major use cases is automation. Apprenda enables developers to scale and deploy apps untethered by traditional IT and Ops constraints while maintaining the full integrity of security, policy, and process required by an enterprise.
Check out our whitepaper on how Fortune 100 companies use the Apprenda PaaS for process improvement, CI/CD, ALM, and more.
The promise of containers is to standardize components. What seasoned developers and software architects understand is that componentization alone is not enough. Components are just a part of the application fabric, which also requires systematic production such as design, organization, communication, and management.
Fortunately there are already systems, like the Apprenda PaaS, to handle the proliferation of these exciting new containerized workloads. And we will continue to evolve to support even more container technology as our customers seek to use them.