Blog
Thoughts on engineering, design, and building great products.
Những Chỗ Tutorial GitHub Actions Hay Bỏ Qua
Sau khi có pipeline đầu tay từ Part 1, bài này điểm 9 chỗ mà tutorial CI/CD cơ bản hay bỏ qua: concurrency control (kèm gotcha github.ref), quy tắc nhánh đọc file YAML cho các event ngoại cảnh, họ workflow_* (dispatch, call, run kèm head_sha gotcha), cache dependencies, matrix strategy, Docker Hub thay vì build trên server, permissions cho GITHUB_TOKEN, OIDC cho AWS (bỏ SSH key dài hạn), và environment + required reviewers.
Pipeline Thực Dụng: Approval Gate, Song Song, và Trigger
Một pipeline chạy được chưa phải pipeline dùng được ở công ty. Bài này thêm ba thứ thực dụng: cổng phê duyệt thủ công chặn deploy tới khi có người bấm duyệt (demo thật bằng CLI), chạy nhiều action song song bằng runOrder, và lọc trigger để pipeline chỉ chạy với đúng nhánh — tận dụng pipeline type V2.
CodePipeline: Nối Source, Build, Deploy Thành Dây Chuyền
Tới giờ mỗi chặng chạy bằng tay. CodePipeline nối chúng thành một dây chuyền tự động: Source kéo code từ CodeCommit, Build gọi CodeBuild, Deploy gọi CodeDeploy — artifact chảy từ stage này sang stage kia. Bài này dựng pipeline đầu tiên, chạy thật, và mổ cách artifact truyền giữa các stage.
CodeArtifact: Kho Package Nội Bộ Cho Build
Build thật phụ thuộc hàng loạt package từ Internet — rủi ro khi nguồn ngoài đổi hoặc biến mất. CodeArtifact là kho package được quản lý: vừa làm proxy cache cho PyPI/npm public, vừa lưu package riêng của bạn. Bài này tạo domain và repository, publish một package Python rồi cài lại từ CodeArtifact, và nối nó vào CodeBuild.
CI/CD Là Gì và Bộ Developer Tools Của AWS
Bài mở đầu series: vì sao deploy bằng tay sớm muộn cũng vỡ, CI và CD khác nhau ra sao, và AWS có những dịch vụ nào để dựng pipeline — CodeCommit, CodeBuild, CodeDeploy, CodePipeline, CodeArtifact. Cách các mảnh ghép lại thành một dây chuyền đưa code từ commit tới khi chạy trên EC2, tất cả điều khiển bằng AWS CLI.
Capstone: Hạ Tầng Web Đa Tầng Hoàn Chỉnh
Bài cuối ráp mọi thứ của series thành một hạ tầng web hoàn chỉnh: VPC, ALB, Auto Scaling Group chạy nginx, RDS PostgreSQL và S3 — tổ chức thành ba module nối với nhau. Apply thật, truy cập ứng dụng qua ALB, kiểm mật khẩu DB không lọt state, rồi teardown sạch. Khép lại bằng lộ trình học tiếp.
Kiểm Thử: terraform test, mock_provider, và Terratest
Kiểm thử code Terraform trước khi nó dựng hạ tầng thật. terraform test (GA từ 1.6) với file .tftest.hcl chạy run/assert để kiểm logic, mock_provider (1.7) cho phép test không cần AWS thật. Demo thật ba test pass và một test fail, rồi giới thiệu Terratest cho kiểm thử tích hợp sâu.