Обновить
355.14

DevOps *

Методология разработки программного обеспечения

Сначала показывать
Порог рейтинга
Уровень сложности

DHCP-сервер облачной сети MWS. Как мы одинаковые адреса на разные виртуалки раздаём

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров3.1K

Привет! При построении overlay-сети MWS Cloud Platform мы столкнулись с задачей: автоматически раздавать сетевые настройки виртуальным машинам на основе VRF — с полной изоляцией и без конфликтов.

Меня зовут Никита Усатов, я занимаюсь разработкой сервисов облачной сети MWS Cloud Platform. В этой статье расскажу, как устроена наша сеть, зачем понадобился DHCP-сервер с поддержкой VRF, как через VPP реализован DHCP Proxy с Option 82, и какие изменения мы внесли в CoreDHCP. Покажу, как передаются настройки от Control Plane к Data Plane, и как CoreDHCP отслеживает конфигурации без перезапуска. В конце — реальные кейсы отладки и мониторинга.

Читать далее

tenv — универсальный менеджер версий для Terraform-стека

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров1.6K

Когда в 2023 году появился OpenTofu, его моментально подхватило сообщество: идея полностью открытой альтернативы Terraform на тот момент выглядела свежо и многообещающе. Многие захотели попробовать его в деле — но очень быстро столкнулись с типичной проблемой: а как безболезненно переключаться между OpenTofu и Terraform? 

На первый взгляд всё казалось простым: установи два бинарника через любой пакетный менеджер — и готово. Но уже через пару месяцев активного развития OpenTofu, когда компании начали массово делать внутренние POC по миграции, стало очевидно: различий между OpenTofu и Terraform с каждой версией становится всё больше (часть из них хорошо видна, например, на cani.tf) и управлять разными версиями разных инструментов становиться все сложнее.

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

Читать далее

Миграция с legacy: как werf упростил переезд на Kubernetes и ускорил CI/CD

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров2.6K

Статья о том, как werf помог упростить переход на Kubernetes, ускорить CI/CD и решить проблемы с кэшированием. Автор поделился опытом внедрения, первыми шагами и преимуществами, которые получила его команда.

Читать далее

Как построить инфраструктуру, которая не подведет: главное с митапа по отказоустойчивости

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров1.3K

23 апреля на OMNI Infrastructure Meetup эксперты из Авито, Магнит OMNI, Лаборатории Касперского и Cloud.ru обсудили, как создавать системы, устойчивые к любым сбоям. Рассказываем о самых важных инсайтах.

В московском офисе Магнита и онлайн собрались DevOps-инженеры, платформенные специалисты и разработчики, чтобы разобрать реальные кейсы повышения отказоустойчивости. Гибридный формат позволил присоединиться участникам из разных городов — дискуссия получилась по-настоящему живой.

Делимся видео и презентациями докладов.

Читать далее

От контейнеров до кода: инструменты для поиска уязвимостей на все случаи

Уровень сложностиПростой
Время на прочтение15 мин
Количество просмотров7.6K

Всем привет

Меня зовут Сергей. Работаю в небольшой компании. Помимо прочих обязанностей, также анализирую код и docker-образы, написанные нашими разработчиками, на предмет различных уязвимостей. В этой статье хотел бы поделиться нашими подходами и open-source инструментами, которыми я использую в своей работе.

Быть может кто-то найдет что-то полезное или новое для себя.

Найти что-то полезное или новое для себя

Опыт внедрения Multus CNI в MWS

Уровень сложностиСредний
Время на прочтение20 мин
Количество просмотров1.9K

Привет, Хабр! Меня зовут Глеб Когтев, я руководитель команды VPC Host Components, которая занимается разработкой виртуальной облачной сети для MWS Cloud Platform. C этой статьёй мне помогал Юрий Кондратов — SRE в команде Kubernetes Operations, Research & Engineering (KORE). 

