Building Infrastructure For Third Platform Apps– Top Down Or Bottom Up Approach?
World enterprises are struggling these days with a big question: how should they move forward to next generation third platform applications? In some of these organizations the transition stems from a business need; in others, the development teams are pushing for the change. While many development departments within today’s organizations are already starting to adopt new third platform development tools, their IT departments find themselves in a strange situation.
Developers are starting to take infrastructure decisions and are sketching a new IT horizon where apps determine what the infrastructure will look like. These developers are actually taking the “we don’t care” approach, asking for big “White Boxes” to carry their application loads, while saying “we will take care of everything”.
This Facebook, Google and Amazon-like approach is good when it comes to huge organizations that develop mass scale applications. However, for the most part it does not fit the typical enterprise that has limited development and IT teams.
One of the most common approaches for today’s third platform apps is to use software containers to build a microservices-based application. Software containers are a great way to package and ship applications without needing to rely on a complex infrastructure. However, most container management systems are focused on placement, shared API and process management, and still need a general purpose operating system (O/S) to run the container loads. This general purpose O/S hosts the “Container Host” software that runs the containers as separated processes.
Some companies have created a stripped down O/S that has only the basic functionality of running containers. Among these solutions are: VMware’s Photon OS™, Tectonic Core OS, Project Atomic (sponsored by Red Hat), Ubuntu Core and Microsoft’s Nano Server. So when going back to the traditional enterprise dilemma of how to keep up, there are two ways of deploying containers in an organization:
Top Down: A developer-centric approach. The developer connects to a container API to build and push new apps and solutions. On the infrastructure side, there are physical servers running container hosts on stripped down or general purpose operating systems.
Bottom Up: A new approach that distributes the responsibility and sponsorship between the developers and the IT departments. This approach acts in a “DevOps” manner by empowering the developers with the ability to architect the app via a well-known API. Likewise, IT is tasked with building a dedicated containers infrastructure platform aligned with company policy and rules.
There is no right or wrong here!
The top down approach fits mostly corporations that migrate their apps to the third platform and need to build a mass scale app to serve billions of users (e.g. Facebook, Google, Amazon). These corporations usually build their own flavor of container host and tools for deployment and maintenance. They usually also handle the hiring and developing of people with the necessary skills to build such a platform.
The bottom up approach fits organizations that have not yet adopted containers as a part of a wider organizational strategy, and still need to maintain company IT policy while supporting existing applications and infrastructure. These companies usually rely on standard solutions that have a known architecture and full support from the supplier vendor, as they see no value in developing their own.
Taking into consideration the virtualization revolution that created a new “Data Center Operating System” to minimize the dependency on the general purpose O/S, we can use the same architecture to help enterprise organizations in the transition from the Second to the Third Platform.
The first step will be to run containers side by side along with the second generation applications. Most organizations will develop their mobile and internet apps using containers while continuing to run their core applications on a second platform solution, most likely integrating the two on the same infrastructure. So it is crucial for the organization to have a platform that can host second platform apps (monolithic) side by side with third platform apps (microservices).
VMware’s vSphere Integrated Containers will fill in the gap, allowing these two technologies to work together on the current most popular Data Center Operating System known as VMware vSphere:
This can be a first step for developing tomorrow’s applications on today’s infrastructure, enabling a smooth operation process utilizing the current automation, operation and business management tools. As organizations move towards the third platform, and container usage grows, the need to consume multiple containers and SAAS platforms (Pivotal Cloud Foundry, Kubernetes, Swarm, Mesos) increases.
There are clearly a lot of choices for orchestrating, clustering, and managing containers. That being said, the choices are generally well differentiated. While in vSphere Integrated Containers we use lots of vSphere features to automate and manage containers, when running native third platform apps, that is usually handled by the app components. Features such as vMotion, DRS, HA, etc. will be developed and handled by the app itself in a “Build To Fail” methodology where each app component can be destroyed and provisioned in a matter of seconds without interfering with the whole app. Other features such as automatic scale in and out and high availability are also part of the app architecture.
VMware’s Photon Platform is the first enterprise-ready solution based on an industry proven microvisor* and controller using all of the experience and knowledge that VMware has gathered for the last 15 years running enterprise production loads at scale.
The Photon Platform manages large-scale implementation of microvisors and has published multiple sets of container and SAAS management APIs. A central controller manages the creation of a Kubernetes, Mesos or PCF cluster allowing developers and IT to run containers securely and at scale. These two solutions give an enterprise organization the ability to start developing their third generations apps today, and build the suitable infrastructure to run them in the future.
Comparing the two solutions, vSphere Integrated Containers has more potential as a short-term option for organizations looking to get started with containers. The convenience of using a familiar and proven management tool like VMware CMP and the whole SDDC approach will give any organization a fast track with which to experiment with a relatively new technology that is too tempting for IT shops to ignore. VMware Photon Platform builds a clear path to the future architecture of running third platform apps– still with the same tools and VMware SDDC approach managed by the same CMP tools, but optimized for containers, and ready for the mass scale and use of these loads. Together these products will help customers who are adopting container technology today and thinking of large scale third platform apps architecture in the future.
Aviv Waiss is a Lead Systems Engineer at VMware. He is a Cloud Management Platform and Cloud Native Apps Specialist, and a Member of the CTO Ambassador Program.
*Short for micro-hypervisor.
A microvisor is a small, security-focused hypervisor that works with the VT (Virtualization Technology) features built into Intel, AMD and other CPUs to create hardware-isolated micro virtual machines. It is a core compute hypervisor featuring “just the right level of functionality” (e.g., no HA and vMotion) to run cloud-native applications at scale. The VMware ESX microvisor utilizes VMware’s CMP (Cloud Management Platform), NSX, and vSAN technologies to assure a production-ready containers infrastructure platform that can be managed by IT systems with proven and known tools, while giving developers the best API access to industry-standard containers development systems.
To better understand how this solution can help Organization IT to evolve, watch Aviv’s Cloud Native Apps Demystified Presentation.