Stackato Private PaaS Architecture

The Platform for the Agile Enterprise

Stackato is a platform that you can use to develop and deploy web applications. Stackato combines the flexibility offered by direct virtual machine (VM) access on infrastructure-as-a-service (IaaS) with the highly automated configuration provided by PaaS. Computing resources are shared efficiently and securely by giving each application its own Docker container which can be extensively customized to suit the application it is hosting. 

Elements of Stackato 

These are the following four roles in Stackato: 

Cloud Controller: Responsible for directing all of the elements of the system. The attached Health Monitor keeps track of DEA availability. All Stackato VMs communicate with the Cloud Controller over NATS, “a lightweight publish-subscribe and distributed queuing messaging system.” This system handles the orchestration of the components and sets up other communication channels between components as appropriate (e.g. TCP connections between apps and databases). During cluster configuration, all VMs are connected to the Cloud Controller via NATS. Stackato Platform-as-a-Service (PaaS) Architecture
Router: maps application URLs to the application instances running on the DEAs. Application users connecting from the web are redirected transparently to an internal URL and port. Connections from Stackato clients are routed directly to the Cloud Controller. 
DEAs: the worker nodes of the system. Each hosts multiple applications within separate Docker containers. Application droplets are pulled from the Cloud Controller and launched inside a pre-allocated container. If a DEA becomes unresponsive for any reason, the Health Manager will notice and have the Cloud Controller redeploy the assigned applications to “healthy” DEAs. 
Services: database, messaging, file system, and other services can be automatically provisioned by the Cloud Controller. Services are bound to applications by way of a special environment variable that exposes the connection information in the application container. Any services requested by a user can be bound to any application deployed by that user, so multiple services can be bound to an application and vice versa. Services can be run on separate VMs, or can share VMs as required. Applications can use external services as well. For example, if an existing high-availability database cluster is exposed to the DEAs, the applications can connect directly, as it would in a traditional application hosting scenario. 
Find out more
Building your own PaaS with Stackato allows you to take full advantage of your virtualized infrastructure or use computing resources from an IaaS provider more cost effectively. 
Want to know more Stackato’s architecture? Download the white paper to learn more.