- Published on
11 Khái Niệm Cloud Computing Quan Trọng Mà Mọi Developer Cần Biết
- Authors

- Name
- Xiro The Dev
Cloud computing đã trở thành nền tảng của hầu hết các ứng dụng hiện đại. Dù bạn là người mới bắt đầu hay đã có kinh nghiệm, việc nắm vững các khái niệm cốt lõi là điều vô cùng quan trọng.
Bài viết này sẽ tổng hợp 11 khái niệm cloud computing quan trọng nhất mà mọi developer cần biết, từ scaling, load balancing đến infrastructure as code.
- 1. Scaling (Mở Rộng Quy Mô)
- 2. Load Balancing (Cân Bằng Tải)
- 3. Autoscaling (Tự Động Mở Rộng)
- 4. Serverless
- 5. Event-Driven Architecture (Kiến Trúc Hướng Sự Kiện)
- 6. Container Orchestration (Điều Phối Container)
- 7. Storage (Lưu Trữ)
- 8. Availability (Tính Khả Dụng)
- 9. Durability (Độ Bền Dữ Liệu)
- 10. Infrastructure as Code (IaC)
- 11. Cloud Networks (Mạng Cloud)
- Tổng Kết
1. Scaling (Mở Rộng Quy Mô)
Vấn Đề Scaling
Khi bạn phát triển một ứng dụng, ban đầu traffic có thể rất thấp. Nhưng khi ứng dụng "nổ" — có thể do một bài blog, được feature trên báo, hoặc đơn giản là launch day — traffic có thể tăng đột biến như một đường cong dốc đứng.

Vấn đề là nhiều ứng dụng không được thiết kế để xử lý sự gia tăng traffic đột ngột này, dẫn đến:
- Lỗi trên trang web
- Ứng dụng ngừng hoạt động
- Trải nghiệm người dùng tệ hại
Cloud computing giải quyết vấn đề này thông qua scaling — một trong những lợi ích chính của việc sử dụng cloud.
Vertical Scaling (Scaling Dọc)
Vertical scaling là phương pháp truyền thống trước khi cloud computing phổ biến. Ý tưởng là: khi traffic tăng, bạn "nâng cấp" máy chủ hiện tại.

Cách hoạt động:
- Thêm CPU, thêm cores
- Tăng RAM
- Tăng dung lượng ổ cứng
- Tăng network throughput
Nhược điểm của Vertical Scaling:
Chi phí tăng không tuyến tính:
- 16GB RAM có thể tốn $100
- 32GB RAM không phải 225
- 64GB RAM có thể tốn $500-600
- → Diminishing returns về mặt chi phí
Vấn đề về tính ổn định (Stability):
- Nếu máy chủ duy nhất này gặp sự cố → toàn bộ ứng dụng sập
- Single point of failure
Horizontal Scaling (Scaling Ngang)
Horizontal scaling sử dụng một mô hình hoàn toàn khác: thay vì nâng cấp một máy, bạn nhân bản ứng dụng lên nhiều máy nhỏ hơn.

Ưu điểm:
✅ Tính ổn định cao hơn: Nếu một máy sập, các máy khác vẫn hoạt động
✅ Chi phí thấp hơn: Nhiều máy nhỏ thường rẻ hơn một máy lớn
- Ví dụ: 5 máy 16GB RAM (5 × 500) rẻ hơn 1 máy 64GB RAM ($600)
✅ Khả năng mở rộng tốt hơn: Dễ dàng thêm/bớt máy theo nhu cầu
Horizontal scaling là phương pháp phổ biến nhất trong cloud computing hiện đại.
2. Load Balancing (Cân Bằng Tải)
Khi bạn có nhiều máy chủ (horizontal scaling), câu hỏi đặt ra là: làm sao phân phối traffic đến các máy chủ này?
Đây chính là vai trò của Load Balancer.

