I was asked recently to describe the difference between some different services within the cloud. This seemed fairly straight forward to em however it did get me to stop and think about the nomenclature that we attach to different services and where someone new to cloud computing could get this information from. I’ve always referred to the NIST definition and thought it might be useful to share this, along with some other services that are frequently discussed.
IaaS – This is for a customer who wants to manage the components of the infrastructure such as the network layer, the storage, the OS, and the application layer.
PaaS – This is for a customer who doesn’t need to have granular control over the OS or application layer. This allows for the use of a specified version of applications, so would be suitable for someone who is ok with controlled environments where a specific version of code is in use.
SaaS – This is for someone who does not want or need to know the infrastructure or application details, and in fact only wants to take advantage of the service. The most prolific example that I can think of is webmail. Other services include the entire Office365 offering from Microsoft, Salesforce which I use every day in my job, as well as a number of online training providers such as coursera and codeacademy.
All of these different types of cloud services have as their key offerings some very specific requirements.
- No human intervention
- Ubiquitous access
- Secure, multi-tenancy
- Elastic Scale
- Incremental billing
If your cloud offering requires human intervention it isn’t a true cloud offering, rather a managed service, even if it sits on top of a hyper-scale public cloud provider such as AWS or GCP. And there are cases where this may be a preferred offering such as when you initially migrate an existing workload to cloud from on-premises, or even if you want to consume a service that you’ve never considered before and require support such as a migration to a new ERP system as your business grows beyond the scale of a whiteboard with post-it notes. But you should know that it is not a cloud offering.
The access to the cloud needs to be from any device, any where, at any time. A great example of this for me is coursera. I’m currently upskilling on a variety of different topics, one of which is delivered through coursera. I have access to coursera on my mac (thick client), iPad and Samsung tablet, and even offline training on my iPhone as lecture notes. This lets me access this training material at home, on the bus on the way to the office, or even on a plane whilst I’m travelling over a satellite service if the aircraft has this, or as offline lecture notes if it doesn’t. I can even compile code on my mac whilst listening to the notes on my iPhone whilst sitting at 38,000 feet sipping a red wine. For a training service that’s pretty awesome.
Secure multi-tenancy is absolutely key to the cloud. My services in AWS are running next to someone else’s physically, but logically separated. My trust in this has been earned through security audit results shared by AWS on their platform, but I am aware that the data and services that I run up are the weak points and most likely breach. To this end I follow the security best practices and constantly make sure my details are secure. However breaches occur and sometimes they are not even within something that can be controlled by you such as this example.
The elastic scale of the cloud is in my opinion one of the biggest draw cards. When you build a service sometimes you have no idea on if that service will be successful, or if it will be a flop. Being able to build so that if you have a requirement for lots of scale at a moments notice, or even better without notice so that your service can scale itself whilst you are notified but requires no intervention is truly an amazing feat. I spend a fair amount of time talking to my customers about how they have architected their new equipment, and a lot of the time it is their existing requirement plus 30%. Trying to explain to a CFO who you need 30% more budget is always hard, especially when you have limited metrics.
Cloud services are billed in increments of usage, which makes a lot of sense when you think that some services such as analytics may be especially bursty in nature. You may not want or need to have beefy servers on call 24/7 for months at a time as they could potentially sit there doing nothing, or even be the other way round where you use all your servers and don’t have enough capacity to run all the analytics you need. This is where cloud can make the most difference as if you run a service for 5 minutes, you pay for 5 minutes, or whatever the increment is that your cloud provider offers.
Now that we’ve defined the services and what the key characteristics are of cloud services, what are the different clouds that you can look at?
- Community
- Public
- Private
- Hybrid
A community cloud is where a group of like minded, or shared vision, consumers will purchase exclusive access to a cloud. Typically this has been public services customers who have requirements around data locality/sovereignty. This type of cloud could be on-premises, or off, through a public cloud, or private cloud, or some combination thereof.
A public cloud is an offering open to the general public, typically through a web portal and payment information upfront such as a credit card billing system. It exists on the cloud providers premises and examples include AWS, Azure, and GCP as hyper-scale providers of services.
A private cloud is a dedicated offering for a single organisation that could be provided to multiple consumers (e.g. business units). Typically this is on the organisations premises.
Finally we have a Hybrid cloud. This is a combination of the above and could see an organisation consume services from within an on-premises private cloud, and extend the services out to a public cloud for burst workloads as an example. Almost every customer I have spoken to is in this bucket.
There are other services such as BaaS (Backup as a Service) and DRaaS (Disaster Recovery as a Service) that are offered by managed services providers and may utilise the building blocks of cloud under the covers.