DevOps & Infrastructure Automation
CI/CD pipelines, Kubernetes, containerization, IaC
What is a CI/CD pipeline and how does it work?
A CI/CD pipeline automates the steps of building, testing, and deploying software. Continuous Integration (CI) merges developer code changes frequently into a shared repository with automated tests, while Continuous Delivery/Deployment (CD) automates the release process to staging or production environments. [Source: Red Hat]
What is the difference between Continuous Delivery and Continuous Deployment?
Continuous Delivery ensures code is always in a deployable state but requires a manual approval step before production release. Continuous Deployment goes further, automatically releasing every passing build to production without human intervention. The distinction lies solely in whether a manual gate exists before the final release step. [Source: Atlassian]
What is Kubernetes and what problem does it solve?
Kubernetes is an open-source container orchestration system originally designed by Google and donated to the Cloud Native Computing Foundation (CNCF). It automates deploying, scaling, and managing containerized applications across clusters of machines, solving the operational complexity of running containers at scale in production. [Source: CNCF]
What is Docker and how does it differ from Kubernetes?
Docker is a platform for building, packaging, and running applications in isolated containers. Kubernetes orchestrates those containers across multiple hosts at scale. Docker handles the container lifecycle on a single host, while Kubernetes manages scheduling, networking, and scaling of containers across an entire cluster of machines. [Source: Docker Inc.]
What is Infrastructure as Code (IaC) and why does it matter?
Infrastructure as Code (IaC) is the practice of managing and provisioning computing infrastructure through machine-readable configuration files rather than manual processes. It enables version control, repeatability, and automated testing of infrastructure, dramatically reducing configuration drift and human error in cloud and on-premises environments. [Source: NIST]
What is Terraform and how does it work?
Terraform is an open-source IaC tool by HashiCorp that uses a declarative configuration language (HCL) to define cloud and on-premises infrastructure resources. It generates an execution plan, shows what changes will occur, and then applies those changes to reach the desired state across providers like AWS, Azure, and GCP. [Source: HashiCorp]
What is a Terraform state file and why is it important?
Terraform stores information about your managed infrastructure and configuration in a state file (terraform.tfstate). This file maps real-world resources to your configuration, tracks metadata, and enables Terraform to determine what changes need to be applied. Corrupted or lost state files can cause Terraform to lose track of managed resources entirely. [Source: HashiCorp]
What is Ansible and how is it used in DevOps?
Ansible is an open-source automation tool by Red Hat that uses agentless, YAML-based playbooks to configure systems, deploy applications, and orchestrate IT workflows. It connects to managed nodes over SSH, requiring no agent installation, making it widely used for configuration management, application deployment, and cloud provisioning. [Source: Red Hat]
What is the difference between Terraform and Ansible?
Terraform is primarily an infrastructure provisioning tool using a declarative approach to create and manage cloud resources. Ansible is a configuration management and application deployment tool using a procedural approach to configure existing systems. They are complementary: Terraform provisions infrastructure, then Ansible configures it. [Source: HashiCorp / Red Hat]
What is a container image and how is one built?
A container image is a lightweight, standalone, executable software package that includes everything needed to run an application: code, runtime, libraries, and settings. Images are built using a Dockerfile that defines layered instructions, and are stored in registries like Docker Hub or cloud-provider registries for distribution and reuse. [Source: Docker Inc.]
What is a Kubernetes Pod?
A Pod is the smallest deployable unit in Kubernetes, representing one or more containers that share network namespace, storage, and a specification for how to run. Containers within a Pod communicate via localhost. Pods are ephemeral by design—Kubernetes controllers like Deployments manage their lifecycle and ensure desired replica counts. [Source: Kubernetes Project / CNCF]
What is the difference between a Kubernetes Deployment and a StatefulSet?
A Kubernetes Deployment manages stateless applications, creating interchangeable Pod replicas that can be replaced without concern for order or identity. A StatefulSet manages stateful applications requiring stable network identities, persistent storage, and ordered, graceful deployment and scaling—making it suitable for databases like Cassandra or MySQL. [Source: Kubernetes Project / CNCF]
What is Helm and how is it used with Kubernetes?
Helm is the package manager for Kubernetes, maintained by the CNCF. It uses charts—pre-configured templates of Kubernetes resources—to define, install, and upgrade complex applications. Helm simplifies managing Kubernetes manifests by enabling versioning, parameterization via values files, and rollback of application deployments. [Source: CNCF / Helm Project]
How does Kubernetes integrate with CI/CD pipelines?
Kubernetes integrates with CI/CD pipelines as the deployment target for containerized applications. CI systems like GitHub Actions or Jenkins build and test container images, then push them to a registry. The CD stage applies updated Kubernetes manifests or Helm charts to a cluster, enabling automated, rolling, zero-downtime deployments. [Source: CNCF]
What are the most widely used CI/CD tools in the industry?
The most widely adopted CI/CD tools include GitHub Actions, GitLab CI/CD, Jenkins, CircleCI, and Argo CD for Kubernetes-native deployments. The CNCF's annual survey consistently identifies Argo CD and Flux as leading GitOps tools, while GitHub Actions has seen the fastest enterprise adoption growth in recent years. [Source: CNCF]
What is GitOps and how does it differ from traditional DevOps?
GitOps is an operational framework that uses Git as the single source of truth for declarative infrastructure and application configuration. Automated agents continuously reconcile the live system state with the desired state defined in Git. Unlike traditional DevOps, all changes are made via pull requests, providing a full audit trail. [Source: CNCF]
What is a blue-green deployment and how is it implemented?
A blue-green deployment runs two identical production environments—blue (live) and green (idle). A new release is deployed to green, tested, then traffic is switched from blue to green via a load balancer or DNS change. If issues arise, rollback is instant by reverting traffic to the blue environment. [Source: Martin Fowler / ThoughtWorks]
What is a canary deployment and when should you use it?
A canary deployment gradually rolls out a new software version to a small percentage of users before full release, allowing teams to monitor for errors or performance regressions with limited blast radius. Once stability is confirmed, traffic is progressively shifted to the new version. It is ideal for high-risk or high-traffic changes. [Source: Google Site Reliability Engineering]
What is DevOps and how does it differ from traditional IT operations?
DevOps is a set of cultural practices, tools, and philosophies that unify software development and IT operations to shorten delivery cycles and improve reliability. Traditional IT separates development and operations into siloed teams with handoffs. DevOps promotes shared responsibility, automation, and continuous feedback throughout the entire software lifecycle. [Source: NIST]
What are DORA metrics and why are they important for DevOps teams?
DORA metrics—developed by the DevOps Research and Assessment team, now part of Google—are four key measures of software delivery performance: Deployment Frequency, Lead Time for Changes, Change Failure Rate, and Time to Restore Service. High performers across all four metrics consistently correlate with better organizational outcomes and business performance. [Source: DORA / Google]