# System Landscape Diagram

C4 Model về cơ bản cung cấp góc nhìn tĩnh vào **một hệ thống phần mềm duy nhất**. Nhưng thực tế, không có hệ thống nào tồn tại biệt lập. Đặc biệt nếu bạn đang chịu trách nhiệm cho cả một tập hợp các hệ thống, bạn cần một cái nhìn rộng hơn — và đó chính là lý do **System Landscape Diagram** ra đời.

## System Landscape Diagram là gì?

Về mặt thực tế, đây là một System Context Diagram nhưng **không tập trung vào một hệ thống cụ thể nào**. Thay vào đó, nó hiển thị tất cả các con người và phần mềm có liên quan trong một phạm vi nhất định — cho thấy toàn bộ bức tranh IT thay vì chỉ zoom vào một điểm.

Nó nằm "phía trên" các C4 static structure diagrams, đóng vai trò như một bản đồ tổng quan của toàn bộ hệ thống trong tổ chức.

## Diagram này trả lời những câu hỏi gì?

*   Các hệ thống phần mềm trong nhóm, phòng ban, hay tổ chức kết nối với nhau như thế nào?
    
*   Nếu một hệ thống thay đổi hoặc bị loại bỏ, tác động lan tới đâu?
    
*   Nếu tổ chức tái cơ cấu, sáp nhập, hay tách ra — điều gì sẽ xảy ra với bức tranh IT?
    

## Phạm vi — bạn tự chọn

Không như System Context Diagram có phạm vi cố định là một hệ thống, System Landscape Diagram linh hoạt hơn nhiều. Bạn có thể chọn vẽ tất cả những gì nằm trong:

*   Toàn bộ tổ chức *(phù hợp với tổ chức nhỏ)*
    
*   Một nhóm hoặc phòng ban cụ thể
    
*   Một product domain
    
*   Một business capability
    
*   Một DDD bounded context
    

## Thành phần

Giống với System Context Diagram, System Landscape Diagram bao gồm hai loại phần tử: **People** và **Software Systems**, cùng với các mối quan hệ giữa chúng.

Điểm khác biệt duy nhất là: không có "hệ thống trung tâm" được làm nổi bật. Tất cả đều bình đẳng trên bản đồ.

## Ví dụ thực tế: Fictional Bank

Hãy tiếp tục với ví dụ Internet Banking System từ Chapter 3.

**Bước 1 — Bắt đầu từ những gì đã có**

Điểm khởi đầu chính là nội dung của System Context Diagram cho Internet Banking System: Personal Banking Customer, Internet Banking System, Core Banking System, và Amazon SES.

