Введение
Среди многочисленных инструментов для создания схем архитектур выделяются IcePanel и draw.io, которыми визуально отображается состояние системы, так что разработчикам проще понять, чем занимается система и как «общаются» ее компоненты.
Однако у интерфейсов drag-and-drop имеются ограничения, поэтому схемы архитектур на основе кода — более эффективная альтернатива.
Что такое «схемы архитектур на основе кода»?
Схемы архитектур на основе кода — это создаваемые при написании кода схемы. Архитектура в коде определяется используемой библиотекой и преобразуется ею в визуальное представление.
Например, этим JavaScript-инструментом схемы архитектур создаются программно, и получается такой код:
flowchart TD
A[Christmas] -->|Get money| B(Go shopping)
B --> C{Let me think}
C -->|One| D[Laptop]
C -->|Two| E[iPhone]
C -->|Three| F[fa:fa-car Car]
Этот код затем компилируется в схему:

Зачем кодифицировать схемы архитектур?
- Простой доступ и изменения. Статические схемы в таких форматах, как PNG или JPG, сложно изменить без исходных файлов из инструментов вроде Draw.io или Lucidchart. Кодифицируя схемы, команды сохраняют их в системах контроля версий, например GitHub, делая эти схемы доступными и редактируемыми для всех.
- История и эволюция версий. Сохранение схем в виде кода позволяет отслеживать историю версий, видеть изменения с течением времени и при необходимости легко возвращаться к предыдущим версиям.
- Визуальная непротиворечивость. В схемах на основе кода компоненты размещаются автоматически специальными библиотеками или инструментами, так что ручные манипуляции исключаются и обеспечивается профессиональная, четкая компоновка.
- Поддержка генеративного ИИ. При помощи кодифицированных схем инструментами ИИ создаются службы, предоставляются рекомендации или оптимизируется дизайн — гораздо эффективнее, чем статичные изображения.
- Простые и быстрые обновления. Обновления выполняются так же легко, как редактируется код, существенно экономится время по сравнению с ручной настройкой компонентов, особенно при крупномасштабных изменениях.
Создание схемы архитектур с Python Diagrams
Python Diagrams — мощная библиотека для программного создания схем архитектур. Особенно кстати она приходится для бессерверных архитектур со сложными компонентами и их взаимодействиями.
Вот как с Python Diagrams создается простая схема бессерверной архитектуры.
1. Установка библиотеки Diagrams
В уже установленный Python командой pip устанавливаем библиотеку Diagrams:
pip install diagrams
2. Написание схемы бессерверной архитектуры
Вот пример базовой схемы бессерверной архитектуры AWS с API-шлюзом, соединенным с лямбда-функцией и таблицей DynamoDB:
from diagrams import Diagram
from diagrams.aws.compute import Lambda
from diagrams.aws.database import Dynamodb
from diagrams.aws.network import APIGateway
with Diagram("Serverless Architecture", show=True):
APIGateway("API Gateway") >> Lambda("Lambda Function") >> Dynamodb("DynamoDB Table")
В результате компиляции кода появляется такая схема архитектуры:

Заключение
Кодифицирование схем архитектур — более эффективный, совместный и масштабируемый подход к проектированию систем. Схемы в виде кода отличаются от статических инструментов легкостью контроля версий, обновления и интеграции с современными рабочими процессами, в том числе с инструментами ИИ.
Благодаря этому подходу создаются точные динамичные схемы, которые развиваются вместе с системами, для работы в команде такие схемы бесценны. Воспользуйтесь этими преимуществами, начав кодифицировать схемы архитектур уже сегодня.
Читайте также:
- Развертывание Gradio на AWS: краткое руководство для начинающих
- Развертывание безопасных Java-приложений на AWS EKS с GitLab CI/CD, Maven, Trivy и SonarQube
- Настройка сервера AWS Aurora PostgreSQL и мониторинг его производительности
Читайте нас в Telegram, VK и Дзен
Перевод статьи Josh Thorne: Codify Your AWS Architecture Diagrams Today




