Skip to content

Cloud

Cloud computing simply means using computing power (like servers, storage, and databases) over the internet, instead of buying and running your own physical machines.

Every app you use every day needs some kind of backend to work. When you open a video app, the video has to come from somewhere. When you order food online, your order details, payment, and delivery location all get stored and processed somewhere. When companies build AI chatbots or dashboards, they need huge amounts of computing power and storage. Earlier, companies had to buy physical servers, keep them in data centers, and handle cooling, electricity, security, backups, and hardware upgrades themselves. That was expensive and hard to scale.

Cloud computing solves this. Instead of buying servers, companies rent computing power, storage, databases, networking, and even AI tools from a cloud provider, and pay only for what they actually use.

Pay for what you use

No need to buy expensive hardware upfront. You pay only for the computing power, storage, or services you actually use.

Scales up and down

Got more users today? Add more capacity. Traffic dropped? Reduce it. You are never stuck with a fixed amount of hardware.

No hardware maintenance

The cloud provider takes care of the physical servers, cooling, electricity, and security of the data centers.

Available worldwide

Cloud providers have data centers all over the world, so you can put your app closer to your users for faster performance.

A cloud provider is a company that owns huge data centers and rents out computing resources to others. There are many cloud providers, but the two we will use as real-world examples throughout this guide are:

  • AWS (Amazon Web Services) - Amazon’s cloud platform.
  • GCP (Google Cloud Platform) - Google’s cloud platform.

There are other cloud providers too, etc., but the ideas in this guide apply to almost all of them, because the concepts stay the same - only the names of the services change from provider to provider.

These are a few basic words you’ll see everywhere in the cloud, no matter which provider you use.

Every cloud provider needs a top-level container where your resources (servers, databases, storage, and so on) live. This container is usually called an account or a project. Whenever you create a server, a database, or a storage bucket, it belongs to this container. Companies often create a separate one for each application, so billing, permissions, and resources stay organized and easy to manage. Before creating anything in the cloud, you usually create or select this container first.

A region is a geographical location where the cloud provider’s data centers are available, for example, a region in Asia, Europe, or the US. A zone is a smaller location inside a region. Think of a region as a city, and zones as different buildings inside that city.

This matters because when you create a server or database, you choose where it should run. If most of your users are in one country, you want your resources closer to them, so the app feels faster.

API stands for Application Programming Interface. In simple words, an API lets one piece of software talk to another piece of software. For example, when you book a cab, the app might use a maps API to calculate distance. When you pay online, the app uses a payment gateway API. In the cloud, most services work through APIs, and you often need to turn on (enable) a service’s API in your project before you can use it.

IAM controls who can access what. Imagine your team has several people: one should only view reports, another manages servers, another handles billing. You don’t want everyone to have full control over everything - that’s risky. IAM lets you give the right permissions to the right people.

graph TD A["Account / Project"] --> B["Compute - runs your app"] A --> C["Storage - keeps your files"] A --> D["Database - keeps structured data"] A --> E["Networking - connects everything"] A --> F["Security / IAM - controls access"] A --> G["Monitoring - watches performance"] B --> H["Users on the internet"] E --> H

Cloud computing is never just one single service. It’s a combination of compute, storage, databases, networking, security, and monitoring, all working together to run a real application.

Compute simply means processing power - the CPU, RAM, and operating system needed to actually run your application. Whenever an app runs, it needs compute. Different apps need different levels of control, so cloud providers offer several different ways to run your code.

A virtual machine (VM) is like a computer that lives inside the cloud provider’s data center instead of sitting on your desk. You choose the operating system, CPU, RAM, and disk size. You get full control - you install your own software, configure the server, and manage security yourself.

Use it when you want full control over the server, like installing custom software or running an app exactly the way you want.

Generic ConceptAWSGCP
Virtual MachineEC2Compute Engine
Managed App Platform (PaaS)Elastic BeanstalkApp Engine
Managed KubernetesEKSGKE (Google Kubernetes Engine)
Serverless ContainersApp Runner / FargateCloud Run
Serverless Functions (event-driven)LambdaCloud Run functions

Beginners often confuse these two, so let’s clear it up first. Storage is used for files. Database is used for organized data.

For example, product images, videos, PDFs, invoices, backups, and audio files go into storage. But customer names, email IDs, order IDs, payment status, and prices usually go into a database.

graph LR A["E-commerce App"] --> B["Product Images -> Object Storage"] A --> C["Customer Names -> Database"] A --> D["Order Status -> Database"] A --> E["Invoice PDFs -> Object Storage"] A --> F["Sales Reports -> Data Warehouse"]

Object storage is used to store files - images, videos, documents, backups, CSV files, machine learning datasets, and app assets. Files are stored as objects inside a bucket. A bucket is like a container or folder, but more powerful than a normal folder.

