PaaS technology was first introduced by Salesforce.com, Heroku and Amazon Web Services (AWS) back in year 2007. After this Google launched App Engine in 2008 which was a free trial version. Overnight, these initiatives transformed the online cloud computing space into a complete virtual industry. At that time PaaS was not introduced as an extension of SaaS. It was offered as a complete solution for enterprise customized Research and Development (R&D) middleware platform. Now PaaS technology has evolved and not only offers application software but also covers both application and database services. PaaS cloud technology has changed the development, testing and deployment processes of service-oriented architecture (SOA). It has also provided ease in the application development process of whole SOA architecture
PaaS cloud computing is the middle ground between Infrastructure as a Service (IaaS) and Software as a Service (SaaS). With PaaS clouds consumers don’t determine server size, storage (at least directly you may be able to choose how much you want), networking, or even the operating system installed like they can with IaaS. Instead, consumers use the resources provisioned by the provider, and can utilize any programming language, utility, or tool provided by them to deploy their own applications. Consumers can thus focus on their application and not worry about all the underlying infrastructure, backups (potentially), etc. Be sure to read the terms and conditions and service level agreements (SLAs) provided by the cloud provider to ensure that your needs are met, especially with regard to any backups, uptime guarantees, etc. With SaaS, on the other hand, you only get an application to run (think email for example), without access to programing tools and other platform services provided with PaaS. The advantage of PaaS is that developers don’t have to worry about creating the infrastructure needed to write apps and worry about how big the servers need to be, or how many they need, or possibly even where they are located. With PaaS none of those are issues a developer can just go to work and interface with the services he or she requires. The downside is that if an application is running slowly or storage is a bottleneck, there isn’t much that can be done to fix the issue, as you have no control over those things.
Platform-as-a-Service platforms are implemented in different styles. PaaS Service providers acquire different approaches to offer better services.
One of the most popular categories is “SaaS Environment Anchored PaaS”. Such PaaS cloud vendors have SaaS as their core business services. To grow their business capabilities and brand, the PaaS vendors develop an ecosystem that permits independent software developers to offer applications on top of the cloud platform. The next category is “Operating Environment Anchored” PaaS, where PaaS is tied to an operation environment that makes it easier to operate and perform specific actions within that environment. Such PaaS vendors offer the entire foundations, e.g. the OS, networking, storage and so on. Moreover, it offers the tools for application development.
The third category is “Open PaaS” that is aimed to encourage an open process and environment which is not tied to a particular cloud computing implementation. Open PaaS providers permit developers to bring their own platform to the cloud which leads to flexibility. However, it can add more cost and complexity. More and more businesses worldwide have recognized the significance of PaaS technology solutions.
Though, businesses are confused between adoptions of PaaS technology. PaaS technology is available in different flavors, like private PaaS (hosted in-house) or public PaaS cloud. Private PaaS demand extra set-up cost whereas public PaaS cloud system has security, privacy and other issues. Transition between private and public PaaS is not so easy. So the solution is Hybrid PaaS cloud. It is a blend of private and public PaaS cloud. Hybrid PaaS offers more businesses and performance flexibility. Currently, the cloud market is filled with the number of PaaS service providers. Each company is trying to capture the maximum market share with maximum cloud services. So, the number of companies has started offering PaaS services beside the established IaaS or SaaS market. Most of the companies have already converged on this space. Like, Amazon's Elastic Beanstalk or the Relational Database Service moves up from the IaaS layer, while some companies like Salesforce's Force.com which moves down from the SaaS layer. But on the other hand, some companies took new initiative, like Google with App Engine and Microsoft with Windows Azure. However, there are also some pure players who are offering pure PaaS services like Engine Yard. Furthermore, in near future we are expecting more and more new companies investing and initiating PaaS services due to its potential high market acceptance rate.
Another reason is the role of open standards as well as the open source of PaaS services. In contrary to IaaS where the Amazon has developed a bit of a de-facto standard, PaaS is probably turned out to be more and more de-jure (open standards). IBM recently declared PaaS capability named “Blue Mix” that is a 1 billion project. While based on open source standards RedHat's “Open Shift” PaaS platform is also turning out to be a great active future contributor to PaaS stated that PaaS has transformed the ways of dealing new technology challenges like web based computing, global software development, open-source development and outsourcing of the major business process. This smooth application development process offered a great deal of ease for the people who involved with development of WOA (web-oriented architecture) and SOA. Because now they are able to decide where to host services and processes either outside or inside of the firewall system.
PaaS is the next most popular type of PaaS technology that is evolving as the next generation integration platform. This is designed for integrating cloud applications with one another. iPaaS also allows the application integration with on-premises and legacy applications. It is stated explicitly, an iPaaS is cloud integration PaaS which allows connectivity to SaaS as well as cloud services. Also it offers a safe method of accessibility for on-premises applications.
Different vendors may include other services as well, but these are the core PaaS services:
PaaS vendors offer a variety of tools that are necessary for software development, including a source code editor, a debugger, a compiler, and other essential tools. These tools may be offered together as a framework. The specific tools offered will depend on the vendor, but PaaS offerings should include everything a developer needs to build their application.
Platforms offered as a service usually include middleware, so that developers don't have to build it themselves. Middleware is software that sits in between user-facing applications and the machine's operating system; for example, middleware is what allows software to access input from the keyboard and mouse. Middleware is necessary for running an application, but end users don't interact with it.
A PaaS vendor will provide and maintain the operating system that developers work on and the application runs on.
PaaS providers administer and maintain databases. They will usually provide developers with a database management system as well.
PaaS is the next layer up from IaaS in the cloud computing service model, and everything included in IaaS is also included in PaaS. A PaaS provider either manages servers, storage, and physical data centers, or purchases them from an IaaS provider.
PaaS Core Architectural Transformations
PaaS Generations Since the PaaS technology market breakthrough, it has seen many transformations. Now, the evolution of PaaS cloud is moving towards container based application development or interoperable PaaS. The below part outlines some major transformations in PaaS technology and presented in the different generation pattern .
The first generation was based on classical fixed proprietary cloud platforms. Major PaaS providers of such technology at that time were Heroku or Azure.
The second generation was developed around open source solutions. In this generation open source PaaS providers like OpenShift and Cloud Foundry allowed clients to run their own PaaS (in the cloud or on-premise) which is already developed around containers based technology. Now, Openshift transferred from its own container model to the Docker based container model. The same transformation performed by Cloud Foundry through its internal Diego solution.
The present and third generation comprises platforms like Deis, Dawn, Octohost, Flynn and Tsuru which are built on Docker based container models. These platforms build around Docker from scratch and are deployable on public IaaS clouds or on own servers.
Uses of PaaS
Faster time to market
PaaS is used to build applications more quickly than would be possible if developers had to worry about building, configuring, and provisioning their own platforms and backend infrastructure. With PaaS, all they need to do is write the code and test the application, and the vendor handles the rest.
One environment from start to finish
PaaS permits developers to build, test, debug, deploy, host, and update their applications all in the same environment. This enables developers to be sure a web application will function properly as hosted before they release, and it simplifies the application development lifecycle.
PaaS is more cost-effective than leveraging IaaS in many cases. Overhead is reduced because PaaS customers don't need to manage and provision virtual machines. In addition, some providers have a pay-as-you-go pricing structure, in which the vendor only charges for the computing resources used by the application, usually saving customers money. However, each vendor has a slightly different pricing structure, and some platform providers charge a flat fee per month.
Ease of licensing
PaaS providers handle all licensing for operating systems, development tools, and everything else included in their platform.
Drawbacks of using PaaS
It may become hard to switch PaaS providers, since the application is built using the vendor's tools and specifically for their platform. Each vendor may have different architecture requirements. Different vendors may not support the same languages, libraries, APIs, architecture, or operating system used to build and run the application. To switch vendors, developers may need to either rebuild or heavily alter their application.
The effort and resources involved in changing PaaS vendors may make companies more dependent on their current vendor. A small change in the vendor's internal processes or infrastructure could have a huge impact on the performance of an application designed to run efficiently on the old configuration. Additionally, if the vendor changes their pricing model, an application may suddenly become more expensive to operate.
Security and compliance challenges
In a PaaS architecture, the external vendor will store most or all of an application's data, along with hosting its code. In some cases the vendor may actually store the databases via a further third party, an IaaS provider. Though most PaaS vendors are large companies with strong security in place, this makes it difficult to fully assess and test the security measures protecting the application and its data. In addition, for companies that have to comply with strict data security regulations, verifying the compliance of additional external vendors will add more hurdles to going to market.