DevOps Là Gì và Vì Sao Nên Học Chung với AWS
This is the first part
Trong series này chúng ta sẽ học DevOps bằng cách thực hành trực tiếp trên AWS. Trước khi bắt tay vào, bài này giải thích DevOps là gì và vì sao ta học nó cùng với AWS.
Nếu tìm "DevOps là gì", bạn sẽ gặp nhiều định nghĩa khá trừu tượng: "văn hóa", "sự kết hợp giữa Development và Operations". Những định nghĩa này không sai nhưng khó hình dung, nên thay vì định nghĩa, ta sẽ xem DevOps giải quyết vấn đề gì.
Vấn đề DevOps giải quyết
Trước đây, việc đưa một ứng dụng từ máy lập trình viên lên server thường được chia cho hai nhóm:
- Nhóm Development (Dev) viết code.
- Nhóm Operations (Ops) lo việc chạy code đó trên server.
Hai nhóm có mục tiêu khác nhau. Dev được đánh giá qua số tính năng làm ra nên muốn release thường xuyên. Ops chịu trách nhiệm khi hệ thống gặp sự cố nên muốn thay đổi càng ít càng tốt. Vì làm việc tách biệt, mỗi lần đưa code lên thường phát sinh trục trặc.
Một trục trặc hay gặp là môi trường khác nhau: máy Dev cài Node 20, server cài Node 16, code chạy được ở máy này nhưng lỗi ở máy kia. Dev nói code vẫn chạy bình thường, Ops thì chỉ thấy nó lỗi trên server, và không bên nào nắm đủ thông tin để xử lý nhanh.
DevOps là cách tiếp cận để hai nhóm này làm việc cùng nhau, hoặc gộp lại thành một quy trình tự động lo từ lúc viết code đến lúc nó chạy ổn định trên production.
DevOps gồm những công việc gì
Bỏ qua phần định nghĩa, công việc DevOps trong thực tế xoay quanh bốn nhóm chính. Ta sẽ thực hành cả bốn trong series:
- Đóng gói ứng dụng để nó chạy giống nhau ở mọi môi trường. Ta dùng Docker cho việc này — đóng gói cả code lẫn môi trường vào một container, để nó chạy ở máy bạn thế nào thì lên server cũng vậy.
- Tự động hóa việc đưa code lên server, gọi là CI/CD. Thay vì copy file thủ công, ta dựng một pipeline: push code lên Git thì máy tự build, tự test, tự deploy.
- Quản lý hạ tầng bằng code (Infrastructure as Code). Thay vì bấm chuột trên giao diện để tạo server, ta mô tả hạ tầng trong file. Cần dựng lại y hệt thì chạy lại file đó.
- Giám sát (monitoring). Theo dõi hệ thống đang chạy ra sao, và được báo khi có gì bất thường trước khi người dùng phàn nàn.
Vì sao dùng AWS
Những việc trên đều cần một nơi để chạy: server, mạng, database, chỗ lưu file. Bạn có thể tự mua máy đặt tại chỗ (on-premise), hoặc thuê của một nhà cung cấp cloud.
Để học, thuê cloud tiện hơn vì bạn không cần đầu tư mua máy chủ. Bạn thuê server theo giờ, học xong thì trả, chi phí rất nhỏ. Tạo sai thì xóa đi tạo lại.
Trong các nhà cung cấp cloud, ta chọn AWS (Amazon Web Services) vì mấy lý do sau:
- AWS là nhà cung cấp phổ biến nhất hiện nay, nên khi gặp lỗi và đi tìm tài liệu, gần như luôn có người đã gặp và giải quyết vấn đề đó trước bạn.
- Tin tuyển dụng nhắc tới AWS nhiều hơn các nền tảng khác.
- AWS có chương trình Free Tier cho tài khoản mới. Hiện tại (tài khoản tạo sau 15/07/2025), bạn được tặng 100 USD credit khi đăng ký và có thể kiếm thêm tới 100 USD nữa, đủ để làm gần hết series mà gần như không tốn tiền thật. Ta cấu hình kiểm soát chi phí ở Bài 1.
Khái niệm giữa các nhà cung cấp khá giống nhau. Nắm chắc EC2 của AWS thì khi chuyển sang Compute Engine của Google, bạn chủ yếu chỉ cần làm quen với tên gọi và giao diện mới.
Chi phí và thói quen dọn dẹp
AWS tính tiền theo mức sử dụng. Với người mới, rủi ro thường gặp là tạo một resource để thử, học xong quên tắt, và nó tiếp tục chạy và tính tiền. Đến cuối tháng bạn nhận hóa đơn cho thứ chỉ dùng vài phút.
Để tránh việc này, series được tổ chức theo nguyên tắc: tạo resource nào thì học xong dọn resource đó. Từ Bài 2 trở đi, mỗi bài bắt đầu bằng phần ước tính chi phí và kết thúc bằng một checklist dọn dẹp. Riêng ở Bài 1, trước khi tạo bất cứ thứ gì tốn tiền, ta sẽ cấu hình cảnh báo hóa đơn để được thông báo nếu chi phí vượt ngưỡng.
Lộ trình của series
Các bài được sắp theo thứ tự nên học:
- Mở tài khoản AWS an toàn — tạo account, bật MFA, không dùng tài khoản root, cài AWS CLI, cấu hình cảnh báo hóa đơn.
- EC2 — tạo server ảo đầu tiên, SSH vào, chạy một web server.
- VPC & Security Group — mạng và tường lửa cơ bản, để kiểm soát ai truy cập được vào server.
- S3 — lưu file và host web tĩnh.
- RDS — chạy database PostgreSQL do AWS quản lý.
- Docker & ECR — đóng gói ứng dụng và đẩy image lên kho chứa của AWS.
- CI/CD với GitHub Actions — push code là tự động deploy.
- CloudWatch — xem log và đặt cảnh báo khi có bất thường.
- Tổng kết & rà soát tài khoản — kiểm tra lần cuối để không sót resource nào, và gợi ý hướng học tiếp.
Cách học hiệu quả là vừa đọc vừa làm theo, đọc suông sẽ khó nhớ. Bạn không cần biết trước về AWS, nhưng nên quen với dòng lệnh (mở terminal, gõ lệnh) và biết Git cơ bản (commit, push) vì đến Bài 7 sẽ dùng tới.
Cần chuẩn bị
- Một máy tính (Windows, macOS hoặc Linux đều được) có terminal.
- Một thẻ Visa/Mastercard để đăng ký AWS. Kể cả dùng Free Tier, AWS vẫn yêu cầu gắn thẻ để xác minh; ta sẽ đặt cảnh báo để kiểm soát chi phí.
- Một tài khoản GitHub, dùng từ Bài 7.
- Khoảng 30–60 phút cho mỗi bài.
Hết bài này bạn chưa cần thao tác gì. Sang Bài 1 ta sẽ mở tài khoản AWS đúng cách — bước này quan trọng vì nhiều lỗi bảo mật của người mới bắt nguồn ngay từ lúc đăng ký.
This is the first part