☁️Cloud Fundamentals
☁️ What is Cloud Computing?
›Service models — the most important concept to understand first
Before learning AWS or Azure, understand what cloud computing actually is: renting compute, storage, and networking instead of buying hardware. The key question is always: what do you manage vs what does the provider manage?
| Model | You manage | Provider manages | Example |
|---|---|---|---|
| On-Premise | Everything | Nothing | Your data centre |
| IaaS | OS, runtime, app, data | Hardware, network, virtualisation | EC2, Azure VM, GCP Compute |
| CaaS | Containers, data | Everything + K8s control plane | EKS, AKS, GKE |
| PaaS | App code, data | OS, runtime, scaling | Elastic Beanstalk, App Service |
| FaaS | Function code, data | Everything else | Lambda, Azure Functions |
| SaaS | Config, user data | Everything | Gmail, Salesforce |
Service models + key cloud concepts
💰 Pricing Models & Shared Responsibility
›Cost optimisation starts with understanding pricing models
The Most Important Security Concept in CloudThe shared responsibility model. AWS/Azure/GCP secure their infrastructure. You secure your configuration. The largest cloud breaches in history — Capital One, Twitch, Toyota — were misconfigurations, not cloud provider failures. Public S3 buckets, overly permissive IAM roles, databases accessible from the internet. Know this model cold for any cloud security interview.
Pricing models + shared responsibility model
🏗️ Architecture Patterns
›Three-tier, microservices, event-driven, serverless, 12-factor
☁️ Cloud Service Models — IaaS, PaaS, SaaS, FaaS
›What you manage vs what the cloud manages
| Layer | On-Premise | IaaS | PaaS | SaaS |
|---|---|---|---|---|
| Application | You | You | You | Provider |
| Runtime/Framework | You | You | Provider | Provider |
| OS | You | You | Provider | Provider |
| Virtualisation | You | Provider | Provider | Provider |
| Servers/Hardware | You | Provider | Provider | Provider |
Real examples of each model
| Model | What it is | AWS | Azure | When to use |
|---|---|---|---|---|
| IaaS | Rent raw compute — you manage OS, runtime, app | EC2, VPC | Azure VM, VNet | Full control, legacy migration |
| PaaS | Platform manages OS — you manage app and data | RDS, Beanstalk | App Service, Azure SQL | Devs focus on code not infra |
| SaaS | Fully managed software — you just use it | WorkMail | Office 365, Teams | End-user tools |
| FaaS | Serverless — pay per execution | Lambda | Azure Functions | Event-driven, short tasks |
| CaaS | Managed container platform | EKS, ECS | AKS | Containers without managing masters |
Memory tip: IaaS = I manage almost everything. PaaS = Platform manages OS. SaaS = Software delivered, I use it. FaaS = Function on demand.
🏗️ Deployment Models — Public, Private, Hybrid, Multi-Cloud
›Four ways to deploy cloud infrastructure
| Model | What it is | Who uses it |
|---|---|---|
| Public Cloud | Resources on shared provider infrastructure | Startups, SMEs, enterprises |
| Private Cloud | Dedicated cloud on-premise or hosted | Banks, defence, regulated industries |
| Hybrid Cloud | Public cloud + private/on-premise connected | Most large enterprises |
| Multi-Cloud | Multiple public cloud providers simultaneously | Large enterprises, resilience-focused |
Hybrid vs Multi-Cloud
Hybrid: one cloud + on-premise. Example: SAP on-prem, web tier in Azure, connected via ExpressRoute. Multi-Cloud: multiple public clouds. Example: AWS for ML, Azure for enterprise identity, GCP for analytics.
🚀 Cloud-Native Principles
›The principles of cloud-native design
| Principle | What it means | Example |
|---|---|---|
| Stateless | No local state — any instance handles any request | Session in Redis not in memory |
| Containerised | Package app with all dependencies | Docker image with app + runtime |
| Config from env | No config in code — inject via env vars | DATABASE_URL env var not hardcoded |
| Disposable | Start fast, shut down gracefully | K8s restarts pods in seconds |
| Scale horizontally | Add instances not bigger instances | HPA adds pods not bigger pods |
| Observable | Metrics, logs, traces — cannot manage what you cannot see | Prometheus + Loki + Jaeger |
| Automate everything | No manual deployments or config | GitOps, IaC, CI/CD pipelines |
Cloud-native vs traditional
| Traditional | Cloud-Native |
|---|---|
| Monolith — one big deployable | Microservices — independent deployables |
| Deploy monthly or quarterly | Deploy multiple times per day |
| Scale vertically (bigger server) | Scale horizontally (more instances) |
| Manual config, manual deploy | IaC + GitOps — everything automated |
| Failure is exceptional | Failure is expected — design for resilience |
🎯 Interview Questions
›CLOUD · ENGINEER
Explain the shared responsibility model in cloud security with a real example.
The shared responsibility model defines what the cloud provider secures and what you must secure. The cloud provider is responsible FOR the cloud — physical data centre security, hardware, hypervisor, network infrastructure, the managed service itself (RDS engine, S3 service). You are responsible IN the cloud — everything you configure, your data, your application code, your access control. Real example: S3 data breach. AWS guarantees S3 is available and their systems cannot be breached. But if you create an S3 bucket and configure it with public read access, and sensitive customer data leaks — that is entirely your responsibility. AWS did what they promised. You misconfigured it. Another example: RDS PostgreSQL. AWS patches the PostgreSQL engine — that is their responsibility. But if you configure the database to allow connections from 0.0.0.0/0 (the internet), or you choose not to enable encryption at rest, or you use default admin credentials — those are your responsibilities. The model gets more complex with PaaS and SaaS. With Lambda (FaaS), AWS manages the runtime environment and OS patching — you only manage your function code and the IAM permissions you configure. Understanding this model is critical for security architecture: before blaming a cloud breach on the provider, first check what YOU configured.
CLOUD · ARCHITECT
What is the difference between IaaS, PaaS, CaaS, and FaaS? Give a real example of choosing between them.
IaaS gives you virtual machines — you manage the OS, runtime, and everything above. Maximum control, maximum responsibility. Use when: you need specific OS configuration, legacy apps that cannot be containerised, or need direct hardware access. PaaS gives you a runtime platform — deploy code, platform handles OS, scaling, load balancing. Use when: your team should not spend time on infrastructure, simple web apps. CaaS gives you managed Kubernetes — deploy containers, the control plane is managed. Use when: containerised microservices, need K8s capabilities but do not want to manage masters. FaaS gives you function execution — write code, platform handles everything. Use when: event-driven tasks, API endpoints with variable traffic (scales to zero). Real decision example: a payment processing API. IaaS (EC2): team manages OS patches, load balancer config, auto-scaling — significant ops overhead. PaaS (Elastic Beanstalk): simpler, but less control, hard to customise. CaaS (EKS): team deploys Docker containers, K8s handles scheduling and scaling. AWS manages control plane. Right choice for microservices with >3 services. FaaS (Lambda): works for simple stateless APIs but payment processing often has >15 second transactions and stateful requirements. For HPE telecom SRO platform: CaaS (EKS/AKS/OpenShift) is the right choice — complex multi-service system needing full K8s capabilities but managed control plane.
CLOUD · BEGINNER
What is the difference between IaaS, PaaS, and SaaS?
IaaS (Infrastructure as a Service): the cloud provides raw compute, storage, and networking. You manage OS, runtime, and application. You patch the OS, configure security, and handle scaling. Examples: AWS EC2, Azure VMs, GCP Compute Engine. PaaS (Platform as a Service): cloud manages OS, runtime, and middleware. You deploy only your application code. No OS patching. Examples: AWS Elastic Beanstalk, Azure App Service, Google App Engine. Best for developers who want to focus on code not infrastructure. SaaS (Software as a Service): fully managed software over the internet. You configure and use it. Examples: Office 365, Salesforce, Gmail. DevOps relevance: databases should be PaaS (RDS, Azure SQL). Web apps can be PaaS or containers on IaaS. End-user tools are SaaS. The decision is: how much control do you need vs how much management overhead can you offload?
CLOUD · ENGINEER
What is the shared responsibility model and why does it matter?
The shared responsibility model defines what the cloud provider secures versus what the customer secures. The provider is always responsible for physical data centres, hardware, hypervisor, and global network. The customer is always responsible for data, IAM configuration, application security, and encryption. What sits between depends on the service: IaaS — customer also manages OS patching and OS-level firewall. PaaS — provider manages OS, customer manages database access controls and data. SaaS — provider manages almost everything, customer manages user access and data governance. Why it matters: most cloud security breaches are customer-side. Misconfigured S3 buckets, leaked IAM credentials on GitHub, open security groups — these are customer failures. AWS was not breached. The customer misconfigured their setup. In security audits and compliance reviews (PCI-DSS, ISO 27001, HIPAA), you must explicitly document this boundary — what your team is responsible for securing and what the provider handles.
CLOUD · ENGINEER
What are the key principles of cloud-native application design?
Cloud-native means exploiting cloud capabilities fully, not just moving a traditional app to the cloud. Core principles: Stateless services — any instance handles any request, no local state. Session data in Redis. Enables horizontal scaling and zero-downtime deploys. Containerisation — same image runs identically in dev, staging, and production. No more "works on my machine." Config from environment — no hardcoded config. Inject database URLs and API keys via env vars or K8s Secrets. Same image deploys everywhere with different configs. Disposability — design for crash recovery. Start fast, handle SIGTERM gracefully, drain connections before shutdown. Design for failure — any component can fail at any time. Circuit breakers, retries with backoff, multi-AZ redundancy. Observable — metrics, structured logs, distributed traces. Automate everything — IaC, GitOps, CI/CD. No manual steps. The litmus test: can you deploy to production at 2am with full confidence? If yes, you are cloud-native.
CLOUD · ARCHITECT
What is hybrid cloud and when would you design for it?
Hybrid cloud connects on-premise infrastructure with public cloud as one unified platform. Typically connected via dedicated network (AWS Direct Connect, Azure ExpressRoute) not public internet. Main use cases: Data residency compliance — regulations require certain data stays on-premise or in-country. App runs in cloud, sensitive data stays on-premise. Burst to cloud — baseline on owned hardware (cheaper for stable load), peak periods burst to cloud for elastic capacity. Legacy integration — mainframe or ERP cannot move to cloud. New cloud-native apps integrate with it via private connectivity. Gradual migration — some services moved, others not yet, both communicate as one system. Tools: Azure Arc extends Azure management to on-premise VMs and K8s clusters. AWS Outposts runs AWS infrastructure physically in your data centre. GCP Anthos manages on-premise K8s with Google Cloud tools. Difference from multi-cloud: hybrid = on-premise + one cloud. Multi-cloud = multiple public clouds. Most large enterprises are both — legacy on-premise (hybrid) and multiple clouds chosen by different teams (multi-cloud by accident).
Continue Learning