Jonathan Rosenberg
jdrosen.net
  • Blog
  • About Me
  • Publications
  • Presentations
    • Presentation Archive
  • Tutorials
  • Q&A

PaaS - the Operating System of the Cloud

1/3/2014

16 Comments

 
Picture
The venerable operating system has been around almost as long as the computer has been in existence. Though the "computer" has changed - from mainframes to PCs and now to mobile devices and tablets - the role of its operating system is largely similar. The OS abstracts the underlying hardware and provides applications access to those hardware services. These services typically include file system access, network access, graphics and sound, and of course memory and compute. These are accessed via APIs provided by the OS.


Cloud provides a new way of writing software, and with it, new tools have emerged that make it easier to write that software. One of the newest ones on the block is the Platform as a Service or PaaS. Vendors of PaaS include Microsoft's Azure, Salesforce's Heroku, Cloud Foundry, and to some degree Amazon's AWS. What is a PaaS? PaaS is the operating system for the cloud. Like a computer OS, a PaaS provides a set of APIs which applications can access to make their lives easier. Whereas a computer OS provides access to the services of a single computer, a PaaS provides access to the services of many, spread across many data centers. Whereas a computer OS provides a software API bound to specific languages, a PaaS provides access to services over a network that is bound to specific on-the-wire protocols - typically REST. 

And just what are these services? Though they vary from provider to provider, these are the five core services which I view as foundational to PaaS:

  1. Deployment Automation: The PaaS provides a way to take your code - for example your Java application - and then get it deployed across a number of machines in different data centers in a completely automated fashion. In Heroku, this is done with a git push. Heroku monitors your repo and once you push an update, it extracts it, distributes it to the various machines that will run your code, makes sure the JVM is up and running, and starts your app. Contrast this with AWS (which does not provide this capability). On AWS you can spin up a VM, but they its your job to get your code onto the VMs, make sure the JVM is there, and so on. A PaaS does all of that for you.
  2. HTTP Request Routing: PaaS is really tuned around web services. The PaaS will provide its own HTTP reverse proxy, handle DNS configuration, TLS termination, and make sure requests for an HTTP URI are routed to a running instance of your code. As a developer, you no longer need to worry about any of that. Just write your web app, and the platform will get the queries to a running server. 
  3. Scale and HA: If you write your app in the right way - namely, using stateless web services that store all persistent state in a shared backend database - the platform can provide scale and high availability. It can turn up as many instances of your app as is needed to handle the incoming request load. It can handle failed machines or server instances, and restart them for you. If a DC fails, through DNS it will route traffic to a backup DC to running instances of your code that are there. The trick to making this magic work is writing your app correctly and doing a good job on your database selection and schema design.
  4. Data Storage: The PaaS will also provide databases as a service. This means there are databases up and running that you can access via some kind of protocol interface. This might be RESTful access (as in the case of Amazon S3 or Azure storage services), SQL queries for a relational database, or whatever the query protocol is for a noSQL database. As an application developer, you do not need to set up, run, or configure this database. The PaaS provides it for you. 
  5. Application Upgrade/Downgrade: A cloud service needs to always be available. If you want to upgrade your cloud software, you cannot take everything down and do the upgrade. A PaaS will typically provide some kind of rolling upgrade capability, where you can install a new version, test it while the old is still running, and once everything looks good, do a cutover to the new service instance. And then if things fail, you can roll back. 

In addition to these core five, the PaaS can provide other services:

  1. Logging - log collection, storage, and analysis tools
  2. Developer tools - integration with developer tools (e.g., Azure provides integration in Microsoft Developer Studio)
  3. Monitoring services
  4. Metrics and dashboards
  5. Message bus services
  6. And more.


All of this used to be the stuff that made writing server side software hard. With PaaS, these hard problems are solved for you and you can focus your energy on the business logic of the app itself.

PaaS is the operating system of the cloud, and it is the future of how server side software will be built. The race is now on - who will be the leaders in providing PaaS services? Like operating systems, apps are "sticky" to their particular platform and require porting to go from platform to platform. As the set of APIs and services for PaaS's grow, the choice of PaaS becomes more crucial as the costs of porting go up. This is one of the benefits of open source PaaS offerings like Cloud Foundry - instead of being wed to the APIs of a particular vendor, the APIs are defined by a community and can be improved by contribution.

16 Comments
robert cook link
1/4/2014 10:14:29 pm

very interesting thank you

Reply
Duncan Winn
2/26/2014 03:29:59 am

This should be printed and framed as a work of art! Great post.

Reply
лист самостоятельного поиска работы link
5/14/2014 11:52:21 pm

I went more than this internet site and I believe you have a great deal of superb data, saved to bookmarks (:.

Reply
usexpresswebmeds.com link
5/7/2015 07:18:10 am

I appreciate you penning this article plus the rest of the site is very good.

Reply
Dog Training Durham link
2/13/2016 03:05:10 am

I admire the valuable advice you make available in your content about saving of money.

Reply
Dog Training Tampa link
2/18/2016 09:06:20 am

Great info . Thanks for them, man.

Reply
NetGuard no root firewall Pro 2.16 Cracked link
5/5/2016 05:25:19 am

Great for sharing this valueable info

Reply
Paykasa kullanmak icin nedenler link
8/6/2016 08:45:04 am

Nice post!! Thanks a lot for the kind of perfect topic I have not a lot of information about it but I have got an extra unique info in your unique post.!

Reply
Coba Sosiago Influencer Marketing link
1/28/2019 10:45:45 am

Monitoring services and dashboards are main feature

Reply
Tayyaba Fatima link
7/4/2019 01:58:20 pm

nice informative article, thanks for sharing such a wonderful article.

Reply
Ahsan link
1/14/2021 05:13:36 am

Great article. Thanks for sharing.

Reply
AOL Error Code 400 link
2/10/2021 07:46:48 pm

PaaS include Microsoft's Azure, Salesforce's Heroku, Cloud Foundry, and to some degree Amazon's AWS.

Reply
New South Wales link
2/16/2021 03:57:48 pm

Thaanks for writing

Reply
digisol hub link
12/29/2021 09:38:25 pm

<a href="https://www.digisolhub.com">Digisol Hub</a> is an advanced tech company, we can help you find solutions with your Website Development problems, Marketing of Social Media, development of applications (Apps), Graphic designing, Google Ads, and development of Software. Our aim is to help people solve their problems regarding digital marketing by using the right strategy and make them feel valued so they progress with their online business.
<a href="https://www.digisolhub.com">Digisol Hub</a>

Reply
Webiconz Technologies link
7/28/2022 12:42:06 am

Thanks for the post. It was very interesting and meaningful.

Reply
software development services in pakistan link
7/28/2022 12:43:13 am

Great website, looks very clean and organized. Keep up the good work!

Reply



Leave a Reply.

    Author

    Jonathan Rosenberg
    CTO & Head of AI, FIve9

    Archives

    June 2022
    May 2017
    May 2014
    February 2014
    January 2014
    December 2013

    Categories

    All
    Cloud
    Gaming
    Travel And Cuisine
    Voip

    RSS Feed

jdrosen.net was last updated 2/7/17
Photo used under Creative Commons from Mufidah Kassalias