18P by neo 16일전 | favorite | 댓글 3개
  • Diagrams는 Python 코드로 클라우드 시스템 아키텍처를 그릴 수 있게 해주는 도구
    • 새로운 시스템 아키텍처를 프로토타이핑할 때 디자인 도구 없이 사용할 수 있도록 만들어졌음
    • 기존 시스템 아키텍처를 설명하거나 시각화하는 데도 사용 가능
    • Diagram as Code는 아키텍처 다이어그램의 변화를 버전 관리 시스템에서 추적할 수 있게 해줌
  • 지원하는 주요 제공자
    • AWS, Azure, GCP, Kubernetes, Alibaba Cloud, Oracle Cloud 등 주요 클라우드 제공자를 지원
    • 온프레미스 노드, SaaS, 주요 프로그래밍 프레임워크 및 언어도 지원
  • 주의사항
    • 실제 클라우드 리소스를 제어하거나 클라우드 포메이션 또는 테라폼 코드를 생성하지 않음
    • 클라우드 시스템 아키텍처 다이어그램을 그리는 용도로만 사용됨

Diagrams - 파이썬 코드로 클라우드 아키텍쳐 그리기
당근마켓에 계신 권민재님이 만드신건데 GitHub Star가 이제 38700개까지 올라갔네요!

Hacker News 의견
  • 이 프로젝트는 Graphviz의 래퍼로, 스타일이 적용된 .dot 파일을 생성하여 원시 gv 파일보다 더 나은 시각적 효과를 제공함

    • Python을 사용하여 명세하는 것은 이론적으로는 IDE의 하이라이팅, 자동완성 등의 이점을 제공하지만, 실제로는 Python이나 Golang을 배우고 싶지 않은 사람들에게는 적합하지 않음
    • 작은 아키텍처 다이어그램에는 레이아웃 엔진이 괜찮지만, 규모가 커지면 보기 좋지 않음
    • draw.io를 사용하여 의도나 디자인을 설명하고, 동적 요소에는 Graphviz를 스타일과 함께 사용함
    • dot 언어의 확장을 통해 위협 모델링과 렌더링 스타일링을 가능하게 하는 것을 보고 싶음
  • D2는 꽤 멋진 도구임

    • Digital Ocean의 NetBox는 네트워크 자산 데이터베이스에서 다이어그램을 생성할 수 있음
    • NetBox는 네트워크 인프라의 진실의 원천으로 작동하며, 네트워크 구성 요소와 리소스의 의도된 상태를 정의하고 검증함
    • 각 파일은 개별 물리적 장치 유형을 나타내며, NetBox에 로드하여 수동으로 새 장치 유형 정의를 만들 필요를 없앰
    • 장치 이미지는 PNG 형식으로 제조업체별로 정리되어 있으며, NetBox에 로드하여 장치 이미지를 만들 필요를 없앰
  • 개인적으로 시퀀스 다이어그램과 흐름도를 위해 Mermaid를 사용함

    • DaC는 인프라에 더 나은 선택지로 보임
  • DSL을 프로그래밍 언어로 구현하는 것은 정적 데이터 구조를 생성할 때 복잡해 보임

    • DSL은 다른 코드에서 사용될 때 유용하지만, 이 경우에는 대안에 비해 오버헤드가 있음
  • PostScript 프로그래밍 언어는 스택 기반이며, 그림과 다이어그램에 뛰어남

    • Ghostscript는 무료 PostScript 인터프리터임
  • Visio나 LucidChart를 사용하는 것을 싫어하며, Python을 사용하여 다이어그램을 그리는 것을 선호함

    • Python을 사용함으로써 두 가지 작업을 동시에 처리할 수 있음
  • 이러한 라이브러리를 보면서 LLM이 다이어그램을 마스터할 수 있는 효율적인 API를 생각하게 됨

  • "Generic" 노드 세트가 있어 기쁨

    • 특정 클라우드 플랫폼의 이름이나 아이콘에 너무 의존하는 아키텍처 다이어그램이 불편함
    • 노드 간의 연결선에 유용한 정보가 표시되지 않음

plantuml 도 있습니다.