<aside> ©️ IT: Từ A tới Á cho người ngoài ngành by @Rose Trinh

</aside>

DesignGurus.io

DesignGurus.io

System Design, System Architecture là gì?

Sơ đồ kiến trúc hệ thống là một biểu đồ hoặc bản vẽ mô tả cấu trúc tổng thể của một hệ thống thông tin.

Sơ đồ kiến trúc hệ thống thường được tạo ra ở giai đoạn thiết kế (design) trong quy trình phát triển phần mềm (SDLC). Trong quá trình này, sau khi hoàn thành bước phân tích (analysis), nhóm phát triển sẽ sử dụng thông tin thu thập được để thiết kế cấu trúc tổng thể của hệ thống. Sơ đồ kiến trúc hệ thống giúp xác định các thành phần chính của hệ thống, mối quan hệ giữa chúng và cách chúng tương tác với nhau. Điều này cung cấp một hướng dẫn cơ bản cho việc triển khai và phát triển phần mềm, đồng thời giúp đảm bảo rằng hệ thống được thiết kế một cách hợp lý và hiệu quả.

// Nó tương tự như một bản thiết kế hoặc bản vẽ kỹ thuật trong xây dựng, nơi mọi chi tiết của công trình được mô tả và định rõ trước khi bắt đầu xây dựng.

Tương tự, nó cũng có thể được so sánh như bản đồ chiến lược của một dự án. Đó là nơi mà các yếu tố như kích thước, hình dáng, cấu trúc, và chức năng của công trình được xác định và thảo luận.

*Nói chung, System Design là bước quan trọng và cần thiết trong quá trình xây dựng, giúp định hình và hướng dẫn việc triển khai và xây dựng công trình một cách chính xác và hiệu quả.

Ai có quan tâm thì có thể gia nhập nhóm này trên facebook để xem các anh chị dev phải mất bao nhiêu là neuron não phải bùng cháy để ra được cái bản vẽ này: Cộng Đồng System Design Việt Nam*

Người tạo ra sơ đồ kiến trúc hệ thống thường là các chuyên gia thiết kế hệ thống (system designers), kiến trúc sư phần mềm (software architects) hay các bạn lập trình viện Senior. Các chuyên gia này có kiến thức và kinh nghiệm trong việc phân tích yêu cầu của hệ thống, xác định cấu trúc tổng thể của hệ thống và thiết kế các thành phần cụ thể cùng với cách chúng tương tác với nhau. Sơ đồ kiến trúc hệ thống thường là kết quả của quá trình cộng tác giữa các lập trình viên, kiến trúc sư, và các bên liên quan khác trong dự án phần mềm.

<aside> 💭 Bạn nào làm IT Comtor thì sẽ hơi cực ở phần hỗ trợ dịch giao tiếp về Architecture Design do có quá nhiều thuật ngữ trong ngành. Ad recommend các bạn có buổi tập dượt (“dry-run”) trước các buổi họp như vậy, nhờ người đảm nhiệm tài liệu này giải thích cho bạn mục đích của các thành phần là gì, cách tương tác sao để vào cuộc họp mình dễ nói hơn.

Bạn nào là BA thì cũng sẽ được team Dev “ghé qua thăm hỏi” về yêu cầu hệ thống đầu ra, nhất là về phần traffic (lượng truy cập), peak (đỉnh điểm số lượng truy cập), sự tương tác hay tích hợp với hệ thống thứ 3, khả năng và kế hoạch mở rộng.

</aside>

High-Level và Low-Level Architecture Design

  1. High-Level Architecture Design (HLAD - Thiết Kế Kiến Trúc Cao Cấp): Đây là giai đoạn thiết kế kiến trúc hệ thống ở mức độ trừu tượng và tổng quan. Trong HLAD, các yếu tố chính của hệ thống được xác định và mô tả một cách tổng quan. Các quyết định quan trọng về cấu trúc tổng thể, các thành phần chính của hệ thống, và các liên kết giữa chúng được đưa ra. Thông thường, trong giai đoạn HLAD, các kiến trúc sư và nhà phát triển tập trung vào việc xác định các khía cạnh quan trọng của hệ thống mà không đi vào chi tiết cụ thể.
  2. Low-Level Architecture Design (LLAD - Thiết Kế Kiến Trúc Thấp Cấp): LLAD tiếp tục từ HLAD và đi sâu vào chi tiết hơn. Trong giai đoạn này, các yếu tố được xác định ở mức độ cụ thể hơn, bao gồm các thành phần cụ thể, giao diện, cơ chế hoạt động, và các chi tiết kỹ thuật. LLAD thường bao gồm việc thiết kế các module, lớp, hàm, và các phần tử kỹ thuật khác của hệ thống. Các quyết định cụ thể về cách triển khai các tính năng và yêu cầu cụ thể được đưa ra ở mức độ này.