Jump to content
What is a private PaaS, and when should I deploy one?
Submitted by dianemueller
Posted Oct 04 2011 11:42 AM
The concept of a cloud computing system refers to the idea of on-demand, self-service elastic infrastructure. When talking to the accounting department, "cloud" often is translated to mean acquiring IT resources over the Internet (cheaply) through monthly expenses rather than heavy capital investments. But cloud computing isn't simply an outsourcing of IT resources. It's about delivering cloud-scale efficiencies to the enterprise across a diverse ecosystem of technology stacks on-demand.
A cloud infrastructure can provide access to applications such as email (ex: Gmail) or customer relations management tools (ex: Salesforce.com), which are considered Software as a Service (SaaS). Or, the cloud can provide a virtualized toolbox for developers to use to build and deploy their own applications (ex: Stackato or Heroku) through a Platform-as-a-Service (PaaS) model. Or, it can simply provide network access to traditional computing resources such as processing power and storage; this is the Infrastructure-as-a-Service (IaaS) model.
In addition to looking to add cloud-scale efficiencies, many organization lack the IT resources to support maintaining multiple technology stacks. Often, they settle and standardize on a single technology stack — perhaps a Linux distribution, a choice of either Ruby or Java, MySQL and Apache Tomcat. And then the developers are forced to design their applications within these limitations.
Most Fortune 1000 organizations have a wide range of mission or business-critical applications deployed across their enterprises shared by multiple constituencies of users. From CRM and ERP to simple Perl scripts or long-running Python financial algorithms — these applications are built using a variety of languages, databases, frameworks and other technologies. These all consume IT resources that management would like very much to move to an on-demand, flexible infrastructure in order to reign in costs and get better utilization of IT hardware investments. This is where deploying a PaaS can help.
PaaS may be deployed privately or hosted on the premises of a third-party public cloud IaaS provider to be shared among a limited number of trusted partners., i.e., a limited community cloud.
Public vs. private clouds
Public clouds have the potential to aggregate an unprecedented quantity and variety of confidential corporate and customer data in cloud data centers. This potential vulnerability requires a high degree of confidence and transparency that cloud IaaS providers can keep data isolated and protected. Also, cloud users and administrators rely heavily on web browsers, so browser security failures can lead to cloud security breaches. For these reasons, many organizations have hesitated to migrate their data to the public cloud and instead look to apply the cloud capabilities of rapid elasticity and resource pooling internally on their own private cloud infrastructures.
In a private cloud infrastructure, an organization's IT resources are pooled and abstracted into logical building-blocks of storage, network, and server units, creating virtual datacenters. These resource containers are then dynamically allocated to your various applications, governed by defined business rules and user demand with the security of your own managed environments. Unlike public clouds, private cloud servers can be stored even during shutdown. They don't disappear, and can be started back up whenever you need them.
Building your own PaaS and keeping it private
PaaS' most common deployment to date is as a fully hosted and managed service outside of the corporate firewall. These are known as public PaaS systems and they're offered by companies like Heroku, DotCloud or Cloud Foundry running on the premises of a third-party cloud IaaS provider, such as Amazon EC2 or Rackspace.
However, once you have a private IaaS layer in place within your organization (using a hypervisor like VMware vSphere, Citrix XenServer, CA AppLogic, Microsoft Hyper-V, or another), deploying a PaaS on it allows you to securely provision, monitor and manage all your applications' environments from a single entry point behind your corporate firewall on your own hardware. A private PaaS can give your developers both the autonomy and the stacks they require to deliver today's diverse software applications to your organization.
Deploying your own private PaaS allows you to create the scalable stack (OS, web servers, databases, web frameworks) required to manage the software applications your organization wants to deploy and ensuring this is done in a secure manner behind the corporate firewall as on-demand self services. Whether these are new applications developed in-house, existing applications, or third-party packages, they all have a diversity of technology requirements that IT teams and devops must provision and maintain.
The PaaS layer provides an automated and managed mechanism for provisioning secure containers populated with the particular scalable technology stack required to deploy an application. Every component in this stack is horizontally scalable and self healing, meaning you can add as many copies of each component as needed in order to support your application. Everything is decoupled, it doesn't even really matter where each component lives, things could be spread across the world for all it cares.
PaaS gives developers and IT professionals the freedom and flexibility to mix and match languages, databases, caching and messaging components without the need for additional servers or infrastructure. It does this by creating virtual "containers" on-demand that contain the technology stack in which the application runs and can be accessed securely by users. With a PaaS, your application's components are highly decoupled and your entire application is distributed across multiple instances. Every component in your applications' stack is protected by health checks and automated failover.
Today's PaaS application platform offerings will enable a wide range of technology stacks, let developers mix and match the services, frameworks and databases that best fit the task at hand rather than limiting developers to a single stack. Trying to make the application work with the pre-ordained stack because IT has deemed it would be too costly to support a diversity of technology eco-systems is now a thing of the past. A PaaS provides a virtualized toolbox for developers to build and deploy their own applications in secure scalable containers without adding additional workload on IT departments, cutting down on the bureaucracy involved in requesting IT resources to build the environments by hand.
dturkenk : Oct 06 2011 04:21 PM
Great description of the value of a private PaaS. For those organizations that can't leverage the public cloud (whether because of performance, regulations, security), having an internal PaaS definitely reduces the IT burden of managing applications.
A PaaS can be much more than a deployment platform, though. While deployment of application components is a key facet of a platform, you'll see a lot more value from a platform that acts as the execution engine as well.
Being a container that runs the application allows the platform to provide a lot of value-add around scale-out, recoverability, and, especially, developer productivity - with things like built-in caching or NoSQL stores, etc.
PaaS providers in that second arena (i.e. that do more than just deploy your code) include things like CloudFoundry from vmware (Java/Ruby/Node.js), the Apprenda Platform (.NET), and Microsoft Azure (.NET). Right now, only Apprenda is truly private in that you can buy a product that you can use on your own infrastructure, but I'm sure the other providers are working on that.
Disclaimer: I work for Apprenda, but the opinions expressed here are my own.
Alternative solution by activestate2010
Posted Oct 25 2011 04:31 PM
Building on dturkenk's comments... Stackato by ActiveState is also a private PaaS option, which is a commercially supported/enterprise-ready option that is built on the Cloud Foundry open source project. (Disclaimer: Diane and I work for ActiveState).
Alternative solution by haddadc
Posted May 13 2012 06:12 AM
Hi Diane, Private PaaS does support application usage "by creating virtual "containers" on-demand that contain the technology stack in which the application runs". As adoption scales, many organizations are finding container sprawl a significant cost factor. A multi-tenant, shared container PaaS brings cost efficiencies to a private PaaS environment. My calculations specify a 659% cost savings in certain deployment scenarios. The PaaS TCO details can be found at http://blog.cobia.ne...container-paas/