Intermediate concepts in DevOps & Cloud, page 7
The Twelve-Factor App: A Blueprint for Portable Cloud Apps
The Twelve-Factor App is a blueprint for building portable, resilient cloud apps. It's used for microservices or apps on platforms like Kubernetes, ensuring they can be easily deployed and scaled. The footgun is treating it as dogma, not a guide.

Kubernetes ServiceAccounts: Identity for Pods
A ServiceAccount is an ID badge for a Pod, letting it securely talk to the Kubernetes API. It's used when your app needs to list other Pods or read Secrets.

AWS CodePipeline: Your CI/CD Orchestrator
AWS CodePipeline is an orchestrator for your software release workflow, connecting source, build, and deploy stages. It's used to automate continuous delivery, triggering actions on every code change. The footgun: it only *manages* the pipeline.

AWS CodeBuild: Managed Builds Without the Servers
Think of AWS CodeBuild as an on-demand build server you don't manage. It's used in CI/CD to compile code, run tests, and create artifacts. The main footgun is thinking it's a full CI/CD platform; it's just the 'build' step, needing an orchestrator.

AWS CodeDeploy: Automated, Safe Application Updates
AWS CodeDeploy automates pushing your application to servers, Lambda, or ECS. It handles complex updates across many targets, letting you release new features rapidly while minimizing downtime.

Rolling Updates: Deploying Code Without Downtime
A rolling update deploys new code by gradually replacing old application instances with new ones, ensuring zero downtime. It's the default for stateless services in orchestrators like Kubernetes.

Configuration as Code: Treat Your Settings Like Source Code
Configuration as Code (CasC) treats your settings like source code, storing them in version control. This ensures every environment is identical, with changes automatically tested and deployed via CI/CD.
GitLab Pipeline Configuration Hierarchy
GitLab pipeline settings stack like access-control layers. Project visibility, pipeline toggles, and role permissions interact to determine who sees logs, artifacts, or can cancel jobs.
Soak Testing: Finding Bugs That Only Time Reveals
Soak testing is like running a marathon, not a sprint, to find bugs that only time reveals. It applies a typical production load over a long period to uncover slow memory leaks or resource exhaustion. The footgun is confusing it with stress testing.

Promoting Code with Pipeline Stages
Think of pipeline stages as quality gates. Code must pass one gate, like 'build', before being promoted to the next, like 'deploy to staging'. This is core to CI/CD, moving code safely from dev to production. The footgun is making later stages less strict.
Scalability Testing: Will More Hardware Fix It?
Scalability testing answers 'Will more hardware fix it?' by measuring how performance improves when you add resources. The common footgun is confusing it with load testing, which just finds the breaking point under a given load.
Configuration Drift: When Servers Go Rogue
Configuration drift is when a server's live settings diverge from your version-controlled 'source of truth.' This happens from manual hotfixes or inconsistent deployments, creating snowflake servers that are hard to debug.

Time-Series Forecasting: Predicting the Future from the Past
Time-series forecasting uses past data points, ordered by time, to predict future values. It's used for capacity planning and financial modeling. The footgun is assuming past trends will hold, as sudden system changes can invalidate all predictions.

Kubernetes StorageClass: A Menu for Your Data
A StorageClass is an admin-defined 'menu' of storage options, abstracting the provider. Developers request storage by name (e.g., 'fast-ssd') via a PersistentVolumeClaim, and Kubernetes dynamically provisions it.
AWS Secrets Manager: Stop Hardcoding Credentials
AWS Secrets Manager is a digital vault for your app's credentials. Instead of hardcoding API keys or database passwords, your app fetches them at runtime. It's used for storing sensitive data securely, with built-in rotation and auditing.

Performance Budgets: Set Limits to Stay Fast
A performance budget is a hard limit on metrics like bundle size or load time, acting as a guardrail against regressions. It's used in CI/CD to fail builds that exceed size limits or in monitoring to alert when load times degrade.

Dynamic Volume Provisioning: Storage on Demand
Dynamic Volume Provisioning lets you request storage by its type (e.g., "fast-ssd") instead of pre-provisioning a disk. Kubernetes automatically creates a matching volume. This is standard for stateful apps.

Kubernetes Control Plane: The Cluster's Brain
The Kubernetes control plane is the cluster's brain, making all global decisions like scheduling pods and responding to events. You interact with it via kubectl to manage your applications. The footgun: never run your own workloads on control plane nodes.

Kubernetes Node: The Cluster's Worker Machine
A Kubernetes Node is a worker machine that runs your applications. Think of it as an employee receiving tasks (Pods) from the control plane manager. The common footgun is confusing the Node with the Pod; a Node is the server, while a Pod is the.
Persistent Volume and Persistent Volume Claim
Kubernetes separates storage provisioning from consumption. A PersistentVolume is a cluster storage resource an admin or driver provisions; a PersistentVolumeClaim is a pod's request for storage.
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