0

Khái niệm UML (Unified Modeling Language) Dependency, Aggregation, Composition, Realization : liên quan đến vai trò Infra Developer

Dưới đây là phần giải thích các khái niệm UML (Unified Modeling Language) liên quan đến vai trò Infra Developer trong một dự án, tập trung vào bốn khái niệm: Dependency, Aggregation, Composition, và Realization — kèm theo ví dụ ứng dụng thực tiễn trong hạ tầng hệ thống (infrastructure):

image.png


🧩 1. Dependency (Phụ thuộc)

💡 Khái niệm:

  • Quan hệ yếu giữa hai thành phần.
  • Thay đổi của class A có thể ảnh hưởng đến class B, nhưng A không sở hữu B.
  • Ký hiệu bằng mũi tên đứt nét A ---> B.

🛠️ Ứng dụng thực tiễn Infra:

Ví dụ: Trong một hệ thống sử dụng Terraform để triển khai hạ tầng:

  • Một module AppServer có thể phụ thuộc vào VPCModule (nếu VPC chưa được tạo thì không deploy được AppServer).
module "app_server" {
  source = "./modules/app"
  vpc_id = module.vpc.vpc_id  # --> Dependency
}

→ AppServer phụ thuộc vào VPC, nhưng không sở hữu hay quản lý VPC.


🧱 2. Aggregation (Tập hợp)

💡 Khái niệm:

  • Quan hệ “has-a” (có thể sống độc lập).
  • Class A sở hữu B, nhưng nếu A bị xóa thì B vẫn còn tồn tại.
  • Ký hiệu bằng đường liền nét với kim cương trắng .

🛠️ Ứng dụng thực tiễn Infra:

Ví dụ: Một Load Balancer trong AWS sở hữu nhiều EC2 Instances:

  • Nếu Load Balancer bị xóa, các EC2 Instances vẫn tiếp tục chạy.
LoadBalancer ◻──────> EC2Instance

→ Quan hệ aggregation: Load Balancer chỉ quản lý routing, không chịu trách nhiệm sống/chết của EC2.


🧩 3. Composition (Thành phần)

💡 Khái niệm:

  • Quan hệ mạnh hơn aggregation: “part-of”, có tính sinh-tử phụ thuộc.
  • Nếu A bị xóa → B cũng bị xóa.
  • Ký hiệu bằng kim cương đen .

🛠️ Ứng dụng thực tiễn Infra:

Ví dụ: Trong Kubernetes:

  • Một Pod chứa các Containers.
  • Nếu Pod bị xóa, tất cả Containers trong đó cũng bị xóa.
Pod ◆──────> Container

→ Composition: Container không thể tồn tại độc lập nếu không có Pod.


🧠 4. Realization (Hiện thực hóa)

💡 Khái niệm:

  • Một class (hoặc thành phần cụ thể) hiện thực một interface hoặc abstract class.
  • Ký hiệu bằng đường đứt nét và mũi tên rỗng ----▷.

🛠️ Ứng dụng thực tiễn Infra:

Ví dụ: Hệ thống CI/CD có nhiều cách triển khai:

  • Interface IDeployer
  • Các class cụ thể như KubernetesDeployer, EC2Deployer hiện thực interface đó.
KubernetesDeployer ----▷ IDeployer

→ Realization giúp hạ tầng linh hoạt, dễ mở rộng các phương án deploy khác nhau.


🔧 Tổng kết: Gắn với vai trò Infra Developer

UML Concept Hạ tầng thực tế liên quan Ý nghĩa/Ứng dụng chính
Dependency Module Terraform phụ thuộc VPC Gắn kết tạm thời, không sở hữu
Aggregation LoadBalancer → EC2 Quan hệ quản lý, nhưng không gắn bó sinh-tử
Composition Pod → Containers (K8s) Quan hệ sống-chết, cấu trúc ràng buộc
Realization Nhiều loại triển khai thực hiện interface Giúp chuẩn hóa, dễ mở rộng/đa nền tảng triển khai

All Rights Reserved

Viblo
Let's register a Viblo Account to get more interesting posts.