Week 13 - Systems

App Development lifecycle

Continuous integration (CI)

Continuous Delivery (CD)

Packaging and Docker

Docker setup

Building an API server

Deployments

Intro to Cloud

Using local LLMs

Appendix 1 yaml syntax

Appendix 2 Docker commands

Practice

Assignment

Core program

What is a cloud actually?

When someone says "the cloud," they mean someone else's computers. More specifically, large companies like Amazon, Microsoft, and Google own massive datacenters filled with thousands of servers. Instead of buying and maintaining your own hardware, you rent what you need from them - and you only pay for what you use.

Watch: A quick cloud explainer in 2 minutes

https://www.youtube.com/watch?v=N0SYCyS2xZA

You have already used the cloud without thinking about it. When you deployed your Express app to Render, your code was running on a server in one of these datacenters. You did not buy that server. You did not install an operating system on it. You did not plug in any cables. You just pushed your code and it worked. That is the cloud.

<aside> ๐Ÿ’ญ

Cloud computing = using someone else's computers over the internet to run your applications, store your data, or do heavy calculations without owning or managing the physical hardware.

</aside>

Key components of the cloud

Cloud providers offer many services, but they all come down to a few core building blocks you combine to build your application.

Compute

Compute is the processing power that runs your code. When your Express app handles a request, it needs a computer to execute that JavaScript. In the cloud, compute comes in different forms:

  1. Servers โ€” A physical machine in a data center. You rarely interact with these directly, but they are the foundation everything else runs on.
  2. Virtual Machines (VMs) โ€” When you rent a VM in the cloud, you get full control: you choose the operating system, install software, configure everything yourself.
  3. Containers โ€” You already know these from Docker. A container is a lightweight, isolated environment that packages your app with everything it needs. Unlike a VM, containers share the host operating system, which makes them faster to start and more efficient with resources.

<aside> ๐Ÿ’ญ

A VM is like renting an entire apartment. A container is like renting a desk in a co-working space. Both give you a place to work, but the container shares the building's facilities.

</aside>

Object Storage

Object storage is a place to store files: images, videos, PDFs, backups, logs โ€” anything. It works differently from a traditional computer file system and is built to store huge amounts of data and billions of files.

You interact with it over the internet using an API. Upload a file, get a URL, access it from anywhere.

Examples: AWS S3, Azure Blob Storage, Google Cloud Storage, Cloudflare R2.

Databases

Cloud providers offer managed databases โ€” the same databases you already know (like PostgreSQL or SQLite), but someone else handles the installation, backups, updates, and scaling.

Instead of installing a database server on your laptop or a VM and maintaining it yourself, you create a managed database in the cloud and just connect to it. If the database needs more storage or processing power, the cloud provider handles it.

Examples: AWS RDS, Azure SQL, Google Cloud SQL.

Networking

Cloud networking controls how traffic reaches your application and who can access what.

  1. Virtual Private Cloud (VPC) โ€” Your own isolated network inside the cloud. You decide which services can talk to each other and which are exposed to the internet.
  2. Load Balancers distribute incoming requests across multiple servers. If one server goes down, traffic is sent to the others and users never notice.
  3. Firewalls control which traffic is allowed in and out. For example, your API might be public, but your database should only be reachable from your application โ€” never from the internet.

<aside> ๐Ÿ’ญ

Today, cloud providers offer over 100 services: storage, networking, AI and much more.

</aside>

Cloud providers

Three companies dominate the cloud market. They all offer the same core building blocks (compute, storage, databases, networking) but with different names and interfaces.

image.png

AWS (Amazon Web Services)

Azure (Microsoft)

GCP (Google Cloud Platform)


The HackYourFuture curriculum is licensed underย CC BY-NC-SA 4.0 *https://hackyourfuture.net/*

CC BY-NC-SA 4.0 Icons

Built with โค๏ธ by the HackYourFuture community ยท Thank you, contributors

Found a mistake or have a suggestion? Let us know in the feedback form.