Hướng dẫn cú pháp sơ đồ triển khai PlantUML

Sơ đồ triển khai là gì?

Một Sơ đồ triển khai là một sơ đồ cấu trúc sơ đồ UML mô hình hóa kiến trúc thực thi vật lý của một hệ thống phần mềm. Là một tiêu chuẩn cốt lõi trong đặc tả Ngôn ngữ Mô hình hóa Đơn nhất (UML), loại sơ đồ UML nàyloại sơ đồ UML mô tả cách các thành phần phần mềm được triển khai vật lý lên các mục tiêu máy chủ phần cứng, các thành phần hạ tầng đám mây hoặc môi trường chạy container. Nó cung cấp cho các kỹ sư hệ thống, chuyên gia DevOps và kiến trúc sư mạng một bố cục rõ ràng về các ranh giới cụm máy chủ, các đường đi sao chép cơ sở dữ liệu, các tầng cân bằng tải và các giao thức mạng phần cứng trên các khu vực phát triển và sản xuất.

Với VPasCode, bạn không cần phải vất vả với các hình dạng nhóm vector phức tạp hay ánh xạ tọa độ thủ công. Bằng cách sử dụng các khối mã khai báo đơn giản, bộ xử lý của chúng tôi tự động nhóm, tính toán và lồng ghép cấu trúc nút phần cứng của bạn một cách sạch sẽ.

Hướng dẫn cú pháp cốt lõi: Các thành phần và cấu trúc

Để thiết kế một sơ đồ triển khai UML chính xác và tuân thủ chuẩn trong PlantUML, bạn cần nắm vững các nút phần cứng, môi trường thực thi, các tài sản triển khai và các liên kết mạng.

1. Khai báo các khối cơ sở hạ tầng (nút)

Trong bố cục triển khai, các tài nguyên tính toán vật lý được biểu diễn dưới dạng các khối ba chiều 3D. Bạn khai báo các thành phần này bằng từ khóa node từ khóa, hoặc bằng cách chọn các biến thể chuyên biệt giúp người đọc ngay lập tức hiểu được bối cảnh trực quan về cấp độ phần cứng:

node "Máy chủ ứng dụng Bare Metal" as CoreServer
node Server1
database "Máy chủ cơ sở dữ liệu" as DB_Node

2. Mô hình hóa các lớp đám mây và môi trường ảo

Các ứng dụng hiện đại hiếm khi được triển khai trực tiếp lên phần cứng vật lý. PlantUML cung cấp các bao bọc nhóm lồng ghép để biểu diễn các ranh giới thực thi logic, các vùng phủ của nhà cung cấp đám mây hoặc các môi trường chạy container ảo như Docker và Kubernetes:

  • cloud — Đại diện cho các tầng web công cộng bên ngoài hoặc các ranh giới mạng đám mây (ví dụ: AWS, Azure).
  • frame — Đại diện cho các hệ thống ảo hoặc các khu vực tổ chức.
  • storage — Đại diện cho các cấu hình SAN vật lý hoặc các vị trí lưu trữ đối tượng.
cloud "Amazon Web Services VPC" {
    node "Thực thể EC2 Linux" as WorkerNode
}

3. Xác định các tài sản triển khai (Chạy ở đâu)

Một tài sản đại diện cho tệp vật lý thực tế (ví dụ: tệp JAR đã biên dịch, thư mục xây dựng tĩnh hoặc gói nén) được triển khai lên một nút. Bạn khai báo một tài sản bằng từ khóatài sảntừ khóa, hoặc đặt nó trực tiếp bên trong các khối phần cứng của bạn:

node "Máy chủ ứng dụng" {
    tài sản "api_v1.0.war" as API_File
}

4. Bản đồ các liên kết truyền thông mạng

Các kết nối giữa các thành phần hạ tầng đại diện cho các mạng vật lý cụ thể, đường dẫn dây hoặc kênh không dây. Bạn bản đồ các liên kết này bằng dấu gạch kép liền (--), và thêm văn bản bên trong dấu ngoặc kép để xác định rõ giao thức mạng được sử dụng (ví dụ: HTTPS, TCP/IP, SSH):