When you create a virtual machine, it needs a disk to store its operating system, installed software, and application files. This is a separate kind of storage that’s attached directly to one VM, unlike object storage, which is used for files in general and can be accessed from anywhere.

Generic ConceptAWSGCP
Object Storage (files, buckets)S3Cloud Storage
Disk Storage (attached to a VM)EBSPersistent Disk

A relational database stores data in tables, with rows and columns. For example, a shopping app might have a customer table, a product table, an orders table, and a payment table. Relational databases are best when your data is structured and you want to use SQL queries.

A NoSQL database is used when data is huge, changes quickly, and doesn’t fit neatly into tables. Instead of rows and columns, it stores data as documents or key-value pairs, which is useful for mobile apps, chat apps, and apps where the data structure can change over time.

Some NoSQL databases are built specifically for massive workloads, like millions of devices sending sensor data every second, or systems storing huge amounts of time-series data. These are designed for speed and scale, far beyond what a normal relational database can handle.

For companies with global users, huge transaction volumes, and a need for very high availability, some providers offer a database that combines relational database features with the ability to grow across large, worldwide infrastructure.

Generic ConceptAWSGCP
Relational Database (managed)RDSCloud SQL
NoSQL Document Database (serverless)DynamoDBFirestore
Wide-Column NoSQL Database (massive scale)DynamoDB / KeyspacesBigtable
Globally Distributed Relational DatabaseAurora Global DBSpanner

Networking is how different systems connect and talk to each other. When a user opens a website, their request travels through the internet to a server, the server processes it, and sends the response back. Inside the cloud, networking decides how your virtual machines, databases, storage, APIs, and users all communicate.

A private network is your own isolated network inside the cloud provider, separate from everyone else’s. When you create resources like virtual machines, they need a network to communicate on. This private network gives you that space, and lets you control exactly which parts of your system can talk to which other parts - for example, letting only your backend server talk to your database, instead of exposing the database directly to the internet.

A load balancer spreads incoming user traffic across multiple servers. Imagine a busy restaurant with only one billing counter - the line gets too long. So the restaurant opens more counters, and a manager directs people to different counters. That manager is exactly what a load balancer does for your servers - if all traffic went to one server, it could slow down or crash, so a load balancer spreads it out.

A CDN delivers content faster by storing (caching) copies of it closer to your users, all around the world. If your main server is far away from some of your users, things can feel slow. A CDN keeps copies of your content - like images, videos, CSS, and JavaScript files - closer to users, so it loads faster.

DNS converts domain names into IP addresses. Humans remember names like example.com, but computers communicate using IP addresses. DNS connects the name to the correct server.

Generic ConceptAWSGCP
Private NetworkVPCVPC
Load BalancerElastic Load Balancer (ELB)Cloud Load Balancing
CDNCloudFrontCloud CDN
DNSRoute 53Cloud DNS

A data warehouse stores large amounts of data from many different sources, and lets teams analyze it, usually using SQL-like queries. For example, an e-commerce company might collect data from website visits, orders, payments, ads, customer support, and delivery, and bring it all into one place for analysis - answering questions like “which product sold the most last month?” or “which marketing campaign performed best?”

A messaging service lets different parts of a system talk to each other without connecting directly. One system publishes a message, and other systems subscribe to it and react. For example, when a user places an order, the order system can publish an “order placed” message, and separately, the payment service, inventory service, and email service can all pick it up and take their own action - instead of every system being wired directly to every other system.

A data pipeline service moves data from one place to another, while cleaning, transforming, and enriching it along the way. For example, raw website logs might not be useful directly - you may need to clean them, remove errors, convert formats, calculate metrics, and then load them into your data warehouse. This can process both batch data (in chunks) and streaming data (continuously).

A BI tool turns data into dashboards, charts, and reports for business teams, so they don’t need to write SQL queries themselves. For example, a sales manager can open a dashboard and instantly see monthly revenue, top products, sales by region, and customer growth.

Generic ConceptAWSGCP
Data Warehouse / AnalyticsRedshiftBigQuery
Messaging (Publish / Subscribe)SNS / SQSPub/Sub
Data Pipeline (batch and streaming)Glue / Kinesis Data AnalyticsDataflow
BI / DashboardsQuickSightLooker

A secrets manager stores sensitive information safely, like API keys, database passwords, tokens, and certificates. You should never write passwords directly inside your code - if the code leaks, the password leaks too.

Logging stores a record of what happened in your cloud services and applications - for example, “user logged in,” “payment failed,” “API took too long to respond.” When something goes wrong, logs help developers understand the problem.

Monitoring checks the health of your system. It tracks things like CPU usage, memory usage, error rates, latency, and overall service performance, and can alert you before your users start complaining.