Load Balancer Là Gì?
Load balancer là một lớp trung gian đứng trước các máy chủ ứng dụng của bạn:
- Có DNS hoặc IP address riêng
- Nhận tất cả requests từ người dùng
- Phân phối traffic đến các máy chủ khả dụng
- Giám sát health của các máy chủ
Các Thuật Toán Load Balancing
1. Round Robin
- Lần lượt gửi request đến từng máy chủ: 1 → 2 → 3 → 1 → 2 → 3...
- Đơn giản, công bằng
2. Least Connections
- Gửi request đến máy chủ có ít kết nối nhất
- Phù hợp khi các request có thời gian xử lý khác nhau
3. Least Utilization
- Dựa trên tài nguyên (CPU, memory)
- Gửi đến máy chủ có CPU/memory thấp nhất
- Ví dụ: Máy 1 (99% CPU) → Máy 2 (50% CPU) → Máy 3 (20% CPU) → Chọn Máy 3
4. IP Hash
- Hash IP của client để luôn gửi đến cùng một máy chủ
- Hữu ích cho session persistence
Lợi Ích
- High Availability: Tự động loại bỏ máy chủ không khỏe mạnh
- Scalability: Dễ dàng thêm máy chủ mới
- Performance: Phân phối tải đều, tránh quá tải
3. Autoscaling (Tự Động Mở Rộng)
Autoscaling là khái niệm mạnh mẽ nhất trong cloud computing — nó tự động thêm/bớt instances dựa trên traffic.

Vấn Đề Autoscaling Giải Quyết
Giả sử bạn đặt 3 instances ban đầu. Khi traffic tăng đột biến:
- ❌ Không muốn: Phải ngồi monitor và thủ công thêm instance
- ✅ Muốn: Hệ thống tự động thêm instances khi cần
Tương tự, khi traffic giảm:
- ❌ Không muốn: Trả tiền cho instances không dùng đến
- ✅ Muốn: Tự động xóa instances thừa
Cách Hoạt Động
Autoscaling Groups (ví dụ trong AWS):
- Tạo một nhóm instances
- Đặt metrics trigger:
- Khi connections > X → thêm instance
- Khi connections < Y → xóa instance
- Hoặc dựa trên CPU utilization, memory, custom metrics
Ví dụ Metrics:
- CPU utilization > 70% → scale up
- CPU utilization < 30% → scale down
- Number of requests per second
- Queue depth (cho message queues)
Lợi Ích
✅ Cost Optimization: Chỉ trả tiền cho resources đang dùng
✅ Automatic Response: Phản ứng ngay với traffic spikes
✅ High Availability: Tự động thay thế instances bị lỗi
4. Serverless
Serverless là một khái niệm rất phổ biến nhưng cũng gây tranh cãi vì định nghĩa đã thay đổi theo thời gian.

Serverless Ban Đầu: AWS Lambda
Vấn đề trước đây:
- Để chạy code trên cloud, bạn phải:
- Provision EC2 instance
- Setup và config
- Deploy code
- Maintain security, networking
- Quản lý instances
→ Rất phức tạp và tốn kém
Giải pháp Lambda:
- Bạn chỉ cần viết code
- Upload lên Lambda function
- Lambda tự động:
- Quản lý underlying EC2 instances
- Scale up/down tự động
- Distribute traffic
- Bạn không cần biết về infrastructure
Đặc điểm:
- Pay-per-use: Chỉ trả tiền khi code chạy
- No server management: Không cần quản lý servers
- Auto-scaling: Tự động scale từ 0 đến hàng nghìn concurrent executions
Serverless "Mới" (Gây Tranh Cãi)
AWS đã mở rộng thuật ngữ "serverless" cho nhiều services khác, ví dụ OpenSearch Serverless:
Vấn đề:
- Vẫn phải trả tiền cho underlying instances
- Không phải pay-per-execution như Lambda
- Chỉ là "managed" chứ không thật sự "serverless"
Kết luận:
- Lambda, DynamoDB = Serverless thật sự (pay-per-use)
- OpenSearch Serverless = Managed service (trả tiền cho infrastructure)
- Cần cẩn thận khi nghe thuật ngữ "serverless" — không phải lúc nào cũng có nghĩa giống nhau
5. Event-Driven Architecture (Kiến Trúc Hướng Sự Kiện)
Event-Driven Architecture (EDA) là một paradigm mạnh mẽ để xây dựng các hệ thống phân tán, decoupled.

