DevOps – Telegram
DevOps
8.46K subscribers
1.47K photos
809 videos
28 files
1.74K links
Docker, Kubernetes, облачные сервисы (AWS, GCP, Azure), Infrastructure as a Code (Terraform, CloudFormation), администрирование Windows и Linux, сети TCP, IP, скрипты (Bash, PowerShell), Ansible, Jenkins, DevSecOps, логирование. По вопросам @evgenycarter
Download Telegram
Puppet в Avito: 15 000 серверов, CI/CD и уроки из продакшна

Привет! Меня зовут Андрей Колесников, я тимлид одной из DevOps-команд Авито. Уже 10 лет я работаю с высоконагруженными и бизнес-критичными системами. В этой статье рассказываю, как мы управляем нашей инфраструктурой с помощью Puppet, и объясняю, почему мы продолжаем его использовать.

Это не рассказ о «фичах ради фич» и не реклама инструмента. Я не буду уговаривать всех срочно перейти на Puppet. Вместо этого я поделюсь нашим практическим опытом: как мы используем Puppet в Avito, какие подходы и практики применяем, как масштабируем систему и какие грабли собрали по пути.


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


https://habr.com/ru/companies/avito/articles/939080/

#devops #девопс

Подпишись 👉@i_DevOps
👍4
Что изучать после основ Python?

В новом бесплатном курсе от Selectel собрали материалы для решения реальных рабочих задач.

Вы научитесь:
▪️работать с базами данных,
▪️создавать программы с графическим интерфейсом,
▪️использовать Python для парсинга.

Смотрите программу и регистрируйтесь:
https://slc.tl/6vydm

Реклама. АО «Селектел», ИНН 7810962785, ERID: 2Vtzqw4yYHg
2👍2
Автоматизируй всё с Ansible!

Ansible — это мощный инструмент, который упрощает управление конфигурацией, развертывание приложений и оркестрацию задач. Статья рассказывает о лучших практиках использования Ansible и о том, как автоматизировать повседневные задачи, экономя время и силы.

https://agralrst.medium.com/automate-everything-with-ansible-aac7eb4d5cf9

#devops #девопс

Подпишись 👉@i_DevOps
👍2
🔥 «Орки тут» — бесплатный митап ЮMoney для DevOps-инженеров

Встречаемся в четверг, 28 августа, в 19:00 (мск) — приходите на митап в Санкт-Петербурге или подключайтесь онлайн.

Эксперты из ЮMoney расскажут, как работают над инфраструктурой:

🟣 Тайна замка ЮMoney: связность приложений через призму активного развития компании.
🟣 Внедрение Egress.
🟣 DevOps как следствие... деградации разработки.
🟣 Как из скрипта вырос продукт.

Зарегистрируйтесь, чтобы принять участие. Все подробности — на сайте митапа «Орки тут» ™️
Please open Telegram to view this post
VIEW IN TELEGRAM
🤡6👍51
This media is not supported in your browser
VIEW IN TELEGRAM
🐾 Tabby

Это самостоятельный помощник по написанию кода с искусственным интеллектом, представляющий собой альтернативу GitHub Copilot с открытым исходным кодом и локальным ресурсом. Он может похвастаться несколькими ключевыми особенностями:

Самодостаточность, отсутствие необходимости в СУБД или облачном сервисе.
Интерфейс OpenAPI, легко интегрируемый с существующей инфраструктурой (например, Cloud IDE).
Поддержка графических процессоров потребительского класса.

https://github.com/TabbyML/tabby

#devops #девопс

Подпишись 👉@i_DevOps
👍2
Больше не нужен рестарт: как Kubernetes позволяет менять ресурсы контейнеров «на лету»

Теперь ресурсы контейнеров в Kubernetes можно менять «на лету» — без перезапуска и простоев. В статье рассказываем, как работает in-place resize, где эта функция реально спасает приложения от перегрузки и какие ограничения стоит учитывать на практике.

https://habr.com/ru/companies/flant/articles/936724/

#devops #девопс

Подпишись 👉@i_DevOps
👍3
🚀 Твой сервер пыхтит, как паровоз в гору? А пользователи бегут быстрее, чем TTFB?

Хватит гадать, где тормозит система! На курсе «Оптимизация веб-приложений» научим:
→ Ловить баги до выкатки,
→ Ускорять код так, чтобы Chrome не плакал,
→ Доказывать бизнесу, что 5-секундная загрузка — это не фича, а позор! 😉

Пройди тест и узнай, справишься ли с нашим челленджем: https://vk.cc/cOWotr
(Спойлер: если считаешь htop магическим кристаллом — тебе точно к нам!)

