Pods are the smallest deployable units in Kubernetes, representing a single instance of a running process.
A command-line tool used to interact with Kubernetes clusters for managing applications and resources.
Ansible is a configuration management tool that uses YAML playbooks to automate IT tasks without needing an agent.
Terraform is an Infrastructure as Code (IaC) tool used to provision and manage infrastructure in a reproducible way.
Automation, consistency, version control, and reduced manual errors in managing infrastructure.
IaaS provides virtualized resources (e.g., AWS EC2), PaaS provides platforms for development (e.g., AWS Elastic Beanstalk), and SaaS offers software as a service (e.g., Gmail).
Monitoring ensures application performance, identifies issues proactively, and maintains system reliability.
AWS Lambda is a serverless computing service that runs code in response to events without requiring server management.
Prometheus, Grafana, Nagios, and the ELK Stack (Elasticsearch, Logstash, Kibana).
DevSecOps integrates security practices into the DevOps process to ensure secure software delivery.
A set of tools (Elasticsearch, Logstash, Kibana) used for log management, searching, and visualization.
Use static application security testing (SAST), dynamic application security testing (DAST), encryption, and secret management tools like HashiCorp Vault.
The delivery of on-demand IT resources and services over the internet.
A deployment strategy where two environments (Blue for live and Green for testing) are used to reduce downtime during deployment.
Public, Private, Hybrid, and Community clouds.
Scaling up increases the capacity of existing resources, while scaling out adds more instances of resources.
DevOps is a culture and set of practices that combine software development (Dev) and IT operations (Ops). It aims to shorten the software development lifecycle and deliver high-quality software continuously.
Key components include:
Benefits include faster delivery, improved collaboration, automation of repetitive tasks, enhanced security, and better system reliability.
A pipeline that automates the integration, testing, and deployment phases for seamless and frequent software delivery.
Jenkins, Git, Docker, Kubernetes, Ansible, Terraform, Nagios, Prometheus, AWS, and more.
Git is a distributed version control system for tracking changes in code and enabling collaboration among developers.
Identify conflicting files with git status
, manually resolve conflicts, stage changes using git add
, and commit with git commit
.
git pull
updates your local branch and working directory, while git fetch
only downloads updates without merging them.
Jenkins is a CI/CD tool used for automating tasks like building, testing, and deploying code.
Use authentication and authorization, encrypt sensitive data, implement role-based access control (RBAC), and update plugins regularly.
Pipelines are defined sequences of steps in Jenkins for automating the CI/CD process.
Docker is a containerization platform that packages applications and dependencies into containers for consistent deployment across environments.
Containers share the host OS kernel, making them lightweight, while VMs include the entire OS, making them resource-heavy.
Kubernetes is a container orchestration platform that automates deployment, scaling, and management of containerized applications.