These days most people refer to things being in The Cloud but what does this actually mean? A general, high-level definition is the delivery of hosted services over the internet. Email, calendars, todo lists, photos, pretty much everything fits into that description. Think Google Drive backing your photos up or iCloud backing your iPhone up, both of these keep your data in stored in the cloud. This makes it easy to access your stuff across all of your devices. There are, though, a few different levels to cloud computing.
SaaS (Software as a Service)
This is the outermost layer of the types, typically targeted at the end customer. The provider makes their application available through a web-browser, mobile app or dedicated desktop app, which is powered by cloud infrastructure. Lets use Google Sheets as an example here. The benefits provided to the consumer include the ability to create, edit and update spreadsheets from anywhere, with multiple users able to edit at one time.
PaaS (Platform as a Service)
This is the middle layer of our pyramid, typically used by developers. Here a developer can deploy their app, written in whatever language they’ve chosen, to a pre-configured cloud infrastructure. The developer doesn’t deal with the configuration of the servers, databases or operating systems. Instead they are able to deploy their app with ease and speed. Let’s use Heroku as an example here. The benefits provided to the developer is quick, easy deployment with minimal hassle. You can push a rails app live within minutes, it allows for rapid prototyping and gives developers the ability to deploy an app without needing to worry about things like server configuration.
IaaS (Infrastructure as a Service)
This is the final layer, where all the nuts and bolts lie. This level is typically used by sysadmins who would be charge of provisioning servers and deploying application builds. From here you’re able to completely configure everything, from operating systems and network settings. Lets use AWS’s EC2 instances as an example here. From the EC2 console when deploying a new instance you’re able to choose from a wide range of AMI images. When your instance is setup, you can SSH in and configure it in anyway you see fit. This gives the user huge levels of customisation and flexibility, which is important if you’re running apps that require very specific needs.
The diagram below provides a visual representation of each level.
Beyond this there are further abstractions like DaaS (Data/Desktop as a Service), STaaS (Storage as a Service) and SECaaS (Security as a Service). These are quite specific, focused in particular sectors and not as commonly known as the main three mentioned above.
As always, thanks for reading, hit 👏 if you like what you read and be sure to follow to keep up to date with future posts.