- Bài 1. Cơ Bản Docker: Hiểu Container và Vai Trò trong DevOps
- Bài 2. Docker Image: cách xây Dựng và tối Ưu
- Bài 3. Docker Networking: Kết Nối Container Hiệu Quả
- Bài 4. Docker Volume: Quản Lý Dữ Liệu Hiệu Quả cho Container
- Bài 5. Docker Compose: Điều Phối Multi-Container Hiệu Quả
- Bài 6. Docker Swarm: Orchestration Cơ Bản để Scale Container
- Bài 7. Docker Security: Bảo Mật Container Hiệu Quả
- Bài 8. Docker CI/CD: Tích Hợp Container vào Pipeline DevOps
- Bài 9. Docker Monitoring: Theo Dõi và Logging Container Hiệu Quả
- Bài 10. Docker resources: Tối Ưu và Debug Container Hiệu Quả
- Bài 11. Docker và Microservices: Thiết Kế Ứng Dụng Phân Tán
- Bài 12. Docker Registry: Tự Host và Quản Lý Image Hiệu Quả
- Bài 13. Docker với Cloud: Tích Hợp Container trên AWS ECS và GCP Cloud Run
Docker đã thay đổi cách chúng ta phát triển ứng dụng local, nhưng khi lên cloud, mọi thứ còn thú vị hơn nữa. Trong DevOps, việc deploy container cloud trên AWS hay GCP là bước tiến để tận dụng sức mạnh hạ tầng đám mây. Trong bài thứ mười ba của series mở rộng, tôi sẽ dẫn bạn qua cách dùng Docker với Cloud trong DevOps, tập trung vào AWS ECS Docker và GCP Cloud Run, cùng thực hành thực tế – dựa trên những lần tôi vật lộn và thành công với cloud, không chỉ là lý thuyết đâu nhé!
Tại Sao Dùng Docker trên Cloud?
Lợi Ích của Cloud trong DevOps
- Scalability: Tự động scale container theo tải.
- Managed Service: Không cần quản lý server thủ công.
- Tích hợp CI/CD: Deploy thẳng từ pipeline.
Ví dụ thực tế: Một team cần chạy 50 container API trong giờ cao điểm. AWS ECS tự scale lên từ 5, tiết kiệm chi phí và thời gian so với on-premise.
AWS ECS vs GCP Cloud Run
- AWS ECS (Elastic Container Service): Dịch vụ orchestration mạnh, tích hợp sâu với AWS (ECR, IAM).
- GCP Cloud Run: Serverless, đơn giản, chạy container HTTP nhanh chóng.
DevOps: ECS phù hợp hệ thống phức tạp, Cloud Run lý tưởng cho ứng dụng nhẹ.
Deploy Docker trên AWS ECS
Tổng Quan AWS ECS
- ECR: Registry lưu image (tương tự bài 12).
- ECS: Quản lý cluster, task, service.
Thực Hành: Deploy Flask trên ECS
Push Image lên ECR:
- Tạo repository:
aws ecr create-repository --repository-name myapp
- Build và push:
docker build -t myapp . aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin <aws-account-id>.dkr.ecr.us-east-1.amazonaws.com docker tag myapp:latest <aws-account-id>.dkr.ecr.us-east-1.amazonaws.com/myapp:latest docker push <aws-account-id>.dkr.ecr.us-east-1.amazonaws.com/myapp:latest
- Tạo repository:
Tạo ECS Cluster:
- Dùng AWS CLI:
aws ecs create-cluster --cluster-name my-cluster
- Dùng AWS CLI:
Định nghĩa Task:
task-definition.json
:{ "family": "myapp-task", "containerDefinitions": [ { "name": "myapp", "image": "<aws-account-id>.dkr.ecr.us-east-1.amazonaws.com/myapp:latest", "portMappings": [ { "containerPort": 5000, "hostPort": 5000 } ], "memory": 512, "cpu": 256 } ] }
- Đăng ký:
aws ecs register-task-definition --cli-input-json file://task-definition.json
Chạy Service:
aws ecs create-service --cluster my-cluster --service-name myapp-service --task-definition myapp-task --desired-count 1 --launch-type FARGATE --network-configuration "awsvpcConfiguration={subnets=[subnet-123],securityGroups=[sg-123],assignPublicIp=ENABLED}"
- Thay
subnet-123
,sg-123
bằng VPC của bạn.
- Thay
Test:
- Lấy public IP từ ECS console, truy cập `
:5000`.
- Lấy public IP từ ECS console, truy cập `
Debug tip: Service không chạy? Check log trong CloudWatch (aws logs
).
Deploy Docker trên GCP Cloud Run
Tổng Quan GCP Cloud Run
- Serverless: Chỉ cần image, không quản lý cluster.
- HTTP-based: Phù hợp ứng dụng web/API.
Thực Hành: Deploy Flask trên Cloud Run
Push Image lên GCR:
- Build và tag:
docker build -t gcr.io/<project-id>/myapp .
- Push:
gcloud auth configure-docker docker push gcr.io/<project-id>/myapp
- Build và tag:
Deploy lên Cloud Run:
gcloud run deploy myapp \ --image gcr.io/<project-id>/myapp \ --platform managed \ --region us-central1 \ --allow-unauthenticated
--allow-unauthenticated
: Public access (test).
Test:
- Lấy URL từ output (VD:
https://myapp-abc-uc.a.run.app
), truy cập.
- Lấy URL từ output (VD:
Debug tip: Lỗi 502? Check log trong Cloud Run console, đảm bảo app nghe port 8080 (mặc định Cloud Run).
Ứng Dụng trong DevOps
Pipeline CI/CD với Cloud
AWS ECS:
deploy: image: amazon/aws-cli script: - aws ecr get-login-password | docker login --username AWS --password-stdin <aws-account-id>.dkr.ecr.us-east-1.amazonaws.com - docker build -t <aws-account-id>.dkr.ecr.us-east-1.amazonaws.com/myapp:$CI_COMMIT_SHA . - docker push <aws-account-id>.dkr.ecr.us-east-1.amazonaws.com/myapp:$CI_COMMIT_SHA - aws ecs update-service --cluster my-cluster --service myapp-service --force-new-deployment
GCP Cloud Run:
deploy: image: google/cloud-sdk script: - gcloud auth configure-docker - docker build -t gcr.io/$PROJECT_ID/myapp:$CI_COMMIT_SHA . - docker push gcr.io/$PROJECT_ID/myapp:$CI_COMMIT_SHA - gcloud run deploy myapp --image gcr.io/$PROJECT_ID/myapp:$CI_COMMIT_SHA --platform managed --region us-central1
Kết quả: Pipeline tự động build, push, deploy lên cloud.
Microservices trên Cloud
- ECS: Chạy API, DB riêng biệt trong task khác nhau.
- Cloud Run: Mỗi service là một Cloud Run instance, gọi qua HTTPS.
Case study: Một team deploy 10 microservices lên ECS, auto-scale từ 2 lên 20 container khi tải tăng, tiết kiệm 25% chi phí so với VM.
Kết Luận
Docker với Cloud trong DevOps mở ra cánh cửa để deploy container cloud trên AWS ECS Docker và GCP Cloud Run. Thực hành với Flask cho thấy bạn có thể tích hợp Docker vào pipeline và tận dụng sức mạnh cloud dễ dàng.
Website không chứa bất kỳ quảng cáo nào, mọi đóng góp để duy trì phát triển cho website (donation) xin vui lòng gửi về STK 90.2142.8888 - Ngân hàng Vietcombank Thăng Long - TRAN VAN BINH
=============================
Nếu bạn không muốn bị AI thay thế và tiết kiệm 3-5 NĂM trên con đường trở thành DBA chuyên nghiệp hay làm chủ Database thì hãy đăng ký ngay KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE, được Coaching trực tiếp từ tôi với toàn bộ bí kíp thực chiến, thủ tục, quy trình của gần 20 năm kinh nghiệm (mà bạn sẽ KHÔNG THỂ tìm kiếm trên Internet/Google) từ đó giúp bạn dễ dàng quản trị mọi hệ thống Core tại Việt Nam và trên thế giới, đỗ OCP.
- CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
- Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
2 khóa học online qua video giúp bạn nhanh chóng có những kiến thức nền tảng về Linux, Oracle, học mọi nơi, chỉ cần có Internet/4G:
- Oracle cơ bản: https://bit.ly/admin_1200
- Linux: https://bit.ly/linux_1200
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile/Zalo: 0902912888
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: https://www.youtube.com/@binhguru
👨 Tiktok: https://www.tiktok.com/@binhguru
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhguru
👨 Podcast: https://www.podbean.com/pu/pbblog-eskre-5f82d6
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội
=============================
cở sở dữ liệu, cơ sở dữ liệu quốc gia, database, AI, trí tuệ nhân tạo, artificial intelligence, machine learning, deep learning, LLM, ChatGPT, DeepSeek, Grok, oracle tutorial, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,sql tutorial, khóa học pl/sql tutorial, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail,oracle RAC, ASM, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, postgresql tutorial, mysql tutorial, mariadb tutorial, ms sql server tutorial, nosql, mongodb tutorial, oci, cloud, middleware tutorial, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty