Chuyển tới nội dung chính

Lộ trình học Python cho DevOps

· 23 phút để đọc

Lộ trình Python 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ựcThư viện Python phổ biến
Cloud AWSboto3
Cloud GCPgoogle-cloud-*
Cloud Azureazure-sdk-for-python
SSH / Remoteparamiko, fabric
Containerdocker SDK
Kuberneteskubernetes client
Configpyyaml, python-dotenv
HTTP / APIrequests, httpx
Monitoringprometheus-client
Testing infrapytest, 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ệnMục đích
osBiến môi trường, đường dẫn, chdir
pathlibXử lý đường dẫn hiện đại, dễ đọc
shutilCopy, 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
csvXử lý báo cáo, inventory
subprocessChạy lệnh shell, capture stdout/stderr
loggingGhi 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/app sang /backup nế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, iptables cơ 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/download
  • fabric — 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
  • .gitignore cho 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
AnsibleConfiguration management, provisioningModule Python, dynamic inventory script
TerraformProvisioning cloud resourcepython-hcl2 parse HCL, policy check script
PulumiIaC bằng Python trực tiếpViết infra bằng Python native
boto3AWS SDKEC2, S3, Lambda, RDS, IAM automation
google-cloud-*GCP SDKGCE, GCS, Cloud Functions
azure-mgmt-*Azure SDKVM, Storage, AKS

Lộ trình học Ansible:

  1. Inventory, ad-hoc command (ansible ping)
  2. Playbook: task, handler, variable, template (Jinja2)
  3. Role — tái sử dụng playbook
  4. Ansible Vault — mã hóa secret
  5. 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 boto3 tạo S3 bucket, bật versioning, set lifecycle policy
  • Dùng moto viế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
  • docker Python 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ùng latest)
  • 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ự:

  1. Kiến trúc: control plane, node, pod, service, deployment
  2. kubectl thành thạo: apply, get, describe, logs, exec, port-forward
  3. Manifest YAML: Deployment, Service, Ingress, ConfigMap, Secret
  4. Helm chart — package manager cho K8s
  5. kubernetes Python client — đọc pod status, scale deployment
  6. 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ạnhPython trong pipeline
GitHub ActionsTích hợp GitHub, miễn phí cho open sourceStep chạy pytest, flake8, docker build
GitLab CIAll-in-one, self-hosted option.gitlab-ci.yml + script Python
JenkinsLinh hoạt, plugin ecosystem lớnPipeline Groovy hoặc trigger Python job
ArgoCDGitOps cho K8sSync 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 bandit scan 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ầnCông cụVai trò
MetricsPrometheus + GrafanaCPU, RAM, request rate, latency
LoggingELK / Loki + GrafanaTập trung log, search, dashboard
TracingJaeger, TempoTheo dõi request xuyên microservice
AlertingAlertmanager, PagerDutyThông báo khi vượt ngưỡng
UptimeUptime Kuma, PingdomKiểm tra endpoint sống/chết

Python trong observability:

  • prometheus-client — expose /metrics từ app Python
  • logging module + 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 banditpip-audit và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
AnsibleConfiguration ManagementTrung bìnhModule, dynamic inventory⭐⭐⭐⭐⭐
DockerContainerTrung bìnhDocker SDK, Dockerfile cho app Python⭐⭐⭐⭐⭐
KubernetesOrchestrationCaoK8s Python client, Helm hooks⭐⭐⭐⭐
GitHub ActionsCI/CDDễ–TBStep chạy pytest, deploy script⭐⭐⭐⭐⭐
TerraformIaCTrung bìnhPolicy script, HCL parser⭐⭐⭐⭐
PrometheusMonitoringTrung bìnhprometheus-client⭐⭐⭐⭐
JenkinsCI/CDTrung bình–CaoPipeline integration⭐⭐⭐
VaultSecretTrung bìnhhvac 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ậcKinh nghiệmMức lương gross (triệu VNĐ/tháng)
Junior DevOps0–1 năm12 – 20
Mid DevOps2–4 năm20 – 35
Senior DevOps5+ năm35 – 55
Lead / Principal7+ năm50 – 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)
  • DevOpsSRE (Site Reliability Engineering) — tập trung reliability và scale
  • DevOpsPlatform 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

  1. Docker + Kubernetes (hoặc ít nhất Docker, K8s là big plus)
  2. CI/CD: GitHub Actions, GitLab CI, hoặc Jenkins
  3. Cloud: AWS phổ biến nhất, tiếp theo là GCP và Azure
  4. IaC: Terraform, Ansible
  5. Linux administration thành thạo
  6. Python hoặc Go cho scripting (Python dễ bắt đầu hơn)
  7. Monitoring: Prometheus/Grafana là combo phổ biến
  8. 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 plan trê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ò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 đượcdocument tốt

Tài nguyên học tập

Khóa học online

Khóa họcNền tảngPhù hợpChi phí
Google IT Automation with PythonCourseraNgười mới, có Python cơ bảnMiễn phí audit
Docker & Kubernetes: The Complete GuideUdemyContainer + K8sTrả phí (hay sale)
KodeKloud DevOps Pre-requisitesKodeKloudLinux, Git, NetworkingMiễn phí / subscription
AWS Certified Solutions ArchitectA Cloud Guru / UdemyCloud AWSTrả phí
Python for DevOps (Noah Gift)O'Reilly / SáchPython + DevOps thực chiếnSách / subscription

Sách nên đọc

  1. "Python for DevOps" — Noah Gift, Kennedy Behrman, Alfredo Deza, Grig Gheorghiu
  2. "The DevOps Handbook" — Gene Kim, Jez Humble, Patrick Debois
  3. "Site Reliability Engineering" — Google (miễn phí online)
  4. "Kubernetes in Action" — Marko Luksa
  5. "Infrastructure as Code" — Kief Morris

Website và blog

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ạnThời gianMục tiêu
Python + Linux1–2 thángViết script automation tự tin
Git + Ansible + Docker2–3 thángDeploy app bằng playbook và container
CI/CD + Cloud2–3 thángPipeline tự động, boto3 cơ bản
K8s + Monitoring2–4 thángChạy app trên K8s, có dashboard
Portfolio + Interview1–2 tháng3–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:

  1. Học đi đôi với làm — mỗi tuần phải có output cụ thể (script, playbook, pipeline)
  2. Document mọi thứ — README, runbook, diagram
  3. Public portfolio — GitHub là CV thứ hai của DevOps Engineer
  4. Cộng đồng — tham gia group, hỏi đáp, review code lẫn nhau
  5. 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!