DevOps
Prerequisites
Cloud & IaC Foundations

Cloud & IaC Foundations

Understanding the cloud and how to manage it via code is what separates a traditional system administrator from a DevOps engineer.

1. Cloud Computing Basics

Before learning a specific provider (like AWS), you need to understand the core concepts of the cloud.

  • Virtualization: How one physical server can run multiple "Virtual Machines" (VMs).
  • Service Models:
    • IaaS (Infrastructure as a Service): Renting raw servers (e.g., AWS EC2).
    • PaaS (Platform as a Service): Renting a platform to run code (e.g., Heroku, Elastic Beanstalk).
    • SaaS (Software as a Service): Using software over the internet (e.g., Gmail, Dropbox).
  • Shared Responsibility Model: Knowing what you are responsible for securing vs. what the cloud provider secures.

[!TIP] Get Hands-on: Sign up for free-tier accounts on AWS, Azure, or GCP and try creating a VM.


2. Infrastructure as Code (IaC)

This is the philosophy that separates "SysAdmin" from "DevOps". It means managing your infrastructure (servers, networks, databases) using code files rather than manually configuring them.

Key Concepts

  • Declarative vs. Imperative:
    • Declarative: "I want 3 servers" (Tools like Terraform).
    • Imperative: "Run these 10 commands to create 3 servers" (Bash scripts).
  • Idempotency: The concept that running the same script multiple times should produce the same result without breaking things.