![](https://cdn.hashnode.com/uploads/covers/6a1c1e0799cfcad53bb29ec4/48edc7a1-57fd-4b8b-b59d-94b7fad78447.png align="left")

**Bước 2 — Mở rộng ra bức tranh toàn cảnh**

Từ đây, ta bắt đầu thêm vào những phần còn lại của hệ sinh thái ngân hàng:

![](https://cdn.hashnode.com/uploads/covers/6a1c1e0799cfcad53bb29ec4/bef3c334-a025-4c70-8ba6-4eee47b19d52.png align="center")

*   **ATM** — hệ thống phần mềm vận hành máy ATM, cũng kết nối với Core Banking System
    
*   **Customer Service Staff** — nhân viên hỗ trợ khách hàng nội bộ, sử dụng Core Banking System để tra cứu thông tin
    
*   **Back Office Staff** — nhân viên vận hành nội bộ, cũng tương tác với Core Banking System
    
*   Mối quan hệ giữa **Personal Banking Customer** và **Customer Service Staff** cũng được thêm vào — để giải thích *tại sao* nhân viên hỗ trợ lại cần dùng Core Banking System.
    
    ![](https://cdn.hashnode.com/uploads/covers/6a1c1e0799cfcad53bb29ec4/80920e2b-17a8-4433-8bea-40d35ce28b20.png align="center")
    

**Bước 3 — Thêm ranh giới tổ chức**

![](https://cdn.hashnode.com/uploads/covers/6a1c1e0799cfcad53bb29ec4/00700814-f4eb-4b4d-aaa6-c395a9ff901a.png align="center")

Phiên bản nâng cao hơn có thể thêm các ô với đường viền nét đứt để biểu diễn **ranh giới tổ chức** — ví dụ phân tách rõ ràng những gì thuộc về *Big Bank* và những gì thuộc về *Amazon Web Services*. Điều này giúp người xem ngay lập tức hiểu được đâu là hệ thống nội bộ, đâu là dịch vụ bên ngoài.

## Tại sao diagram này hữu ích?

Nhiều tổ chức — dù lớn hay nhỏ — không có một cái nhìn tổng thể từ trên xuống về toàn bộ IT landscape của mình. Đây là thực trạng đáng ngạc nhiên, đặc biệt khi công nghệ thường là xương sống của cách họ vận hành nghiệp vụ và phục vụ khách hàng.

System Landscape Diagram ít nhất cung cấp một cách để **thoát khỏi tư duy silo** — không còn nhìn từng hệ thống một cách biệt lập, mà thấy được toàn bộ mạng lưới kết nối.

Với các tổ chức lớn, diagram này thậm chí có thể được làm **interactive**: double-click vào một software system để điều hướng thẳng đến C4 diagrams chi tiết của hệ thống đó — biến nó thành một bản đồ sống động của toàn bộ IT landscape.

## Đối tượng sử dụng

Cũng giống System Context Diagram, System Landscape Diagram dành cho **tất cả mọi người**: kỹ sư và phi kỹ thuật, trong và ngoài team phát triển. Nó đặc biệt hữu ích cho các kiến trúc sư, tech lead, hay bất kỳ ai cần nắm bức tranh tổng thể của hệ sinh thái IT.

## Có nên dùng không?

> Simon Brown khuyến nghị: **Có — đặc biệt với các tổ chức lớn.** System Landscape Diagram là cây cầu nối giữa software architecture và enterprise architecture.

Với tổ chức nhỏ, một System Context Diagram tốt có thể đã đủ. Nhưng khi tổ chức phát triển và số lượng hệ thống tăng lên, đây là diagram bạn sẽ muốn có.

## Tóm lại

|  | System Context Diagram | System Landscape Diagram |
| --- | --- | --- |
| Phạm vi | Một hệ thống duy nhất | Nhiều hệ thống |
| Trọng tâm | Hệ thống được highlight ở giữa | Không có trọng tâm cố định |
| Mục đích | Ngữ cảnh của một hệ thống | Bản đồ toàn bộ IT landscape |
| Phù hợp với | Mọi team | Tổ chức lớn, nhiều hệ thống |

## Kết luận

System Landscape Diagram không phải là một diagram phức tạp — về mặt kỹ thuật, nó chỉ là một System Context Diagram được mở rộng phạm vi. Nhưng chính sự đơn giản đó lại là điểm mạnh của nó.

Trong thực tế, rất nhiều tổ chức đang vận hành hàng chục, thậm chí hàng trăm hệ thống phần mềm mà không ai có một bức tranh tổng thể. Mỗi team chỉ biết hệ thống của mình, không ai thấy được toàn cảnh. Kết quả là khi một hệ thống thay đổi, không ai lường trước được tác động lan rộng đến đâu. Khi tổ chức tái cơ cấu, không ai biết cần điều chỉnh những gì.

System Landscape Diagram giải quyết đúng vấn đề đó — bằng cách tạo ra **một bản đồ chung** mà mọi người trong tổ chức đều có thể nhìn vào và hiểu được.

Đây cũng là cây cầu nối C4 Model với tư duy enterprise architecture — không phải theo nghĩa hàn lâm hay nặng về quy trình, mà theo nghĩa thực dụng nhất: *biết mình đang có gì, và chúng kết nối với nhau như thế nào*.
