In an ongoing effort to shed light on basic concepts within the Internet, this article is going to touch on a underlying principle of cloud based solutions, PaaS. This article will aim to answer the following questions:
- What is PaaS?
- How does PaaS Work?
- How is PaaS Different than Traditional App Development?
- What are the Major Benefits of PaaS?
- Who Should Utilize PaaS?
If you need a refresher on how the cloud works, check out "How the Internet Works: The Layers of the Cloud"
What is PaaS? - PaaS, or Platform as a Service, is the middle layer of the cloud wherein providers supply application and software coding tools to developers hosted within their own infrastructure in turn allowing said developers to create new applications without having to worry about acting as a system administrator. Developers will access application and software coding tools through a single or multiple pane interface. All hosted resources are cloud situated made available and scalable via multiple virtualization solutions. PaaS enables developers to build applications and programs without having to purchase, fix and upgrade expensive per seat software.
How Does PaaS Work? - For both the provider and the developer, PaaS works in the same way SaaS works. Providers purchase and host individual instances of tools which developers can use to build applications. Those tools are made virtual through various virtualization technologies - KVM, OpenVZ, Hyper-V, Xen - and are hosted within the providers data center infrastructures - servers, hypervisors, SSD's, SAN, nodes, etc. The combination of virtualization and data center infrastructure hosting translates to scalable, secure development tools for developers.
For the developer, utilizing PaaS solutions are as simple as conducting a Google search for "top PaaS providers", doing some personal research to match needs and paying the monthly fee associated with the provider of choice. In some cases, a monthly fee for a PaaS provider can be as small as $5 per month (DigitalOcean) and in some cases the monthly fee could be a few hundred to a few thousand dollars per month (enterprise AWS and Google App Engine). It all depends on need.
How is PaaS Different than Traditional App Development? - PaaS differs from traditional app development in the same fashion that Office 365 differs from purchasing a single copy of Microsoft Office. This is to say, PaaS allows developers and companies to lease app development tools instead of having to pay for those tools per seat. Leasing the tools lessens the financial CAPEX and OPEX spend of the developer/developer company and it shifts the burden of technical know how (fixing, updating, maintaining) to the provider. Within PaaS, as within SaaS, the provider manages, upgrades, fixes and maintains all application development tools.
The upside being simple: developers can code rather than act as system admins.
What are the Major Benefits of PaaS? - The major benefits of PaaS can be split into benefits for the developer and benefits for the provider.
- Lower CAPEX and OPEX Cost - For the developer, the major benefit of utilizing PaaS is lower capitol expenditure (CAPEX) and operating expenditure (OPEX) costs. With the burden of hosting and management of solutions shifted to the provider, leasing app development tools lessens the amount of money developers need to access and maintain application tools. PaaS lowers the cost of creating applications.
- Returning the Code - One of the major problems with the traditional app development life cycle is the developer acting more as a system admin than an app developer. The knock on traditional app development is that developers spend too much time scaling their development/production environment or producing copious amounts of boilerplate code when they should be coding their app. PaaS alleviates this worry by shifting the system admin aspects to the provider and allowing the provider to offer standard boilerplate code replacement via API's, task queries and memcache (see Google App Engine).
- Automation - Automation must be mentioned as a developer benefit. In a fair amount of IT, automation means taking control away from the user/company paying for a solution. In terms of PaaS app development, automation means relying on a provider to scale your back end server resources up and down within an instant of need. Automation means allowing the developer to build a robust traffic attention getting application while the provider scales to meet those fluctuating traffic needs. For PaaS, automation is wonderful.
- Building a Growing Base - The major benefit of PaaS to the provider is growing their client base. Through the utilization of data center and virtualization tech, the provider can offer PaaS solutions at a highly affordable cost. The cost alone grows client size yet more than that, the low cost and high enrollment rate, allows providers to continually reinforce their offerings with additional tools, SDK's, API's and integration services. Lower costs with higher enrollment leads to providers strengthening their offerings.
- Less Reliance on Dedicated Solutions - Possibly the best benefit of PaaS to the provider is moving away from traditional dedicated server resource solutions. The typical dedicated infrastructure while powerful and packed with finite resources, were/are costly to operate and nearly impossible to scale quickly. In terms of PaaS, dedicated servers inhibit provider growth, stifle the app development production environment and make instant live app scalability nearly impossible. Moving away from dedicated servers to cloud servers and VPS/VDS solutions gives providers the flexibility needed to grow their infrastructure and provide back end support for clients.
- Community Support for Tools - One of the unexpected yet welcomed developments of the PaaS market has been the rise of community based support for integrations, tools, databases, operating systems etc. By building up a targeted community, developer communities utilizing a certain PaaS service have rallied around that service to provide a wealth of tutorial information in support of their chosen service. Not only has this lessened the support demand on the provider it has also helped to increase the productivity of the developer community acting as its own champion. It's a win-win for all involved.
Who Should Utilize PaaS Solutions? - PaaS services should be utilized by developers and companies looking to lower the cost of building applications. It's that simple.
Remember, if you like this content and want to chat about it, you can reach me at the following social spaces:
- Twitter: @bleibowi
- Linkedin: Brad Yale
- Google +: Brad Yale