Конференция по инженерным решениям и DevOps-культуре
Вся эта грандиозная штука будет длиться 4 дня: 5–6 сентября, 17–18 сентября.
МОСКВА + ONLINE Отель МонАрх: Ленинградский пр‑т, 31А, стр. 1
DevOops — конференция от JUG Ru Group, посвященная практикам DevOps. Она объединяет специалистов по разработке и эксплуатации, чтобы в итоге все могли релизить чаще, а чинить быстрее и надежнее.
Есть и бесплатное посещение — Community Day 6 сентября. Это второй день онлайн-части конференции с бесплатным участием для всех желающих. Организаторы и Программный комитет конференции хотят, чтобы их усилия оценило как можно больше людей из комьюнити.
Этот день такой же насыщенный, как и другие дни конференции:
• 10 докладов о Kubernetes, DNS и о применении Ops-практик.
• Дискуссии со спикерами и участниками после докладов.
• Чат с коллегами со всего мира.
Регистрация на Community Day
Вся эта грандиозная штука будет длиться 4 дня: 5–6 сентября, 17–18 сентября.
МОСКВА + ONLINE Отель МонАрх: Ленинградский пр‑т, 31А, стр. 1
DevOops — конференция от JUG Ru Group, посвященная практикам DevOps. Она объединяет специалистов по разработке и эксплуатации, чтобы в итоге все могли релизить чаще, а чинить быстрее и надежнее.
Есть и бесплатное посещение — Community Day 6 сентября. Это второй день онлайн-части конференции с бесплатным участием для всех желающих. Организаторы и Программный комитет конференции хотят, чтобы их усилия оценило как можно больше людей из комьюнити.
Этот день такой же насыщенный, как и другие дни конференции:
• 10 докладов о Kubernetes, DNS и о применении Ops-практик.
• Дискуссии со спикерами и участниками после докладов.
• Чат с коллегами со всего мира.
Регистрация на Community Day
🔥5❤2👍1
Откуда получаете новые знания
Anonymous Poll
56%
Телеграм каналы
59%
YouTube
1%
Twitter
22%
Medium
59%
Книги
34%
Курсы
13%
Конфы
10%
Свой вариант
❤4👍1
😎😎 Близится крутая Митап-вечеринка 14 сентября в 17:00 — Дикая цифра сильный финтех — что это за зверь?
Приглашаются на митап middle и senior эксперты. Обменяетесь опытом, пообщаетесь, отдохнёте, поделитесь наболевшим и поучаствуете в разыгрыше подарков.
Где:
Powerhouse Moscow (Москва, Гончарная ул., 7/4)
Что будет:
Диджиталити — турнир по Mortal Kombat
Выступления профи — ежедневно меняющих финтех своими решениями
Квест по площадке с призами и мощным объявлением победителей
Чиловые активности вроде мегадженги, фотобудки и пинг-понга
Квиз на знание самых каверзных вопросов про IT и финтех
HR-предсказания для тех, кто мечтает найти свой мэтч с клёвым работодателем
Вкусная еда — вэлкам-бургеры и всё такое для тех, кто проголодается
Программа:
🔹 Как внедрять новое: инновации в жизни команды
🔹 Реализация SRE практик в Росбанке — с чего мы начинали и к чему идём
🔹 Как мы сделали классный продукт с Мастеркардом и Контуром, но были вынуждены его уничтожить
🔹 Как создать автоматизированный Quality gate ИБ для CI/CD и не только
#мероприятие
Приглашаются на митап middle и senior эксперты. Обменяетесь опытом, пообщаетесь, отдохнёте, поделитесь наболевшим и поучаствуете в разыгрыше подарков.
Где:
Powerhouse Moscow (Москва, Гончарная ул., 7/4)
Что будет:
Диджиталити — турнир по Mortal Kombat
Выступления профи — ежедневно меняющих финтех своими решениями
Квест по площадке с призами и мощным объявлением победителей
Чиловые активности вроде мегадженги, фотобудки и пинг-понга
Квиз на знание самых каверзных вопросов про IT и финтех
HR-предсказания для тех, кто мечтает найти свой мэтч с клёвым работодателем
Вкусная еда — вэлкам-бургеры и всё такое для тех, кто проголодается
Программа:
🔹 Как внедрять новое: инновации в жизни команды
🔹 Реализация SRE практик в Росбанке — с чего мы начинали и к чему идём
🔹 Как мы сделали классный продукт с Мастеркардом и Контуром, но были вынуждены его уничтожить
🔹 Как создать автоматизированный Quality gate ИБ для CI/CD и не только
#мероприятие
❤4👍2👏1
😎 Очередной #дайджест полезных статей по DevOps:
🔹 Культ Kubernetes — перенос блога автодеплоем с помощью GitHub Actions
🔹 Какими бывают технические собесы — автор расскажет, чего можно ожидать, как готовиться и как настроиться, отталкиваясь от своего опыта
🔹 Один за всех и все против тебя — как быть девопсом для нескольких команда разработки, не выгореть, а еще и опыт получить
🔹 Сложно не кодить, а соблюсти требования — пока юзеры не научатся объяснять свои хотелки разработчикам, AI не укрепит свои позиции 😉
🔹 Что есть SRE? — подкаст про взаимоотношения между SRE и DevOps, балансирование принципов SRE с организационной структурой и то, как, по его мнению, GenAI повлияет на его область
🔹 Культ Kubernetes — перенос блога автодеплоем с помощью GitHub Actions
🔹 Какими бывают технические собесы — автор расскажет, чего можно ожидать, как готовиться и как настроиться, отталкиваясь от своего опыта
🔹 Один за всех и все против тебя — как быть девопсом для нескольких команда разработки, не выгореть, а еще и опыт получить
🔹 Сложно не кодить, а соблюсти требования — пока юзеры не научатся объяснять свои хотелки разработчикам, AI не укрепит свои позиции 😉
🔹 Что есть SRE? — подкаст про взаимоотношения между SRE и DevOps, балансирование принципов SRE с организационной структурой и то, как, по его мнению, GenAI повлияет на его область
❤6👍1
💥💫 Управление секретами в Kubernetes
Занимательный материал по использованию секретов в Kubernetes. Разбираются возможные варианты, достоинства и недостатки передачи информации приложению – через file или через env.
Автор рассматривает Secrets Source of Truth при миграции между кластерами с использованием Mozilla SOPS и Bitnami Sealed Secrets.
Есть такая штука, как Secret Management и для нее описываются способы «доставки» этих секретов приложению:
👉 API или SDK
👉 Secret Agent / Sidecar Injection
👉 Secrets Operator
👉 Secrets Store CSI
Для каждого приводятся сильные и слабые стороны, а также их особенности. Ну и как же без их автообновления.
Читать статью
#туториал
Занимательный материал по использованию секретов в Kubernetes. Разбираются возможные варианты, достоинства и недостатки передачи информации приложению – через file или через env.
Автор рассматривает Secrets Source of Truth при миграции между кластерами с использованием Mozilla SOPS и Bitnami Sealed Secrets.
Есть такая штука, как Secret Management и для нее описываются способы «доставки» этих секретов приложению:
👉 API или SDK
👉 Secret Agent / Sidecar Injection
👉 Secrets Operator
👉 Secrets Store CSI
Для каждого приводятся сильные и слабые стороны, а также их особенности. Ну и как же без их автообновления.
Читать статью
#туториал
❤28🔥16🥰12👍8👏8
Набор видосов по базовым знаниям Linux админа.
Всего их 9, по таким темам:
1 часть: Установка Linux Ubuntu Server 20.04
2 часть: базовые навыки
3 часть: пользователи и права доступа
4 часть: bash скрипты, автоматизация задач
5 часть: регулярные выражения
6 часть: git
7 часть: nginx
8 часть: docker
9 часть: Основы понимания iptables
#обучение
Всего их 9, по таким темам:
1 часть: Установка Linux Ubuntu Server 20.04
2 часть: базовые навыки
3 часть: пользователи и права доступа
4 часть: bash скрипты, автоматизация задач
5 часть: регулярные выражения
6 часть: git
7 часть: nginx
8 часть: docker
9 часть: Основы понимания iptables
#обучение
❤🔥13👍3❤2👏1
🔥🕑 10 признаков того, что пора увольняться
«Быть или не быть?», «Уйти или остаться?»: делаем вдох-выдох и принимаем важное решение.
Читать статью
«Быть или не быть?», «Уйти или остаться?»: делаем вдох-выдох и принимаем важное решение.
Читать статью
❤9👍1👏1
Есть скрипт с бесконечным циклом, который выполняет какие-то действия.
Задача: нужно чтобы скрипт отработал 3 минуты и завершился (стопать руками не вариант).
Можно использовать утилиту timeout. Это утилита командной строки, которая запускает указанную команду и завершает ее, если она все еще выполняется через определенный промежуток времени. Команда является частью пакета основных утилит GNU.
timeout 3s ping proglib.io
Команда ping отработает 3 секунды и завершится.
Синтаксис:
timeout DURATION COMMAND
DURATION = Длительность. Это число с плавающей запятой и с необязательным суффиксом:
➖ s = секунды
➖ m = минуты
➖ h = часы
➖ d = дни
COMMAND = сама команда или скрипт, которому нужно ограничить работу по времени.
Следующий пример: нужно запустить какое-то приложение (например top) на удалённом сервере и через 3 минуты остановить.
timeout 3m ssh user@proglib.io -- /usr/bin/top
Прошло 3 минуты, приложение стопается, ssh сессия завершается.
Можно сделать на чистом bash:
ping proglib.io & read -t 3 || kill $!
Символ «$!». Эта конструкция содержит в себе идентификатор процесса (PID) последнего выполненного фонового конвейера. В примере выше последним выполненным заданием был ping. PID явно указывать не нужно, чтобы kill корректно отработал.
Задача: нужно чтобы скрипт отработал 3 минуты и завершился (стопать руками не вариант).
Можно использовать утилиту timeout. Это утилита командной строки, которая запускает указанную команду и завершает ее, если она все еще выполняется через определенный промежуток времени. Команда является частью пакета основных утилит GNU.
timeout 3s ping proglib.io
Команда ping отработает 3 секунды и завершится.
Синтаксис:
timeout DURATION COMMAND
DURATION = Длительность. Это число с плавающей запятой и с необязательным суффиксом:
➖ s = секунды
➖ m = минуты
➖ h = часы
➖ d = дни
COMMAND = сама команда или скрипт, которому нужно ограничить работу по времени.
Следующий пример: нужно запустить какое-то приложение (например top) на удалённом сервере и через 3 минуты остановить.
timeout 3m ssh user@proglib.io -- /usr/bin/top
Прошло 3 минуты, приложение стопается, ssh сессия завершается.
Можно сделать на чистом bash:
ping proglib.io & read -t 3 || kill $!
Символ «$!». Эта конструкция содержит в себе идентификатор процесса (PID) последнего выполненного фонового конвейера. В примере выше последним выполненным заданием был ping. PID явно указывать не нужно, чтобы kill корректно отработал.
👍17❤3👏2
⚡⚡ Grafana Loki: оптимизация производительности с Recording Rules, кэширования и параллельных запросов
Loki работает на кластере сервисов AWS Elastic Kubernetes, установленном с помощью Loki Helm chart, AWS S3 используется в качестве долговременного хранилища, а BoltDB Shipper используется для работы с индексами Loki.
В Loki 2.8 для индексов появился механизм TSDB, который, вероятно, скоро заменит BoltDB Shipper.
И в целом все работает, и вроде бы все нормально, но при получении данных за неделю или месяц в Grafana, очень часто появляется ошибка 502/504 или «too many outstanding requests».
Хотите подробнее рассмотреть, как можно оптимизировать Loki для повышения производительности — вот, пожалуйста
#туториал
Loki работает на кластере сервисов AWS Elastic Kubernetes, установленном с помощью Loki Helm chart, AWS S3 используется в качестве долговременного хранилища, а BoltDB Shipper используется для работы с индексами Loki.
В Loki 2.8 для индексов появился механизм TSDB, который, вероятно, скоро заменит BoltDB Shipper.
И в целом все работает, и вроде бы все нормально, но при получении данных за неделю или месяц в Grafana, очень часто появляется ошибка 502/504 или «too many outstanding requests».
Хотите подробнее рассмотреть, как можно оптимизировать Loki для повышения производительности — вот, пожалуйста
#туториал
🔥6❤2👍2
Ну просто огромный гайд с подробным планом развития DevOps-специалиста по требованиям 2023 года. Автор — админ с 10-летним стажем, поэтому информация более чем достоверная.
Содержание:
➖ Кто такой DevOps-инженер?
➖ Дорожная карта DevOps-инженера
➖ Культура DevOps
➖ DevOps vs SRI
➖ Различные типы «команд DevOps»
➖ Роли и обязанности инженера DevOps
➖ Интервью с инженерами DevOps
➖ FAQ для инженеров DevOps
➖ Читайте блоги DevOps
➖ Документируйте свои знания
#гайд
Содержание:
➖ Кто такой DevOps-инженер?
➖ Дорожная карта DevOps-инженера
➖ Культура DevOps
➖ DevOps vs SRI
➖ Различные типы «команд DevOps»
➖ Роли и обязанности инженера DevOps
➖ Интервью с инженерами DevOps
➖ FAQ для инженеров DevOps
➖ Читайте блоги DevOps
➖ Документируйте свои знания
#гайд
🔥12❤4👍2
🏃🏃 Как ворваться в DevOps
Зачем нужен DevOps
🧑🎓 Всё, что ни делается, — делается либо ради бизнеса, либо ради людей, либо ради того и другого. При этом есть вещи, которые не приносят ценности никому:
➖ ошибки в коде
➖ ошибки при ручном развертывании сервисов
➖ долгое выяснение проблем на продуктиве
➖ рутинная работа, которой можно избежать.
Инструменты и реализация DevOps-практик
🧑🏫 Хороший инженер должен понимать, что бизнесу важен time-to-market, эксплуатации важно уметь поддерживать этот инструмент, а безопасникам — чтобы безопасность была безопасной. Для этого нужно ходить по конференциям, посматривать на такие отчеты, как State of DevOps, Technology Radar.
Как ворваться в DevOps
Как правило, в DevOps приходят либо с разработки, либо с эксплуатации, хотя бывает и с инфобеза — в DevOps идут с какими-то базовыми знаниями.
Если вам нравится докапываться до сути вещей, нравятся инженерные задачи, а в детстве вы разбирали куклу барби, то вы на верном пути😂 Истинный инженер всегда пытается разобраться во всём и всё улучшить. Разумеется, всё знать нельзя, и какое-то знание может быть основным, а какие-то — смежными (T-shape-инженер — как раз про это).
Подробнее
#гайд
Зачем нужен DevOps
🧑🎓 Всё, что ни делается, — делается либо ради бизнеса, либо ради людей, либо ради того и другого. При этом есть вещи, которые не приносят ценности никому:
➖ ошибки в коде
➖ ошибки при ручном развертывании сервисов
➖ долгое выяснение проблем на продуктиве
➖ рутинная работа, которой можно избежать.
Инструменты и реализация DevOps-практик
🧑🏫 Хороший инженер должен понимать, что бизнесу важен time-to-market, эксплуатации важно уметь поддерживать этот инструмент, а безопасникам — чтобы безопасность была безопасной. Для этого нужно ходить по конференциям, посматривать на такие отчеты, как State of DevOps, Technology Radar.
Как ворваться в DevOps
Как правило, в DevOps приходят либо с разработки, либо с эксплуатации, хотя бывает и с инфобеза — в DevOps идут с какими-то базовыми знаниями.
Если вам нравится докапываться до сути вещей, нравятся инженерные задачи, а в детстве вы разбирали куклу барби, то вы на верном пути😂 Истинный инженер всегда пытается разобраться во всём и всё улучшить. Разумеется, всё знать нельзя, и какое-то знание может быть основным, а какие-то — смежными (T-shape-инженер — как раз про это).
Подробнее
#гайд
👍16❤2👏1
😎 Очередной #дайджест полезных статей по DevOps:
🔹 История создания и обзор программы для простого построения DevOps отчётов — построение таблицы отчётов в едином HTML‑файле для удобства пересылки по почте
🔹 Kubernetes gateway API v0.8.0: поддержка Service Mesh — выпуск посвящен подготовке Gateway API к предстоящему выпуску версии 1.0, в котором HttpRoute, Gateway и GatewayClass будут переведены в GA
🔹 Автоматизация инфраструктуры Azure для High Availability Web Hosting на Ansible — преимущества автоматизации и настройки инфраструктуры на примере создания платформы, которую можно настроить в соответствии со своими потребностями
🔹 Keycloak. Админский фактор и запрет аутентификации — два кейса по работе с правами доступа на веб-ресурс с дополнительным фактором аутентификации и аутентификации определенной группы пользователей
🔹 Сервис Amazon для Apache Flink, переименованный из Amazon Kinesis Data Analytics — про улучшения в настройке и интеграции data sources или destinations с минимум кода
🔹 История создания и обзор программы для простого построения DevOps отчётов — построение таблицы отчётов в едином HTML‑файле для удобства пересылки по почте
🔹 Kubernetes gateway API v0.8.0: поддержка Service Mesh — выпуск посвящен подготовке Gateway API к предстоящему выпуску версии 1.0, в котором HttpRoute, Gateway и GatewayClass будут переведены в GA
🔹 Автоматизация инфраструктуры Azure для High Availability Web Hosting на Ansible — преимущества автоматизации и настройки инфраструктуры на примере создания платформы, которую можно настроить в соответствии со своими потребностями
🔹 Keycloak. Админский фактор и запрет аутентификации — два кейса по работе с правами доступа на веб-ресурс с дополнительным фактором аутентификации и аутентификации определенной группы пользователей
🔹 Сервис Amazon для Apache Flink, переименованный из Amazon Kinesis Data Analytics — про улучшения в настройке и интеграции data sources или destinations с минимум кода
🔥4❤2👍2
Теряете ли вы навыки на работе?
Anonymous Poll
2%
Нет, мне помогает лид
33%
Нет, я сам себя развиваю
22%
Нет, куча задач не дает расслабиться
8%
Да, никто не помогает
11%
Да, не могу найти куда развиваться
19%
Да, нет интересных задач
5%
Свой вариант
👍22❤2🔥2
Частенько приходится помогать кому-то или самому что-то в табличке накидать, и в упор не помнишь какой-то ерунды. Пожалуйте, шпаргалку подвезли😂😉
В ролике автор разберет 10 самых частых проблем, о которых стоит знать, как начинающему, так и продвинутому пользователю Excel.
Содержание:
00:41 Как посчитать в Excel
02:54 Операции с датами и числами
04:38 Объединенные ячейки
05:59 Удаление структуры
09:33 Анализ больших таблиц
12:05 Смешанные данные
13:17 Удаление дубликатов
15:11 Ограничение по вводу
17:53 Защита данных
20:16 Работа с цветом
#гайд
В ролике автор разберет 10 самых частых проблем, о которых стоит знать, как начинающему, так и продвинутому пользователю Excel.
Содержание:
00:41 Как посчитать в Excel
02:54 Операции с датами и числами
04:38 Объединенные ячейки
05:59 Удаление структуры
09:33 Анализ больших таблиц
12:05 Смешанные данные
13:17 Удаление дубликатов
15:11 Ограничение по вводу
17:53 Защита данных
20:16 Работа с цветом
#гайд
🥰24❤19👏13👍8🔥8
🤔🤔 Что за двойное тире?
ssh root@proglib.io --
Двойное тире означает «флаги командной строки». Оно указывает ssh или другой команде не пытаться анализировать то, что следует после параметров. Двойное тире обрабатывается не оболочками bash/zsh/csh/sh/fish и т.п., а средствами самих программ, но НЕ всех.
Есть такая команда:
ssh root@proglib.io -- command1 --arg1 --arg2
Приведенный выше синтаксис указывает ssh не пытаться анализировать параметры arg1 и arg2 после символа «--». Это гарантирует, что команда command1 примет arg1 и arg2 в качестве аргументов командной строки и выполнится на удаленном сервере.
Рассмотрим другие примеры. Например, не получится просмотреть файл с именем --file или -f используя команду cat:
cat --file
cat -f
Ошибка! cat: unrecognized option --file/f.
Передадим двойное тире:
cat -- --file
cat -- -f
А так все хорошо.
Повторим:
rm --file — получим ошибку
rm -- '--file' — а вот это сработает
Ну а чтобы передать параметры в rm, делаем так:
rm -v -i -- '--file'
rm -f -v -i -- '-f'
Но, не все команды умеют работать с двойным тире. Например, команда echo, на все попытки подружить её с двойным тире, просто-напросто провалятся:
/usr/bin/echo -- -n
echo -- --test
выведется это:
-- -n
-- --test
#туториал
ssh root@proglib.io --
Двойное тире означает «флаги командной строки». Оно указывает ssh или другой команде не пытаться анализировать то, что следует после параметров. Двойное тире обрабатывается не оболочками bash/zsh/csh/sh/fish и т.п., а средствами самих программ, но НЕ всех.
Есть такая команда:
ssh root@proglib.io -- command1 --arg1 --arg2
Приведенный выше синтаксис указывает ssh не пытаться анализировать параметры arg1 и arg2 после символа «--». Это гарантирует, что команда command1 примет arg1 и arg2 в качестве аргументов командной строки и выполнится на удаленном сервере.
Рассмотрим другие примеры. Например, не получится просмотреть файл с именем --file или -f используя команду cat:
cat --file
cat -f
Ошибка! cat: unrecognized option --file/f.
Передадим двойное тире:
cat -- --file
cat -- -f
А так все хорошо.
Повторим:
rm --file — получим ошибку
rm -- '--file' — а вот это сработает
Ну а чтобы передать параметры в rm, делаем так:
rm -v -i -- '--file'
rm -f -v -i -- '-f'
Но, не все команды умеют работать с двойным тире. Например, команда echo, на все попытки подружить её с двойным тире, просто-напросто провалятся:
/usr/bin/echo -- -n
echo -- --test
выведется это:
-- -n
-- --test
#туториал
👍15🔥3❤1
🐳🐳🚟 Улучшаем модульность Docker Compose с помощью include
Предлагаем рассмотреть функцию, доступную в Compose версии 2.20.0 и в версии Docker Desktop 4.22, а именно атрибут include, который делает файлы Compose модульными и пригодными для повторного использования.
Расширение файла Compose
Docker Compose позволяет повторно использовать существующий файл Compose, используя механизм extends. Этот атрибут позволяет обратиться к другому файлу Compose и выбрать службу, которую необходимо использовать в приложении, с возможностью переопределения атрибутов.
services:
database:
extends:
file: ../commons/compose.yaml
service: db
Это хорошее решение пока вам нужен только один сервис, и вы знаете о его внутренних деталях настройки. Но когда нужно повторно использовать конфиг, а вы не знаете о скрытых зависимостях, такой вариант не подходит.
Проблема merge Compose файлов
Еще одна опция — смержить набор Compose-файлов . Docker Compose принимает набор файлов, мержит и перезаписывает определение службы, чтобы создать модель приложения.
Для примера, от лица одной команды, определим файл Compose для сервиса. Создадим образ из Dockerfile и установим среду в env-файл:
services:
database:
builld: .
env-file:
- ./db.env
Теперь от лица другой команды создадим веб-приложение, для которого требуется доступ к базе данных:
services:
webapp:
depends_on:
- database
Все хорошо, пока не попытаться смержить:
docker compose -f compose.yaml -f ../database/compose.yaml.
Относительные пути, заданные вторым файлом Compose, будут разрешены не так, как было задумано, а из локального рабочего каталога, и приложение не будет работать должным образом.
Повторное использование
Флаг include был введен именно для этой цели. Он позволит включить весь файл Compose в модель приложения, точно так же, как вы бы выполнили copy/paste. Единственное отличие — он будет управлять ссылками на относительные пути, и файл Compose будет проанализирован так, как ожидается, запускаясь из исходного местоположения. Эта возможность значительно упрощает повторное использование кода другой команды без необходимости знать точные детали.
include:
../database/compose.yaml
services:
webapp:
depends_on:
- database
Здесь команда разработчиков инфраструктуры подготовила файл Compose для управления БД, возможно, включающий некоторые реплики, веб UI для проверки данных, тома для сохранения данных и прочее.
#гайд
Предлагаем рассмотреть функцию, доступную в Compose версии 2.20.0 и в версии Docker Desktop 4.22, а именно атрибут include, который делает файлы Compose модульными и пригодными для повторного использования.
Расширение файла Compose
Docker Compose позволяет повторно использовать существующий файл Compose, используя механизм extends. Этот атрибут позволяет обратиться к другому файлу Compose и выбрать службу, которую необходимо использовать в приложении, с возможностью переопределения атрибутов.
services:
database:
extends:
file: ../commons/compose.yaml
service: db
Это хорошее решение пока вам нужен только один сервис, и вы знаете о его внутренних деталях настройки. Но когда нужно повторно использовать конфиг, а вы не знаете о скрытых зависимостях, такой вариант не подходит.
Проблема merge Compose файлов
Еще одна опция — смержить набор Compose-файлов . Docker Compose принимает набор файлов, мержит и перезаписывает определение службы, чтобы создать модель приложения.
Для примера, от лица одной команды, определим файл Compose для сервиса. Создадим образ из Dockerfile и установим среду в env-файл:
services:
database:
builld: .
env-file:
- ./db.env
Теперь от лица другой команды создадим веб-приложение, для которого требуется доступ к базе данных:
services:
webapp:
depends_on:
- database
Все хорошо, пока не попытаться смержить:
docker compose -f compose.yaml -f ../database/compose.yaml.
Относительные пути, заданные вторым файлом Compose, будут разрешены не так, как было задумано, а из локального рабочего каталога, и приложение не будет работать должным образом.
Повторное использование
Флаг include был введен именно для этой цели. Он позволит включить весь файл Compose в модель приложения, точно так же, как вы бы выполнили copy/paste. Единственное отличие — он будет управлять ссылками на относительные пути, и файл Compose будет проанализирован так, как ожидается, запускаясь из исходного местоположения. Эта возможность значительно упрощает повторное использование кода другой команды без необходимости знать точные детали.
include:
../database/compose.yaml
services:
webapp:
depends_on:
- database
Здесь команда разработчиков инфраструктуры подготовила файл Compose для управления БД, возможно, включающий некоторые реплики, веб UI для проверки данных, тома для сохранения данных и прочее.
#гайд
👍26👏3❤2
На просторах наткнулись, на что-то, типа дорожной карты дебаггинга в Kubernetes. Она подходит не для любой задачи, которая может возникнуть, и не получится ее применять во всех кейсах, но почерпнуть полезности из разных веток можно 100%.
Вот версия карты в хорошем качестве.
#туториал
Вот версия карты в хорошем качестве.
#туториал
🔥6👍3❤1
На что вы смотрите при выборе работы?
Anonymous Poll
82%
Достойная оплата труда
13%
Узнаваемость компании
54%
Возможность удаленной работы
57%
Интересные задачи
34%
Коллектив
58%
Перспективы развития
2%
Свой вариант
👍6❤1