Generic ConceptAWSGCP
Identity and AccessIAMIAM
Secrets ManagerSecrets ManagerSecret Manager
LoggingCloudWatch LogsCloud Logging
MonitoringCloudWatchCloud Monitoring

Let’s connect everything with one simple example: building an e-commerce website.

graph TD A["Users on the Internet"] --> B["DNS - points domain to app"] B --> C["CDN - caches static content"] C --> D["Load Balancer - spreads traffic"] D --> E["Compute - VM / App Platform / Containers runs the backend"] E --> F["Relational Database - customers, orders"] E --> G["Object Storage - product images, invoices"] E --> H["Messaging - order placed event"] H --> I["Data Pipeline - processes events"] I --> J["Data Warehouse - sales analysis"] J --> K["BI Dashboard - business reports"] E --> L["Secrets Manager - API keys, passwords"] E --> M["Logging & Monitoring - track errors and performance"] N["IAM - controls who can access what"] -.-> E N -.-> F N -.-> G
  • The website’s backend runs on compute (a VM, app platform, or containers).
  • Product images are stored in object storage.
  • Customer and order data are stored in a relational database.
  • Traffic is spread out using a load balancer, and the domain is managed with DNS.
  • Static content loads faster through a CDN.
  • IAM controls who can access what.
  • Order events are sent through a messaging service.
  • A data pipeline processes order and website data.
  • A data warehouse analyzes sales and customer behavior.
  • A BI tool turns that analysis into dashboards for the business team.
  • Logging helps debug errors, and monitoring tracks performance.

This is how real applications are built on the cloud - it’s never just one single service, but many services working together.

Getting Started - A Beginner’s Deployment Path

Section titled “Getting Started - A Beginner’s Deployment Path”

Here’s a simple, generic path any beginner can follow to deploy and use the major services on either AWS or GCP.

  1. Create an account: Sign up on the provider’s website. Both AWS and GCP (and most other providers, etc.) offer a free tier or free trial credits for new accounts.

  2. Create a project (or account/organization unit): This is the container that will hold all your resources. Give it a clear name related to what you’re building.

  3. Set up billing: Link a payment method, and set up a budget alert so you get notified before you spend more than expected. This step is easy to forget, but very important.

  4. Set up IAM: If you’re working with a team, create separate users and give each one only the permissions they actually need. Avoid giving everyone full access.

  5. Choose a region close to your users: This keeps your app fast for the people actually using it.

  6. Launch your first virtual machine: Pick a small, free-tier-eligible machine type first, just to get comfortable with creating, connecting to (via SSH), and deleting a VM.

  7. Create a storage bucket: Practice uploading and organizing files in object storage.

  8. Create a small database: Try a relational database first, since it’s usually the easiest to understand for beginners.

  9. Try a serverless function or managed app platform: Deploy a very small app or function without worrying about servers at all.

  10. Turn on logging and monitoring: Get used to checking logs and dashboards early, so troubleshooting later feels familiar.

  11. Clean up unused resources: Once you’re done testing, delete VMs, databases, and other resources you no longer need, so you don’t get charged for things you’re not using anymore.

CategoryGeneric ConceptAWSGCP
BasicsAccount / Project ContainerAccountProject
ComputeVirtual MachineEC2Compute Engine
ComputeManaged App Platform (PaaS)Elastic BeanstalkApp Engine
ComputeManaged KubernetesEKSGKE
ComputeServerless ContainersApp Runner / FargateCloud Run
ComputeServerless FunctionsLambdaCloud Run functions
StorageObject StorageS3Cloud Storage
StorageDisk Storage (attached to VM)EBSPersistent Disk
DatabaseRelational DatabaseRDSCloud SQL
DatabaseNoSQL Document DatabaseDynamoDBFirestore
DatabaseWide-Column NoSQL (massive scale)DynamoDB / KeyspacesBigtable
DatabaseGlobally Distributed Relational DBAurora Global DBSpanner
NetworkingPrivate NetworkVPCVPC
NetworkingLoad BalancerElastic Load BalancerCloud Load Balancing
NetworkingCDNCloudFrontCloud CDN
NetworkingDNSRoute 53Cloud DNS
Data & AnalyticsData WarehouseRedshiftBigQuery
Data & AnalyticsMessaging (Pub/Sub)SNS / SQSPub/Sub
Data & AnalyticsData PipelineGlue / Kinesis Data AnalyticsDataflow
Data & AnalyticsBI / DashboardsQuickSightLooker
SecurityIdentity and Access ManagementIAMIAM
SecuritySecrets ManagerSecrets ManagerSecret Manager
MonitoringLoggingCloudWatch LogsCloud Logging
MonitoringMonitoring / MetricsCloudWatchCloud Monitoring