Easy concepts in DevOps & Cloud, page 5
Managed Database Backups: Your Cloud's Undo Button
Think of managed backups as your cloud provider's automated safety net for your database. It periodically saves snapshots, letting you restore to a point in time after a failure.

Terraform: Manage Infrastructure as Code
Terraform lets you define cloud infrastructure—servers, databases, networks—in a text file, like a blueprint. It reads this file and builds everything for you, making setups on AWS, GCP, or Azure repeatable.
AWS CloudFormation: Your AWS Infrastructure as a Blueprint
AWS CloudFormation is your infrastructure's blueprint. Declare AWS resources in a YAML/JSON file, and AWS builds it. This is perfect for creating repeatable, version-controlled environments.
Declarative vs. Imperative Automation
Declarative automation defines the desired end state (“what”), not the steps to get there (“how”). It's used in tools like Kubernetes to manage complex infrastructure, letting the system figure out the details.

Vagrant: Your Dev Environment as Code
Vagrant is a scriptable remote for virtual machines, defining a dev environment in one text file. It ensures teams have identical, isolated setups, solving "it works on my machine" problems.

ConfigMap decouples config from container images
A ConfigMap is a key-value store that injects configuration into pods without rebuilding the image. Use it for feature flags, database hostnames, or any non-secret settings. Editing one does not restart existing pods, so stale config is the common footgun.
CI/CD Pipeline: Automating Code from Commit to Production
A CI/CD pipeline is an automated assembly line for code, moving changes from commit to production. It automates building, testing, and deployment to increase release speed and find defects early.

Kubernetes Secrets: Managing Sensitive Data in Pods
A Kubernetes Secret is a dedicated object for storing sensitive data like API keys, separating them from your application code. It's used to inject database credentials or TLS certificates into pods.
Release Candidate: The Final Dress Rehearsal
A Release Candidate (RC) is the final dress rehearsal before a software launch—a version believed to be stable enough to ship. It's used for final validation to catch show-stopping bugs.

Kubernetes: Inject ConfigMaps & Secrets as Env Vars
Injecting ConfigMaps and Secrets as environment variables decouples your app from its configuration. Kubernetes passes these key-value pairs into your container at startup, perfect for things like API keys or feature flags.
AWS Elastic Beanstalk: Your App, Not Your Servers
Elastic Beanstalk is a PaaS-like wrapper for AWS infrastructure. You upload your code, and it handles provisioning servers, load balancers, and scaling. It's great for standard web apps but its abstraction is leaky; debugging often requires knowing the…

Procfile: Declare Your App's Startup Commands
A Procfile is the start script for your cloud app, telling the platform what commands to run. You use it to define processes like a web server for HTTP traffic or workers for background jobs.
AWS SDK: Code That Operates Your Cloud
The AWS SDK turns AWS API calls into native code so your app can command S3 or DynamoDB directly. It handles auth, retries, and formatting automatically. The footgun: forgetting region or credentials causes silent failures that look like network errors.
Environment Variables: Configuration Outside Code
Environment variables are settings passed to your app from the outside world, letting you change behavior without touching code. Use them for API keys or database URLs. The biggest footgun is committing secrets to version control instead of using variables.
Configuration Files: Separating Code from Settings
A config file separates a program's behavior from its code, allowing you to change settings like database URLs without recompiling. They're used for API keys, feature flags, and environment-specific values. The footgun is committing secrets to version control.
Load Testing: Simulating Real-World User Traffic
Load testing answers 'Can our system handle expected traffic?' by simulating many users at once. Use it before a big launch to find bottlenecks. The footgun is confusing it with stress testing, which pushes a system past its limits to see how it breaks.
The Twelve-Factor App: Store Config in the Environment
Your app's code is the blueprint; its config is the specific address and utility hookups. Store config—database URLs, API keys—in environment variables, not in the code. The footgun is hardcoding secrets, making your code base impossible to open-source safely.
Stress Testing: Finding Your System's Breaking Point
Stress testing finds a system's breaking point by pushing it beyond normal limits. It's used for mission-critical software to test robustness and availability under extreme load, not just normal function.
Benchmarking: Know Your System's Limits
Benchmarking finds your system's limits by measuring its responsiveness and stability under a controlled workload. Use it to catch performance regressions, compare tech choices, or for capacity planning. The footgun: trusting benchmarks run on your laptop.

PersistentVolumeClaim: How Pods Request Storage
A PersistentVolumeClaim (PVC) is a request for storage, like a claim check for a storage locker. Pods use it to mount durable storage for databases or file uploads. The footgun: a PVC is just a request; a matching PersistentVolume must exist to fulfill it.
We are hiring for this. Every open role lists the topics its interview covers, so you can prepare for the real thing rather than guessing.
See open roles