Coffee-as-a-Service: Understanding Cloud Services Through a Cup of Coffee
As someone who went through a coding bootcamp, I had very little exposure to cloud computing and how it’s used in development. The different services that Amazon Web Services (AWS) offers, or the meaning of the acronyms “IaaS” or “PaaS” would often go over my head. Does this sound like you? Welcome, and read on!
In this article, we will focus on gaining more understanding of the different cloud service types, with a few real-world examples. But first, what is the Cloud? In a nutshell, cloud computing is an on-demand network with access to shared computing resources including servers, storage, networks, applications, and services. Different cloud services offer varying levels of these resources that developers can use and customize to their needs. Essentially, the more control you have, the less you rely on the service to do it for you.
The Pizza-as-a-Service analogy helped me understand the differences between cloud service models by comparing them to a pizza. As a former long-time barista, I decided to apply this analogy to coffee! Let’s walk through Coffee-as-a-Service (CaaS), in four scenarios.
1. Go to a Coffeeshop | Software as a Service (SaaS)
You go to a cafe and order anything you’d like, and everything is done for you: the sourcing of the beans, roasting, grinding, brewing the coffee, steaming milk, and adding sweetener. Voilà! Just like that, it’s ready for you to drink! You use the coffeeshop’s ceramic cups and tables, and you get to enjoy your experience without having to worry about dishes or taking out the trash.
SaaS Examples: Dropbox, Google Workspace, Salesforce
SaaS tends to be software and/or applications hosted in the cloud, where users usually pay a subscription fee for access. You’re probably using many SaaS applications, like Zoom and Slack, every day!
2. Coffee Delivery | Platform as a Service (PaaS)
You’d like your coffee sourced and brewed for you in advance, but you’d still like a little control. Perhaps you get a coffee delivered, or you get some instant coffee and provide your own hot water and milk.
PaaS Examples: AWS Elastic Beanstalk, Heroku, Windows Azure
Perhaps you were like me and hosted your bootcamp projects on Heroku or a similar platform. Heroku gave my team a space to host our app and additionally took care of the servers, storage, and access to a PostgreSQL database. Thanks to a few simple steps, our app was live for the world to see!
3. Buy the Beans & Brew at Home | Infrastructure as a Service (IaaS)
You want a little more control over your coffee, so you select your whole beans to bring home. You don’t have to worry about sourcing or roasting, but perhaps you’d like to customize whether you get a single origin, a dark or light roast! You grind your beans, provide your own brewing equipment, and add in optional milk and sugar. Besides the beans, most of your cup of coffee was customized by you!
IaaS Examples: AWS, DigitalOcean, Microsoft Azure, Google Compute Engine
In AWS, you can host your static site (let’s say, a simple React project like “tic-tac-toe” or a personal portfolio) by using an AWS S3 (Simple Storage Service) bucket, or spin up your very own server in the cloud using EC2! With IaaS, you can access physical and virtual computing resources on a pay-as-you-go model, which makes it easy to scale your infrastructure needs.
4. Your Own Cafe and Roastery! | Traditional On-Premises
Essentially, you are your coffeeshop and roastery all in one! You have complete control over sourcing the beans directly from farmers, roasting them in-house to your liking, using your brew method of choice, and complete customization over milk and sweetener options.
In a real-world example, you would need to have large data centers in-house. This might lead to enormous upfront costs for your hardware and would make it difficult to know how to scale your infrastructure to meet demands. Thankfully, we now have many options with cloud computing to meet the changing infrastructure needs of our applications!
I hope this caffeinated coffee analogy helps give a better understanding of the different cloud services, and how each one can be useful depending on the needs of the application.
References:
- SaaS vs PaaS vs IaaS: https://www.bmc.com/blogs/saas-vs-paas-vs-iaas-whats-the-difference-and-how-to-choose/
- How the Original Pizza-as-a-Service Illustration is Wrong: https://m.oursky.com/saas-paas-and-iaas-explained-in-one-graphic-d56c3e6f4606
- Types of Cloud Computing (AWS): https://aws.amazon.com/types-of-cloud-computing/
- All images licensed from Adobe Stock Images