Skip to main content

Lesson 3 of 4 15 min read

Cloud computing and deployment fundamentals

Understand what the cloud is, the IaaS, PaaS and SaaS models, and what it takes to deploy and run an application.

In this lesson you will

  • Explain cloud computing and its main benefits and trade-offs
  • Compare IaaS, PaaS and SaaS service models
  • Describe the steps and building blocks of deploying a web application

What is the cloud?

Cloud computing means renting computing resources (servers, storage, databases and networking) over the internet from a provider, instead of buying and running your own hardware. You pay for what you use and can add or remove capacity in minutes.

Major providers include Amazon Web Services (AWS), Microsoft Azure and Google Cloud. They run huge data centres in regions around the world, such as Mumbai or Singapore, so you can host applications close to your users.

Benefits and trade-offs

BenefitWhat it means
ElasticityAdd servers during a traffic spike and remove them afterwards
Pay as you goNo large upfront hardware purchase
Managed servicesThe provider runs databases, backups and security patches for you
Global reachDeploy in regions near your users

The trade-offs: costs can grow unexpectedly if you don't monitor them, and you depend on the provider. Always set a budget alert when experimenting on a cloud account.

Service models

Who manages what, from IaaS to SaaS

Layers from top to bottom: IaaS, PaaS, SaaS

ModelYou manageProvider managesExamples
IaaS (Infrastructure as a Service)OS, runtime, app, dataHardware, network, virtualisationAWS EC2 virtual machines
PaaS (Platform as a Service)Your app and dataServers, OS, runtime, scalingAWS Elastic Beanstalk, Google App Engine, Heroku
SaaS (Software as a Service)Just your usage and settingsEverything elseGmail, Microsoft 365

What deployment means

Deployment is getting your application from your computer to an environment where users can reach it. A typical web app deployment involves:

  1. Build the application into deployable files (for example, compiled code or an optimised website bundle).
  2. Configure environment-specific settings such as database URLs and API keys through environment variables, never hard-coded in the source.
  3. Provision where it runs: a virtual machine, a platform service or a container service.
  4. Release the new version and route traffic to it.
  5. Monitor logs, errors and performance, and be ready to roll back.

Common building blocks

  • Static hosting and CDNs serve HTML, CSS, JavaScript and images from servers worldwide. Ideal for websites that don't need a server for every page.
  • Compute runs your backend code: virtual machines, platform services, containers or serverless functions.
  • Managed databases handle backups, updates and replication for you.
  • DNS and HTTPS certificates connect your domain name to the application securely.

Environments

Teams usually run several copies of an application:

  1. Development
  2. Testing / Staging
  3. Production
3-step diagram

Production is what real users see. Changes are tried in staging first, using configuration that mirrors production, so problems are caught before they affect users.

Hands-on exercise

Classify each of the following as IaaS, PaaS or SaaS: Google Docs, a virtual machine you install Linux on, a platform where you upload your code and it runs automatically, and an online accounting tool. Then write a deployment checklist for the personal website from the Web Development Basics path: what needs to be built, where it could be hosted, what configuration (if any) it needs, and how you would check it works after release.

Knowledge check

3 questions • 70% to pass • Practice only, no certificate

  1. 1.Where should a production database password be stored?
  2. 2.You rent a virtual machine and install the operating system and runtime yourself. Which model is this?
  3. 3.What is the purpose of a staging environment?
0 of 3 answered

Key concepts

  • Cloud computing rents servers, storage and services on demand, paying for what you use.
  • IaaS gives you virtual machines, PaaS runs your app for you and SaaS is ready-made software.
  • Deployment means build, configure with environment variables, provision, release and monitor.
  • Use separate development, staging and production environments, and set budget alerts on cloud accounts.