Сегодня поговорим об устройстве сети в Kubernetes-кластере, немного о нашем подходе к обеспечению связности сервисов и чем нам был полезен Multus CNI. Статья будет полезна тем, кто использует Kubernetes в своих задачах и хочет разобраться в устройстве сети, а ещё во взаимодействии компонентов K8s с контейнерами.

Читать далее

DLQ-first: учим Kafka-консьюмера падать красиво и поднимать поток за секунды

Время на прочтение5 мин
Количество просмотров4.3K

Привет, Хабр!

Сегодня рассмотрим, как построить Kafka-консьюмер, который не падёт при первой же проблеме, а аккуратно сложит битые события в Dead Letter Queue (DLQ).

Читать далее

Всегда используйте target_session_attrs=read-write (или primary) при подключении к кластеру PostgreSQL по FQDN в YC

Уровень сложностиСредний
Время на прочтение60 мин
Количество просмотров3.4K

При работе с кластерами PostgreSQL, особенно в конфигурациях с высокой доступностью (High Availability, HA), разработчики часто сталкиваются с ошибками типа "cannot execute INSERT in a read-only transaction". Эти ошибки возникают, когда приложение пытается выполнить операцию записи на узел, который в данный момент является репликой (read-only). Особенно остро эта проблема проявляется в моменты переключения мастера: пул соединений вашего приложения может все еще содержать коннекты к бывшему мастеру, ставшему репликой, или же балансировщик может направить новый запрос на запись к реплике.

К счастью, драйверы PostgreSQL предоставляют элегантное решение этой проблемы – параметр строки подключения target_session_attrs. В версии PostgreSQL 14 были добавлены новые значения для target_session_attrs: read-only, primary, standby и prefer-standby. Этот параметр позволяет указать, какого типа сессию ожидает ваше приложение. Наиболее полезным значением для приложений, выполняющих операции чтения и записи, является read-write. В этой статье мы подробно разберем, почему это так важно, продемонстрируем проблему на практике и покажем, как target_session_attrs=read-write спасает ситуацию. Использование target_session_attrs=primary, включая его специфические отличия от read-write, будет подробно рассмотрено далее в статье.

Читать далее

Хаос-инжиниринг — свежие научные работы и гайды

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров1.7K

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

Сегодня мы собрали статьи и научные работы, посвящённые фреймворкам и инструментам для хаос-инжиниринга. Рассказываем о решениях ChaosETH, ChaosEater, CHESS и паре других, предложенных специалистами ведущих исследовательских институтов и корпораций.

Читать далее

Опыт работы с Serverless-архитектурой для Telegram-бота на Vercel и Timeweb Cloud

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров2.9K

В последнее время активно занимаюсь разработкой Telegram-бота с использованием Serverless-подхода в Timeweb и Vercel сервисах.

Читать далее

Основы по GNU Make

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров8.4K

GNU Make - это консольная утилита, которая запускает другие консольные утилиты в желаемой последовательности согласно скрипту. Только и всего.

В этом тексте я показал, как можно организовать самостоятельно написанные make скрипты для микроконтроллерных проектов.

Читать далее

Распределённый инференс и шардирование LLM. Часть 3: настройка авторизации и интеграция с Open WebUI

Уровень сложностиСложный
Время на прочтение9 мин
Количество просмотров4.7K

Мы с вами подобрались к заключительной части статьи-инструкции об организации распределённого инференса и шардирования LLM в домашних условиях. Осталось совсем чуть-чуть — в финальной главе разберёмся, как развернуть Open WebUI через Helm и связать его с нашим Ray-кластером. Это даст возможность настроить авторизацию и удобный интерфейс для взаимодействия с нашей моделью.

В конце статьи попросим домашнюю LLM подвести итоги всей проделанной работы, а также поговорим о планах по развитию проекта.

Читать далее

Как запилить годную ролюху в Ansible

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров8.8K

В данной статье я попытаюсь структурировать все шишки полученные в рамках написания и эксплуатации ролей Ansible и рассказать о том как написать неплохую роль.

Преисполниться мудростью