🔥 Топ-3 из программы, ради которых стоит записаться:
- WebPageTest — как находить тормоза, которые прячутся за «У меня локально всё летает!».
- Мониторинг в Linux — читаешь top как стихи? Научим видеть проблемы до kernel panic.
- Оптимизация Nginx/PostgreSQL — чтобы БД не падала под нагрузкой, как джуниор на митинге.

🎁 Успевай в группу августа со скидкой 15% по промокоду: OptWebApp_5, 5% (суммируется со скидкой на сайте), по 29.08.

P.S. «Как понять, что ты готов к курсу?»

— Если после фразы «Надо просто добавить кэш» у тебя дергается глаз...

Приходи — научим чинить проблемы, а не затыкать их костылями! 💻⚡️

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
2👍1
Что происходит, когда вы вводите URL в браузер?

В процесс вовлечены: браузер, операционная система вашего компьютера, интернет-провайдер, сервер, где размещён сайт, и сервисы, работающие на этом сервере.

1. Вы вводите https://somewebsite.com/page в браузере и нажимаете Enter
Здесь https:// — это схема, указывающая браузеру подключаться к серверу с использованием TLS. somewebsite.com — доменное имя сайта, которое указывает на конкретный IP-адрес сервера. А /page — путь к нужному ресурсу.

2. Браузер ищет IP-адрес домена
После того как вы ввели URL и нажали Enter, браузеру нужно определить, к какому серверу в Интернете подключиться. Для этого он ищет IP-адрес по доменному имени с помощью DNS-запроса. Сначала проверяется кэш, если записи там нет — запрос уходит к DNS-серверам (от корневого до серверов 3-го уровня).

3. Браузер устанавливает TCP-соединение с сервером
Протокол TCP используется для маршрутизации пакетов: от запроса браузера — через роутер, провайдера, интернет-обменники и сети — до сервера с нужным IP-адресом. Чтобы ускорить доставку, многие сайты используют CDN, кэширующие контент ближе к пользователю.

4. Браузер отправляет HTTP-запрос на сервер
После установления соединения браузер начинает взаимодействовать по протоколу HTTP(s). Он отправляет HTTP-запрос, который состоит из стартовой строки, заголовков и тела. По этим данным сервер определяет, что именно хочет клиент.

5. Сервер обрабатывает запрос и отправляет ответ
Сервер принимает запрос, анализирует строку, заголовки и тело. Для GET /page/ HTTP/1.1 сервер находит соответствующий ресурс, формирует ответ и возвращает его клиенту вместе с HTTP-статусом.

6. Браузер рендерит контент
Получив ответ, браузер смотрит на заголовки, чтобы понять, как обработать ресурс. Например, Content-Type указывает, что в теле ответа находится HTML-страница, которую и нужно отрисовать.

#devops #девопс

Подпишись 👉@i_DevOps
👍6
Forwarded from Bash Советы
🗂 Мониторинг размера логов

Иногда логи на сервере начинают разрастаться и быстро занимают место. Чтобы контролировать их размер, можно использовать небольшой bash-скрипт:


#!/bin/bash
# автор: https://news.1rj.ru/str/bash_srv

# каталог с логами
LOG_DIR="/var/log"

# максимальный размер файла (в мегабайтах)
MAX_SIZE=100

find "$LOG_DIR" -type f -name "*.log" | while read -r log; do
size=$(du -m "$log" | cut -f1)
if (( size > MAX_SIZE )); then
echo "⚠️ Лог $log превышает $MAX_SIZE MB (текущий размер: ${size}MB)"
fi
done


📌 Скрипт ищет все .log - файлы в каталоге /var/log и проверяет их размер. Если размер превышает указанный порог (например, 100MB), выводит предупреждение.

🔧 Можно добавить в cron, чтобы проверка выполнялась регулярно.

👉@bash_srv
🤝1
yq

Лёгкий и портативный консольный процессор YAML, JSON, INI и XML. yq использует синтаксис, похожий на jq, но работает не только с YAML, а также с JSON, XML, INI, properties, CSV и TSV. Пока он не поддерживает всё, что умеет jq, но реализует наиболее распространённые операции и функции, и возможности постоянно расширяются.

yq написан на Go, поэтому вы можете скачать готовый бинарный файл без зависимостей для своей платформы и сразу использовать. При желании можно установить его через разные менеджеры пакетов, а также с помощью Docker или Podman — всё перечислено ниже.

https://github.com/mikefarah/yq

#devops #девопс

