18 điểm bởi GN⁺ 2024-11-05 | 3 bình luận | Chia sẻ qua WhatsApp
  • Diagrams là một công cụ cho phép vẽ kiến trúc hệ thống đám mây bằng mã Python
    • Được tạo ra để có thể sử dụng mà không cần công cụ thiết kế khi tạo mẫu kiến trúc hệ thống mới
    • Cũng có thể dùng để mô tả hoặc trực quan hóa kiến trúc hệ thống hiện có
    • Diagram as Code cho phép theo dõi các thay đổi của sơ đồ kiến trúc trong hệ thống quản lý phiên bản
  • Các nhà cung cấp chính được hỗ trợ
    • Hỗ trợ các nhà cung cấp đám mây lớn như AWS, Azure, GCP, Kubernetes, Alibaba Cloud, Oracle Cloud
    • Cũng hỗ trợ các node on-premise, SaaS, cùng những framework và ngôn ngữ lập trình phổ biến
  • Lưu ý
    • Không điều khiển tài nguyên đám mây thực tế hoặc tạo mã CloudFormation hay Terraform
    • Chỉ được dùng cho mục đích vẽ sơ đồ kiến trúc hệ thống đám mây

3 bình luận

 
xguru 2024-11-06

Diagrams - Vẽ kiến trúc cloud bằng mã Python
Đây là dự án do anh Kwon Min-jae ở Karrot Market tạo ra, và giờ đã đạt tới 38.700 GitHub Star rồi!

 
GN⁺ 2024-11-05
Ý kiến trên Hacker News
  • Dự án này là một wrapper cho Graphviz, tạo ra các tệp .dot có áp dụng style để mang lại hiệu quả trực quan tốt hơn so với tệp gv thô

    • Việc đặc tả bằng Python về mặt lý thuyết có lợi thế như highlighting và autocomplete của IDE, nhưng trên thực tế lại không phù hợp với những người không muốn học Python hay Golang
    • Với các sơ đồ kiến trúc nhỏ, layout engine hoạt động ổn, nhưng khi quy mô lớn hơn thì trông không đẹp
    • Dùng draw.io để giải thích ý đồ hoặc thiết kế, và dùng Graphviz kèm style cho các yếu tố động
    • Muốn thấy việc mở rộng ngôn ngữ dot để hỗ trợ threat modeling và styling khi render
  • D2 là một công cụ khá tuyệt

    • NetBox của Digital Ocean có thể tạo sơ đồ từ cơ sở dữ liệu tài sản mạng
    • NetBox hoạt động như nguồn chân lý cho hạ tầng mạng, xác định và kiểm chứng trạng thái mong muốn của các thành phần và tài nguyên mạng
    • Mỗi tệp đại diện cho một loại thiết bị vật lý riêng lẻ và có thể được nạp vào NetBox, loại bỏ nhu cầu phải tự tạo định nghĩa loại thiết bị mới theo cách thủ công
    • Hình ảnh thiết bị ở định dạng PNG được sắp xếp theo từng nhà sản xuất và có thể được nạp vào NetBox, loại bỏ nhu cầu phải tự tạo hình ảnh thiết bị
  • Cá nhân tôi dùng Mermaid cho sequence diagram và flowchart

    • DaC có vẻ là lựa chọn tốt hơn cho hạ tầng
  • Việc triển khai một DSL bằng ngôn ngữ lập trình có vẻ phức tạp khi tạo ra các cấu trúc dữ liệu tĩnh

    • DSL hữu ích khi được dùng trong mã khác, nhưng trong trường hợp này thì có thêm overhead so với các lựa chọn thay thế
  • Ngôn ngữ lập trình PostScript dựa trên stack và rất xuất sắc cho hình vẽ và sơ đồ

    • Ghostscript là một trình thông dịch PostScript miễn phí
  • Ghét phải dùng Visio hay LucidChart, và thích vẽ sơ đồ bằng Python hơn

    • Dùng Python cho phép xử lý hai việc cùng lúc
  • Khi nhìn những thư viện này, tôi nghĩ đến một API hiệu quả để LLM có thể thành thạo việc tạo sơ đồ

  • Thật vui khi có bộ node "Generic"

    • Tôi thấy không thoải mái với các sơ đồ kiến trúc phụ thuộc quá nhiều vào tên hoặc icon của một nền tảng cloud cụ thể
    • Các đường kết nối giữa các node không hiển thị thông tin hữu ích
 
healingme 2024-11-12

cũng có plantuml.