Cloud Computing
Before cloud computing, individuals and organizations installed hardware and software in their homes and businesses. Widespread internet adoption made a shift in hardware and software possible by storing computer hardware and software in data centers accessed over the internet. The model of accessing hardware and software resources over the internet is known as cloud computing. Cloud computing offers agility, elasticity, and a reduced workload on information technology personnel.
Learning Objectives
In this lesson, you will learn:
- the major cloud computing paradigms:
- Software-as-a-Service (SaaS)
- Infrastructure-as-a-Service (IaaS)
- Platform-as-a-Service (PaaS)
- describe key cloud benefits,
- Elasticity
- Pay-on-demand
- identify key cloud providers, and
- describe cloud disadvantages.
- Vendor lock-in
- Control
Cloud Computing Paradigms

The following diagram shows what people are responsible for whether they host everything in-house, adopt IaaS, adopt PaaS, or adopt SaaS. Note that the more an organization manages, the more control and flexibility they have. So even though it might be tempting to outsource all management and rely exclusively on SaaS, that easy of management comes at the cost of flexibility and higher monthly fees.

Software-as-a-Service (SaaS)
With SaaS, the vendor delivers the application to you over the internet. There are thousands of SaaS vendors. Examples include:
When you use these products, you expect the vendor to back up your data, improve the code, secure the infrastructure, etc. You pay for the services and start using the software immediately. Users typically access the software through a web browser or a mobile app. But once you stop paying, you lose access to your data. It is not often clear if you can export your data. If the data is stored in a proprietary format, even if you export your data, it may be difficult to import your data into a different provider's platform.

Infrastructure-as-a-Service
Compared to the other cloud models, IaaS requires the most maintenance. Experienced information technology professionals must configure hardware and software. IaaS gives organizations a data center in the cloud. IaaS is a good choice when environments are complex and organizations have very specific requirements. Companies that offer IaaS services include Amazon, Microsoft, Google, IBM, and Oracle.

Platform-as-a-Service (PaaS)
Developers use PaaS to deploy code. The PaaS providers deploy that code on IaaS. Essentially, the PaaS vendors provide a nice interface on top of IaaS. The PaaS might create backups, monitor logs, scale resources, and ease the burden of deploying code. PaaS lets developers focus on their code rather than infrastructure.

This Site
This site uses SaaS, PaaS, and IaaS.
- SaaS: I use GitHub to store all of the source code for this website. GitHub tracks every change I make.
- PaaS: I use Netlify to deploy the code. When I make a change to any content in GitHub, Netlify downloads my code, compiles my website, and deploys it. Within a minute of making any change to my source code, the code goes live on the internet.
- IaaS: Netlify deploys the code to a global content delivery network. Netlify is not explicit about which vendors it uses to deploy the code.
Cloud Benefits
There are a few major benefits that draw people to the cloud. Elasticity and the ability to pay-on-demand are two large benefits.
Elasticity
Elasticity is the ability to scale computing resources up when demand is high, and scale computing resources down when demand is low. Imagine that you need to give 1,000 potential customers a demonstration of your software. Without the cloud, you would need to buy enough hardware to support those 1,000 potential customers. The demo lasts an hour. After the demonstration, you are left with a lot of hardware that is not needed. But you own it. With the cloud, you could provision enough hardware for those 1,000 potential customers, walk them through your demonstration, and then de-provision the hardware. You stop paying for that hardware as soon as the demo is over.

If your hardware is used heavily year-round, buying hardware and hosting it in-house will be cheaper. But if your use case experiences large changes in usage over time, cloud elasticity can save a lot of money and provide a better user experience.
Pay-on-demand
The majority of cloud services require no up-front investment. You pay for the resources you use and nothing else. Once you stop using the resource, you stop paying. This is similar to your electric bill--the more electricity you use, the more you pay. The up-front capital investments are cheaper, though operational costs tend to increase.
Major Cloud Providers
There are hundreds of cloud providers. Microsoft, Google, and Amazon have the major market share. Oracle and IBM also have competitive offerings.
- Amazon Web Services (AWS). Amazon started selling books online in 1995. The online retailer scaled its product offering partially enabled by streamlined infrastructure. Amazon realized that it did infrastructure well, so it decided to create Amazon Web Services (AWS) to sell computing services to customers. AWS started with a small set of services, but now has dozens of services from basic website hosting to advanced AI. AWS is a good choice for organizations who want to fully embrace the cloud and are willing to deal with the large training and engineering investment to leverage the platform.
- Microsoft Azure. Traditionally, Microsoft made money selling software. Many organizations use Microsoft Windows on their desktop computers and in their data centers. Organizations often store user accounts and security settings in Microsoft's Active Directory. Organizations often use Microsoft's Exchange email platform. Microsoft makes it very easy to transition these services from being run in-house to letting Microsoft manage them in Azure. Microsoft was not the first to the cloud computing game, but it invested heavily in its cloud offering and it now rivals AWS for market share. Microsoft is perhaps the easiest way for organizations who are already using Windows heavily.
- Google Cloud Platform (GCP). Google started its foray into cloud computing with its App Engine SaaS offering. It later extended its cloud offering to provide features that rival AWS and Microsoft. Despite its engineering expertise, Google has struggled to match the profit margins of Microsoft and Amazon.
Cloud Disadvantages
The trend in information technology is to move more services to the cloud. But, moving to the cloud has some drawbacks.
- Vendor lock-in. Each cloud provider has specific services that may not be compatible with other providers. Moving from one cloud platform to another often requires significant expense.
- Control. Organizations give up some amount of control whenever outsourcing.
- Cost. While cloud providers pitch cost savings as a reason to move to the cloud, many customers are surprised at just how quickly their cloud bills grow. The convenience of the cloud comes at a financial cost.
Challenge
- Oracle's cloud has a generous free tier that does not expire. Create an account and check it out. We won't use it in any of our labs, but it's something worth exploring if you're interested in technology and want free access to computing resources.
Reflection
- When should companies choose to run their infrastructure in-house versus adopting cloud computing?
- How can organizations avoid vendor lock-in when adopting cloud computing?
- Will cloud computing be the only way we access our hardware and software in the future?
Key Terms
- Cloud Computing: A model for delivering computing resources over the internet on a pay-as-you-go basis. It allows users to access and use shared resources such as servers, storage, databases, networking, software, and analytics without the need for local infrastructure or hardware.
- SaaS (Software as a Service): A cloud computing service model that delivers software applications over the internet. Users can access and use the software through a web browser without needing to install or maintain it on their local devices. Examples include Google Workspace, Microsoft Office 365, and Salesforce.
- IaaS (Infrastructure as a Service): A cloud computing service model that provides virtualized computing resources over the internet. It offers fundamental infrastructure components such as virtual machines, storage, and networking, allowing users to build and manage their own IT environments. Examples include Amazon Web Services (AWS) EC2, Microsoft Azure, and Google Cloud Platform.
- PaaS (Platform as a Service): A cloud computing service model that provides a platform allowing customers to develop, run, and manage applications without dealing with the underlying infrastructure. It includes tools and services for application development, such as databases, middleware, and development frameworks. Examples include Google App Engine, Microsoft Azure App Services, and Heroku.
- Scalability: The ability of a system, network, or process to handle an increasing amount of work or to be easily expanded to accommodate growth.
- Elasticity: The ability of a cloud computing environment to automatically adjust resources to match the current demand. Elasticity ensures that resources are provisioned and de-provisioned dynamically, allowing for efficient use of resources and cost savings. It enables systems to scale up during peak usage and scale down when demand decreases.