Request-Response Model (Mô Hình Cũ)
Ví dụ: Amazon Order System
Khi khách đặt hàng, hệ thống phải:
- Charge customer (gọi Credit Card Service)
- Gọi Warehouse Service (FC - Fulfillment Center)
- Gọi Fraud Detection Service
Vấn đề:
- Tight Coupling: Order service phải biết về tất cả downstream services
- Khó thêm service mới (phải sửa order service)
- Nếu một service chậm → toàn bộ flow bị block
- Khó scale từng service độc lập
Event-Driven Architecture
Cách hoạt động:
Publisher (Order Service) gửi event đến Message Broker
- AWS: SNS (Simple Notification Service) hoặc EventBridge
- Event chứa: order ID, customer ID, amount, metadata...
Message Broker phân phối event đến tất cả Subscribers
- Credit Card Service
- FC Service
- Fraud Detection Service
- Có thể thêm N services khác
Fan-out Pattern: Một event → nhiều consumers
Lợi ích:
✅ Decoupling: Order service không cần biết về downstream services
✅ Scalability: Mỗi service scale độc lập
✅ Flexibility: Dễ thêm/xóa subscribers
✅ Resilience: Nếu một service fail, các service khác vẫn hoạt động
Xử lý vấn đề:
- Nếu fraud detection phát hiện fraud sau khi đã charge và ship?
- → Gửi cancellation event để các services rollback
Thuật Ngữ
- Publisher: Service tạo và gửi events (Amazon Order Service)
- Subscriber: Service nhận và xử lý events (Credit Card, FC, Fraud)
- Pub/Sub: Viết tắt của Publisher/Subscriber
6. Container Orchestration (Điều Phối Container)
Container Là Gì?
Container là một môi trường cô lập chứa:
- Code của bạn
- Dependencies
- Configuration
- Runtime environment
Lợi ích:
- "Works on my machine" → "Works everywhere"
- Portable: chạy trên máy local, cloud, bất kỳ đâu
- Consistent environment

Vấn Đề: Quản Lý Containers
Cách đơn giản: Deploy container lên EC2 instance
- ❌ Nếu container crash → phải restart thủ công
- ❌ Khó monitor và detect issues
- ❌ Deploy code phức tạp
- ❌ Khó scale
Container Orchestration
Container Orchestration Services (AWS):
- ECS (Elastic Container Service)
- EKS (Elastic Kubernetes Service)
Tính năng:
✅ Auto-deployment: Deploy container lên nhiều machines dễ dàng
✅ Load Balancing: Tự động provision load balancer
✅ Health Checks: Tự động detect và replace unhealthy containers
✅ Auto-recovery: Container crash → tự động restart hoặc replace
✅ Scaling: Dễ dàng scale số lượng containers
✅ Monitoring: Built-in monitoring và logging
Use Cases:
- Long-running services (web apps, APIs)
- Batch jobs (one-time processing tasks)
- Microservices architecture

7. Storage (Lưu Trữ)
Storage trong cloud computing có nhiều loại khác nhau, mỗi loại phù hợp với use case riêng.
Object Storage
Định nghĩa: Lưu trữ files như objects trong một "dumping ground" chung.
Ví dụ:
- Media files: MP4, audio, video
- JSON objects
- CSV files
- Blobs, binary data
- Images, documents
Đặc điểm:
- General purpose: Lưu trữ mọi loại file
- Accessible: Truy cập từ bất kỳ đâu qua API
- Scalable: Tự động scale, không cần quản lý capacity
Ví dụ services:
- AWS S3
- Google Cloud Storage
- Azure Blob Storage