Ближайшие события

Управление отставанием lag в Kafka Consumers: как не просто замерить, а стабилизировать

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров4K

Привет, Хабр!

Сегодня рассмотрим, почему отставание у Kafka-консьюмеров — это не просто строчка в kafka-consumer-groups, а метрика, от которой зависит SLA вашего сервиса. Рассмотрим, как её считать без самообмана, как соорудить собственный мониторинг на Python и Go, а главное — чем именно тушить всплески lag’а: throttle, autoscale и backpressure.

Читать далее

Интервью без стресса: как в Рунити нанимают DevOps-инженеров

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров3.3K

Привет, Хабр! Мы в Рунити верим, что собеседование — не гонка за правильными ответами, а диалог на равных. В этом интервью расскажем, как мы нанимаем DevOps-инженеров в команду. Внутри о том, что мы предлагаем кандидатам вместо стресс-интервью, замысловатых тестовых и бесконечных этапов отбора. От нас — внимание к глубине опыта и интерес к подходам кандидата. 

Эксперты Рунити — Анна Попова, рекрутмент-партнер, и Тимур Парфенов, директор департамента эксплуатации, поделятся тем, как мы оцениваем инженеров, на что смотрим в резюме и какие навыки стоит подсветить. Приятного «разворачивания» статьи! 

Читать далее

Моя попытка №2. Как мы тестировали совместимость платформы контейнеризации с Astra Linux

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров2.1K

В 2023 году мы впервые попытались запустить платформу dBrain.cloud на Astra Linux версии 1.7 Special Edition. Первая попытка оказалась неудачной.

Читать далее

Как Kubernetes управляет жизненным циклом подов

Уровень сложностиСредний
Время на прочтение25 мин
Количество просмотров6.2K

Работая DevOps-инженером, я не раз сталкивался с необходимостью тонко управлять поведением подов в Kubernetes. Эти минимальные единицы развёртывания — на первый взгляд, простые объекты — на самом деле являются ключевым элементом всей архитектуры. Они создаются, масштабируются, перезапускаются и удаляются в ответ на изменения состояния кластера и заданные политики.

Однако особенно важно понимать, что завершение работы пода — это очень нетривиальный процесс. Это не просто «удаление контейнера», а целая процедура, включающая в себя механизмы graceful shutdown, взаимодействие с контроллерами, корректную работу с сервисами и многое другое.

В этой статье я подробно расскажу, как устроен процесс завершения работы пода в Kubernetes, что происходит «под капотом», какие подводные камни могут возникнуть и как обеспечить корректное поведение приложений при завершении их работы.

Читать далее

Terraform уже не тот? Как Pulumi меняет правила игры в Infrastructure as Code

Время на прочтение6 мин
Количество просмотров5.7K

Привет, Хабр! Сегодня поговорим про инфраструктуру как код. Почему Terraform уже не единственный игрок в мире IaC, а Pulumi становится всё более актуальным. Я расскажу, как эти инструменты работают, чем отличаются, и почему стоит присмотреться к Pulumi, особенно, если вы хотите гибкости и мощи в управлении облаками.

Читать далее

Распределённый инференс и шардирование LLM. Часть 2: скрипт vLLM, Ray Serve для вывода API и настройка KubeRay Cluster

Уровень сложностиСложный
Время на прочтение14 мин
Количество просмотров6.9K

Продолжаем пошагово разбираться с ответом на вопрос о том, как эффективно работать с передовыми LLM, используя доступное оборудование и распределённые вычисления. 

В первой части статьи мы подготовили всё необходимое для развёртывания распределённого инференса с Ray Serve и vLLM. Сегодня этим и займёмся. Мы напишем скрипт vLLM, используем Ray Serve, чтобы предоставить внешний HTTP API, а также настроим KubeRay Cluster и развернём в нём Gemma 3.

Вперёд!

Kubernetes в продакшене: основные понятия и вопросы на собеседовании

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров10K

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

Читать далее

Вклад авторов