Как стать автором
Поиск
Написать публикацию
Обновить
279.48

DevOps *

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

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

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

При работе с кластерами 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.6K

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

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

Читать далее

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

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

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

Читать далее

Основы по GNU Make

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

Вперёд!

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

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

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

Читать далее

Домашняя серверная для DevOps: установка GitLab + Let's Encrypt

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

Привет! Это Александр, DevOps инженер команд Страхования в Банки.ру. Продолжаю серию статей про домашний сервер. В прошлых материалах я рассказал о выборе железа, сборке и настройке NAS и серверов для дома. В этой и последующих статьях опишу установку нужного софта в домашнюю серверную. Для этого вам, возможно, понадобится VPN на виртуальных машинах или на уровне всей домашней сети (у меня второй вариант).

Начать я бы хотел с установки GitLab. На данный момент у меня достаточно ресурсов, чтобы хостить GitLab и другие сервисы, которые использует DevOps-инженер. Но для чего мне нужен GitLab? Тут всё очень просто: в своей работе я использую подход Infrastructure as Code (IaC) — инфраструктура как код. При таком методе конфигурация инфраструктуры описана в файлах в репозитории, который хранит историю изменений.

В итоге из хранилища можно как развернуть нужный софт за считаные минуты, так и вспомнить,  что мы коммитили в репозиторий. GitLab требованиям этого подхода отвечает. К тому же у платформы широкий функционал, который понадобится мне в будущем (CI/CD, например, или хранение terrafrom state в самом GitLab).

Читать далее

BookStack: мой опыт настройки и использования open-source базы знаний

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

Как я поднял базу знаний за 15 минут — без бюджета и опыта

Почему я выбрал именно BookStack

Мы в команде давно искали удобный инструмент для хранения технической документации и инструкций. Пробовали всё подряд — от Wiki.js до Confluence. Но то санкции, то интерфейс перегружен, то кастомизация страдает. В какой-то момент я наткнулся на BookStack — лёгкую, симпатичную open-source платформу на Laravel. Решил попробовать. В итоге — развернул, настроил, и теперь она у нас в проде.

Читать далее

Разворачивание инфраструктуры OpenCTF для AppSecFest 2025

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

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

Мы выступали как организаторы и отвечали за определенные зоны. С нашей стороны мы подготовили несколько различных активностей в виде квизов, шахмат и конкурсов где вы могли зарабатывать коины для приобретения лимитированного мерча в торговой лавке AppSecFest.

Но также нами была организована CTF зона, где каждый мог почувствовать себя в роли кибербезопасника и испытать свои силы в более чем 30 подготовленных заданиях по различным разделам.(Web, Crypto, Revers Engeneering, Osint, Mobile Security)

Для разворачивания полноценной инфраструктуры, мы решили выбрать облачную платформу Ps Cloud Services. По итогу не пожалев о выборе, стабильность работы нашей инфраструктуры была хороша :-)

Далее хотелось бы также поделиться, тем как мы настраивали и что использовали для полноценной работы сервисов, начиная от настройки VPN заканчивая система защиты.

Читать далее

Как настроить автоматическое обновление SSL-сертификатов Let’s Encrypt с помощью Certbot на Ubuntu

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

Пошаговое руководство по автоматической генерации и обновлению SSL-сертификатов на Ubuntu с помощью Let’s Encrypt и Certbot. Примеры, cron-задачи, systemd-таймеры и кастомные bash-скрипты — всё, что нужно для бесперебойной работы HTTPS.

Читать далее

Атрибуты Хорошего Loader-a

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

В программировании микроконтроллеров периодически приходится писать клиентские PC программы для загрузки *.hex файлов в микроконтроллер через загрузчик.

Обычно в названии этих утилит присутствует слово loader.

В этом тексте я попробовал порассуждать на тему того, каким же атрибутами должна обладать эта самая утилита FW_Loader.

Читать далее

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