Расшифровка сети Xingmai — полноканальное планирование трафика GOR и контроль перегрузок
Расшифровка сети Xingmai — полноканальное планирование трафика GOR и контроль перегрузок

1. Предисловие

Сеть центров обработки данных DCN (Data Center Network) является важной частью современной инфраструктуры информационных технологий. Он обеспечивает основу для подключения и коммуникации, поддерживая различные приложения и услуги внутри и за пределами центра обработки данных. Будучи сложной сетевой системой, DCN обеспечивает большой объем трафика данных и коммуникационных потребностей, а также обеспечивает базовую базу для таких ключевых технологий, как искусственный интеллект, большие данные и облачные вычисления.

В традиционной DCN ЦП используется в качестве ядра для обработки сложных вычислительных задач и небольших объемов данных. Однако с быстрым развитием искусственного интеллекта важность графических процессоров становится все более заметной. Будучи высокопараллельным аппаратным ускорителем, графический процессор идеально подходит для обработки больших объемов данных, необходимых для искусственного интеллекта. Быстрое развитие искусственного интеллекта не только увеличивает потребность в вычислительной мощности графических процессоров, но также ставит новые проблемы перед передачей данных и стабильностью сети. Традиционная система DCN больше не может удовлетворить потребности в обучении больших моделей искусственного интеллекта. В этом контексте традиционная DCN с процессорным ядром развивается и обновляется до новой высокопроизводительной сети Xingmai AI с графическим ядром. Высокопроизводительная сеть Tencent Xingmai AI специально разработана для крупных моделей искусственного интеллекта и предоставляет высокопроизводительные сетевые услуги с большой пропускной способностью, высоким уровнем использования и нулевой потерей пакетов, что обеспечивает эффективность обучения крупных моделей искусственного интеллекта. Высокопроизводительная сетевая архитектура Xingmai AI показана на рисунке 1 и включает в себя: высокоскоростные коммутаторы собственной разработки, совместный контроль перегрузки конечной сети + балансировку нагрузки TiTa + GOR (глобальная оптимизированная маршрутизация) и высокопроизводительную библиотеку коллективной связи TCCL. (Библиотека коллективных коммуникаций Tencent) И комплексная операционная система GOM (Глобальный оптимизированный мониторинг).

Рисунок 1. Высокопроизводительная сеть Xingmai AI

В традиционной DCN мы широко использовали сетевые контроллеры для реализации изменений в оттенках серого и мониторинга маршрутов для обеспечения стабильности сети. В настоящее время контроллер называется DCN Controller 1.0. Однако в высокопроизводительной сети ИИ Xingmai, поскольку обучение большой модели ИИ требует обработки большого объема данных, а различные параллельные режимы и структуры ускорения также предъявляют огромные требования к связи, чтобы обеспечить эффективность обучения большой модели ИИ, ультра -Высокая скорость. Неперегруженная сеть становится важнейшим условием. В связи с этим мы доработали и обновили сетевой контроллер до контроллера DCN Controller 2.0-GOR. GOR — одна из ключевых технологий высокопроизводительной сети Xingmai AI. Благодаря точному управлению контроллером GOR сетевой трафик можно разумно планировать и динамически регулировать для достижения сверхнизкой задержки и сверхвысокой пропускной способности, обеспечивая эффективность. Обучение большой модели ИИ.

2. Контроллер DCN 1.0 — страж стабильности сети

Сетевые изменения в оттенках серого:DCNсерединасеть Большое количество устройств、Комплексная сеть、потоксложный,И одно устройство может нести большую нагрузку. Ежедневные операции часто включают ремонт и замену оборудования.,Для этого требуется обработка процесса перехода устройства в онлайн-режим в изолированное состояние, а затем обратно в онлайн-режим. Доступ к устройству, пока оно находится в изоляции, отсутствует.,Перенаправить внешний трафик при переходе из состояния изоляции в состояние повторного подключения. Если в это время возникла проблема с устройством (аппаратное обеспечение, конфигурация и т. д.),Круг затронутых пользователей очень широк.,Риски стабильности высоки. Поэтому в реальных операциях мы,Используйте контроллер DCN, чтобы направить небольшой поток на изолирующее оборудование. Определите, нормально ли оборудование, наблюдая за тем, в норме ли оттенки серого. Быстрый откат, если возникают проблемы с потоком в оттенках серого.,Минимизируйте последствия сбоев,Обеспечить стабильность сети.