Подпишись 👉@i_DevOps
🔥Приглашаем вас на три бесплатных вебинара курса «Data Engineer»🔥

📚Вебинар №1: «Как построить Lakehouse на Iceberg и S3»

27 августа в 20:00 мск

На вебинаре:

• Data Warehouse, Data Lake, Data Lakehouse: история развития, что и когда использовать?
• Обзор Apache Iceberg: архитектура, преимущества и кейсы использования.
• Хранение данных в S3: настройка бакетов, управление доступом, cost optimization.
• Развертывание Iceberg на S3.
• Работа с Iceberg на Spark и Trino.

📚Вебинар №2: «DWH, Data Lake и Data Lakehouse: архитектурные различия и практическое применение»

8 сентября в 20:00 мск

На вебинаре:

• Data Warehouse (DWH): Классическая архитектура и принципы
• Data Lake: Хранение "сырых" данных любого формата. Проблемы управления и governance
• Data Lakehouse: лучшие практики DWH и Data Lake ACID-транзакции и поддержка BI-аналитики
• Сравнительный анализ: Критерии выбора для разных задач Примеры реализаций (Snowflake, Databricks Delta Lake)
• Кейсы применения: Когда выбрать DWH, а когда — Lakehouse Миграция между подходами

📚Вебинар №3: «Развертывание Spark кластера с помощью Terraform в облаке»

23 сентября в 18:00 мск

На вебинаре:

• Разберем один из принципов развертывания Spark кластера в облачных провайдерах.
• Покажем Terraform конфигурации для автоматизированного развертывания кластера.
• Продемонстрируем подключение к кластеру для работы из IDE.

🎁Участники вебинаров получат подарки на почту🎁

Регистрация на вебинары ➡️ OTUS.RU

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Объясните концепцию Ingress в Kubernetes

Ingress — это объект API Kubernetes, который используется для предоставления маршрутов HTTP и HTTPS извне кластера к сервисам внутри кластера. Это обеспечивает единую точку входа в кластер, позволяет более просто управлять приложениями и устранять проблемы с маршрутизацией.

#devops #девопс

Подпишись 👉@i_DevOps
👍7👎1
Объясните, что такое диспетчер облачного контроллера.

Cloud Controller Manager позволяет связать кластер с API облачного провайдера. Cloud-controller manager позволяет поставщикам облачных услуг развиваться независимо от основного кода Kubernetes, абстрагируя специфичный код. Это позволяет поставщикам облачных услуг разрабатывать и поддерживать свой код независимо от основного кода Kubernetes.

Используя CCM, облачные операции, такие как создание и управление балансировщиками нагрузки, томами блочного хранения и облачными сетевыми ресурсами, могут выполняться бесперебойно в кластере Kubernetes. Это позволяет пользователям использовать преимущества как Kubernetes, так и облачного провайдера, сводя к минимуму потенциальные проблемы совместимости.

#devops #девопс

Подпишись 👉@i_DevOps
👍3
🚀 Kubernetes операторы: зачем они нужны?

Если ты когда-нибудь настраивал stateful сервисы в Kubernetes (Postgres, Kafka, Elasticsearch и т.д.), то знаешь: манифесты Deployment/StatefulSet сами по себе редко закрывают все потребности. Нужен кто-то, кто будет следить за жизненным циклом приложения: бэкапы, апгрейды, реплики, восстановление.

Вот тут и появляются Operators.

Оператор — это контроллер, который расширяет Kubernetes API и умеет управлять сложными приложениями как «живым организмом». По сути, он кодирует опыт SRE/админа внутри кластера.

Как это работает?

1. Создаётся CustomResourceDefinition (CRD) - новый объект в Kubernetes (например, PostgresCluster).
2. Пишется контроллер, который следит за этим объектом и выполняет нужные действия (инициализация БД, настройка реплик, обновления).
3. Ты как DevOps просто применяешь YAML с описанием кластера, а оператор сам делает всю грязную работу.

Примеры операторов

Zalando Postgres Operator — управляет кластерами PostgreSQL.
Strimzi - Kafka в Kubernetes.
Prometheus Operator - автоматизация деплоя Prometheus + Alertmanager.

Почему это круто?

-Снижается рутина → не нужно писать километры bash-скриптов.
-Упрощается управление → вместо «кучи манифестов» ты работаешь с одним объектом.
-Автоматизация best practices → разработчики операторов уже заложили правильные сценарии.


#devops #девопс

Подпишись 👉@i_DevOps
👍74
Container and image vocabulary

Визуализация и простое объяснение основных терминов в области контейнеризации.