Các nguyên tắc tốt nhất cho bản đồ triển khai thực tế

  • Đặt cấu trúc đúng cách: Luôn vẽ các thành phần nội bộ hoặc tài sản của bạn *bên trong* dấu ngoặc nhọn của khai báonodeđể rõ ràng thể hiện vị trí thực thi.
  • Gắn nhãn giao thức truyền thông: Không bao giờ vẽ dòng trống giữa các máy chủ. Luôn gắn nhãn cho kết nối bằng giao thức truyền thông chính của nó (ví dụ: "HTTPS (Cổng 443)") để hỗ trợ đánh giá mạng và bảo mật.
  • Tách biệt các vùng khả dụng: Khi tài liệu hóa các cấu hình đám mây có khả năng hoạt động liên tục cao, hãy sử dụng các bao bọc riêng biệt khung bao bọc để minh họa các thiết lập vùng phân tách (ví dụ: us-east-1a so với us-east-1b).

Các ví dụ về sơ đồ triển khai PlantUML trong thế giới thực

Ví dụ 1: Cấu hình web ba tầng cổ điển (nút và giao thức)

Mẫu này mô phỏng cấu trúc ứng dụng doanh nghiệp hiện đại tiêu chuẩn, mô tả mạng phân phối nội dung bên ngoài, cụm máy chủ ứng dụng và tầng máy chủ cơ sở dữ liệu nội bộ được bảo mật.

@startuml
cloud "Internet công cộng" as net

node "Cạnh CDN Cloudflare" as cdn

frame "Vùng phi quân sự (DMZ)" {
    node "Máy chủ cân bằng tải Nginx" as proxy
}

frame "Mạng con VPC ứng dụng riêng tư" {
    node "Máy chủ Ubuntu 22.04" as app_node {
        artifact "core_api.jar" as application
    }
}

database "Tầng cơ sở dữ liệu được quản lý" {
    node "Cụm chính PostgreSQL" as db_master
}

' Thiết lập các dây kết nối topo
net -- cdn : "HTTPS"
cdn -- proxy : "HTTPS (TLS 1.3)"
proxy -- app_node : "HTTP (Cổng 8080)"
app_node -- db_master : "TCP/IP (Cổng 5432)"
@enduml

Phân tích cú pháp: Bản đồ này rõ ràng xác định các khu vực bảo mật. Tài sản đã biên dịch core_api.jar được đặt an toàn bên trong app_node hộp máy chủ. Các tuyến đường mạng mở rộng sạch sẽ về phía trong, thiết lập các quy tắc giao thức nghiêm ngặt cho từng đoạn từ mép web công cộng xuống đến tầng cơ sở dữ liệu được quản lý.

Ví dụ 2: Kiến trúc container bản địa đám mây (Kubernetes & AWS Mesh)

Bản thiết kế doanh nghiệp nâng cao này mô tả triển khai đám mây đa vùng, có khả năng mở rộng cao. Nó sử dụng bố cục nút lồng ghép để trực quan hóa hệ thống container Kubernetes được cân bằng tải tương tác với các cơ sở dữ liệu đám mây độc lập.

@startuml
cloud "Amazon Web Services (AWS)" {
    
    node "Cân bằng tải ứng dụng AWS" as alb
    
    frame "Vùng khả dụng: us-east-1a" {
        node "Nút công việc EC2 Node A" as ec2_a {
            node "Pod K8s: Giao diện web phía trước" as pod_web_a
            node "Pod K8s: API Đặt hàng" as pod_api_a
        }
    }
    
    frame "Vùng khả dụng: us-east-1b" {
        node "Nút công việc EC2 Node B" as ec2_b {
            node "Pod K8s: Giao diện web phía trước" as pod_web_b
            node "Pod K8s: API Đặt hàng" as pod_api_b
        }
    }
    
    storage "Cụm Aurora Serverless của AWS" {
        database "Cơ sở dữ liệu Khách hàng" as rds_db
    }
}

' Vẽ các đường điều phối hạ tầng
alb -- pod_web_a : "HTTP Round-Robin"
alb -- pod_web_b : "HTTP Round-Robin"

pod_web_a -- pod_api_a : "gRPC nội bộ"
pod_web_b -- pod_api_b : "gRPC nội bộ"

pod_api_a -- rds_db : "SSL/TCP"
pod_api_b -- rds_db : "SSL/TCP"
@enduml

Phân tích cú pháp: Bằng cách lồng ghép nút các mục tiêu vào bên trong các nútcấu trúc, mẫu này mô phỏng chính xác bố cục được đóng gói (Pods đang chạy bên trong máy ảo EC2). Bộ cân bằng tải ứng dụng phân phối trơn tru các yêu cầu đến qua các vùng khả dụng, trong khi các thành phần cụm định tuyến các lời gọi cơ sở dữ liệu trở lại một kho lưu trữ chung.

Lên đầu trang