DevOps¶
Operational practices and tooling for deploying, monitoring, and maintaining systems: version control, build automation, containerization, orchestration, and observability.
Topics¶
Git¶
Version Control - Branching - Merging - Rebasing - Conflicts - Remote - Push/Pull
Git workflows: branching strategies (feature branches, trunk-based development), merge vs. rebase trade-offs, conflict resolution, remote collaboration, commit hygiene.
Build Tools¶
Maven - Gradle - Ant - Build Lifecycle - Dependency Management - Plugins - Profiles
Build automation: Maven (POM, lifecycle, repositories), Gradle (build scripts, tasks), dependency resolution, multi-module projects, release automation.
CI/CD¶
Jenkins - GitLab CI - GitHub Actions - Pipelines - Automated Testing - Deployment Automation
Continuous integration/deployment: automated builds, testing gates, artifact repositories, deployment pipelines, rollback strategies, environment promotion.
Docker & Containers¶
Docker - Images - Containers - Dockerfile - Registry - Networking - Volumes - Best Practices
Containerization: Docker fundamentals, image layers, container lifecycle, multi-stage builds, registry management (Docker Hub, ECR), networking, persistent volumes.
Kubernetes¶
K8s - Pods - Deployments - Services - ConfigMaps - Secrets - Ingress - Helm - Operators
Kubernetes orchestration: pod management, deployments with rolling updates, service discovery and load balancing, configuration management, storage, networking, package management with Helm.
Observability¶
Logging - Monitoring - Metrics - Tracing - Alerting - ELK Stack - Prometheus - Grafana - Jaeger
System visibility: centralized logging (ELK, Splunk), metrics collection (Prometheus), distributed tracing (Jaeger), alerting rules, dashboards, SLOs/SLIs.
Quick Interview Prep¶
Git essentials: - Branching: feature branches off main; code review via PR; merge or rebase to main - Conflict resolution: merge conflicts require manual resolution; rebase replays commits (linear history) - Remote workflow: fetch (download), merge (integrate), push (upload)
CI/CD pipeline stages: 1. Source: Code commit triggers pipeline 2. Build: Compile, run unit tests, build artifacts 3. Test: Integration tests, security scans, code coverage 4. Stage: Deploy to staging/UAT environment 5. Prod: Deploy to production; canary or blue-green strategy
Docker best practices: - Multi-stage builds: Reduce final image size; separate build and runtime - Layer caching: Order Dockerfile commands by change frequency (stable → dynamic) - .dockerignore: Exclude unnecessary files (like .git, node_modules) - Minimal base images: alpine, distroless (security, size)
Kubernetes architecture: - Pods: Smallest deployable unit; usually 1 container per pod; ephemeral - Deployments: Declarative pod management; rolling updates; replica scaling - Services: Stable endpoint for pods; load balancing (ClusterIP, NodePort, LoadBalancer) - ConfigMaps/Secrets: External configuration and sensitive data - Ingress: HTTP(S) routing into cluster; hostname/path-based routing
Observability best practices: - Logs: Structured JSON logging (searchable); correlation IDs across services - Metrics: Counter, gauge, histogram; dashboard visualization; alert on thresholds - Traces: Distributed tracing for request flow across services; identify bottlenecks - SLO/SLI: Service Level Objective (target availability); Service Level Indicator (measurement)