PaaS is often confused with IaaS. PaaS combines the basic VMs and infrastructure from the IaaS model and adds software pre-configured in the VM to create a platform. One example of a PaaS offering is a VM pre-configured with a database management system, all ordered via a single service catalogue item. Platforms often consist of multiple VMs that form a multi-tiered application stack. Using the database example, a multi-tiered application might consist of two front-end web servers, two application servers, and a clustered database server—six VMs in total, configured as one application platform or PaaS offering. Note that you can also classify the hosting of web pages—sometimes across numerous data-centers and providers called content delivery networks (CDNs)—as a PaaS offering.
The PaaS cloud service provider has already done the work of properly sizing the VMs and installing the OS, application software, and tools necessary for the customer to begin using the system immediately after provisioning. Technically, a customer could have ordered one or more VMs from the list of IaaS offerings and then installed their own database software, applications, and other tools. However, this requires technical expertise and time on the customer’s part. Even more important is that in a PaaS offering, the cloud service provider now man- ages the entire platform, not just the OS, so all upgrades, patches, and support are handled by the cloud service provider. This is what makes PaaS unique com- pared to an IaaS offering. The figure below shows how the cloud provider has more operational responsibilities for PaaS and SaaS applications compared to IaaS.
Figure: Cloud provider versus customer roles for managing cloud services
SaaS includes many types of applications such as commercial off-the-shelf (COTS), open source, cloud provider–proprietary, and customer owned or developed. The application along with its required server, storage, and network infrastructure are hosted by the public cloud provider or optionally on a customer or third-party premises. Typical examples of SaaS include email services, collaboration, instant messaging, document libraries, and CRM.
Organizations often have too many applications to list, but it is important to remember that without significant recoding many legacy applications are not suitable for deployment in a cloud service. Many months or years of application transformation are often necessary. In the meantime, there are techniques used mostly in private, community, and hybrid clouds that make porting of simple legacy applications possible while a full recode of the more complex legacy applications is per- formed.
Because each application in a SaaS offering is unique in its infrastructure requirements, licensing, cost, and deployment models, there is no single solution that cloud providers use. SaaS providers take advantage of IaaS infrastructure. This means using a shared-storage system or SAN, virtualization of server hardware when possible, and redundancy and load balancing across multiple server farms and data-centers. SaaS cloud providers can implement dedicated server farms and applications for each consumer organization, but this is not nearly as cost effective as sharing a single instance of each application across a multi-tenant configuration. Additional benefits include the ability to deploy bug fixes quickly and upgrading software to the latest version, precluding the need to support numerous older software revisions.
Depending on the type of software, the manufacturer, the built-in security controls, and login and authentication systems, the cloud provider uses a combi- nation of native software tools and custom-developed programs to maintain separation (or multi-tenancy) between consumer organizations. This means one consumer cannot see data, user accounts, or even the existence of any other consumer.
Public cloud providers include very economical licenses for software used in their SaaS offerings. In an average cloud system, the cloud provider takes on the responsibility of purchasing and maintaining a pool of licenses for all software products, and often across dozens of software manufacturers. This means that consumers do not need to bring their own licenses or purchase traditional software licenses of their own; they simply “rent” a license from the cloud provider.
In a private cloud deployment model, you might not have as much leverage with software vendors to negotiate pay-per-user elastic licensing; however, it’s possible that you will be able to use existing Enterprise License Agreements (ELAs) that your organization might already own and prefer to maintain.
The table below shows a comparison of the common capabilities and limitations of Public Cloud SaaS applications compared to traditional IT or private cloud application hosting. As you can see, a public cloud SaaS offering might not provide the same level of customization or features as a traditional IT or private cloud based-application—this is mostly because the public cloud SaaS application is a shared system, whereas private and traditional is dedicated to one customer.
Table SaaS cloud deployment comparison
|Backend infrastructure (server, compute, disk) provided and managed by cloud provider||√||√|
|Licenses furnished by provider, included as part of the per- user fee to consumer||√||√|
|Application updates and patches by provider||√||√|
|Define backup schedule, perform restores||√||√|
|Self-service control panel to manage VMs||√||√|
|Provide OS patches and version upgrades||√||√|
|Selection of additional storage or application options||Limited||√|
|Ability to customize application features||Limited||√|
|Host legacy customer applications and maintain app operations||?||√|
|Ability to select from multiple tiers of storage performance||?||√|
|Ability to customize metering as well as billing, ordering, and approval processes||?||√|
|Meet consumer-specified security controls||?||√|
|Consumer has visibility into security logs, real-time security threats, and activities||?||√|
|Consumer has detailed real-time view into operating statistics, metering, and performance||?||√|
|Ability to specify where data is stored (by country or data-center facility)||?||√|
The key aspect of SaaS offerings is that the cloud service provider manages the entire system, including all servers or VMs, the OSs, and all the applications. Technically, a customer could order an IaaS offering (plain VM with an OS loaded) and install its own software applications, but then the customer is responsible for all upgrades, patching, and support. With a true SaaS offering, the cloud service provider handles all management of the system, including all future versions/upgrades. Across all cloud services, the consumer still has the ability to perform some configuration within certain limitations that the provider and application allow.