Мониторинг маршрута:маршрутизациямонитор Цель состоит в том, чтобыDCNВнутренние и внешние сетимаршрутизация Собирать、монитор,Обеспечить раннее предупреждение и контроль за маршрутизацией, которая не соответствует ожиданиям.,Оптимизируйте автоматическое управление маршрутизацией,Заранее выявляйте потенциальные неисправности. Услуги, предоставляемые DCN, сложны и разнообразны.,Стратегии маршрутизации внутренней и внешней сети различны.,Даже у некоторых предприятий есть особые потребности в маршрутизации.,Итак, как обеспечить корректность массовой маршрутизации в различных сценариях?,является важной задачей для сетевых операций.

При мониторинге маршрутов контроллер DCN устанавливает соседей BGP с сетевыми устройствами, собирает маршруты на устройствах и отслеживает их в соответствии с различными функциями и бизнес-требованиями: функциональный мониторинг ориентирован на общие сценарии, поддерживает запрос маршрутов и обратную трассировку в различных измерениях, а также контролирует конкретные маршруты (конкретная крупносегментная маршрутизация, сводная маршрутизация) и т. д.; мониторинг бизнес-типа ориентирован на конкретные предприятия. Генератором маршрутов является бизнес-шлюз. Различные стратегии бизнес-маршрутизации различны, включая активный и резервный мониторинг маршрутизации, Anycast. мониторинг маршрутизации, мониторинг колебаний маршрутов, мониторинг маршрутизации общедоступной сети, мониторинг источника маршрутизации и т. д. Обеспечьте корректность и согласованность сети посредством многомерного мониторинга маршрутизации.

3. Контроллер Xingmai GOR (контроллер DCN 2.0), навигатор по организации сетевого трафика.

Потоки данных в AIсеть подобны гоночным автомобилям на раллийной трассе.,Гоняйте на высокой скорости по трассе. Однако из-за ограниченной ширины колеи,Если на трассе одновременно находится несколько машин,Тогда автомобилю необходимо снизить скорость, чтобы избежать столкновения, поток данных в AIсеть аналогичен;,Если в сети имеется несколько потоков данных,Тогда сумма разных потоков может легко превысить максимальную пропускную способность канала.,В результате возникают заторы и поток замедляется.,В конечном итоге это влияет на эффективность обучения большой модели ИИ. Во избежание вышеуказанных конфликтов,митингсерединануждатьсяпилотСпланируйте гоночный маршрут,Избегайте одновременного проезда нескольких автомобилей по трассе. Кроме того, в случае возникновения чрезвычайной ситуации,пилот Быстро корректируйте маршрут, чтобы избежать конфликтов между машинами,Как показано на рисунке 2. в Аисеть,Нам также нужен кто-то вроде пилота, который будет отвечать за планирование и составление графиков.,Это контроллер сети ГОР Star Pulse. С одной стороны, контроллер ГОР заранее планирует путь потока данных в сети.,С другой стороны, избегайте перегрузок, когда возникает перегрузка (например, сбой сетевого соединения);,Динамическое планирование контроллера GOR быстро устраняет перегрузки,Это обеспечивает эффективность обучения большой модели ИИ.

Рисунок 2. За планирование и диспетчеризацию отвечает штурман.

● Характеристики сети большой модели искусственного интеллекта.

Работа в сети сложна.AIбольшой Модельсетьв целом Комплексная сеть、потоксложный。картина3Они есть4Kкахе16KСетевая абстракция карточного кластеракартина。Таким образомсложныйизсеть По топологии,Многозадачный параллелизм и соответствующее планирование сетевых потоков и планирование перегрузок сетевых потоков сталкиваются с серьезными проблемами.

Рисунок 3. Абстрактная схема сети кластера карт 4K и 16K

Неравномерная локальная нагрузка.Балансировка нагрузкисеть Классические проблемы в этой области。Как сбалансироватьсетьпоток、Улучшение использования, избегайте заторов,Таким образом, обеспечение качества бизнеса — цель, которую сеть продолжает преследовать. Хотя пропускная способность нашей сети становится все больше и больше (емкость чипа коммутации оборудования от 6,4Т, 12,8Т, 25,6Т до 51,2Т),Но с бурным развитием бизнеса,Пропускная способность на стороне сервера также быстро увеличивается (с 10G, 25G, 100G до 200G). поэтому,Перегрузки, вызванные «сложным потоком» или локальной неравномерностью нагрузки, по-прежнему распространены в DCN.,Особенно остро эта проблема стоит в AIсети. Это связано с тем, что бизнес ИИ характеризуется небольшим количеством бизнес-потоков.,Пропускная способность одного потока велика. Этот вид потоковой модели «не дружелюбен» к механизму балансировки нагрузки, основанному на потоковом хэше.,Легко создать локальные горячие точки,Это создает заторы.