https://dev.to/zdybit/container-and-image-vocabulary-123k

#devops #девопс

Подпишись 👉@i_DevOps
👍3
CI/CD — это больше, чем модный термин. Это практики, которые экономят время команды, уменьшают количество ошибок и помогают релизить быстрее.

Но как правильно построить pipeline, чтобы он не стал источником проблем? Какие шаги в workflow действительно обязательны, а какие тормозят процесс? На открытом уроке разберём реальные кейсы и покажем CI/CD на практике.

Вы увидите полный цикл — от сборки до доставки веб-приложения, узнаете о ключевых ролях DevOps в процессе и разберётесь в лучших практиках. После этого вы сможете грамотно выстроить CI/CD под задачи своей команды.

Присоединяйтесь 2 сентября в 20:00 МСК, урок проходит в преддверие старта курса «GitOps», все участники получат скидку на обучение: https://vk.cc/cP1V7r

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
🚀 Kubernetes операторы — зачем они нужны?

В Kubernetes мы привыкли описывать всё декларативно: деплойменты, сервисы, ингрессы. Но когда дело доходит до сложных систем вроде баз данных, кластеров Kafka или Redis, обычных манифестов уже не хватает.

Тут на сцену выходят операторы 👷‍♂️

👉 Оператор — это контроллер, который следит за кастомным ресурсом (CRD) и автоматизирует рутинные задачи:

- создание и удаление объектов;
- бэкапы и восстановление;
- апгрейды без даунтайма;
- масштабирование и самовосстановление.

📌 Пример:
Вместо того чтобы руками поднимать PostgreSQL, писать StatefulSet и конфиги - достаточно создать PostgresCluster CRD. Оператор сам раскатит БД, настроит реплики, PVC и даже сделает бэкап.

💡 По сути, оператор - это "человек-админ в коде". Он знает, как управлять приложением и делает это автоматически в стиле GitOps.

#devops #девопс

Подпишись 👉@i_DevOps
3
Наглядное руководство по туннелированию SSH и переадресации портов

Если говорить коротко, то я жалею, что не знал о пробросе портов и туннелировании раньше. В этой статье я пытаюсь лучше понять это и поделиться с вами некоторым опытом и советами.
Темы: сценарии использования, конфигурация, SSH jumphosts, локальная/удаленная/динамическая переадресация портов и ограничения

https://ittavern.com/visual-guide-to-ssh-tunneling-and-port-forwarding/

#devops #девопс

Подпишись 👉@i_DevOps
👍6🔥21
Чем отличается StatefulSet от Deployment?

Deployment — ресурс Kubernetes предназнваенный для развертывания приложения без сохранения состояния. При использовании PVC все реплики будут использовать один и тот же том, и ни один из них не будет иметь собственного состояния.

StatefulSet — поддерживают состояние приложений за пределами жизненного цикла отдельных модулей pod, например для хранилища. Используется для приложений с отслеживанием состояния, каждая реплика модуля будет иметь собственное состояние и будет использовать свой собственный том.

#devops #девопс

Подпишись 👉@i_DevOps
👍4
🔥 Открытый урок «Архитектура развертывания GitLab: от тестовой среды до продакшна».

🗓 10 сентября в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «CI/CD на основе GitLab».

🎯 На вебинаре разберем:

✔️ Как выбрать способ развертывания GitLab: Omnibus, Docker, Kubernetes
✔️ Рекомендации по архитектуре для разных масштабов: от одиночного сервера до распределённой инсталляции
✔️ Сравнение плюсов и минусов подходов: простота, отказоустойчивость, масштабируемость
✔️ Типичные проблемы при развёртывании и как их избежать

👥 Кому будет интересно:
- Начинающим DevOps-инженерам — вы получите базовое понимание архитектуры GitLab и научитесь разворачивать его под разные задачи
- DevOps-практикам, которые уже используют GitLab и хотят повысить стабильность и отказоустойчивость
- Инженерам по внедрению CI/CD, которым важно понять, как масштабировать GitLab в корпоративной среде

🎯 Что вы получите:
- Понимание, как развернуть GitLab оптимально под свои задачи
- Понимание, как правильно выбрать среду (Docker vs Kubernetes) для развёртывания
- Практические советы по стабильности, резервированию и отказоустойчивости GitLab-инсталляций

🔗 Ссылка на регистрацию: https://vk.cc/cPbfkb

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
Реагирование на инциденты ИБ в Linux-системах: база

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

https://habr.com/ru/companies/first/articles/843126/

#devops #девопс

Подпишись 👉@i_DevOps
👍3