Block Storage
Định nghĩa: Volumes (ổ cứng ảo) có thể attach vào instances.
Đặc điểm:
- Attachable: Có thể attach/detach từ instances
- Shareable: Có thể share giữa nhiều instances (shared volumes)
- Auto-scaling: Tự động tăng/giảm size
- Persistent: Dữ liệu tồn tại ngay cả khi instance bị xóa
Use Cases:
- Database storage
- Temporary data processing (ML jobs)
- File systems cho applications
Ví dụ services:
- AWS EBS (Elastic Block Store)
- Google Persistent Disk
Databases
1. Relational Databases (SQL)
- PostgreSQL, MySQL, Microsoft SQL Server, Oracle
- Structured data với relationships
- ACID compliance
- Use case: Transactional data, financial records
2. NoSQL Databases
- Document DB: MongoDB, DynamoDB
- Search: OpenSearch, Elasticsearch
- Graph: Neo4j
- Key-Value: Redis, Memcached
- Use case: Flexible schema, high throughput, horizontal scaling
3. Cache Solutions
- Redis, Memcached
- In-memory storage
- Temporary data, frequently accessed
- Giảm load cho database

8. Availability (Tính Khả Dụng)
Availability = Tỷ lệ thời gian ứng dụng hoạt động bình thường.
Availability Metrics
Ví dụ:
- 99.9% = ~526 phút downtime/năm (~8.77 giờ)
- 99.99% = ~53 phút downtime/năm
- 99.999% = ~5 phút downtime/năm
Công thức:
Downtime = (1 - Availability%) × Total Time
Cách Tăng Availability
1. Horizontal Scaling + Load Balancing
- Nhiều instances → nếu một instance fail, các instance khác vẫn hoạt động
2. Availability Zones (AZs)
- Availability Zones = Các data centers địa lý riêng biệt
- Có thể là:
- Separate buildings
- Separate sections trong cùng building (với separate power, internet lines)
- Deploy instances ở nhiều AZs → nếu một AZ fail, các AZ khác vẫn hoạt động

3. Multi-Region Deployment
- Deploy ở nhiều regions (countries/continents)
- Highest level of availability
- Use case: Global applications
Best Practices
- ✅ Deploy ở ít nhất 2 Availability Zones
- ✅ Sử dụng load balancer với health checks
- ✅ Auto-scaling để handle traffic spikes
- ✅ Monitoring và alerting
9. Durability (Độ Bền Dữ Liệu)
Durability = Khả năng dữ liệu không bị mất khi lưu trữ trên cloud.
Cách Cloud Providers Đảm Bảo Durability
Khi bạn lưu một file (ví dụ: MP3) lên cloud:
Multiple Copies: Cloud provider tự động tạo nhiều bản copy
- Copy 1, Copy 2, Copy 3...
Geographic Distribution: Các copies được lưu ở:
- Different machines
- Different data centers
- Different countries/regions
Auto-Replication: Nếu một copy bị mất (hard drive fail, data center down, disaster), hệ thống tự động tạo copy mới
Use Cases
- Disaster Recovery: Khôi phục sau thiên tai
- Data Backup: Backup tự động
- Compliance: Đáp ứng yêu cầu về data retention
Ví Dụ: AWS S3 Durability
- 99.999999999% (11 nines) durability
- Tự động replicate data across multiple AZs
- Versioning để recover từ accidental deletion
10. Infrastructure as Code (IaC)
Infrastructure as Code (IaC) = Định nghĩa infrastructure bằng code thay vì thao tác thủ công qua console.
Vấn Đề Của Manual Configuration
Cách cũ: Tạo database qua AWS Console
- Login vào console
- Click "Create Table"
- Điền settings
- Add monitors
- Add data
- Modify config sau này...
Vấn đề:
- ❌ Dễ sai sót: Fat finger, click nhầm delete → production down
- ❌ Khó replicate: Tạo lại setup giống hệt ở region mới rất tốn thời gian
- ❌ Không có version control: Không biết ai thay đổi gì, khi nào
- ❌ Khó review: Không có code review process
Infrastructure as Code
Giải pháp: Viết code để define infrastructure
Workflow:
- Viết code (template/configuration)
- Commit vào Git
- Code review
- Deploy → Cloud provider đọc code và tạo infrastructure
Lợi ích:
✅ Version Control: Track changes, rollback dễ dàng
✅ Reproducibility: Deploy giống hệt ở bất kỳ region nào
✅ Code Review: Team review trước khi deploy
✅ Less Errors: Ít lỗi hơn so với manual
✅ Documentation: Code chính là documentation

