🎥 Вебинар: Выбор между Serverless и Kubernetes для AI-ворклоадов: как определить оптимальную платформу под задачу
На открытом уроке рассмотрим:
- В чем различаются Serverless-подходы и Kubernetes при работе с AI-ворклоадами;
- Какие преимущества и ограничения есть у каждого подхода с точки зрения масштабируемости, стоимости и сложности эксплуатации;
- Какие трейдоффы нужно учитывать при выборе платформы: холодный старт, управление состоянием, поддержка GPU;
- Как обосновывать выбор архитектуры для разных AI-сценариев на практическом воркшопе.
После занятия вы будете знать:
- Как сравнивать Serverless и Kubernetes для различных AI-задач;
- Как выбирать платформу оркестрации в зависимости от требований к нагрузке, бюджету и архитектуре решения;
- Как учитывать ключевые технические ограничения при проектировании AI-инфраструктуры;
- Как аргументированно обосновывать выбор платформы для задач масштабирования, потоковой обработки данных и построения гибридных сред.
⚠ Открытый урок проходит в преддверии старта курса «ИИ-архитектор».
👉Для участия зарегистрируйтесь: https://vk.cc/cZJGfr
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
На открытом уроке рассмотрим:
- В чем различаются Serverless-подходы и Kubernetes при работе с AI-ворклоадами;
- Какие преимущества и ограничения есть у каждого подхода с точки зрения масштабируемости, стоимости и сложности эксплуатации;
- Какие трейдоффы нужно учитывать при выборе платформы: холодный старт, управление состоянием, поддержка GPU;
- Как обосновывать выбор архитектуры для разных AI-сценариев на практическом воркшопе.
После занятия вы будете знать:
- Как сравнивать Serverless и Kubernetes для различных AI-задач;
- Как выбирать платформу оркестрации в зависимости от требований к нагрузке, бюджету и архитектуре решения;
- Как учитывать ключевые технические ограничения при проектировании AI-инфраструктуры;
- Как аргументированно обосновывать выбор платформы для задач масштабирования, потоковой обработки данных и построения гибридных сред.
⚠ Открытый урок проходит в преддверии старта курса «ИИ-архитектор».
👉Для участия зарегистрируйтесь: https://vk.cc/cZJGfr
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
👍1
🚑 HEALTHCHECK: Спасательный круг или выстрел в ногу?
Продолжаем тему стабильности. Сегодня про Healthchecks (в Docker) и Probes (в K8s).
Казалось бы, что сложного? Написал
Разберем две крайности и как делать правильно.
❌ Ошибка №1: "Зомби-апокалипсис" (Слишком слабый чек)
Вы проверяете только то, что процесс веб-сервера запущен и порт слушается.
🔘 Сценарий: У приложения отвалился коннект к БД (pool exhaustion), или случился дедлок внутри кода.
🔘 Итог: Хелсчек проходит (порт-то открыт!), балансировщик продолжает лить трафик на под, а пользователи получают 500-ки.
🔘 Лечение: Чек должен проверять работоспособность логики, а не просто наличие процесса.
❌ Ошибка №2: "Эффект Домино" (Слишком жадный чек)
Вы решили быть умными и в
🔘 Сценарий: База данных немного приуныла (медленные запросы).
🔘 Итог: Хелсчеки всех 50 подов начинают тайм-аутить. Kubernetes думает: "Ага, поды сдохли!" и начинает их перезагружать.
🔘 Финал: Все поды рестартуют одновременно, ломятся устанавливать соединения к и так лежащей базе и добивают её окончательно. Congratulations, you played yourself.
✅ Как делать правильно: Liveness vs Readiness
В Kubernetes (да и в грамотном Docker Compose) эти понятия разделены. Это фундамент.
1. Liveness Probe (Я жив?)
🔘 Цель: Понять, не завис ли процесс намертво.
🔘 Действие при сбое: РЕСТАРТ контейнера.
🔘 Что проверять: Очень легкий запрос. "Я могу отвечать на HTTP?". Не трогайте тут базу данных! Если база лежит, рестарт бэкенда не поможет ей подняться.
2. Readiness Probe (Я готов работать?)
🔘 Цель: Понять, можно ли пускать на меня трафик.
🔘 Действие при сбое: УБРАТЬ из балансировки (не убивать!).
🔘 Что проверять: Вот тут проверяем зависимости. Есть коннект к БД? Прогрелся кэш? Если нет, просто временно не шлите на меня юзеров.
📝 Пример (K8s Manifest):
💡 Главный совет
Никогда не делайте зависимость Liveness-пробы от внешних сервисов. Если у вас упал сторонний API, ваш сервис не должен уходить в циклическую перезагрузку. Он должен просто перестать говорить, что он
#k8s #devops #fails #stability #bestpractices
📲 Мы в MAX
#devops #девопс
Подпишись 👉@i_DevOps
Продолжаем тему стабильности. Сегодня про Healthchecks (в Docker) и Probes (в K8s).
Казалось бы, что сложного? Написал
curl -f http://localhost/ || exit 1 и пошел пить кофе. Но именно такие "простые" решения часто становятся причиной того, что ваш прод лежит, хотя нагрузка детская.Разберем две крайности и как делать правильно.
❌ Ошибка №1: "Зомби-апокалипсис" (Слишком слабый чек)
Вы проверяете только то, что процесс веб-сервера запущен и порт слушается.
❌ Ошибка №2: "Эффект Домино" (Слишком жадный чек)
Вы решили быть умными и в
/health эндпоинт засунули проверку коннекта к Базе, Редису и S3.✅ Как делать правильно: Liveness vs Readiness
В Kubernetes (да и в грамотном Docker Compose) эти понятия разделены. Это фундамент.
1. Liveness Probe (Я жив?)
2. Readiness Probe (Я готов работать?)
📝 Пример (K8s Manifest):
livenessProbe:
httpGet:
path: /health/live # Максимально тупой ответ 200 OK
port: 8080
initialDelaySeconds: 5
periodSeconds: 10
readinessProbe:
httpGet:
path: /health/ready # Проверка БД, очередей и т.д.
port: 8080
initialDelaySeconds: 10
periodSeconds: 10
failureThreshold: 3
💡 Главный совет
Никогда не делайте зависимость Liveness-пробы от внешних сервисов. Если у вас упал сторонний API, ваш сервис не должен уходить в циклическую перезагрузку. Он должен просто перестать говорить, что он
Ready, или отдавать ошибку юзеру, оставаясь "живым".#k8s #devops #fails #stability #bestpractices
📲 Мы в MAX
#devops #девопс
Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥2
Какую функцию выполняет ReplicaSet?
Функция ReplicaSet (RS) в Kubernetes заключается в обеспечении стабильного количества экземпляров подов в кластере. RS является основным компонентом Kubernetes, который используется для развертывания Stateless-приложений. Он обеспечивает непрерывную доступность приложения, автоматически запуская новые экземпляры подов в случае их выхода из строя. Без использования RS такие поды пришлось бы запускать вручную, что затруднило бы поддержание доступности приложения для пользователей.
Что такое пространство имен (namespaces)? Почему не стоит использовать одно namespace для всех приложений?
Пространства имен позволяют разделить кластер на виртуальные группы, внутри которых можно объединять приложения по нужному принципу. Таким образом, создается возможность изолировать различные группы приложений друг от друга. Например, благодаря этой функции можно создать приложение с одинаковым именем в двух разных пространствах.
Если использовать только одно пространство имен, которое было задано по умолчанию при запуске кластера, со временем может стать сложно ориентироваться во всех приложениях, запущенных в нем. Группировка приложений в разных пространствах имен упрощает работу: например, можно разместить приложение мониторинга в одном пространстве, а приложения, связанные с информационной безопасностью, в другом.
Еще один случай, когда несколько пространств имен могут пригодиться, — это ситуация, когда несколько команд работают с одним кластером.
📲 Мы в MAX
#devops #девопс
Подпишись 👉@i_DevOps
Функция ReplicaSet (RS) в Kubernetes заключается в обеспечении стабильного количества экземпляров подов в кластере. RS является основным компонентом Kubernetes, который используется для развертывания Stateless-приложений. Он обеспечивает непрерывную доступность приложения, автоматически запуская новые экземпляры подов в случае их выхода из строя. Без использования RS такие поды пришлось бы запускать вручную, что затруднило бы поддержание доступности приложения для пользователей.
Что такое пространство имен (namespaces)? Почему не стоит использовать одно namespace для всех приложений?
Пространства имен позволяют разделить кластер на виртуальные группы, внутри которых можно объединять приложения по нужному принципу. Таким образом, создается возможность изолировать различные группы приложений друг от друга. Например, благодаря этой функции можно создать приложение с одинаковым именем в двух разных пространствах.
Если использовать только одно пространство имен, которое было задано по умолчанию при запуске кластера, со временем может стать сложно ориентироваться во всех приложениях, запущенных в нем. Группировка приложений в разных пространствах имен упрощает работу: например, можно разместить приложение мониторинга в одном пространстве, а приложения, связанные с информационной безопасностью, в другом.
Еще один случай, когда несколько пространств имен могут пригодиться, — это ситуация, когда несколько команд работают с одним кластером.
📲 Мы в MAX
#devops #девопс
Подпишись 👉@i_DevOps
👍1
Я предлагаю только знания. Больше ничего.
Самое время разобраться и начать работать с инструментом для управления контейнерами Podman. Selectel совместно с автором канала Bash Days подготовили бесплатный курс для быстрого старта работы.
Что в программе:
— База: узнаете об основных командах для работы с контейнерами и сетями, преимуществах и особенностях работы инструмента.
— Понятные инструкции: увидите, как работать с зависимостями и переменными окружения, какие бывают типичные ошибки при запуске контейнера.
— Практика: развернете инфраструктуру самостоятельно с промокодом на сервисы Selectel.
Все уроки и практика уже доступны, проходите в комфортном темпе.
👉Начните обучение: https://slc.tl/paowu
Ищите закреп с подборкой других бесплатных курсов в канале @Selectel и подписывайтесь, чтобы не пропустить новые.
Реклама. АО "Селектел". erid:2W5zFH4fjE9
👍1
Furiko
Это современный планировщик заданий Kubernetes, созданный с нуля для гибкости, расширяемости и надёжности. Он спроектирован для запуска заданий с различными политиками повторения, управления историей запусков и предоставления пользовательского интерфейса для просмотра и администрирования заданий.
Furiko состоит из следующих компонентов:
- QueueJob Controller: абстракция заданий, которые можно ставить в очередь с масштабируемой логикой запуска.
- CronJob Controller: надёжный планировщик повторяющихся заданий с CRON-подобной семантикой.
- Web UI: удобный пользовательский интерфейс для управления заданиями и их выполнениями.
- CLI: утилита командной строки для взаимодействия с заданиями Furiko.
https://github.com/furiko-io/furiko
📲 Мы в MAX
#devops #девопс
Подпишись 👉@i_DevOps
Это современный планировщик заданий Kubernetes, созданный с нуля для гибкости, расширяемости и надёжности. Он спроектирован для запуска заданий с различными политиками повторения, управления историей запусков и предоставления пользовательского интерфейса для просмотра и администрирования заданий.
Furiko состоит из следующих компонентов:
- QueueJob Controller: абстракция заданий, которые можно ставить в очередь с масштабируемой логикой запуска.
- CronJob Controller: надёжный планировщик повторяющихся заданий с CRON-подобной семантикой.
- Web UI: удобный пользовательский интерфейс для управления заданиями и их выполнениями.
- CLI: утилита командной строки для взаимодействия с заданиями Furiko.
https://github.com/furiko-io/furiko
📲 Мы в MAX
#devops #девопс
Подпишись 👉@i_DevOps
👍2❤1🔥1
🚀 Подборка полезных IT каналов в Max
Системное администрирование, DevOps 📌
https://max.ru/i_odmin Все для системного администратора
https://max.ru/bash_srv Bash Советы
https://max.ru/sysadminof Книги для админов, полезные материалы
https://max.ru/i_odmin_book Библиотека Системного Администратора
https://max.ru/i_devops DevOps: Пишем о Docker, Kubernetes и др.
https://max.ru/tipsysdmin Типичный Сисадмин
https://max.ru/channel_win_sysadmin Системный Администратор Windows
https://max.ru/channel_linux_admin Linux: Системный администратор
https://max.ru/channel_linuxmod Linux
https://max.ru/channel_i_linux Системный администратор
https://max.ru/channel_devopslib DevOps, SRE, Sysadmin
https://max.ru/channel_devops_star DevOps Star (Звезда Девопса)
Excel лайфхак 📌
https://xn--r1a.website/Excel_lifehack Excel лайфхак
Английский с нуля 🇬🇧
https://max.ru/UchuEnglish
1C разработка 📌
https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С
https://max.ru/channel_DevLab1C 1С:Предприятие 8
Программирование C++📌
https://max.ru/cpp_lib Библиотека C/C++ разработчика
https://max.ru/channel_cpp_geek C++ geek
Программирование Go📌
https://max.ru/golang_lib Библиотека Go (Golang) разработчика
Программирование React📌
https://max.ru/react_lib React
Программирование Rust📌
https://max.ru/channel_rust_lib
Программирование Python 📌
https://max.ru/python_of Python академия.
https://max.ru/BookPython Библиотека Python разработчика
Java разработка 📌
https://max.ru/bookjava Библиотека Java разработчика
https://max.ru/channel_java_geek Java Geek
GitHub Сообщество 📌
https://max.ru/githublib Интересное из GitHub
Базы данных (Data Base) 📌
https://max.ru/database_info Все про базы данных
Фронтенд разработка 📌
https://max.ru/frontend_1 Подборки для frontend разработчиков
Библиотеки 📌
https://max.ru/programmist_of Книги по программированию
https://max.ru/proglb Библиотека программиста
https://max.ru/bfbook Книги для программистов
Программирование 📌
https://max.ru/bookflow Лекции, видеоуроки, доклады с IT конференций
https://max.ru/itmozg Программисты, дизайнеры, новости из мира IT
https://max.ru/php_lib Библиотека PHP программиста 👨🏼💻👩💻
Шутки программистов 📌
https://max.ru/itumor Шутки программистов
Защита, взлом, безопасность 📌
https://max.ru/thehaking Канал о кибербезопасности
https://max.ru/xakkep_1 Хакер Free
Книги, статьи для дизайнеров 📌
https://max.ru/odesigners Статьи, книги для дизайнеров
Математика 📌
https://max.ru/Pomatematike Канал по математике
https://max.ru/phismat_1 Обучающие видео, книги по Физике и Математике
Вакансии в IT📌
https://max.ru/progjob
https://max.ru/channel_rabotait
Мир технологий 📌
https://max.ru/mir_teh Канал для любознательных
Бонус 📌
https://max.ru/piterspb_78 Свежие новости Санкт-Петербурга
https://max.ru/mockva_life Свежие новости Москвы
https://max.ru/piterspb Питер Новости: Санкт-Петербург / СПБ / ДТП
Системное администрирование, DevOps 📌
https://max.ru/i_odmin Все для системного администратора
https://max.ru/bash_srv Bash Советы
https://max.ru/sysadminof Книги для админов, полезные материалы
https://max.ru/i_odmin_book Библиотека Системного Администратора
https://max.ru/i_devops DevOps: Пишем о Docker, Kubernetes и др.
https://max.ru/tipsysdmin Типичный Сисадмин
https://max.ru/channel_win_sysadmin Системный Администратор Windows
https://max.ru/channel_linux_admin Linux: Системный администратор
https://max.ru/channel_linuxmod Linux
https://max.ru/channel_i_linux Системный администратор
https://max.ru/channel_devopslib DevOps, SRE, Sysadmin
https://max.ru/channel_devops_star DevOps Star (Звезда Девопса)
Excel лайфхак 📌
https://xn--r1a.website/Excel_lifehack Excel лайфхак
Английский с нуля 🇬🇧
https://max.ru/UchuEnglish
1C разработка 📌
https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С
https://max.ru/channel_DevLab1C 1С:Предприятие 8
Программирование C++📌
https://max.ru/cpp_lib Библиотека C/C++ разработчика
https://max.ru/channel_cpp_geek C++ geek
Программирование Go📌
https://max.ru/golang_lib Библиотека Go (Golang) разработчика
Программирование React📌
https://max.ru/react_lib React
Программирование Rust📌
https://max.ru/channel_rust_lib
Программирование Python 📌
https://max.ru/python_of Python академия.
https://max.ru/BookPython Библиотека Python разработчика
Java разработка 📌
https://max.ru/bookjava Библиотека Java разработчика
https://max.ru/channel_java_geek Java Geek
GitHub Сообщество 📌
https://max.ru/githublib Интересное из GitHub
Базы данных (Data Base) 📌
https://max.ru/database_info Все про базы данных
Фронтенд разработка 📌
https://max.ru/frontend_1 Подборки для frontend разработчиков
Библиотеки 📌
https://max.ru/programmist_of Книги по программированию
https://max.ru/proglb Библиотека программиста
https://max.ru/bfbook Книги для программистов
Программирование 📌
https://max.ru/bookflow Лекции, видеоуроки, доклады с IT конференций
https://max.ru/itmozg Программисты, дизайнеры, новости из мира IT
https://max.ru/php_lib Библиотека PHP программиста 👨🏼💻👩💻
Шутки программистов 📌
https://max.ru/itumor Шутки программистов
Защита, взлом, безопасность 📌
https://max.ru/thehaking Канал о кибербезопасности
https://max.ru/xakkep_1 Хакер Free
Книги, статьи для дизайнеров 📌
https://max.ru/odesigners Статьи, книги для дизайнеров
Математика 📌
https://max.ru/Pomatematike Канал по математике
https://max.ru/phismat_1 Обучающие видео, книги по Физике и Математике
Вакансии в IT📌
https://max.ru/progjob
https://max.ru/channel_rabotait
Мир технологий 📌
https://max.ru/mir_teh Канал для любознательных
Бонус 📌
https://max.ru/piterspb_78 Свежие новости Санкт-Петербурга
https://max.ru/mockva_life Свежие новости Москвы
https://max.ru/piterspb Питер Новости: Санкт-Петербург / СПБ / ДТП
MAX
Системный Администратор | Sysadmin Windows & Linux Server. …
Купить рекламу: https://telega.in/m/i_odmin
Блог практикующего админа. Настройка Windows Server, Active Directory (AD), GPO и терминальных серверов (RDP). Раб…
Блог практикующего админа. Настройка Windows Server, Active Directory (AD), GPO и терминальных серверов (RDP). Раб…
👎7❤1
Устранение проблем с отсутствующими логами Kubernetes в Elasticsearch
Отсутствующие логи могут стать настоящей проблемой для многих пользователей Kubernetes. В этой статье мы разберемся, почему это происходит, и как этого избежать.
Я исследовал случай отсутствующих логов Kubernetes в Elasticsearch, который в моем случае агрегирует логи для подов Kubernetes. У меня стандартная настройка Elasticsearch и Fluentd, и время от времени в Elasticsearch появляется пропуск, когда в течение нескольких секунд нет логов.
https://povilasv.me/troubleshooting-missing-kubernetes-logs-in-elasticsearch/
📲 Мы в MAX
#devops #девопс
Подпишись 👉@i_DevOps
Отсутствующие логи могут стать настоящей проблемой для многих пользователей Kubernetes. В этой статье мы разберемся, почему это происходит, и как этого избежать.
Я исследовал случай отсутствующих логов Kubernetes в Elasticsearch, который в моем случае агрегирует логи для подов Kubernetes. У меня стандартная настройка Elasticsearch и Fluentd, и время от времени в Elasticsearch появляется пропуск, когда в течение нескольких секунд нет логов.
https://povilasv.me/troubleshooting-missing-kubernetes-logs-in-elasticsearch/
📲 Мы в MAX
#devops #девопс
Подпишись 👉@i_DevOps
👍2
🛠 Git Cheat Sheet: 12 команд, которые должен знать каждый DevOps
📂 Начало работы
•
•
• Совет: Используйте
🔄 Основной цикл (Commit & Sync)
•
•
•
• Важно:
🌿 Ветвление и слияние
•
•
•
🔍 Диагностика и откат
•
•
•
• ⚠️ Осторожнее с флагом
💡Лайфхак: Вместо того чтобы вручную проверять статус в каждом проекте, настройте себе алиасы в
#git #devops #cheatsheet #programming #automation
📲 Мы в MAX
Подпишись 👉@i_DevOps
📂 Начало работы
•
git init - создаем новый репозиторий. Помните, что это просто создает скрытую папку .git.•
git remote - связываем локальный код с удаленным сервером (GitHub/GitLab).• Совет: Используйте
git remote -v, чтобы проверить, куда вы пушите код.🔄 Основной цикл (Commit & Sync)
•
git add - добавляем изменения в индекс (staging).•
git commit - фиксируем изменения. Пишите осмысленные сообщения! "Fixed bug" - плохо, "Fix: update nginx config for timeout issue" - хорошо.•
git push / git pull - отправка и получение изменений.• Важно:
git pull - это на самом деле fetch + merge.🌿 Ветвление и слияние
•
git branch - работа с ветками. В DevOps мы часто используем feature-branches.•
git checkout - переключение между ветками. (Кстати, в новых версиях Git для этого чаще используют git switch).•
git merge - объединение веток.🔍 Диагностика и откат
•
git status - ваша любимая команда. Показывает, что происходит прямо сейчас.•
git fetch - забирает данные из репозитория, но не меняет ваш локальный код. Безопасный способ проверить обновления.•
git reset - откат изменений.• ⚠️ Осторожнее с флагом
--hard, он удаляет изменения безвозвратно!💡Лайфхак: Вместо того чтобы вручную проверять статус в каждом проекте, настройте себе алиасы в
.bashrc или .zshrc. Например:alias gs='git status'alias gl='git log --oneline --graph --all'#git #devops #cheatsheet #programming #automation
📲 Мы в MAX
Подпишись 👉@i_DevOps
🔥4👍3❤1
MLOps — дитя DevOps и ML
Один ML-проект в проде вам или два другому? Внедрение машинного обучения в производственную среду остаётся одной из главных проблем индустрии. По статистике, 80% ML-проектов никогда не доходят до продакшена. Однако хитрые опсы и тут решили выделиться, и в результате появился MLOps — методология, которая поможет вам сократить путь от эксперимента до деплоя с месяцев до дней. В этой статье мы пройдёмся по верхам MLOps и посмотрим на фундаментальные принципы и конкретные инструменты.
https://habr.com/ru/companies/ruvds/articles/990814/
📲 Мы в MAX
Подпишись 👉@i_DevOps
Один ML-проект в проде вам или два другому? Внедрение машинного обучения в производственную среду остаётся одной из главных проблем индустрии. По статистике, 80% ML-проектов никогда не доходят до продакшена. Однако хитрые опсы и тут решили выделиться, и в результате появился MLOps — методология, которая поможет вам сократить путь от эксперимента до деплоя с месяцев до дней. В этой статье мы пройдёмся по верхам MLOps и посмотрим на фундаментальные принципы и конкретные инструменты.
https://habr.com/ru/companies/ruvds/articles/990814/
📲 Мы в MAX
Подпишись 👉@i_DevOps
👍1🔥1
🧪 K8E — это форк проекта K3s, предназначенный для локального тестирования.
Он не требует root-доступа и не использует systemd.
Также вы можете легко собрать и запустить его без сетевого подключения (air-gap режим).
Основные особенности:
- Без root-доступа
- Без systemd
- Один бинарник
- Простой запуск кластера:
- Не требует внешней сети
- Поддерживает полностью автономную сборку
Если вы когда-либо хотели поднять Kubernetes-кластер за пару секунд и без привилегий — этот инструмент идеально подойдёт для тестов и локальной разработки.
https://github.com/xiaods/k8e
📲 Мы в MAX
Подпишись 👉@i_DevOps
Он не требует root-доступа и не использует systemd.
Также вы можете легко собрать и запустить его без сетевого подключения (air-gap режим).
Основные особенности:
- Без root-доступа
- Без systemd
- Один бинарник
- Простой запуск кластера:
k8e server &- Не требует внешней сети
- Поддерживает полностью автономную сборку
Если вы когда-либо хотели поднять Kubernetes-кластер за пару секунд и без привилегий — этот инструмент идеально подойдёт для тестов и локальной разработки.
https://github.com/xiaods/k8e
📲 Мы в MAX
Подпишись 👉@i_DevOps
👍2💩1
🐧 С Днём системного администратора!
Желаем, чтобы:
• ping всегда отвечал;
• df -h не пугал;
• systemctl status был только active (running);
• grep ERROR ничего не находил;
• rm -rf запускался только в тестовой среде;
• а пользователи наконец поняли, что выключить монитор ≠ выключить компьютер.
Аптайма 100%, кофе без ограничений и минимум звонков в пятницу после 17:00! ☕🎉
Желаем, чтобы:
• ping всегда отвечал;
• df -h не пугал;
• systemctl status был только active (running);
• grep ERROR ничего не находил;
• rm -rf запускался только в тестовой среде;
• а пользователи наконец поняли, что выключить монитор ≠ выключить компьютер.
Аптайма 100%, кофе без ограничений и минимум звонков в пятницу после 17:00! ☕🎉
❤9👍5🔥1
Media is too big
VIEW IN TELEGRAM
Путь в DevOps: полное руководство для новичков с НУЛЯ
00:00 - Вступление
00:14 - Всевозможные компетенции DevOps Инженера
00:44 - Кому проще стать DevOps Инженером
02:29 - Что учить по минимуму и в каком порядке
10:27 - 1. Основы Networking TCP/IP
11:46 - 2. Администрирование Windows
12:38 - 3. Основы Linux
13:28 - 4. Ansible
13:56 - 5. Git
14:26 - 6. GitHub
14:52 - 7. CI/CD: GitHub Actions, GitLab CI/CD
15:29 - 8. Docker + DockerHub
16:16 - 9. Kubernetes + Helm + ArgoCD
17:04 - 10. AWS: Amazon Web Services
19:12 - 10. GCP: Google Cloud Platform
20:27 - 10. Azure: Microsoft Azure
21:38 - 11. Terraform + Terragrunt
22:42 - 12. Python
23:09 - Как стать профессиональным DevOps Ннженером
24:37 - Девопс это хорошее будущее вашей карьеры
источник
📲 Мы в MAX
Подпишись 👉@i_DevOps
00:00 - Вступление
00:14 - Всевозможные компетенции DevOps Инженера
00:44 - Кому проще стать DevOps Инженером
02:29 - Что учить по минимуму и в каком порядке
10:27 - 1. Основы Networking TCP/IP
11:46 - 2. Администрирование Windows
12:38 - 3. Основы Linux
13:28 - 4. Ansible
13:56 - 5. Git
14:26 - 6. GitHub
14:52 - 7. CI/CD: GitHub Actions, GitLab CI/CD
15:29 - 8. Docker + DockerHub
16:16 - 9. Kubernetes + Helm + ArgoCD
17:04 - 10. AWS: Amazon Web Services
19:12 - 10. GCP: Google Cloud Platform
20:27 - 10. Azure: Microsoft Azure
21:38 - 11. Terraform + Terragrunt
22:42 - 12. Python
23:09 - Как стать профессиональным DevOps Ннженером
24:37 - Девопс это хорошее будущее вашей карьеры
источник
📲 Мы в MAX
Подпишись 👉@i_DevOps
❤5👍2
💡 Лучшие практики работы с Helm: что нужно знать
Если вы используете Helm для управления приложениями в Kubernetes, крайне важно следовать ряду проверенных практик, чтобы обеспечить поддержку, масштабируемость и безопасность ваших чартов.
📦 1. Структура директорий чарта
Соблюдайте стандартную структуру чарта Helm:
Избегайте добавления нестандартных файлов и директорий. Это сделает чарты переносимыми и читаемыми.
🧩 2. Разделяйте общие шаблоны
Используйте
⚙️ 3. Используйте параметры в values.yaml
Делайте чарты гибкими, передавая конфигурации через
🧪 4. Валидация values.yaml
Добавляйте проверку обязательных значений с помощью
🔍 5. Используйте шаблоны if/else разумно
Старайтесь не перегружать шаблоны логикой. Разделяйте шаблоны на несколько файлов, если они становятся слишком сложными.
🗃️ 6. Не добавляйте чарт в шаблон напрямую
Вместо включения зависимостей в директорию
🛑 7. Не хардкодьте версии образов
Передавайте версию через
🔒 8. Управление чувствительными данными
Не храните пароли и токены в values.yaml. Используйте секреты Kubernetes или инструменты типа Sealed Secrets или External Secrets.
🔁 9. Helm hooks
Helm предоставляет хуки для выполнения задач до/после установки. Используйте их, например, для миграций БД. Пример:
🧹 10. Чистка старых релизов
Используйте
🧪 11. Тестирование чарта
Добавляйте unit-тесты с помощью
🔄 12. Автоматизация через CI/CD
Интегрируйте Helm в пайплайны CI/CD для установки и обновления чартов — например, с помощью GitLab CI, GitHub Actions, ArgoCD или Flux.
Придерживайтесь этих рекомендаций — и работа с Helm станет надёжной, устойчивой и более предсказуемой. Это особенно важно при масштабировании инфраструктуры и работе в команде.
📲 Мы в MAX
Подпишись 👉@i_DevOps
Если вы используете Helm для управления приложениями в Kubernetes, крайне важно следовать ряду проверенных практик, чтобы обеспечить поддержку, масштабируемость и безопасность ваших чартов.
📦 1. Структура директорий чарта
Соблюдайте стандартную структуру чарта Helm:
mychart/
charts/
templates/
values.yaml
Chart.yaml
README.md
Избегайте добавления нестандартных файлов и директорий. Это сделает чарты переносимыми и читаемыми.
🧩 2. Разделяйте общие шаблоны
Используйте
_helpers.tpl для определения общих шаблонов, таких как аннотации, метки и имена ресурсов. Это снижает дублирование и упрощает сопровождение:
{{/* Генерация полного имени */}}
{{- define "mychart.fullname" -}}
{{- printf "%s-%s" .Release.Name .Chart.Name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
⚙️ 3. Используйте параметры в values.yaml
Делайте чарты гибкими, передавая конфигурации через
values.yaml. Никогда не хардкодьте значения в шаблонах.🧪 4. Валидация values.yaml
Добавляйте проверку обязательных значений с помощью
required:
{{ required "Variable mychart.image.repository is required" .Values.image.repository }}
🔍 5. Используйте шаблоны if/else разумно
Старайтесь не перегружать шаблоны логикой. Разделяйте шаблоны на несколько файлов, если они становятся слишком сложными.
🗃️ 6. Не добавляйте чарт в шаблон напрямую
Вместо включения зависимостей в директорию
charts/, указывайте их в Chart.yaml и используйте helm dependency update.🛑 7. Не хардкодьте версии образов
Передавайте версию через
values.yaml. Это повышает гибкость CI/CD:
image:
repository: nginx
tag: "1.21.1"
🔒 8. Управление чувствительными данными
Не храните пароли и токены в values.yaml. Используйте секреты Kubernetes или инструменты типа Sealed Secrets или External Secrets.
🔁 9. Helm hooks
Helm предоставляет хуки для выполнения задач до/после установки. Используйте их, например, для миграций БД. Пример:
annotations:
"helm.sh/hook": pre-install
🧹 10. Чистка старых релизов
Используйте
helm uninstall и регулярно проверяйте статус релизов с помощью helm list. Это помогает избегать конфликта имён и мусора.🧪 11. Тестирование чарта
Добавляйте unit-тесты с помощью
helm unittest и не забывайте про проверку синтаксиса:
helm lint .
🔄 12. Автоматизация через CI/CD
Интегрируйте Helm в пайплайны CI/CD для установки и обновления чартов — например, с помощью GitLab CI, GitHub Actions, ArgoCD или Flux.
Придерживайтесь этих рекомендаций — и работа с Helm станет надёжной, устойчивой и более предсказуемой. Это особенно важно при масштабировании инфраструктуры и работе в команде.
📲 Мы в MAX
Подпишись 👉@i_DevOps
👍3🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Блокировка состояния Terraform с использованием S3 (без DynamoDB)
В этом посте мы рассмотрим:
- Зачем нужна блокировка состояния Terraform
- Блокировка состояния с помощью DynamoDB
- Блокировка состояния только с использованием S3, без DynamoDB
- Когда стоит использовать DynamoDB
- Когда можно обойтись только S3
- Лучшие практики хранения state-файлов в S3
https://devopscube.com/terraform-state-locking-with-s3/
📲 Мы в MAX
Подпишись 👉@i_DevOps
В этом посте мы рассмотрим:
- Зачем нужна блокировка состояния Terraform
- Блокировка состояния с помощью DynamoDB
- Блокировка состояния только с использованием S3, без DynamoDB
- Когда стоит использовать DynamoDB
- Когда можно обойтись только S3
- Лучшие практики хранения state-файлов в S3
https://devopscube.com/terraform-state-locking-with-s3/
📲 Мы в MAX
Подпишись 👉@i_DevOps
👍2
🎥 Вебинар: Kubernetes + CI/CD + GitOps — делаем стабильный деплой без выхода из кластера
📌 На уроке вы узнаете:
- Как настроить конвейер CI/CD для автоматизации развертывания приложений в Kubernetes.
- Что такое GitOps, и как с его помощью управлять инфраструктурой и релизами через декларативные манифесты.
- Использование Kubernetes для построения стабильных и безопасных процессов развёртывания приложений.
- Лучшие практики внедрения, внедрения и управления изменениями прямо из кластера.
🎯 После вебинара вы:
- Вы поймёте, как интегрировать Kubernetes, CI/CD и GitOps для создания стабильных и автоматизированных процессов развертывания.
- Освоите изменение и оптимизацию конвейеров CI/CD для работы в Kubernetes-кластерах.
- Изучите подходы к мониторингу, организации тестирования и управлению релизами через GitOps, повышению доступности и безопасности процессов.
⚠️ Открытый урок проходит в преддверии старта курса «Инфраструктурная платформа на основе Kubernetes».
👉 Для участия зарегистрируйтесь: https://vk.cc/d09AVU
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
📌 На уроке вы узнаете:
- Как настроить конвейер CI/CD для автоматизации развертывания приложений в Kubernetes.
- Что такое GitOps, и как с его помощью управлять инфраструктурой и релизами через декларативные манифесты.
- Использование Kubernetes для построения стабильных и безопасных процессов развёртывания приложений.
- Лучшие практики внедрения, внедрения и управления изменениями прямо из кластера.
🎯 После вебинара вы:
- Вы поймёте, как интегрировать Kubernetes, CI/CD и GitOps для создания стабильных и автоматизированных процессов развертывания.
- Освоите изменение и оптимизацию конвейеров CI/CD для работы в Kubernetes-кластерах.
- Изучите подходы к мониторингу, организации тестирования и управлению релизами через GitOps, повышению доступности и безопасности процессов.
⚠️ Открытый урок проходит в преддверии старта курса «Инфраструктурная платформа на основе Kubernetes».
👉 Для участия зарегистрируйтесь: https://vk.cc/d09AVU
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Addon Controller
Sveltos Addon Controller позволяет пользователям применять Kubernetes-манифесты к любым кластерам, управляемым Sveltos. Это может быть сделано следующими способами:
- Добавляя YAML-файлы с Kubernetes-ресурсами в ConfigMap или Secret.
- Указывая URL с YAML-ресурсами.
- Указывая Helm-чарт.
Addon Controller – это контроллер Kubernetes, который работает в управляющем кластере (management cluster). Он следит за созданием и обновлением объектов
Возможности
- Поддержка ConfigMap, Secret, URL и Helm-чартов.
- Поддержка переменных через
- Возможность динамически применять или удалять аддоны при изменении кластера или его свойств.
- Возможность настройки приоритетов применения ресурсов.
- Поддержка зависимостей между ресурсами.
- Поддержка dry-run и прерывания применения при ошибке.
Архитектура
1. Пользователь создает объект
2. Для каждого подходящего кластера создается объект
3. Addon Controller применяет ресурсы, указанные в
https://github.com/projectsveltos/addon-controller?tab=readme-ov-file
📲 Мы в MAX
Подпишись 👉@i_DevOps
Sveltos Addon Controller позволяет пользователям применять Kubernetes-манифесты к любым кластерам, управляемым Sveltos. Это может быть сделано следующими способами:
- Добавляя YAML-файлы с Kubernetes-ресурсами в ConfigMap или Secret.
- Указывая URL с YAML-ресурсами.
- Указывая Helm-чарт.
Addon Controller – это контроллер Kubernetes, который работает в управляющем кластере (management cluster). Он следит за созданием и обновлением объектов
Addon, а также применяет соответствующие манифесты в целевых (managed) кластерах, на которые ссылается Addon.Возможности
- Поддержка ConfigMap, Secret, URL и Helm-чартов.
- Поддержка переменных через
ClusterProfile и ClusterSummary.- Возможность динамически применять или удалять аддоны при изменении кластера или его свойств.
- Возможность настройки приоритетов применения ресурсов.
- Поддержка зависимостей между ресурсами.
- Поддержка dry-run и прерывания применения при ошибке.
Архитектура
1. Пользователь создает объект
ClusterProfile, в котором указывает критерии выбора кластеров.2. Для каждого подходящего кластера создается объект
ClusterSummary, который содержит список Addon объектов.3. Addon Controller применяет ресурсы, указанные в
Addon, к каждому целевому кластеру.https://github.com/projectsveltos/addon-controller?tab=readme-ov-file
📲 Мы в MAX
Подпишись 👉@i_DevOps
👍1
🔥 Как ускорить docker build и сократить размер образа
Иногда
1. Используй multistage build
Разделяй стадии сборки и финальный образ. Это особенно важно при компиляции (Go, Java, Node.js):
Образ получается меньше 10 МБ!
2. Минимизируй base image
Используй
Или вообще:
3. Правильно расставляй
Кешируй слои — сначала зависимости, потом исходники:
Так
4. Убирай мусор и временные файлы
После установки пакетов — чисти кэш:
5. Используй
Иначе в билд попадут
Вывод:
Минимизация образа — это не только про размер, но и про безопасность (меньше surface area), скорость CI/CD, стабильность. И не забывай —
#devops #docker #ci #optimization
📲 Мы в MAX
Подпишись 👉@i_DevOps
Иногда
docker build тянется вечность, а итоговый образ весит больше, чем база данных 🐘. Разбираемся, как ускорить сборку и оптимизировать размер образа без потери функциональности.1. Используй multistage build
Разделяй стадии сборки и финальный образ. Это особенно важно при компиляции (Go, Java, Node.js):
# Стадия 1: билд
FROM golang:1.20 as builder
WORKDIR /app
COPY . .
RUN go build -o app
# Стадия 2: минимальный runtime
FROM alpine:latest
COPY --from=builder /app/app /usr/local/bin/app
ENTRYPOINT ["app"]
Образ получается меньше 10 МБ!
2. Минимизируй base image
Используй
alpine, distroless, scratch, если не нужен полноценный дистрибутив:
FROM python:3.12-slim
Или вообще:
FROM scratch
3. Правильно расставляй
COPY и RUN Кешируй слои — сначала зависимости, потом исходники:
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
Так
pip install не будет повторяться при каждом изменении исходников.4. Убирай мусор и временные файлы
После установки пакетов — чисти кэш:
RUN apt-get update && apt-get install -y ... \
&& rm -rf /var/lib/apt/lists/*
5. Используй
.dockerignore Иначе в билд попадут
node_modules, .git, логи и прочее:
.git
node_modules
*.log
Вывод:
Минимизация образа — это не только про размер, но и про безопасность (меньше surface area), скорость CI/CD, стабильность. И не забывай —
docker build тоже надо профилировать.#devops #docker #ci #optimization
📲 Мы в MAX
Подпишись 👉@i_DevOps
👍4🔥1
🔥 Ускоряем сборку Docker-образов: слои и кэш - наши друзья
Когда сборка
🧠 Основные принципы ускорения:
1. Максимально используем кэш
Docker кэширует каждый слой. Если слой не изменился - пересобирать не будет.
➤ Сначала COPY зависимости, потом остальной код:
2. Объединяем RUN-команды
Меньше слоёв - быстрее сборка и push:
3. .dockerignore
Убедись, что не копируешь лишние файлы (например,
4. Меньше COPY, больше multi-stage
Разделяй сборку и runtime - не таскай компиляторы в прод:
5. Кэшируй pip/npm/go-пакеты
→ в Dockerfile сначала копируй файл зависимостей, ставь пакеты, только потом - весь код проекта.
📌 Используй эти практики, чтобы ускорить CI/CD, локальную сборку и деплой. Чем меньше слоёв изменяется - тем быстрее весь процесс.
📲 Мы в MAX
Подпишись 👉@i_DevOps
Когда сборка
Dockerfile занимает минуты - это мешает dev-loop'у. А ведь можно сильно ускориться с парой простых правил 👇🧠 Основные принципы ускорения:
1. Максимально используем кэш
Docker кэширует каждый слой. Если слой не изменился - пересобирать не будет.
➤ Сначала COPY зависимости, потом остальной код:
COPY requirements.txt .
RUN pip install -r requirements.txt # кэшируется
COPY . . # некэшируемо при любом изменении в коде
2. Объединяем RUN-команды
Меньше слоёв - быстрее сборка и push:
RUN apt update && apt install -y curl git \
&& rm -rf /var/lib/apt/lists/*
3. .dockerignore
Убедись, что не копируешь лишние файлы (например,
.git/, tests/, node_modules/):
.git
node_modules
*.log
__pycache__/
4. Меньше COPY, больше multi-stage
Разделяй сборку и runtime - не таскай компиляторы в прод:
FROM golang:1.20 AS builder
WORKDIR /app
COPY . .
RUN go build -o app
FROM debian:bullseye-slim
COPY --from=builder /app/app /usr/bin/app
CMD ["app"]
5. Кэшируй pip/npm/go-пакеты
→ в Dockerfile сначала копируй файл зависимостей, ставь пакеты, только потом - весь код проекта.
📌 Используй эти практики, чтобы ускорить CI/CD, локальную сборку и деплой. Чем меньше слоёв изменяется - тем быстрее весь процесс.
📲 Мы в MAX
Подпишись 👉@i_DevOps
👍3
HULL - Helm Uniform Layer Library
Этот репозиторий содержит библиотечную диаграмму Helm под названием HULL. Она предназначена для упрощения создания, поддержки и настройки объектов Kubernetes в Helm-диаграммах и может быть добавлена к любой Helm-диаграмме в качестве дополнения для расширения функциональности без риска нарушения существующих конфигураций Helm.
Сама диаграмма и вся связанная с ней документация находятся в папке
https://github.com/vidispine/hull
#devops #девопс
📲 Мы в MAX
Подпишись 👉@i_DevOps
Этот репозиторий содержит библиотечную диаграмму Helm под названием HULL. Она предназначена для упрощения создания, поддержки и настройки объектов Kubernetes в Helm-диаграммах и может быть добавлена к любой Helm-диаграмме в качестве дополнения для расширения функциональности без риска нарушения существующих конфигураций Helm.
Сама диаграмма и вся связанная с ней документация находятся в папке
hull, которая является корневой директорией библиотечной Helm-диаграммы HULL.https://github.com/vidispine/hull
#devops #девопс
📲 Мы в MAX
Подпишись 👉@i_DevOps
👍1