Lộ trình học Python cho DevOps

DevOps là một trong những hướng đi hấp dẫn nhất trong ngành công nghệ thông tin hiện nay. Vai trò của DevOps Engineer nằm ở giao điểm giữa phát triển phần mềm (Development) và vận hành hệ thống (Operations) — bạn vừa viết code, vừa triển khai, vừa giám sát và đảm bảo hệ thống chạy ổn định 24/7.
Trong bối cảnh đó, Python đã trở thành ngôn ngữ mặc định cho phần lớn công việc tự động hóa DevOps. Không phải vì Python nhanh nhất, mà vì nó dễ đọc, dễ viết, dễ bảo trì và có hệ sinh thái thư viện khổng lồ phục vụ mọi tác vụ từ quản lý server, gọi API cloud, đến xây dựng pipeline CI/CD.
Bài viết này là lộ trình học tập toàn diện dành cho:
- Lập trình viên muốn chuyển sang DevOps
- Sinh viên CNTT muốn định hướng sớm
- Sysadmin / IT Support muốn nâng cấp kỹ năng bằng Python
- Backend developer muốn mở rộng sang vận hành và triển khai
Bạn không cần biết Python từ trước — nhưng cần kiên nhẫn, thực hành trên môi trường thật (hoặc lab ảo), và xây dựng portfolio bằng dự án cụ thể thay vì chỉ đọc lý thuyết.
Tại sao Python là lựa chọn hàng đầu cho DevOps?
Trước khi đi vào lộ trình 10 bước, hãy hiểu rõ vì sao hầu hết team DevOps trên thế giới (và tại Việt Nam) đều dùng Python làm công cụ chính.
1. Cú pháp gần với ngôn ngữ tự nhiên
Script DevOps thường cần đọc lại sau 6 tháng — có thể bởi chính bạn, có thể bởi đồng nghiệp on-call lúc 2 giờ sáng. Python viết ngắn, rõ ràng, ít "ceremony" hơn Java hay Go. Một script kiểm tra disk usage 50 dòng Python thường dễ hiểu hơn nhiều so với shell script phức tạp.
2. Thư viện phong phú cho mọi tác vụ DevOps
| Lĩnh vực | Thư viện Python phổ biến |
|---|---|
| Cloud AWS | boto3 |
| Cloud GCP | google-cloud-* |
| Cloud Azure | azure-sdk-for-python |
| SSH / Remote | paramiko, fabric |
| Container | docker SDK |
| Kubernetes | kubernetes client |
| Config | pyyaml, python-dotenv |
| HTTP / API | requests, httpx |
| Monitoring | prometheus-client |
| Testing infra | pytest, moto (mock AWS) |
3. Tích hợp mượt với hệ sinh thái DevOps
Nhiều công cụ DevOps hàng đầu được viết bằng Python hoặc hỗ trợ Python natively:
- Ansible — automation engine, playbook YAML nhưng module mở rộng bằng Python
- SaltStack — configuration management
- Fabric — remote execution
- Sentry, Airflow — workflow và observability
4. Cộng đồng lớn, tài liệu dồi dào
Stack Overflow, Real Python, GitHub, Reddit r/devops — bạn gần như luôn tìm được ví dụ cho bài toán cụ thể. Tại Việt Nam, các group Facebook như DevOps Vietnam, Python Vietnam, và các kênh Discord/Slack của công ty tech cũng rất active.
5. Python không thay thế mọi thứ — và đó là điều bình thường
DevOps Engineer vẫn cần biết Bash, YAML, HCL (Terraform), và đôi khi Go (cho Kubernetes operator). Python là công cụ đa năng nhất trong toolbox, không phải công cụ duy nhất. Lộ trình dưới đây phản ánh thực tế đó.
Lộ trình 10 bước học Python cho DevOps
Bước 1: Nền tảng Python vững chắc (2–4 tuần)
Đây là bước không thể bỏ qua. Nhiều người nhảy thẳng vào Ansible hay Docker mà chưa nắm Python cơ bản, dẫn đến copy-paste script mà không hiểu, debug mất hàng giờ.
Nội dung cần học:
- Biến, kiểu dữ liệu:
str,int,float,bool,list,dict,tuple,set - Cấu trúc điều khiển:
if/elif/else,for,while,break,continue - Hàm: tham số, giá trị mặc định,
*args,**kwargs, lambda - Module và package:
import, tạo module riêng,pip,venv - OOP cơ bản: class,
__init__, kế thừa — đủ để đọc code Ansible module - Exception:
try/except/finally, custom exception - Comprehension: list/dict comprehension — rất phổ biến trong script ngắn
Thực hành:
- Viết script đọc file log, đếm số dòng chứa từ khóa
ERROR - Parse file CSV danh sách server, in ra server nào status =
active - Tạo virtual environment, cài
requests, gọi API công khai (ví dụ: GitHub API)
Mục tiêu đầu ra: Tự viết script 100–150 dòng, có hàm, có xử lý lỗi, chạy được từ terminal.
Bước 2: Làm việc với file, hệ thống và subprocess (1–2 tuần)
DevOps là làm việc với file config, log, certificate, và chạy lệnh hệ thống hàng ngày.
Thư viện trọng tâm:
| Thư viện | Mục đích |
|---|---|
os | Biến môi trường, đường dẫn, chdir |
pathlib | Xử lý đường dẫn hiện đại, dễ đọc |
shutil | Copy, move, xóa cây thư mục |
json | Đọc/ghi JSON — format API và config |
yaml (PyYAML) | Đọc/ghi YAML — Ansible, Docker Compose, K8s manifest |
csv | Xử lý báo cáo, inventory |
subprocess | Chạy lệnh shell, capture stdout/stderr |
logging | Ghi log có cấu trúc thay vì print() |
Ví dụ tình huống thực tế:
- Đọc file
docker-compose.yml, liệt kê tất cả service name - Backup thư mục
/var/log/appsang/backupnếu dung lượng > 1GB - Chạy
df -h, parse output, cảnh báo nếu partition > 85%
Lưu ý: Luôn dùng subprocess.run() với check=True và xử lý CalledProcessError. Không dùng os.system() trong production script.
Bước 3: Linux, Shell và quản lý server từ xa (2–3 tuần)
Python giúp bạn automate — nhưng bạn phải hiểu hệ thống mà Python đang automate.
Kỹ năng Linux cần có:
- File permission:
chmod,chown,umask - Process:
ps,top,htop,kill,systemctl - Network:
ss,netstat,curl,dig,iptablescơ bản - Text processing:
grep,awk,sed,cut,sort,uniq - User management:
useradd,groupadd,sudoers
Shell scripting:
- Viết Bash cho tác vụ đơn giản (1–20 dòng)
- Chuyển sang Python khi logic phân nhánh phức tạp, cần unit test, hoặc tích hợp API
Remote execution với Python:
paramiko— SSH programmatic, SFTP upload/downloadfabric— abstraction cao hơn, deploy script đa server
Thực hành:
- Script SSH vào 3 server ảo (Vagrant hoặc VM local), chạy
uptime, gom kết quả về file JSON - Kiểm tra service
nginxđang chạy trên tất cả server trong inventory
Bước 4: Git, GitHub và quy trình làm việc nhóm (1 tuần)
DevOps không deploy bằng copy file qua USB. Mọi thứ đều qua Git.
Nội dung:
git init,add,commit,push,pull,clone- Branch:
main,develop, feature branch, hotfix - Merge vs Rebase — hiểu trade-off
- Pull Request / Merge Request workflow
.gitignorecho Python:__pycache__/,.venv/,.env- Conventional Commits — giúp changelog và CI tự động
DevOps angle:
- Infrastructure as Code (IaC) cũng được version control
- Mọi thay đổi pipeline, playbook, Terraform đều qua PR
- Code review là kỹ năng bắt buộc — bạn sẽ review YAML và Python của đồng nghiệp
Bước 5: Tự động hóa hạ tầng — IaC và Cloud SDK (3–4 tuần)
Đây là trái tim của DevOps: quản lý hạ tầng bằng code, không bấm tay trên console.
Công cụ cần học:
| Công cụ | Vai trò | Liên hệ với Python |
|---|---|---|
| Ansible | Configuration management, provisioning | Module Python, dynamic inventory script |
| Terraform | Provisioning cloud resource | python-hcl2 parse HCL, policy check script |
| Pulumi | IaC bằng Python trực tiếp | Viết infra bằng Python native |
| boto3 | AWS SDK | EC2, S3, Lambda, RDS, IAM automation |
| google-cloud-* | GCP SDK | GCE, GCS, Cloud Functions |
| azure-mgmt-* | Azure SDK | VM, Storage, AKS |
Lộ trình học Ansible:
- Inventory, ad-hoc command (
ansible ping) - Playbook: task, handler, variable, template (Jinja2)
- Role — tái sử dụng playbook
- Ansible Vault — mã hóa secret
- Dynamic inventory — script Python trả về JSON inventory
Thực hành:
- Viết playbook cài Nginx + deploy static site lên 2 VM
- Script
boto3tạo S3 bucket, bật versioning, set lifecycle policy - Dùng
motoviết unit test cho script AWS mà không tốn tiền cloud
Bước 6: Container — Docker và Docker Compose (2–3 tuần)
Container là chuẩn đóng gói ứng dụng hiện đại. DevOps Engineer phải thành thạo Docker trước khi đụng Kubernetes.
Nội dung:
- Image vs Container — hiểu rõ khái niệm
Dockerfile:FROM,RUN,COPY,CMD,ENTRYPOINT, multi-stage build.dockerignore— giảm image size- Docker Compose:
services,networks,volumes,depends_on - Docker registry: Docker Hub, ECR, GCR
dockerPython SDK: build, run, stop container programmatically
Best practices:
- Không chạy container với user root
- Pin version base image (
python:3.12-slim, không dùnglatest) - Scan image với Trivy hoặc Docker Scout
- Health check trong Dockerfile / Compose
Thực hành:
- Containerize một app Python Flask đơn giản
- Viết script Python kiểm tra tất cả container đang chạy, restart container nào
unhealthy - Docker Compose stack: app + PostgreSQL + Redis
Bước 7: Kubernetes và orchestration (3–5 tuần)
Khi hệ thống scale lên hàng chục, hàng trăm container, bạn cần orchestrator. Kubernetes (K8s) chiếm ưu thế tuyệt đối.
Nội dung theo thứ tự:
- Kiến trúc: control plane, node, pod, service, deployment
kubectlthành thạo:apply,get,describe,logs,exec,port-forward- Manifest YAML: Deployment, Service, Ingress, ConfigMap, Secret
- Helm chart — package manager cho K8s
kubernetesPython client — đọc pod status, scale deployment- minikube / kind — lab local miễn phí
Python use cases trên K8s:
- Script kiểm tra pod crash loop, gửi alert Slack
- Custom controller đơn giản (nâng cao)
- Tích hợp vào CI/CD: deploy manifest sau khi build image
Lưu ý cho người mới: Đừng học K8s trước Docker. Học CKA (Certified Kubernetes Administrator) khi đã có 6 tháng thực hành.
Bước 8: CI/CD Pipeline (2–3 tuần)
CI/CD biến code thành phần mềm chạy trên production một cách tự động, lặp lại, an toàn.
Khái niệm cốt lõi:
- CI (Continuous Integration): Mỗi commit → tự động test, lint, build
- CD (Continuous Delivery/Deployment): Test pass → tự động deploy lên staging/production
- Pipeline as Code — pipeline cũng nằm trong Git
Công cụ phổ biến:
| Công cụ | Điểm mạnh | Python trong pipeline |
|---|---|---|
| GitHub Actions | Tích hợp GitHub, miễn phí cho open source | Step chạy pytest, flake8, docker build |
| GitLab CI | All-in-one, self-hosted option | .gitlab-ci.yml + script Python |
| Jenkins | Linh hoạt, plugin ecosystem lớn | Pipeline Groovy hoặc trigger Python job |
| ArgoCD | GitOps cho K8s | Sync manifest từ Git |
Pipeline mẫu cho project Python:
commit → lint (ruff/flake8) → unit test (pytest) → build Docker image
→ push registry → deploy staging → smoke test → deploy production
Thực hành:
- Tạo GitHub Actions workflow: test + build image + push Docker Hub
- Thêm bước
banditscan bảo mật Python - Tích hợp Slack notification khi deploy thành công/thất bại
Bước 9: Monitoring, Logging và Observability (2–3 tuần)
Hệ thống chạy được chưa đủ — bạn phải nhìn thấy nó đang khỏe hay ốm.
Stack phổ biến:
| Thành phần | Công cụ | Vai trò |
|---|---|---|
| Metrics | Prometheus + Grafana | CPU, RAM, request rate, latency |
| Logging | ELK / Loki + Grafana | Tập trung log, search, dashboard |
| Tracing | Jaeger, Tempo | Theo dõi request xuyên microservice |
| Alerting | Alertmanager, PagerDuty | Thông báo khi vượt ngưỡng |
| Uptime | Uptime Kuma, Pingdom | Kiểm tra endpoint sống/chết |
Python trong observability:
prometheus-client— expose/metricstừ app Pythonloggingmodule + handler gửi log JSON đến Elasticsearch- Script kiểm tra endpoint health, push metric custom
Thực hành:
- Deploy Prometheus + Grafana bằng Docker Compose
- Viết Flask app expose metric
request_count - Tạo Grafana dashboard và alert khi error rate > 5%
On-call mindset: Monitoring không phải để đẹp dashboard — mà để lúc 3 giờ sáng bạn biết cái gì đang hỏng và ở đâu.
Bước 10: Bảo mật, Secret Management và DevSecOps (2 tuần)
DevOps Engineer chạm vào production, credential, và network — bảo mật không phải việc của team khác.
Nội dung:
- HashiCorp Vault — lưu secret, dynamic credential, rotation
- Biến môi trường và
.env— không commit secret lên Git python-dotenv— load env trong development- Security scanning:
bandit(Python SAST),safety/pip-audit(dependency CVE) - Container security: non-root, read-only filesystem, scan image
- SSL/TLS: Let's Encrypt, certbot, auto-renewal script
- IAM least privilege trên AWS/GCP/Azure
- OWASP Top 10 — hiểu ở mức awareness
Thực hành:
- Cấu hình Vault local, đọc secret từ Python script
- Thêm
banditvàpip-auditvào CI pipeline - Viết pre-commit hook kiểm tra không commit file
.env
Bảng công cụ DevOps và mức độ ưu tiên
| Công cụ | Loại | Độ khó | Python liên quan | Ưu tiên học |
|---|---|---|---|---|
| Ansible | Configuration Management | Trung bình | Module, dynamic inventory | ⭐⭐⭐⭐⭐ |
| Docker | Container | Trung bình | Docker SDK, Dockerfile cho app Python | ⭐⭐⭐⭐⭐ |
| Kubernetes | Orchestration | Cao | K8s Python client, Helm hooks | ⭐⭐⭐⭐ |
| GitHub Actions | CI/CD | Dễ–TB | Step chạy pytest, deploy script | ⭐⭐⭐⭐⭐ |
| Terraform | IaC | Trung bình | Policy script, HCL parser | ⭐⭐⭐⭐ |
| Prometheus | Monitoring | Trung bình | prometheus-client | ⭐⭐⭐⭐ |
| Jenkins | CI/CD | Trung bình–Cao | Pipeline integration | ⭐⭐⭐ |
| Vault | Secret | Trung bình | hvac library | ⭐⭐⭐ |
Ví dụ script Python cho DevOps
1. Kiểm tra dung lượng disk và gửi cảnh báo
#!/usr/bin/env python3
"""Kiểm tra disk usage trên Linux, cảnh báo nếu vượt ngưỡng."""
import shutil
import sys
import logging
logging.basicConfig(level=logging.INFO, format="%(asctime)s %(levelname)s %(message)s")
THRESHOLD_PERCENT = 85
def check_disk(path: str = "/") -> None:
usage = shutil.disk_usage(path)
percent = (usage.used / usage.total) * 100
free_gb = usage.free / (1024 ** 3)
logging.info("Disk %s: %.1f%% used, %.1f GB free", path, percent, free_gb)
if percent >= THRESHOLD_PERCENT:
logging.error("ALERT: Disk %s at %.1f%% (threshold %d%%)", path, percent, THRESHOLD_PERCENT)
sys.exit(1)
if __name__ == "__main__":
check_disk("/")
2. Gọi health check nhiều endpoint
#!/usr/bin/env python3
"""Health check danh sách URL, trả về exit code 1 nếu có endpoint lỗi."""
import sys
import requests
ENDPOINTS = [
"https://api.example.com/health",
"https://app.example.com/health",
"https://admin.example.com/health",
]
TIMEOUT = 10
def check_endpoints() -> bool:
all_ok = True
for url in ENDPOINTS:
try:
resp = requests.get(url, timeout=TIMEOUT)
if resp.status_code == 200:
print(f"OK {url}")
else:
print(f"FAIL {url} -> HTTP {resp.status_code}")
all_ok = False
except requests.RequestException as exc:
print(f"FAIL {url} -> {exc}")
all_ok = False
return all_ok
if __name__ == "__main__":
sys.exit(0 if check_endpoints() else 1)
3. Đọc inventory YAML và SSH chạy lệnh (paramiko)
#!/usr/bin/env python3
"""Đọc inventory YAML, SSH vào từng server chạy uptime."""
import yaml
import paramiko
from pathlib import Path
INVENTORY = Path("inventory.yml")
def load_inventory(path: Path) -> list[dict]:
with path.open() as f:
data = yaml.safe_load(f)
return data.get("servers", [])
def run_remote(host: str, user: str, key_path: str, command: str) -> str:
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(host, username=user, key_filename=key_path, timeout=10)
_, stdout, stderr = client.exec_command(command)
output = stdout.read().decode().strip()
error = stderr.read().decode().strip()
client.close()
if error:
raise RuntimeError(f"{host}: {error}")
return output
def main() -> None:
servers = load_inventory(INVENTORY)
for srv in servers:
result = run_remote(srv["host"], srv["user"], srv["key"], "uptime")
print(f"{srv['host']}: {result}")
if __name__ == "__main__":
main()
4. Script boto3 — liệt kê EC2 instance đang chạy
#!/usr/bin/env python3
"""Liệt kê EC2 instance đang running trên AWS."""
import boto3
def list_running_instances(region: str = "ap-southeast-1") -> None:
ec2 = boto3.client("ec2", region_name=region)
paginator = ec2.get_paginator("describe_instances")
for page in paginator.paginate(
Filters=[{"Name": "instance-state-name", "Values": ["running"]}]
):
for reservation in page["Reservations"]:
for inst in reservation["Instances"]:
name = next(
(t["Value"] for t in inst.get("Tags", []) if t["Key"] == "Name"),
"N/A",
)
print(f"{inst['InstanceId']} {name} {inst['InstanceType']}")
if __name__ == "__main__":
list_running_instances()
5. Tích hợp Prometheus metric từ app Python
from prometheus_client import Counter, generate_latest, REGISTRY
from flask import Flask, Response
app = Flask(__name__)
REQUEST_COUNT = Counter("http_requests_total", "Total HTTP requests", ["method", "endpoint"])
@app.route("/metrics")
def metrics():
return Response(generate_latest(REGISTRY), mimetype="text/plain")
@app.route("/api/data")
def get_data():
REQUEST_COUNT.labels(method="GET", endpoint="/api/data").inc()
return {"status": "ok"}
Mức lương và cơ hội nghề nghiệp DevOps tại Việt Nam
DevOps là vị trí có nhu cầu cao và mức lương cạnh tranh trong ngành IT Việt Nam, đặc biệt tại TP.HCM và Hà Nội.
Mức lương tham khảo (2025–2026)
| Cấp bậc | Kinh nghiệm | Mức lương gross (triệu VNĐ/tháng) |
|---|---|---|
| Junior DevOps | 0–1 năm | 12 – 20 |
| Mid DevOps | 2–4 năm | 20 – 35 |
| Senior DevOps | 5+ năm | 35 – 55 |
| Lead / Principal | 7+ năm | 50 – 80+ |
Lưu ý: Mức lương biến động theo công ty (startup vs enterprise vs outsource), kỹ năng cloud, và khả năng tiếng Anh. Remote cho công ty nước ngoài có thể cao hơn đáng kể.
Vị trí liên quan có thể chuyển đổi
- Sysadmin → DevOps (lộ trình tự nhiên nhất)
- Backend Developer → DevOps / Platform Engineer
- QA Engineer → DevOps (nhánh CI/CD, test automation)
- IT Support → Junior DevOps (cần bổ sung coding và cloud)
- DevOps → SRE (Site Reliability Engineering) — tập trung reliability và scale
- DevOps → Platform Engineer — xây nền tảng nội bộ cho dev team
Kỹ năng được săn đón nhất trên JD Việt Nam
- Docker + Kubernetes (hoặc ít nhất Docker, K8s là big plus)
- CI/CD: GitHub Actions, GitLab CI, hoặc Jenkins
- Cloud: AWS phổ biến nhất, tiếp theo là GCP và Azure
- IaC: Terraform, Ansible
- Linux administration thành thạo
- Python hoặc Go cho scripting (Python dễ bắt đầu hơn)
- Monitoring: Prometheus/Grafana là combo phổ biến
- Tiếng Anh đọc tài liệu — gần như bắt buộc
Chứng chỉ có giá trị (không bắt buộc nhưng giúp CV nổi bật)
- AWS Solutions Architect Associate — phổ biến nhất tại VN
- CKA (Certified Kubernetes Administrator)
- CKAD (Certified Kubernetes Application Developer)
- Terraform Associate
- Google Professional Cloud DevOps Engineer
Dự án thực hành để xây portfolio
Đọc 100 bài không bằng làm 3 dự án deploy được. Dưới đây là các dự án xếp theo độ khó — mỗi dự án nên có README, diagram, và link GitHub public.
Cấp độ 1: Beginner
Dự án 1 — Server health monitor
- Script Python chạy cron mỗi 5 phút
- Kiểm tra: disk, RAM, load average, service status
- Ghi log JSON, gửi email/Slack khi có alert
- Kỹ năng: subprocess, logging, scheduling
Dự án 2 — Log analyzer
- Parse file access log Nginx
- Thống kê: top IP, top URL, status code 4xx/5xx
- Xuất báo cáo HTML hoặc CSV
- Kỹ năng: file I/O, regex, collections
Cấp độ 2: Intermediate
Dự án 3 — Ansible deploy web stack
- Playbook cài Nginx + Python app trên 2–3 VM (Vagrant)
- Role tái sử dụng, Ansible Vault cho secret
- Idempotent — chạy lại không phá hệ thống
- Kỹ năng: Ansible, Jinja2, Linux
Dự án 4 — CI/CD pipeline hoàn chỉnh
- App Python Flask/FastAPI + pytest
- GitHub Actions: lint → test → build Docker image → push registry
- Deploy tự động lên server (SSH) hoặc Render/Railway free tier
- Kỹ năng: Docker, CI/CD, testing
Cấp độ 3: Advanced
Dự án 5 — Mini Kubernetes platform
- Flask app + PostgreSQL + Redis trên minikube/kind
- Helm chart, Ingress, ConfigMap, Secret
- Prometheus + Grafana monitor app
- Kỹ năng: K8s, Helm, observability
Dự án 6 — GitOps với ArgoCD
- Repo riêng cho K8s manifest
- ArgoCD auto-sync khi có thay đổi trên Git
- Staging + production namespace
- Kỹ năng: GitOps, K8s, branching strategy
Dự án 7 — Cloud automation với Terraform + Python
- Terraform provision VPC, EC2, RDS trên AWS
- Script Python post-provision: health check, DNS update
- CI validate
terraform plantrên PR - Kỹ năng: Terraform, boto3, IaC workflow
Cách trình bày portfolio hiệu quả
- Mỗi repo có README: mô tả, kiến trúc (diagram), cách chạy, tech stack
- Ghi rõ vai trò và kết quả (ví dụ: "Giảm thời gian deploy từ 30 phút xuống 5 phút")
- Không cần hệ thống lớn — cần hệ thống chạy được và document tốt
Tài nguyên học tập
Khóa học online
| Khóa học | Nền tảng | Phù hợp | Chi phí |
|---|---|---|---|
| Google IT Automation with Python | Coursera | Người mới, có Python cơ bản | Miễn phí audit |
| Docker & Kubernetes: The Complete Guide | Udemy | Container + K8s | Trả phí (hay sale) |
| KodeKloud DevOps Pre-requisites | KodeKloud | Linux, Git, Networking | Miễn phí / subscription |
| AWS Certified Solutions Architect | A Cloud Guru / Udemy | Cloud AWS | Trả phí |
| Python for DevOps (Noah Gift) | O'Reilly / Sách | Python + DevOps thực chiến | Sách / subscription |
Sách nên đọc
- "Python for DevOps" — Noah Gift, Kennedy Behrman, Alfredo Deza, Grig Gheorghiu
- "The DevOps Handbook" — Gene Kim, Jez Humble, Patrick Debois
- "Site Reliability Engineering" — Google (miễn phí online)
- "Kubernetes in Action" — Marko Luksa
- "Infrastructure as Code" — Kief Morris
Website và blog
- roadmap.sh/devops — bản đồ tổng quan DevOps
- Real Python — tutorial Python chất lượng
- KodeKloud Labs — lab thực hành hands-on
- DevOps Vietnam — cộng đồng VN
- Hacker News — theo dõi xu hướng công nghệ
Lab thực hành miễn phí / chi phí thấp
- Vagrant + VirtualBox — VM local
- minikube / kind — Kubernetes local
- AWS Free Tier — 12 tháng EC2, S3 miễn phí (cẩn thận billing)
- GCP Free Tier — $300 credit 90 ngày cho account mới
- GitHub Actions — 2000 phút CI miễn phí/tháng cho private repo
- Oracle Cloud Free Tier — ARM VM miễn phí vĩnh viễn (phổ biến trong cộng đồng VN)
Lộ trình thời gian gợi ý
| Giai đoạn | Thời gian | Mục tiêu |
|---|---|---|
| Python + Linux | 1–2 tháng | Viết script automation tự tin |
| Git + Ansible + Docker | 2–3 tháng | Deploy app bằng playbook và container |
| CI/CD + Cloud | 2–3 tháng | Pipeline tự động, boto3 cơ bản |
| K8s + Monitoring | 2–4 tháng | Chạy app trên K8s, có dashboard |
| Portfolio + Interview | 1–2 tháng | 3–5 dự án GitHub, apply việc |
Tổng: khoảng 8–14 tháng học part-time (10–15 giờ/tuần) để sẵn sàng apply Junior DevOps.
FAQ — Câu hỏi thường gặp
Tôi không biết Python, có học DevOps được không?
Được. Bạn nên dành 4–6 tuần đầu chỉ tập trung Python cơ bản trước khi đụng Ansible hay K8s. Nền tảng vững sẽ tiết kiệm tháng thời gian về sau.
DevOps có cần giỏi lập trình không?
Cần biết lập trình ở mức scripting — viết script 100–300 dòng, đọc code người khác, debug lỗi. Bạn không cần thuật toán competitive programming, nhưng cần tư duy logic và kỹ năng googling tài liệu.
Python hay Go cho DevOps?
Python dễ bắt đầu hơn, phổ biến hơn cho automation và glue script. Go mạnh cho CLI tool, K8s operator, và performance-critical tool. Lộ trình hợp lý: học Python trước, học Go sau khi đã có nền tảng DevOps (6–12 tháng).
Có nhất thiết phải học Kubernetes không?
Với Junior DevOps tại VN, Docker là bắt buộc, K8s là big plus. Nhiều công ty SME vẫn chạy Docker Compose hoặc VM thuần — nhưng startup và enterprise gần như đều dùng K8s. Học K8s sẽ mở nhiều cơ hội hơn.
AWS, GCP hay Azure — chọn cloud nào?
Tại Việt Nam, AWS chiếm ưu thế trên JD. GCP mạnh về data/ML. Azure phổ biến ở enterprise và công ty có hệ sinh thái Microsoft. Lời khuyên: học sâu một cloud trước (khuyên AWS), hiểu concept chung (VPC, IAM, compute, storage) — chuyển cloud sau dễ hơn.
DevOps và SRE khác nhau thế nào?
DevOps là văn hóa và practice — tự động hóa pipeline, collaboration giữa dev và ops. SRE (Site Reliability Engineering) là implementation cụ thể của DevOps, tập trung vào reliability, SLA, error budget, on-call. SRE thường yêu cầu kinh nghiệm sâu hơn và lương cao hơn.
Làm sao chuyển từ Backend sang DevOps?
Bạn đã có lợi thế lớn: biết Git, code review, testing, và thường đã dùng Docker cơ bản. Bổ sung: Linux sâu hơn, Ansible/Terraform, CI/CD pipeline end-to-end, K8s, và monitoring. Làm DevOps internal cho team hiện tại là cách chuyển đổi mượt nhất.
Học bao lâu thì apply việc Junior DevOps?
Với 10–15 giờ/tuần và có mentor hoặc lab tốt: 6–9 tháng nếu đã có nền IT; 9–14 tháng nếu mới hoàn toàn. Đừng đợi "học xong" — apply sớm khi có 2–3 dự án portfolio và hiểu Linux + Docker + CI/CD cơ bản.
Có cần bằng đại học CNTT không?
Nhiều công ty VN vẫn yêu cầu bằng, nhưng ngày càng nhiều công ty đánh giá kỹ năng thực tế và portfolio. Chứng chỉ cloud/K8s + GitHub projects có thể bù cho thiếu bằng ở một số nơi.
Kết luận
Lộ trình học Python cho DevOps không phải đường marathon một đêm — mà là quá trình xây dần toolbox từng tuần: Python scripting → Linux → Git → Ansible → Docker → CI/CD → Kubernetes → Monitoring → Security.
Nguyên tắc quan trọng nhất:
- Học đi đôi với làm — mỗi tuần phải có output cụ thể (script, playbook, pipeline)
- Document mọi thứ — README, runbook, diagram
- Public portfolio — GitHub là CV thứ hai của DevOps Engineer
- Cộng đồng — tham gia group, hỏi đáp, review code lẫn nhau
- On-call mindset — nghĩ về hệ thống production, không chỉ "chạy được trên máy mình"
Python là cánh cửa — DevOps mindset (tự động hóa, đo lường, cải tiến liên tục) mới là đích đến. Bắt đầu từ Bước 1 hôm nay, kiên trì 8–12 tháng, và bạn sẽ sẵn sàng cho vị trí Junior DevOps Engineer tại thị trường Việt Nam.
Chúc bạn học tập hiệu quả và sớm deploy pipeline đầu tiên lên production!