paper with a cloud cut out

For the last few years, the word Cloud has been used a lot. It seems as though everyone has latched onto this word cloud. But what does the cloud really mean? My definition of the cloud is the internet. A cloud service would be a service that is hosted by someone else and you access it over the internet. These cloud services can make many different forms, and I will cover a few of them today.

There are three main offerings when you are considering cloud services:

  • IAAS — Infrastructure as a Service
  • PAAS. — Platform as a Service
  • SAAS — Software as a Service

Most cloud offerings can neatly fit into one of these categories. A given cloud vendor may offer one of these services, or they may offer all of them. A few names you have probably heard of in this space are Rackspace, Google Cloud, Microsoft Azure, and Amazon Web Services (AWS). All of these vendors offer all three of the offerings I mentioned above in various forms.

In the case of IAAS, PAAS, and SAAS you can use the service just like you would a utility. When you get electricity to your house, the power company runs some wires to your house, hooks you up, then bills you for the power that you use. You do not have to worry about where the power comes from, or how it works. All you care about is making sure when you flip a light switch, the light turns on.

SAAS

Software as a service is the most fully featured of the three kinds of cloud services. SAAS is when someone offers you offer a fully functional application that is hosted on the internet. There is no software to install in your local datacenter, and you simply write a check every month to use the service. A few examples of software as a service would be:

  • Email services such as Gmail
  • Ticketing Systems like Jira
  • Phone systems like Ring Central

In all three of these cases, you simply sign up for the service and start using it. If there are outages and upgrades, the vendor is responsible for resolving the issue for you. You would use SAAS when you want to be completely hands off in regards to keeping the application running and simply focus on using the application.

PAAS

Platform as a Service is one step lower in the abstraction hierarchy from SAAS. Just like SAAS, you are paying for a service that someone else operates for you. But instead of the cloud vendor delivering a fully functional product like Gmail, they instead provide a platform. A few examples of platform as a service are:

  • Database as a service
  • Webserver as a service
  • App Engine as a service

With Database as a service, you are paying to have someone host the database for you, and you simply use the database. You don’t have to worry about things like clustering, or backups, or the server the database runs on. You just need a database that is online and that you consume.

The same goes for Web server as a service. You need a web server to host your webpage. The web server would be something like Apache or IIS. But you don’t want to deal with managing the underlying server for your website. You just need a working web server. In this case, you would use PAAS.

Finally App Engine as a service. Perhaps you have written an application in Python or Node JS and you need to run it somewhere. Again, you want things to be as simple as possible, and you don’t want to manage the underlying server. In this case you need Python or Node as a service to run your application.

IAAS

With infrastructure as a service, the cloud provider runs the underlying infrastructure for you, but you are in charge of everything else. In this example, you might need a windows or a linux server to run your application on. The cloud provider will make sure the physical servers, network, power, etc… are all working. You are then responsible for creating virtual servers and making sure those servers work as you want them to.

If you have been running virtual servers in your datacenter, this service will probably be the most familiar to you. IAAS is also the most complicated cloud service to set up, and most expensive cloud service to run.

Typically there is a lot of extra automation wrapped around these services to make it easier to provision. To name a few examples, on AWS there are cloud formation templates to help you provision multiple servers, networks, etc… all at once. There are API’s you can use if you want to create new features that are not available through the GUI, and there are policies you can set related to firewall rules, automatically scaling your servers (adding more as needed), and who can access what resources.

Summary

Today we have discussed what the cloud is, what the different kinds of cloud services are, and when you might use the different kinds of cloud services.