Cloud Computing for Kids and Parents

My three years of hard work has finally paid off this week with the launch of AWS Honeycode. My previous project was AWS EC2 Nitro that was launched in 2017. In my earlier blog post, From spinning chips to weaving a web, I mentioned Martin M. Broadwell’s learning model and just stopped short of stage 4, Unconscious Competence, with my experience in Cloud services. With this launch, I would like to say that I graduated out of this stage but there is so much more to learn and the cloud is the limit.
AWS Honeycode was a confidential project and hence I could not share any information with my family and friends until launch. Both my kids knew that I was working on some software project but they did not bother to ask me as they don’t like computer science as much as I do. I don’t blame them because that’s what happens when you are taught recursion in 4th grade. My dad is in his 80s and is an avid computer user. He shares Google docs and sheets about taxes and other information with me. My mom on the other hand told me recently that she preferred my previous employer Broadcom to my current employer. I was puzzled and asked her why she thought Broadcom was better. During our conversation, I figured that she thought I was now working for a package delivery company called Amazon. I don’t know if my mom will read this post but am sure my dad and my kids will definitely read it. This post is an attempt to explain cloud computing to my kids and my parents.
What is Cloud computing?
Many years back, companies would buy and maintain all the computing resources their company needs. They would have a dedicated IT department that procures equipment and manages the computers, network and storage. They needed a large amount of space to keep and maintain all the equipment needed for supporting the employees. Most equipment would get outdated and prices drop each year with new powerful and better systems available for cheaper prices. This is called the on-premises or on-prem infrastructure and services.
In the mid-2000s, companies like Amazon Web Services (AWS) started building and renting out computers and storage on demand to customers who were willing to use equipment that was not on their premises. Obviously, customers had no control on managing those systems but at the same time they did not have to worry about acquiring space or upgrading the systems periodically. They would use compute and storage resources on-demand and pay at hourly rates. It is similar to renting a car on-demand instead of owning one. So, cloud computing is an on-demand, utility-based model of computing.
Cloud Service Models
Over the years, cloud computing has evolved and different cloud models are now available that target different types of consumers. The jargon and terminology around cloud computing can be overwhelming and using analogies is an excellent method to explain any subject. If you Google for such analogies, you are bound to hit comparisons of cloud to pizza as a service. It is a good analogy and splits the cloud models into multiple layers just like a pizza but I feel this analogy is overused and there is no need to break it into too many layers. I am taking a different example and will compare cloud service models to another favorite topic of mine, fitness.
During these tough times with Covid-19 spreading like wildfire, health and fitness clubs have taken a hit with lockdown and social distancing. People who are fortunate to have jobs in industries that don’t need physical presence, have more time on their hands with no commute. Some of these individuals are motivated to stay fit and have bought gym equipment for home use. This on-prem gym is similar to on-prem infrastructure service that was the prevalent two decades back.
Infrastructure as a Service (IaaS)
There are a number of local gyms like 24-hour fitness and Crush fitness that allow their members to use basic fitness equipment like treadmill, elliptical cross trainers etc. for a small monthly fee. Members walk-in at their convenience and use the available equipment for an hour or less before heading back home.
Similarly, initial cloud services included access to computers, storage, network and other computing resources through the cloud. The IT department would rent these resources but they are still responsible for managing applications and their data.
Platform as a Service (PaaS)
Let us say you are a certified Yoga or a CrossFit instructor. You can rent a box and buy all the equipment needed to attract members. Yoga classes would need a few mats and some blocks but setting up a CrossFit box will be expensive as you need to buy dumbbells, barbells and other equipment that are quite expensive. Now, imagine if you can find a Gym rental company that owns and maintains small fitness facilities. As a trainer, you may have to pay some fixed amount to rent the place and equipment for use. You can charge your members a monthly fee that covers the rent and other expenses and pocket the remaining amount. If the trainer is in high demand and more members sign up, all he or she does is make a phone call to the Gym rental company to add more rowing machines or buy more dumbbells. The trainer is focused on training without having to worry about equipment.
Just like the fitness trainers, software developers need a framework to design and deploy the applications they build. They don’t want to control the underlying cloud infrastructure and would like someone else to take care of it for them. Developers may need a database or may have to deploy their applications on multiple servers due to high demand. PaaS provides the developers the ability to focus on their business logic while taking care of the infrastructure required to host their applications.

Cloud and Fitness
Software as a Service (SaaS)
Some of us want the best option available for working out. We don’t settle for local gyms that provide basic fitness equipment. Similarly, we don’t want to go to the same trainer but want to workout with different trainers who not only have fitness classes but also provide us access to lockers, pools, cardio equipment, strength training, tennis and basketball courts to name a few. These are called health clubs and charge a premium as they include a lot more than just some cardio equipment. These clubs also have different classes throughout the day that include yoga, Pilates, CrossFit etc. Members walk-in, attend a class or workout using equipment of their choice or just swim and cleanup in the showers before heading home fresh.
Software as a service is similar to health clubs wherein companies don’t care about infrastructure nor platforms for development. They just need access to pre-built software applications that their employees can use. Google suite including gmail, docs and sheets, Office 365 and Salesforce CRM applications are some examples that fall under the SaaS cloud service model.
Conclusion
There are many companies that offer cloud services, AWS is a leader in IaaS, while Microsoft has a wide range of SaaS solutions. Google does offer IaaS, SaaS solutions and is the third option for customers. Salesforce Heroku and AWS Beanstalk are good examples of PaaS solutions but IaaS and SaaS are more popular and widely used compared to PaaS. AWS Honeycode falls under SaaS category and helps customers build their own web and mobile apps with no-code.