Các Công Cụ IaC
1. AWS CloudFormation (CF)
- Declarative template language (YAML/JSON)
- Define "what you want" → AWS creates it
2. AWS CDK (Cloud Development Kit)
- Imperative: Programming language (TypeScript, Python, Java...)
- Có thể dùng loops, if statements, conditions
- Example: "If production → use large instances, if dev → use small instances"
3. Terraform
- Multi-cloud: Hỗ trợ AWS, GCP, Azure với một tool
- Popular choice cho multi-cloud deployments
- HCL (HashiCorp Configuration Language)
Recommendation:
- Nếu chỉ dùng AWS → CDK (mạnh mẽ, flexible)
- Nếu multi-cloud → Terraform
11. Cloud Networks (Mạng Cloud)
Cloud Networks cho phép isolate resources của bạn khỏi các customers khác trên cùng cloud provider.
Traditional Network
On-premise Data Center:
- Server room trong building
- Subnets:
- Public subnet: Instances có thể nhận traffic từ internet
- Private subnet: Databases, sensitive data (không thể truy cập từ internet)
- Security groups: Rules về communication giữa instances

Cloud Networks
Vấn đề: Trong cloud, có nhiều customers cùng dùng infrastructure của AWS/GCP/Azure.
Giải pháp: Cloud Networks (VPC - Virtual Private Cloud)
Cách hoạt động:
- Mỗi customer có isolated network riêng
- Mặc định: Không thể communicate với nhau
- Có thể config rules để:
- Allow communication giữa các networks (nếu cần)
- Allow inbound/outbound traffic từ internet
- Define private resources trong network

Lợi ích:
✅ Isolation: Resources của bạn tách biệt với customers khác
✅ Security: Additional layer of security
✅ **Flexibility: Có thể connect networks nếu cần (business relationship)
✅ Private Resources: Có thể có resources private trong network
Ví dụ:
- Bạn có VPC với web servers (public) và databases (private)
- Databases chỉ accessible từ web servers trong cùng VPC
- Không thể access từ internet hoặc VPC của customer khác
Tổng Kết
11 khái niệm cloud computing quan trọng:
- Scaling: Vertical vs Horizontal
- Load Balancing: Phân phối traffic
- Autoscaling: Tự động scale theo traffic
- Serverless: Code không cần quản lý servers
- Event-Driven Architecture: Decoupled, scalable systems
- Container Orchestration: Quản lý containers tự động
- Storage: Object, Block, Database
- Availability: Uptime và resilience
- Durability: Data không bị mất
- Infrastructure as Code: Define infrastructure bằng code
- Cloud Networks: Isolated, secure networks
Lời Khuyên
- Bắt đầu từ nền tảng: Hiểu scaling, load balancing trước
- Thực hành: Tạo tài khoản AWS/GCP free tier và thử nghiệm
- Đọc documentation: Mỗi cloud provider có documentation chi tiết
- Xem case studies: Học từ cách các công ty lớn sử dụng cloud
Tài Nguyên Học Tập
- AWS Well-Architected Framework: Best practices
- Cloud provider documentation: AWS, GCP, Azure
- YouTube channels:
- AWS Official
- Google Cloud Tech
- ByteByteGo (system design)
TIP
Cloud computing là một lĩnh vực rộng lớn. Đừng cố gắng học hết mọi thứ cùng lúc. Hãy bắt đầu từ những khái niệm cơ bản và dần dần mở rộng kiến thức.
Chúc bạn học tập hiệu quả! 🚀