Skip to content
tezvyn:

CI/CD & Automation

GitHub Actions, Terraform, ArgoCD, IaC, pipelines

172 bites

Test yourself: Top 30 CI/CD & Automation concepts questionsMultiple choice, with the correct answer and why it is correct on every question. Free, no sign-in.

Concepts in CI/CD & Automation, page 5

easy1 min read

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.

Configuration as Code: Treat Your Settings Like Source Code
intermediate2 min read

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.

intermediate2 min read

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.

intermediate2 min read

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.

intermediate2 min read

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.

advanced2 min read

Kubernetes Sealed Secrets: Git-Friendly Secret Management

Sealed Secrets let you safely commit encrypted Kubernetes secrets to a public Git repo. A one-way lockbox: anyone can add a secret, but only the target cluster can unlock it. Essential for GitOps, but remember: a Sealed Secret is tied to its cluster.

advanced2 min read

External Secrets Operator: Sync Secrets into Kubernetes

The External Secrets Operator (ESO) acts as a bridge, syncing secrets from an external store like Vault or AWS Secrets Manager into native Kubernetes Secrets. This keeps secrets out of Git and centralizes management.

Software Containers: Portable, Isolated Applications
easy2 min read

Software Containers: Portable, Isolated Applications

Think of a container as a standardized box for your app, bundling its code and all dependencies. This lets you run it consistently anywhere, from your laptop to the cloud.

Dockerfile: The Recipe for Your Container
easy2 min read

Dockerfile: The Recipe for Your Container

A Dockerfile is a recipe for building a container image. It's a text file of commands that automates an application's environment setup, ensuring it runs identically anywhere. The footgun is creating bloated images with unnecessary build tools.

easy2 min read

Container Image: A Blueprint for Your Application

A container image is a static blueprint for your application, bundling code, runtime, and settings. You build images to ship software for Docker or Kubernetes, which then run them as live containers.

Docker Compose: A Tool for Containerized Applications
easy1 min read

Docker Compose: A Tool for Containerized Applications

Docker Compose is a tool in the Docker suite for running applications in containers. It ensures your app runs the same everywhere by packaging it with its dependencies, solving the 'works on my machine' problem.

intermediate1 min read

Kubernetes: The Operating System for Your Cluster

Think of Kubernetes as an OS for your entire datacenter. It automates deploying, scaling, and managing containerized applications across a fleet of servers. The footgun is adopting it for simple projects, where its complexity outweighs its benefits.

Kubernetes Pods: The Atomic Unit of Deployment
intermediate2 min read

Kubernetes Pods: The Atomic Unit of Deployment

A Kubernetes Pod is the atomic unit of deployment, a logical host for containers sharing a network and storage. This is ideal for co-locating a main app with a helper "sidecar" container. The footgun: a Pod is not a container; you scale by adding more.

Kubernetes Deployment: Declarative App Updates
intermediate2 min read

Kubernetes Deployment: Declarative App Updates

A Kubernetes Deployment is your app's blueprint. You declare the desired state—like '3 replicas of image v2'—and Kubernetes makes it happen. It's the standard for stateless apps like APIs. The footgun: don't manage Pods directly; manage the Deployment.

Kubernetes Service: A Stable Address for Ephemeral Pods
intermediate2 min read

Kubernetes Service: A Stable Address for Ephemeral Pods

A Kubernetes Service provides a stable IP address and DNS name for a group of ephemeral Pods. It acts like a load balancer, distributing traffic so you don't have to track individual Pod IPs, which can change at any time.

intermediate2 min read

Helm: The Package Manager for Kubernetes

Helm is the package manager for Kubernetes. It uses a packaging format called Charts to define, install, and upgrade applications, making it the standard way to manage software on a K8s cluster. It is a Cloud Native Computing Foundation (CNCF) project.

Kubernetes Ingress: The Cluster's Front Door
intermediate2 min read

Kubernetes Ingress: The Cluster's Front Door

Kubernetes Ingress is the smart receptionist for your cluster. It routes external HTTP/S requests to internal services based on hostnames or paths, letting you expose multiple apps under one IP.

Kubernetes StatefulSets: Stable Identity for Pods
advanced2 min read

Kubernetes StatefulSets: Stable Identity for Pods

A StatefulSet gives pods a stable, unique identity and persistent storage, unlike a Deployment's interchangeable replicas. Use it for clustered databases or queues where members need stable network names.

advanced2 min read

Service Mesh: The Network Layer for Your Microservices

A service mesh acts as a dedicated network layer for microservices, handling complex communication logic outside your application. It enables features like mTLS and canary releases.

advanced2 min read

CNI: The Universal Plug for Container Networking

CNI is the standard API that decouples container runtimes from network implementations. In Kubernetes, it lets you swap networking plugins like Calico or Flannel.

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