Skip to content
tezvyn:

CI/CD & Automation

GitHub Actions, Terraform, ArgoCD, IaC, pipelines

157 bites

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

Intermediate everything in CI/CD & Automation, page 7

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.

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 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.

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.

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.

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.

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.

Ephemeral Environments: A Staging Server for Every PR
intermediate2 min read

Ephemeral Environments: A Staging Server for Every PR

Ephemeral environments are disposable, production-like test servers created for every pull request. They let developers test changes in isolation without waiting for a shared staging server, catching integration bugs earlier.

Infrastructure Drift: When Reality and Code Diverge
intermediate2 min read

Infrastructure Drift: When Reality and Code Diverge

Infrastructure drift is when live systems no longer match their configuration code. This happens when someone manually changes a cloud resource instead of updating the Terraform file. The footgun: your next terraform apply may destroy your manual changes.

intermediate2 min read

Ansible: Automating Infrastructure with Playbooks

Ansible is like a recipe book for your servers. You write simple "playbooks" describing a desired state, and Ansible makes it happen over SSH without installing agents. It's ideal for configuration management, app deployment, and orchestrating workflows.

Packer: Build Identical Machine Images Everywhere
intermediate2 min read

Packer: Build Identical Machine Images Everywhere

Packer is a universal recipe for baking machine images. It takes a single template and builds identical images for multiple platforms like AWS or Docker. Use it to create consistent "golden images" for your infrastructure.

Terraform State: The Map to Your Infrastructure
intermediate2 min read

Terraform State: The Map to Your Infrastructure

Terraform state is the source of truth mapping your code to real cloud resources. It's used on every plan and apply to determine changes. The footgun: never store state in Git or edit the tfstate file directly; this risks corruption and secret leaks.

Self-Hosted Runners: Bring Your Own CI/CD Hardware
intermediate2 min read

Self-Hosted Runners: Bring Your Own CI/CD Hardware

A self-hosted runner is your own machine executing CI/CD jobs, giving you full control over its environment and network. Use it for private network access or custom hardware. The footgun: you are now responsible for all security, updates, and maintenance.

GitHub Composite Actions: Script Your CI Steps
intermediate2 min read

GitHub Composite Actions: Script Your CI Steps

A composite action is a reusable script for your CI workflow, bundling multiple steps into one. It's perfect for DRYing up common sequences like setup and testing, but remember you cannot nest composite actions within each other.

intermediate2 min read

Jenkins Shared Libraries: Don't Repeat Your Pipeline Code

Jenkins Shared Libraries let you centralize and reuse Pipeline code, just like a common function library. Use them to define standard build or deployment stages across many projects.

intermediate2 min read

Secrets Management in CI/CD Pipelines

Treat secrets like temporary keys, not permanent passwords. Your CI/CD pipeline should fetch them just-in-time from a central vault, never storing them in code. The biggest footgun is storing secrets as long-lived environment variables in the CI tool itself.

intermediate2 min read

Conditional Pipeline Execution: Run Jobs Only When Needed

Think of conditional execution as if statements for your CI/CD pipeline, letting you run or skip jobs based on specific triggers. Use it to run tests on merge requests or deploy only from main.

intermediate2 min read

CI/CD Pipelines: How Stages and Jobs Orchestrate Work

Think of a CI/CD pipeline as an assembly line. Stages are sequential stations (Build, Test, Deploy), while jobs are the parallel tasks at each station. This model automates software delivery. The footgun: a single failed job halts the entire line by default.

intermediate2 min read

Maven SNAPSHOTs: Versions for Active Development

A SNAPSHOT version tells Maven 'this is a work-in-progress,' allowing newer builds to replace it without a version bump. Use it in CI for active development so dependent projects get the latest changes.

Package Lock Files: Ensuring Reproducible Builds
intermediate2 min read

Package Lock Files: Ensuring Reproducible Builds

A package lock file is a snapshot of your dependency tree, ensuring everyone on your team and your CI server installs the exact same package versions. It's crucial for preventing "works on my machine" bugs.

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