Stackato PaaS Architecture white paper


Published on

Published in: Technology, Business
1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Stackato PaaS Architecture white paper

  1. 1. Stackato PaaS Architecture: How it works and why.
  2. 2. www.activestate.comExtending your Cloud Infrastructure with a Private Platform-as-a-ServiceStackato Offers a Fast, Secure Way to Deploy Applications to your Private Cloud© ActiveState Software Inc. Published in 2013. Originally published in 2012.2Stackato PaaS Architecture: How it works and why.Stackato is software for creating a private Platform-as-a-Service (PaaS). It lets you use a moreadvanced and efficient application hosting model than Infrastructure-as-a-Service (IaaS) orcloud orchestration software.Traditionally, applications were hosted directly on the physical server that ran them, with onlythe OS layer between the application software and the “bare metal”. This method yielded someefficiencies because the software stack was relatively thin, but the model was more difficult toscale because physical server deployment is a very manual process.With Moore’s Law providing faster processors and more memory, there was room for anotherlayer of abstraction. With IaaS providers and private clouds, virtual machine (VM) instancescan be easily created on demand. This speeds up the process of server allocation, butapplications still require supporting software to be installed and configured on each server.The PaaS model provides an additional level of automation while sharing resources betweenmultiple tenants and applications. This is why application hosting from PaaS providers isgenerally less expensive than VM hosting from an IaaS. Typically PaaS providers have to limitthe range of runtimes and services offered and strictly control access to the system.Stackato combines the flexibility offered by direct VM access on IaaS with the highly automatedconfiguration provided by PaaS. Computing resources are shared efficiently and securelyby giving each application its own Linux container (using LXC) which can be extensivelycustomized to suit the application it is hosting.Elements of the Stackato SystemA single Stackato VM instance can run all services required for operation. This configuration,called a micro cloud, can be used on a desktop hypervisor such as VirtualBox or VMware Fusion toemulate a Stackato PaaS.This same VM is also the building block used to construct a fullscale PaaS cluster, using a simplecommand to assign a role to each VM and connect them together.
  3. 3. www.activestate.comExtending your Cloud Infrastructure with a Private Platform-as-a-ServiceStackato Offers a Fast, Secure Way to Deploy Applications to your Private Cloud© ActiveState Software Inc. Published in 2013. Originally published in 2012.3These Stackato roles are:»» Cloud Controller: responsible for directing all of the elements of the system. The attached Health Monitorkeeps track of DEA availability. All Stackato VMs communicate with the Cloud Controller over NATS, “alightweight publish-subscribe and distributed queuing messaging system.” This system handles theorchestration of the components and sets up other communication channels between components asappropriate (e.g. TCP connections between apps and databases). During cluster configuration, all VMs areconnected to the Cloud Controller via NATS.»» Stager: responsible for assembling all of the software required to run each application. Applicationprerequisites are bundled together in an application “droplet” ready for deployment to a Droplet ExecutionAgent (DEA).»» Router: maps application URLs to the application instances running on the DEAs. Application usersconnecting from the web are redirected transparently to an internal URL and port. Connections fromStackato clients are routed directly to the Cloud Controller.»» DEAs: the worker nodes of the system. Each hosts multiple applications within separate Linux containers.Application droplets are pulled from the Cloud Controller and launched inside a pre-allocated container. Ifa DEA becomes unresponsive for any reason, the Health Manager will notice and have the Cloud Controllerredeploy the assigned applications to “healthy” DEAs.»» Services: database, messaging, file system, and other services can be automatically provisioned by theCloud Controller. Services are bound to applications by way of a special environment variable that exposesthe connection information in the application container. Any services requested by a user can be boundto any application deployed by that user, so multiple services can be bound to an application and viceversa. Services can be run on separate VMs, or can share VMs as required. Applications can use externalservices as well. For example, if an existing high-availability database cluster is exposed to the DEAs, theapplications can connect directly, as it would in a traditional application hosting scenario.Message Bus (NATS)DatabasesMessagingServicesFileSystemsServicesDEA(s)(Droplet Execution Agents)Web UsersMonitoring Deploy & UpgradeCloudControllerHealth ManagerControllerStagerHTTP(S) HTTPSTCPRouter> ClientfromHP Cloud aPaaS powered byHow Stackato Works on a VM cluster or hosted with a public IaaS provider
  4. 4. www.activestate.comExtending your Cloud Infrastructure with a Private Platform-as-a-ServiceStackato Offers a Fast, Secure Way to Deploy Applications to your Private Cloud© ActiveState Software Inc. Published in 2013. Originally published in 2012.4Pushing ApplicationsThe Stackato client ‘targets’ the API URL of the Stackato system (e.g. andis authenticated with the ‘stackato login’ command. Users have a quota of application instances,services and reservable memory available to them.The ‘stackato push’ command initiates the process of deploying application code to Stackato. Theclient either prompts for configuration information (application name, required services, how muchmemory to reserve, etc.) or reads information from a local YAML configuration file.Stackato checks to see if all the resources required by the application are available to the user(within quotas, services and runtimes available). If they are, the client bundles the applicationdirectory and uploads it to the Cloud Controller.An application URL is created and any requested services are provisioned. A temporary container iscreated in the Stager, application dependencies are assembled, and a “droplet” package is createdfor deployment. The Cloud Controller queries the DEAs and requests app containers. An availableDEA starts a container and downloads the droplet, then executes any ‘pre-running’ hooks specifiedin stackato.yml before starting the application.The Health Monitor works in conjunction with the Cloud Controller to monitor DEA responsivenessand re-deploy applications to healthy DEAs as necessary.AdvantagesBuilding your own PaaS with Stackato allows you to take full advantage your virtualizedinfrastructure or use computing resources from an IaaS provider more cost effectively.Enterprises with their own private clouds can give their developers self-service access to applicationhosting resources in a safe way. Development teams get instant access to an application hostingservice that automates the assembly of the application runtime software, letting them focus ontheir code. IT staff are freed from manual configuration of individual application environments, butmaintain control of the cloud deployment platform.Smaller organizations relying on public cloud infrastructure can more efficiently share resourcesbetween applications, reducing the number of VMs required and driving down the cost of clouddeployment. Stackato also provides freedom from infrastructure lock-in. VM images are availablefor all major hypervisors, so if you change virtualization platforms, or move from a public IaaS to aprivate cloud, you can create a new Stackato cluster and import all user and application data.And finally, using Stackato to build your own PaaS keeps applications and data where they shouldbe, under the direct control of your organization.
  5. 5. About ActiveStateActiveState empowers innovation from code to cloud smarter, safer, and faster. ActiveState’s cutting-edge solutions give developers and enterprises the power and flexibility todevelop in Java, Ruby, Python, Perl, Node.js, PHP, Tcl, and more. Stackato is ActiveState’s groundbreaking cloud platform for creating a private platform as a service (PaaS), and is thecost-effective, secure, and portable way to develop and deploy apps to the cloud. ActiveState is proven for the enterprise: More than two million developers and 97% of Fortune-1000companies use ActiveStateís end-to-end solutions to develop, distribute, and manage their software applications. Global customers like Cisco, CA, HP, Bank of America, Siemens, andLockheed Martin look to ActiveState to save time, save money, minimize risk, ensure compliance, and reduce time to market.© 2013 ActiveState Software Inc. All rights reserved. ActiveState®, Komodo®,, ActivePerl®, ActivePython®and Stackato®are trademarks or registered trademarks of ActiveState. All other marks are property of their respective owners.ActiveState Software Inc.1700-409 Granville StreetVancouver, BC V6C 1T2stackato-sales@activestate.comPhone: +1.778.786.1100Fax: +1.778.786.1133Toll-free in North America:1.866.631.4581Learn More. Try Stackato.Are you interested in a private PaaS? Sign up for the Stackato Micro Cloud to try it today, or test it out on a Sandbox onAmazon EC2.Go to for pricing information? Contact us for options and a quote today.Web Servers Data & Messaging Services Languages Web Frameworks»» Nginx™ »» MySQL™ »» ActivePython® »» Django »» Sinatra»» Apache™ »» PostgreSQL »» ActivePerl® »» Pyramid »» Spring»» Apache Tomcat™ »» MongoDB »» Java™ »» Flask »» Rack»» Apache TomEE™ »» Redis »» PHP »» Bottle »» Standalone»» RabbitMQ »» Ruby »» Mojolicious »» Grails»» Filesystem »» Node.js »» Catalyst »» Lift»» Memcached »» Erlang »» Dancer »» Play»» Mono »» Scala »» Rails»» ClojureWhat’s Included in Stackato