В ходе реальных сетевых операций мы заметили, что многие сетевые кластеры AI не могут обеспечить идеальную балансировку нагрузки. На рис. 4 представлена ​​тепловая карта распределения сетевого трафика кластера AI. Чем темнее цвет, тем больше трафика в канале. очевидная неравномерная нагрузка.

Рисунок 4. Распределение трафика сетевых каналов

Производительность сети ИИ определяет вычислительную мощность кластера графических процессоров. Перегрузка сети, вызванная неравномерной нагрузкой, приведет к снижению эффективной пропускной способности и увеличению времени связи на стороне устройства, что повлияет на эффективность обучения больших моделей ИИ. Для измерения перегрузки сети мы можем использовать различные индикаторы, такие как количество перегрузок, задержка, занятость полосы пропускания, очередь кэша и т. д. Как видно из рисунка 5, внезапное увеличение количества ECN сопровождается значительным увеличением времени связи между конечными вычислениями, что серьезно снижает эффективность обучения больших моделей ИИ и влияет на затраты на обучение.

Рисунок 5. Количество ECN и продолжительность связи на конечной стороне

Трафик предсказуем.AIбольшой Модельсетьпоток Очень предсказуемый。С точки зрения макроса,Как только начнется учебная миссия AI Big Model,Мы можем заранее определить, какие узлы должны взаимодействовать друг с другом.,и когда и как общаться с микроперспективы;,Поток данных связи между узлами является очень периодическим.。картина6Они естьRDMA QP(Queue На диаграмме тенденций измерения парного и пятикратного потока данных вы можете видеть, что независимо от статистики измерения пятикратного потока данных, агрегированной из одного QP или нескольких QP, трафик демонстрирует очевидную периодичность.

Рисунок 6. QP, диаграмма тренда потока

● Конструкция регулятора ГФ.

Контроллер GOR состоит из двух частей: предварительного планирования перед запуском учебного задания и динамического планирования во время учебного задания. этап предварительного планирования,Контроллер объединяет глобальную топологию с информацией о задаче.,Спланируйте лучший путь для каждого этапа динамического планирования;,Планирование и маршрутизация потоков данных в горячих точках,Обход пробок,Это обеспечивает эффективность обучения большой модели ИИ. Цель предварительного планирования — минимизировать и избежать перегрузок, цель динамического планирования — когда возникает перегрузка (например, сбой канала);,Устраните перегрузки за счет динамической маршрутизации соответствующих потоков. Данные онлайн показывают,Планирование через контроллер GOR,Время перегрузки сети сокращается более чем на 90%.

Контроллер ГФ состоит из трех частей: сбора данных, расчета и планирования/мониторинга. Общий процесс управления показан на рисунке 7. На этапе сбора GOR-контроллер находит перегруженные порты коммутатора и детали потока услуг путем анализа данных телеметрии второго уровня и выбирает потоки услуг, которые необходимо запланировать в соответствии с определенной стратегией.

Рисунок 7. Схема работы контроллера ГФ

Основным требованием расчета пути является поиск оптимального нового пути для каждого запланированного потока, выбранного на предыдущем этапе, на основе топологии сети в реальном времени. В то же время необходимо оценить пропускную способность нового пути, чтобы избежать новых перегрузок, вызванных планированием нового пути.

Метод планирования заключается в изменении пути потока. Существует два конкретных метода: выдача маршрутов планирования и конечная связь TCCL. В методе диспетчеризованной маршрутизации контроллер изменяет соответствующий путь потока, доставляя маршруты сетевым устройствам; в методе конечной связи TCCL контроллер работает с TCCL для изменения пути потока, в конечном итоге минуя порт коммутатора, где возникает перегрузка.

После выпуска расписания контроллер контролирует ход выполнения затронутых задач обучения. Когда задача обучения завершена, соответствующий маршрут планирования необходимо отозвать, чтобы избежать неожиданного влияния ранее выданного маршрута планирования на новую задачу после изменения задачи обучения ИИ.

● Эффекты планирования и планирования контроллера ГФ.

Цель предварительного планирования GOR — избежать заторов.,Обеспечьте скорость конечной связи,Это обеспечивает эффективность обучения ИИ. этап предварительного планирования,Контроллер выполняет для каждого потока данныхРасчет высокоскоростного маршрута,Время расчета одного пути составляетМикросекундный уровень,Время расчета для 10 000 путейменее 1 секунды。картина8Показана заранее запланированная задача по килокалориям.сетьсвязьпотокраспределенный,Чем темнее цвет, тем больше поток по ссылке.,Похожие цвета обозначают балансировку нагрузки на канал.,икартина4Вы можете увидеть в сравненииПредварительное планирование GOR оказывает существенное влияние на балансировку сетевой нагрузки. Предварительное планирование может обеспечить более чем 95 % бизнес-баланса и почти 100 % отсутствие перегрузок в условиях деловой близости.

Рисунок 8. Распределение сетевого трафика после предварительного планирования

Предварительное планирование улучшает балансировку сетевой нагрузки и обеспечивает скорость связи на конечной стороне. На рис. 9 показан кластер графического процессора для различных сообщений в рамках модели связи AllReduce. sizeРезультаты испытаний производительности скорости связи до и после предварительного планирования。можно увидетьСкорость одноранговой связи при предварительном планировании GOR была значительно улучшена, а производительность AllReduce увеличена почти на 20%.

Рисунок 9. Сравнение производительности AllReduce

Целью динамического планирования GOR является быстрое устранение перегрузок в случае их возникновения. Мы проанализировали количество и продолжительность ECN-алармов онлайн-кластера AIсеть за один месяц.,Как показано на рисунке 10. После включения расписания контроллера ГОР,Количество и продолжительность сигналов тревоги о перегрузках значительно сократились.,Время восстановления сигнала тревоги составляет менее 3 минут, а планирование GOR оказывает существенное влияние на устранение общей перегрузки сети.

Рисунок 10. Статистика тревог ECN кластера сети AI

Чтобы более интуитивно отобразить эффект планирования контроллера ГФ, мы выберем несколько типичных бизнес-сценариев для анализа и объяснения. На рисунке 11 показан эффект планирования контроллера GOR для устранения перегрузки после того, как на линии возникла общая перегрузка. Эта модель трафика обычно распространена в сценариях связи AllReduce. Как видно из рисунка, после того как контроллер ГОР выполнит планирование, номер ECN порта коммутатора возвращается к нулю, а это означает, что перегрузка устраняется немедленно.

Рисунок 11. Планирование GOR на обычно перегруженных каналах

На рисунке 12 показан эффект планирования GOR, когда канал онлайн-сети сильно перегружен. Эта модель трафика обычно появляется в сценариях наложения нескольких задач обучения и сценариях связи All2All. Как видно из рисунка, начальное значение ECN превышает 10 000, что указывает на сильную перегруженность канала. После первого планирования контроллер GOR успешно планирует максимальный поток в перегруженном канале назначения-1, что значительно снижает использование полосы пропускания перегруженного канала. В то же время количество ECN также в определенной степени снижается. вплоть до 2000 г. о. После того, как контроллер GOR завершает проверку восстановления аварийного сигнала, он продолжает планирование и планирует второй по величине поток в канале к целевому каналу 2, тем самым еще больше уменьшая значение ECN примерно до 1000. После двух раз планирования значение ECN перегруженного канала все еще было очень высоким. GOR продолжил планирование в третий раз и, наконец, успешно снизил значение ECN до уровня ниже 500, тем самым устранив перегрузку канала.

Рисунок 12. Планирование GOR на сильно перегруженных каналах

На рисунке 13 показан мониторинг скорости RDMA сетевой карты машины. Видно, что после планирования контроллера GOR исходящая скорость сетевой карты продолжает увеличиваться и, наконец, достигает ожидаемого значения.

Рисунок 13. Влияние планирования GOR на исходящую скорость сетевой карты.

Основой вычислительной мощности крупных моделей ИИ является графический процессор, а режимы связи и модели трафика гетерогенных графических процессоров разных производителей сильно различаются. Контроллер GOR может значительно устранить перегрузку сети и повысить скорость конечной связи в различных кластерах графических процессоров, тем самым обеспечивая эффективность обучения больших моделей ИИ. На рисунках 14 и 15 соответственно показаны результаты для разных сообщений в двух кластерах графических процессоров A и B. All2All результаты испытаний до и после планирования размеров,можно увидетьЭффект после планирования GOR замечательный: производительность All2All повышается на 30–50%.

Рисунок 14. Сравнение производительности All2All до и после включения планирования кластера графических процессоров поставщика А.

Рис. 15. Сравнение производительности All2All до и после включения планирования кластера графических процессоров поставщика B.

В реальных сценариях,Предварительное планирование контроллера ГФ используется в сочетании с динамическим планированием. На рис. 16 показан сценарий тестирования производительности All2All кластера графических процессоров.,Предварительное планирование повышает производительность All2All более чем на 45 %.,Существенно решает проблему неравномерности нагрузки. Когда связь с сетью не работает,Производительность падает примерно на 20%. После обнаружения перегрузки,Динамическое планирование контроллера GOR восстанавливает производительность до желаемого уровня.

Рисунок 16. Производительность All2All в различных сценариях

● Эксплуатационные эффекты бизнес-уровня регулятора ГФ.

В дополнение к функциям планирования и планирования, контроллер GOR также отслеживает пятикратную информацию, протекающую в сети, в режиме реального времени и объединяет ее с задачами обучения большой модели искусственного интеллекта на стороне бизнеса, чтобы обеспечить операционные возможности бизнес-уровня Сеть Синмай. Операции бизнес-уровня объединяют пятикратную информацию базового сетевого потока с задачей обучения большой модели ИИ верхнего уровня, чтобы быстро найти соответствующий сетевой поток при возникновении проблемы в задаче обучения. В то же время они объединяют информацию планирования и планирования. чтобы определить, связано ли это с сетью. Аналогичным образом, при обнаружении перегрузки сети можно быстро найти соответствующую информацию о задаче обучения и оценить ее влияние на бизнес.

На рисунке 17 показано влияние контроллера GOR на мониторинг пятикратной информации сетевых потоков в реальном времени. Пятикратная информация всех потоков по любому каналу в любое время в сети может быть полностью записана и на основе определенной пятерки восстановить полную информацию. путь соответствующего потока в сети.

Рисунок 17. Мониторинг пятикратной информации сетевого потока в режиме реального времени.

На рисунке 18 показаны соответствующие отношения между задачами обучения и конечными узлами. Контроллер GOR восстанавливает задачи обучения и всю информацию об узлах конечной стороны, связанную с задачами обучения, путем агрегирования пятикратной информации сетевого потока и объединения конечной и конечной информации. информация о рамках обучения.

Рисунок 18. Соответствие задач обучения конечным узлам

►►►

Подвести итог

Являясь инфраструктурой современных информационных технологий, DCN обеспечивает огромный трафик данных и коммуникационные потребности таких приложений, как искусственный интеллект, большие данные и облачные вычисления. Крупные модели искусственного интеллекта, особенно с появлением ChatGPT и Sora, вызвали новую волну спроса на вычислительную мощность сети. Традиционная система DCN с процессорным ядром была преобразована в новую высокопроизводительную сеть Xingmai AI с графическим ядром. В традиционной DCN мы применяем контроллер DCN 1.0 для реализации изменений в оттенках серого в сети и мониторинга маршрутизации для обеспечения стабильности сети; в высокопроизводительной сети Xingmai AI контроллер DCN 1.0 получил дальнейшее развитие и модернизирован до контроллера Xingmai GOR. Контроллер Xingmai GOR реализует разумное планирование и динамическую настройку сетевого трафика посредством точного контроля, а также предоставляет возможности работы на бизнес-уровне для комплексного повышения эффективности обучения крупных моделей искусственного интеллекта.

Добро пожаловать на публичный аккаунт «Echang Net Relations». Мы будем предоставлять вам последние новости отрасли и самую полезную информацию о сети Tencent.

Примечание 1. Авторские права на все тексты, изображения и другие произведения, помеченные как принадлежащие «Echang Network», принадлежат «Shenzhen Tencent Computer System Co., Ltd.» и не могут быть использованы без официального разрешения в случае каких-либо нарушений. проверено, он оставляет за собой право предъявлять претензии;

Примечание 2. Некоторые изображения в этой статье взяты из Интернета. По вопросам авторских прав обращайтесь по адресу sandyshuang@tencent.com или mianyang@tencent.com.

/Подписывайтесь на нас/

/ Гусчан по делам Интернета/

Поделитесь этим о сети Goosechang

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose