Transcription
Всем привет. Вы когда-нибудь тратили часы на создание архитектурных диаграмм, а потом кто-то приходил и говорил, что произошли новые изменения в инфраструктуре, и нужно ли обновить эти диаграммы, или, что еще хуже, вы наследуете проект без документации, и вам нужно выяснить, что на самом деле развернуто. Так вот, это все проблемы, которые мы сегодня будем решать. Сегодня я покажу вам, как автоматически генерировать профессиональные диаграммы архитектуры Azure из вашего кода Terraform, ARM или Bicep за считанные секунды. Я буду придерживаться Azure, но то же самое может быть реализовано для AWS и GCP. И будем честны, создание архитектурных диаграмм — это мучительно. Во-первых, это занимает много времени: вы проводите два-три часа в draw.io или Visual Studio, перетаскивая блоки, находя нужные значки, соединяя стрелки, в то время как вы должны строить фактическую инфраструктуру. И во-вторых, вы всегда отстаете от жизни. В тот момент, когда вы закончите, ваша диаграмма уже устареет. Кто-то добавил учетную запись хранения, кто-то изменил VNET, теперь ваша диаграмма, на которую вы потратили много часов, бесполезна. И еще одна проблема — несоответствие стандартов. Каждый член команды создает диаграмму по-разному: разные цвета, разные макеты, разный уровень детализации, и удачи вам в поддержании единообразия. И последнее — хаос ручной синхронизации. Теперь у вас есть инфраструктура как код в Terraform, ARM или Bicep. У вас есть фактические ресурсы, развернутые в Azure, и у вас есть диаграммы в PowerPoint, вашем документе Word или файле PDF, или у вас есть файлы Visual Studio. И проблема в том, что эти три источника истины никогда не совпадают. Что, если я скажу вам, что вы можете автоматически генерировать диаграммы из вашего кода, обновлять их за секунды при изменении вашей инфраструктуры, и они используют реальные значки Azure и правильные соглашения. Именно это мы и будем создавать сегодня. Однако вы, вероятно, видели множество библиотек Python или различных инструментов, которые могут генерировать архитектурные диаграммы. Но проблема в том, что они обычно находятся в формате изображений, таких как PNG или JPG. И честно говоря, что мы будем с этим делать? Эти файлы не редактируются. Нам нужно что-то, что можно очень легко редактировать. Например, что-то, что работает прямо в вашей VS Code, без необходимости заходить на какой-либо внешний портал или использовать внешний инструмент. Вы должны иметь возможность настроить все в VS Code. Нажать одну кнопку, и диаграмма появится. Теперь мы собираемся создавать диаграммы в редактируемом формате, чтобы расширение draw.io могло открыть их сразу. Вы можете перетаскивать элементы, настраивать значки, вносить быстрые изменения именно так, как вы хотите. Это сгенерирует почти 100% работы для вас. Если вы не удовлетворены и хотите внести небольшие изменения, вы можете просто попросить GitHub Copilot или просто щелкнуть по файлу. Он откроется в расширении draw.io, и вы сможете перетаскивать элементы и вносить небольшие изменения. Теперь давайте поговорим о различных сценариях использования для DevOps-инженера. Представьте, что вы вводите в курс дела нового члена команды. Вместо того, чтобы объяснять архитектуру в течение двух часов, вы можете просто выполнить одну команду, и появится архитектурная диаграмма, объясняющая всю инфраструктуру. Для облачных архитекторов: вы проектируете решение для клиента. Вы пишете код Terraform или шаблон ARM. Вы запускаете генератор. Теперь у вас перед глазами профессиональная диаграмма. Если клиент спрашивает: "Можете ли вы предоставить диаграмму сетевого потока?", а у вас даже нет кода, тогда вы можете просто предоставить инструкции, и это будет сделано. Дополнительная работа не требуется. А для целей соответствия и аудита безопасности, например, если у вас есть аудит безопасности на следующей неделе, вы можете немедленно сгенерировать архитектурные диаграммы за считанные минуты, или, я бы сказал, за считанные секунды, вы можете прогнать их через свой код и предоставить запрос. Так что все, что вы хотите создать, будет готово за считанные секунды. Теперь давайте обсудим технологии, которые мы будем использовать в этой лаборатории сегодня. Библиотека Python diagrams, которую мы будем использовать. Это библиотека с открытым исходным кодом, с помощью которой вы можете генерировать различные архитектурные диаграммы. Она имеет встроенные значки Azure, AWS и GCP. Затем мы будем использовать Graphviz — это движок рендеринга, который преобразует диаграммы в формат PNG, изображения, формат DOT или SVG. Затем идет Graphviz to draw.io. Это конвертер, который преобразует или превращает диаграммы в редактируемые файлы draw.io. Таким образом, вы можете автоматически генерировать почти 100% работы, а тонкую настройку или последние штрихи вы можете сделать с помощью GitHub Copilot, или вы можете сделать это вручную, щелкнув по файлу, который совместим с draw.io, и когда вы используете расширение, оно откроет файл, вы сможете внести изменения, редактировать его так, как вы всегда это делаете, и это облегчит вам работу. К концу видео вы узнаете, как установить и настроить все инструменты. Сгенерируете свою первую архитектурную диаграмму Azure из кода, передадите файлы Terraform или шаблоны Bicep для визуализации развертывания и экспортируете в draw.io для ручной доработки. Весь код, который я покажу в этой демонстрации, будет на GitHub. Так что вы можете найти его в описании этого видео. И последнее: вот что мы делаем вручную. Вы также можете интегрировать это в свой конвейер CI/CD для автоматического развертывания. Подумайте о сценарии. Вы внесли некоторые изменения. Вы развернули код Terraform, а затем есть часть или шаг, куда вы можете добавить это, и автоматически ваш Confluence или ваша документация или документ Word, где бы вы ни хотели обновить, будет обновлен для вас. Он создаст все диаграммы и сможет обновлять их везде, где вы хотите. Итак, хватит разговоров. Давайте построим это вместе. Я сейчас в VS Code. И когда вы зайдете на GitHub, вы увидите эту структуру папок. Основная структура — architectural diagrams. Диаграмм пока нет. Есть только два файла. Один — agents.mmd. Позвольте мне открыть его в режиме предварительного просмотра. Это файл инструкций для вашего агента. Теперь вы можете использовать GitHub Copilot отсюда, если вы зарегистрировались для него и ваша организация разрешает это, иначе вы можете использовать агентов напрямую из Azure AI Foundry или вашего Copilot Studio, вы можете интегрировать их сюда, а затем запустить то же самое. Итак, что мы хотим, так это чтобы вместо вас, создающего файл Python или определяющего диаграммы, LLM делал это, потому что ИИ — это помощник для нас. Они сделают тяжелую работу, а вы сможете генерировать все эти диаграммы за считанные секунды. Итак, вот инструкции: это различные пакеты, которые должны быть установлены, как они должны быть установлены, местоположение, как будут выглядеть ваши диаграммы, где они будут сохранены, как их конвертировать, и различные, например, какие цвета использовать. Это основные детали. Однако вы всегда можете изменить их вручную или просто попросить Copilot изменить инструкции, и он сделает это за вас. Итак, пока я собираюсь сделать следующее. О, прежде чем это произойдет, есть файл requirements, что нужно установить. Все это будет учтено, и есть еще один файл инструкций, который я создал. Я хочу показать вам быстрые демонстрации. Я предоставил различные инструкции о том, как должна выглядеть моя архитектура. Это случай, когда вы находитесь на этапе предпродажи и вам нужно определить архитектурную диаграмму или документ с высокоуровневым дизайном для клиента. Вы просто предоставляете, что мы собираемся создать, и он создаст диаграмму для вас. Основные детали, которые будут связаны, и я предоставил больше информации, например, правила макета, но вам не нужно, и он поймет. А затем — демонстрация Bicep или демонстрация Terraform. Это два разных приложения. Одно развернуто через Terraform, другое — через Bicep. Итак, давайте начнем с наших ручных инструкций. Я собираюсь открыть GitHub Copilot и попросить его перейти в папку architectural diagrams и прочитать инструкции для вас в файле agents.mmd. И как только это будет сделано, перейдите в файл instructions.md и создайте для меня архитектурные диаграммы. Вам нужно написать только это. Но перед этим Copilot может настроить это для вас, но давайте сделаем это вручную сами. Итак, давайте перейдем в папку architectural diagrams. Мы используем виртуальные окружения Python, потому что при работе с Python всегда рекомендуется создавать виртуальное окружение, чтобы все ваши пакеты и все остальное оставалось там. Теперь у нас есть виртуальное окружение. Давайте активируем его. Оно активировано, а затем мы устанавливаем requirements.txt, где будут установлены все пакеты. Он устанавливает все пакеты. Однако есть одна зависимость — инструменты сборки C++, которые вы можете сделать, установив Visual Studio. Есть такая опция, и как только это будет сделано, все будет хорошо. Теперь он установлен, и давайте попросим его запустить. Он читает файлы, как вы видите, agents.mmd, а затем он прочитает инструкции. Теперь он понимает инструкции и собирается их создать. Давайте посмотрим. Он использует виртуальное окружение Azure diagrams. Он использует это, это хорошо. Он снова активирует его, но это нормально. Просто проверяет версию. Хорошо. Отлично. Теперь он создаст для вас скрипт Python. Как вы видите, скрипт Python создан. И вот скрипт. И давайте запустим его. Надеюсь, он не даст сбой. Хорошо. Хорошо, он допустил ошибку, но может исправить ее сам. Он проверяет, какие различные библиотеки, потому что при использовании различных диаграмм он должен предоставлять конкретные имена. Таблицы маршрутизации — это не таблица маршрутизации, это таблицы маршрутизации. Он исправил это. Вот в чем польза LLM. Он позаботится об основных вещах для вас. Отлично. Он создал в трех форматах: PNG, DOT и draw.io. PNG — он по умолчанию создает в PNG. Теперь, поскольку мы использовали graphviz to draw.io, он сначала преобразует, сначала создает в формате DOT, а оттуда создает draw.io. Но прежде чем это сделать, давайте откроем диаграмму. Она выглядит хорошо. Позвольте мне закрыть это. Закрыть это и увеличить для вас. Посмотрите, как красиво он разработал все линии, все остальное, и все детали предоставлены, детали подсети. И теперь вы можете попросить его внести ручные изменения или просто щелкнуть здесь. Простое draw.io. Щелкните здесь, и вот диаграмма. Это похоже на то, как вы открываете ее в браузере. И если вам нужно внести изменения, например, вы не хотите, чтобы она была здесь, просто поместите ее сюда. И дело не только в том, что перетаскивание работает. Вы можете сделать это более изящно. Например, вы нажимаете здесь. Я хочу, чтобы это было снаружи, и отлично. Вы можете даже добавить больше фигур. Вы хотите добавить это, вы добавляете это сюда. Так, как вы делаете это правильно, вы можете внести изменения сейчас. И дело не в том, что вам нужно вносить изменения. Вы можете попросить Copilot создать еще один скрипт Python, внести эти изменения, и они обновят саму диаграмму. Но если это незначительное изменение, вы не хотите пересоздавать все, и это можно сделать. Это делается через инструкции. Давайте быстро проверим другой вариант. Есть код Terraform. Он может читать код Terraform. Есть один файл. Однако Bicep немного большой. Так что давайте проверим Bicep. Он просто проверяет, создан ли он или нет. Но давайте перейдем в папку bicep demo и подробно разберем мой код и создадим для меня диаграмму. Просто это. Теперь LLM прочитает все файлы, поймет их и создаст. Теперь он читает все файлы Bicep. Он проверяет, потому что я взял из репозитория шаблонов быстрого запуска Azure Samples, это демонстрация SQL с архитектурой 3TR. Теперь он читает основной файл .bicep, который, как вы видите, является большим файлом. Он читает все это, и я думаю, что почти готово. Он сгенерирует скрипт Python, который после запуска создаст для вас диаграмму. Как вы видите, скрипт Python создан, где он определяет различные цвета, цвет фона, как он связан, где сначала он определяет различные используемые элементы, а затем различные ребра, как они будут связаны, и все эти детали, а затем он преобразует здесь. Итак, давайте запустим его. Надеюсь, он запустится без ошибок. И отлично. Он только что запустился. И давайте посмотрим, хорош ли он или нет. Выглядит хорошо на самом деле. И да, у него есть трехзвенная архитектура. И это сначала фронтенд, затем среднее звено и затем бэкенд. И если вы хотите изменить это, вы можете просто перейти сюда и внести изменения. Вы не хотите этого здесь. Здесь добавьте что-нибудь, добавьте текст, что угодно, что вы можете сделать, или отредактируйте текст здесь. Вы можете внести все изменения, которые хотите, так же, как вы делаете это в draw.io. Теперь создание диаграмм больше не является кошмаром, и вы ничего не платите. Это совершенно бесплатно. Это с открытым исходным кодом. Что вам нужно сделать, это просто открыть VS Code. Если у вас есть GitHub Copilot, все сделано для вас. Отлично. И обычно вы можете зарегистрироваться бесплатно, или вы можете использовать агентов напрямую из службы агентов Azure AI, вы можете интегрировать ее или использовать Copilot Studio, который большинство организаций сейчас интегрируют. Так что вам легко создавать диаграммы. Точно так же вы можете делать и документацию, но это видео для диаграмм. Надеюсь, вы узнали сегодня что-то новое, и это будет вам полезно. Это все, что я хотел показать в этом видео.