Often, the key to a successful deployment is choosing the right tool for the job. Certainly, choosing the wrong tool is a recipe for frustration. This is especially true when it comes to digital transformation and the move to cloud-native applications. There are a wide variety of approaches to application modernization – ranging along the spectrum from app repackaging to replatforming to full-on refactoring. And every time you turn around, there seems to be a new tool or project designed to make your life easier. At times the choices can seem overwhelming. Ultimately, what you want to achieve is simplicity – the simplest path to business value – and knowing which tool(s) to use for a particular project will go a long way toward getting you there.
The Jobs:
Let’s start simple – Application Repackaging – which aims to repackage applications (or application components) into containers. Take a traditional 3-tier application for example. You can often gain significant operational benefits by containerizing one or more tiers of a 3-tier application. Containerization enables:
Application repackaging does not aim to change the application architecture, and as a result doesn’t dictate use of a new application platform or framework. Often application repackaging is the simplest and fastest way to achieve operational efficiency with containers.
A derivative of app repackaging is ISV-delivered applications that come pre-packaged in containers. A number of ISVs ship their apps in containers to simplify app deployment (the container holds the application plus all its dependencies to deliver a trouble-free install process).
Application Replatforming involves taking an existing application, containerizing it and moving it to a new container framework like Kubernetes. Replatforming can provide consolidation benefits allowing you to modernize traditional applications and run them on the same container framework as true cloud-native applications.
Next is Application Refactoring which typically involves re-architecting all or parts of a monolithic application using cloud-native principles to a produce a distributed, microservices-based, stateless app. Refactoring large monoliths provides benefits such as better scalability and availability, but often can be quite resource intensive. As a result, many organizations choose to incrementally refactor their monolithic apps by deploying microservices for new functionality and converting existing modules into microservices over time.
And, of course, there are those applications that are architected and developed as cloud-native applications from the get-go. Cloud-Native Applications are designed for availability and scalability. As in app refactoring, cloud-native apps are distributed, microservices-based, stateless, and highly orchestrated.
The Tools:
VMware provides a range of solutions to address the spectrum of app modernization use cases.
Sphere Integrated Containers (VIC) – VIC is a vSphere service that serves up a container to an IT admin just like vSphere serves up a virtual machine and uses vSphere as the control plane. It also includes an integrated management UI and container registry. By deploying containers as lightweight VMs, vSphere Integrated Containers is best suited to long-running services that need strong isolation and high throughput (e.g. web servers, key value stores, databases). It is targeted at application repackaging as well as customer and ISV applications packaged in containers. Additionally, vSphere Integrated Containers presents only a container runtime API, not an orchestration layer, and is less suitable for scheduling large numbers of small containers. See blog post announcing the latest release and availability of VIC version 1.2.
VMware Pivotal Container Service (PKS) – VMware PKS will deliver a production-ready container solution augmenting the orchestration capabilities of Kubernetes with technology and support from Pivotal and VMware to provide essential day-1 and day-2 operational capabilities. PKS will provide a simple way for developers to provision scalable, reliable containers without the overhead of configuring their own Kubernetes clusters or underlying infrastructure. It will be easily updateable to keep pace with the latest Kubernetes releases and provide constant compatibility with GKE (see Google Cloud blog). It also include deep NSX integration for connectivity and security and the Harbor registry for container image management. PKS will be targeted at traditional application replatforming– running data services like ElasticSearch, Spark andCassandra as well as custom and ISV applications packaged in containers. Based on the open source KUBO project, PKS is a joint development from VMware Pivotal in collaboration with Google Cloud.
Pivotal Cloud Foundry (PCF) – PCF is a full-stack cloud-native platform for deploying and operating cloud-native applications. Operating at a higher level of abstraction than a container orchestrator, PCF is for customers who want to trade developer awareness of the infrastructure for speed and agility. PCF automates CI/CD deployment, containerization, networking, operating system images and more so developers don’t need to spend time on tasks that don’t add value. PCF includes the enterprise readiness and operational characteristics of PKS, plus a complete set of developer tools and services allowing custom application developers to focus on building scalable and highly-available applications.
Customization and Perspiration:
A big part of choosing the right tool for the job comes down to your need for customization and how hard you’re willing to work for it. vSphere Integrated Containers provides a secure container instance. There is ample room for customization on top of that, and it is a good choice for repackaging traditional applications. But for applications that require a high-level of orchestration, the amount of do-it-yourself (DIY) effort begins to add up.
VMware PKS will provide a container service (including container orchestration, container scheduling, load balancing, health monitoring and self-healing capabilities). But it will still require DIY when it comes to building an application platform (container creation, services deployment/ management/ binding, CI/CD integration, etc.). Of course, developers will have greater choice and flexibility in defining exactly what that platform looks like.
PCF provides a complete, ready-to-use application platform. No DIY. The platform manages container creation from source code, services and service binding, CI/CD integration, and more. Developers simply push code and the platform takes care of the rest.
Choosing the right tool is important. Different applications and situations will call for different approaches. Having the right tools at your disposal is the key to success when it comes to modernizing your organization’s applications. Whether the job requires VIC, PKS, PCF or even a third-party solution, vSphere provides enterprise-grade functionality to help you deliver value in the fastest and most efficient way possible.