With the new 6.0 release of our flagship Enterprise Platform as a Service (PaaS), we’ve included support for natively running Docker containers on Apprenda. We are hardly alone in embracing Docker, but we come at this from a different perspective than most.
Apprenda has actually always used containers behind the scenes to isolate and more efficiently run enterprise workloads. So from a technical standpoint, this new capability was a natural extension of our current architecture.
Docker is unique, however, because unlike other container technologies or hardware virtualizations, developers directly produce containers as the actual artifact of their software-build process. While providing tremendous flexibility, portability, and freedom to developers, our enterprise customers have been struggling with how to provide these benefits to their internal application teams safely, securely, and in a manageable way.
Let’s take a look at four ways Apprenda 6.0 specifically enables enterprises to do this today.
Infrastructure Segmentation and Phased Rollout
Docker has some specific OS-level requirements and not all servers within a typical enterprise data center can run Docker workloads. Initially, most of our customers will want to set aside a handful of servers capable of running Docker to test things out and perhaps onboard a few development teams to pilot the technology. Instead of having to build a completely new environment, Apprenda enables you to create sub-pools of infrastructure to host new or emerging technologies. Application deployment policies can automatically ensure that Docker workloads only land on servers specifically assigned to run Docker. You can also set it up so that only dev/test workloads can run Docker or only certain dev teams are given access to the capability.
Application Composition Controls
Flexibility and agility for developers are great but enterprise organizations need to ensure they know what is being deployed and have some ability to influence or control it. The trick, however, is to enable this level of control without reintroducing the friction and developer pain that they set out to eliminate in the first place. With application bootstrap policies, Apprenda can inspect, modify or allow/disallow the deployment of an application based upon the payload. This is more than just controlling a set of Docker base images because it enables you to control all artifacts and even “auto-fix” them for developers rather than just flat out rejecting them. You can also integrate this capability with Docker Hub Enterprise to do simple image enforcement. Some customers use bootstrap policies to enforce a “whitelist” of allowed artifact patterns for standardization reasons while others use a “blacklist” approach to catch known problems.
In one example, many of the enterprise organizations we talk to require that the PaaS integrates with their WebSphere application server image. These organizations are also interested in giving developers the power to run an arbitrary Linux process within Docker. Apprenda gives them the best of both worlds.
For those organizations that want application server images controlled by central IT, Apprenda allows developers to define WebSphere as the host. The platform then deploys the application to the standard WebSphere image that central IT made available. However, if the developer tries to deploy the application with WebSphere and other stack components as part of the configuration, Apprenda can intercept and modify using bootstrap policies so that the application is still deployed on the standard image.
Consistent Management of Workloads
Apprenda enterprise customers have been deploying .NET and Java applications on our platform for years, and Docker snaps seamlessly into place. Developers can continue to upload ASP.NET websites, WCF services, Windows Services, Java Web applications, and SQL Server/Oracle schemas as part of their composite application. With Apprenda 6.0, developers can now also include Linux Services, Docker Containers, and WebSphere artifacts as part of their apps. Everything else works the way it always has – resource policies, elastic scale, HA, logging, etc. Underneath, the implementations are completely different, but the experience is consistent for developers and operators. It’s the same developer portal, the same operators portal and the same CLI/API. This means you can also use our rich role-based access control system with these new capabilities as well.
Runtime Cloud Enablement for Applications
Docker makes it easier to deploy applications and make them portable, but at Apprenda, we’ve always been unique in our view that enterprise PaaS should help developers before the last line of code is written, not just afterwards. If you’re looking to build a horizontally scalable multi-tenant application, you’ll find that your code isn’t any less complicated with just Docker or deployment tooling like Chef/Puppet.
Apprenda enables developers to get sophisticated application pattern outcomes including multi-tenancy (at the application level) for Java and .NET, and we will be bringing this capability to Docker-based applications in the near future as well. We’ll also be able to automatically wire in authentication and authorization at the application level and have it integrate with nearly every popular enterprise system, as we do today for Java and .NET workloads.
These are just a few key examples of how Apprenda enables an enterprise to safely and immediately implement a Docker strategy.
While Docker is top of mind today, our industry continues to innovate at a breakneck pace. Rather than create meaningless false choices such as “Public vs Private”, “IaaS vs PaaS,” or “PaaS vs Containers,” Apprenda customers should know that we will continue to embrace and integrate new application and infrastructure technology wherever it originates if it helps them meet their business goals.