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
| Benefit | What it means |
|---|---|
| Elasticity | Add servers during a traffic spike and remove them afterwards |
| Pay as you go | No large upfront hardware purchase |
| Managed services | The provider runs databases, backups and security patches for you |
| Global reach | Deploy 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
Layers from top to bottom: IaaS, PaaS, SaaS
| Model | You manage | Provider manages | Examples |
|---|---|---|---|
| IaaS (Infrastructure as a Service) | OS, runtime, app, data | Hardware, network, virtualisation | AWS EC2 virtual machines |
| PaaS (Platform as a Service) | Your app and data | Servers, OS, runtime, scaling | AWS Elastic Beanstalk, Google App Engine, Heroku |
| SaaS (Software as a Service) | Just your usage and settings | Everything else | Gmail, 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:
- Build the application into deployable files (for example, compiled code or an optimised website bundle).
- Configure environment-specific settings such as database URLs and API keys through environment variables, never hard-coded in the source.
- Provision where it runs: a virtual machine, a platform service or a container service.
- Release the new version and route traffic to it.
- 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:
- Development
- Testing / Staging
- Production
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
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.
