While many IT decision makers are familiar with how Software as a Service (SaaS) can benefit their organization, PaaS (Platform as a Service) has become equally as popular. Add IaaS (Infrastructure as a Service) to the mix, and it often raises questions – how do you know which one is best for your needs, and how do these cloud services work together? When building an application, you can choose any combination of services that allow you the greatest combination of flexibility and resource control to meet your requirements.
Think of IaaS, PaaS and SaaS as “stacks” that can either reduce the level of effort required to build your application, or provide more flexibility.
For example, IaaS provides raw infrastructure-like compute and storage resources, providing the most flexibility while requiring the most hands-on management. Developers interact with the operating systems directly, build/use their own frameworks and consume infrastructure resources directly.
The image below shows the relationship of your application to the services provided by the IaaS provider.
PaaS, on the other hand, will provide a development platform (as a service) to create new applications. Think of it as a cloud-based middleware: it provides services beyond the raw operating system and abstracts the underlying resources from you. The developer doesn’t have to manage compute resources; instead she gets to build on frameworks specifically provided for her application. For small dev teams without infrastructure management capabilities, this is a great way to reduce the “time-to-usefulness” of their project, but it restricts the flexibility since they must work within the frameworks provided.
PaaS services typically use an underlying IaaS service; e.g., Acquia (Drupal platform as a service) and Heroku (Ruby on Rails platform as a service) both use Amazon AWS as a foundation to their platforms. As an IaaS provider, Internap has similar customers that provide a Platform-as-a-Service for developers who want to develop code against a managed framework rather than manage the frameworks themselves.
The following example illustrates what a PaaS provider might offer to your application.
Tune in next time as we discuss how SaaS fits into the cloud infrastructure landscape, and how using a combination of these services can provide you with the desired level of control and flexibility for your applications.