Database Cheat Sheet
Databases are essential for CI/CD pipelines, monitoring, logging, and cloud automation. DevOps engineers interact with databases to store configurations, manage infrastructure state, and automate deployments. This guide covers SQL, NoSQL, and cloud databases with relevant DevOps commands and use cases.
Database Automation for DevOps
Why Automate Databases in DevOps?
- Eliminate manual work in database provisioning, backup, and monitoring
- Ensure consistency across environments (dev, staging, production)
- Reduce downtime with automated backups and performance monitoring
- Enable CI/CD pipelines to manage database migrations
1. SQL Databases (MySQL, PostgreSQL, MariaDB)
Database Management
User Management
Table & Data Operations
Backup & Restore
2. NoSQL Databases
MongoDB
Redis
Cassandra (CQL)
3. Database Automation
Terraform for AWS RDS
resource "aws_db_instance" "default" {
identifier = "devops-db"
engine = "mysql"
instance_class = "db.t3.micro"
allocated_storage = 20
}
Docker Database Containers
Automating MySQL with Ansible
- name: Install MySQL
hosts: db_servers
become: yes
tasks:
- name: Install MySQL
apt: name=mysql-server state=present
- name: Create Database
mysql_db: name=devops_db state=present
Jenkins Pipeline for Database Backup
pipeline {
agent any
stages {
stage('Backup') {
steps { sh 'mysqldump -u root -p$MYSQL_ROOT_PASSWORD db > /backup/db.sql' }
}
stage('Restore') {
steps { sh 'mysql -u root -p$MYSQL_ROOT_PASSWORD db < /backup/db.sql' }
}
}
}
Database Monitoring (MySQL + Prometheus & Grafana)
wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.14.0/mysql d_exporter.tar.gz