Paradigm shift in thinking come with a change in technology. Same goes for the shift that Docker initiated by making containers mainstream. It’s nice to run a container next to your virtual machines with vSphere Integrated Containers, but when you really want to achieve massive scale and speed, you need to re-think your architecture.
This has been the thought process behind Photon Platform at VMware. A platform created for these new types of applications native to the cloud. When the application wants to make full use of the capabilities that the infrastructure has to offer there needs to be some form of “knowledge” and interaction between the the two.
Most of these new applicatons either use Platform-as-a-Service (with infrastructure orchestration included) or some kind of container managment system or both. And this is specifically the use case for which Photon Platform was designed.
Photon Platform is not a new type of “containers management system”, but rather a platform to host these “container managment systems” and PaaS deployments on. With that in mind there are two major features in Photon Platform :
- API-first Model; Photon Platform has been created to integrate with other software applications. For that we need an API. One of the design fundatmentals has been that everything should be able to be controlled through an API. It is focused on the automation of infrastructure consumption and operations using simple RESTful APIs, SDKs and CLI tooling, all fully multi-tenant.
- Fast, Scale-Out Control Plane; The platform has been created for applications that are massively scalable. For that you need a platform control plane that is the same. Photon Platform has a built-from-scratch infrastructure control plane optimized for massive scale and speed, allowing the creation of 1000s of new VM-isolated workloads per minute, and supporting 100,000s of total simultaneous workloads
This post will explain to you the Photon Platform architecture. Below you’ll find a picture showing you the archictecture of Photon Platform.
I’ll describe the different components that make up Photon Platform. But to explain first, Photon Platform has been build on the same foundation as vSphere. ESXi currently is the hypervisor that is being used to host the workload. This means that all components that you know of that work with vSphere, also work with Photon Platform. Photon Platform has native integration with VSAN and NSX. These components will therefore be used to facilitate storage and networking withing Photon Platform.
Photon Platform Controller
The Photon Platform Controller is the core of Photon Platform. It is is the highly scalable control plane that is there to provide the resources to the tenants within Photon Platform. All things related to the Photon Platform are orchestrated by the Controller.
The controller itself consists out of a minimum of three virtual machines running the Photon Platform Controller. The controller can scale alongside the resource demand of the workload that it manages. So when workload increase on Photon Platform, more virtual machines are spun up with the Photon Contoller software. That way the control plane is expanded and can handle more resources.
The Photon Controller itself is hosted within a container. The container has all the components needed to manage the Photon Platform. Photon Platform Contoller manages the ESXi hosts by installin an agent in the hypervisor. This gives the Photon Platform Controller the control over the resources that are manages by the ESXi hypervisor.
Tenants, Resource Tickets & Projects
To manage resources Photon Platform makes use of tenants, resource tickets and projects. A tenant is a definition to define a boundary. Tenants can be departments in an organization, developers groups or different customers on a shared platform. It is a there to allocated a pool of resources to a specific set of users.
Each tenant is given a piece of total amount of resources within Photon Platform. This is done through a resource ticket. The resource ticket defines the maximum that the tenant can use from the Photon Platform. A tenant can use multiple resource tickets to provide resources to the users that consume the resources.
Resources are consumed through projects within Photon Platform. Projects are defined within a tenant to provide the resources to the users. Users of tenants can allocate the resources to projects at their own discretion. The user can then decide how to use the resources for the applications that run inside of it.
Within a project a user can deploy applications using contatainer management systems such as Kubernetes, Mesos and Docker Swarm.
Photon Platform Identiy Manager & Logging Server
Next to the Photon Platform Controller there are two other components. One is the Identity Manager and the other one is the Logging Server. Both are there to make sure that the Controller can work correctly.
The Identy Manager is based on Project Lightwave. It makes sure that users can be granted the rights to manage the resources within Photon Platform. So it makes it possible to access Photon Platform and to distribute the rights and access to the tenants that run within Photon Platform.
The other component is the Photon Platform Logging Server. Under the hood this is Log Insight, specifically tailord for Photon Platform. The platform, the tenants and the container management systems can generate a lot of log files.
Overall this should give you a good overview on what Photon Platform is and how it works. For more information see the Photon Controler Github page.