Обновить
292.77

DevOps *

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

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

$20 в месяц на Cursor. Куда уходят токены и что с этим можно сделать

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

У меня небольшой бюджет на AI-ассистент — $20 в месяц. Хватает, но только если понимаешь как работает тарификация. Я потратил время чтобы разобраться что именно ест токены, и написал framework который пытается решить эти проблемы. Расскажу про оба.

Читать далее

Новости

CDC Consumer с криптографической подписью: от Kafka до Hive

Время на прочтение14 мин
Охват и читатели6.5K

Шестая статья цикла о построении CDC-пайплайна с нуля. Данные уже текут из PostgreSQL в Kafka, но дальше просто исчезают по retention. Сегодня пишем Consumer на Python, реализуем криптографическую верификацию сообщений и строим трёхслойную архитектуру данных.

Читать далее

mise — утилита, необходимая каждому разработчику и в каждом проекте

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели9.9K

Утилита mise (полное название MISE-EN-PLACE) настраивает необходимое для разработки окружение:

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

Для проектов это аналогичный набор инструментов (специфичных для этого проекта версий, одинаковых у всех разработчиков и на CI) плюс конфигурация (переменные окружения/зашифрованные секреты для конкретного dev/staging/prod/… окружения плюс локальные отличия) плюс задачи (скрипты) для сборки/тестирования/деплоя/….

Я использую mise примерно полтора года, постепенно перевожу на неё все свои проекты, и мне однозначно нравится результат! Дальше я опишу свои впечатления от использования mise, но, в общем и целом, всё необходимое есть в официальной доке.

Читать далее

Мониторинг, который не бесит: почему мы перестали использовать Uptime Kuma и написали свой SaaS с поддержкой UDP/ICMP

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

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

Это история о том, как желание просто проверить, жив ли мой блог, привело к трём дням танцев с бубном вокруг SSL-сертификата, а затем — к созданию собственного сервиса мониторинга, который теперь используют сотни разработчиков. Расскажу, почему существующие решения перестали устраивать, как мы реализовали поддержку UDP и ICMP в облаке и почему мониторинг должен быть «скучным».

Читать далее

Умный выбор домена: MCP-Server + Cursor. Как я перестал перебирать занятые имена

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

Вчера я запустил шуточный сервис, который неожиданно собрал трафик, и решил выходить на глобальный рынок. Но при поиске .com домена столкнулся с классической болью: LLM генерируют красивые, но занятые варианты.

Проверять каждый вручную — мучение. Я нашел элегантное решение: связал Cursor IDE и свой MCP-сервер для проверки WHOIS. Теперь агент сам предлагает и сразу проверяет доступность доменов. В статье делюсь конфигом и показываю, как это настроить за 5 минут.

Настроить Cursor

Надоел Celery? Не нужен K8s? Как мы сделали легковесный оркестратор на Python

Время на прочтение4 мин
Охват и читатели8.2K

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

Если вы когда-нибудь сталкивались с задачей запуска сотен изолированных фоновых процессов на одном сервере (будь то парсеры для клиентов, торговые боты или обработчики данных в SaaS), то вы знаете, как быстро всё усложняется.

Можно, конечно, вручную поднимать Docker-контейнеры и писать костыли для мониторинга. Можно развернуть полноценный Kubernetes, но для одной ноды это часто — оверкилл, требующий отдельного администратора. Можно использовать Celery, но он управляет задачами, а не контейнерами, и изоляция на уровне процессов — это не тоже самое, что изоляция на уровне контейнеров.

Мы столкнулись с этой болью и написали инструмент, который закрывает этот пробел. Встречайте: RedTailFox — легковесный оркестратор на Python, который управляет Docker-контейнерами с вашими воркерами на одном сервере. Он сам решает, когда поднять новый контейнер, сам следит за здоровьем слотов и сам себя чинит.

Читать далее

Когда стойка умирает, а 5xx остаётся нулевым. Разбор скрытой деградации PostgreSQL

Уровень сложностиСложный
Время на прочтение4 мин
Охват и читатели7.8K

09:12 — db-replica-02 connection timeout

HTTP 5xx = 0.2%
HAProxy зелёный
p50 = 38-42ms

Replica в другой стойке недоступна
Отказоустойчивость потеряна
Инцидент не объявлен

Читать разбор

Агентская амнезия: как я решил эту проблему на Go

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

Недавно наткнулся на статью про Echovault на Хабре — инструмент для памяти AI-агентов, написанный на Python. Автор описывал ровно ту же боль, что и я испытывал месяцами. Идея хорошая, реализация — рабочая. Но Python. Я ничего не имею против языка, просто не мой выбор для инструментов, которыми пользуюсь каждый день. Люблю скомпилированные бинарники: кинул файл — и работает, без virtualenv, без pip, без «а какая у тебя версия питона». Поэтому я взял идею и переписал её с нуля на Go. Получился Pantry.

Расскажу, зачем это вообще нужно и что внутри.

Читать далее

Как мы проводим IT-аудит: живой кейс, инженерный подход и надежность без фанатизма

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели4.7K

Привет, меня зовут Станислав Пьянов, я DevOps-техлид в KTS.

За годы работы мы сформировали свою практику для аудита инфраструктуры. Мы не придумали для нее громкого цепляющего названия, но это не мешает ей приносить пользу. Она стабильно помогает нам выявлять и устранять недостатки в «подкапотном пространстве» совершенно разных бизнесов.

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

Читать далее

Гайд-лонгрид: Как правильно читать User-Agent

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

Всем привет! 👋

Запускаю серию постов по техничке антифрода — для подписчиков и всех, кто копает в сторону фрода

Разберём ежедневку: User-Agent, куки, хедеры, отпечатки устройств, IP и другие “невидимые” детали, которые отличают честных юзеров от мошенников

Начнём с базового, но ключевого — User-Agent. Покажу, что это и как его едят

Что такое User-Agent и зачем он нужен

User-Agent (UA) — это текстовая строка, которую браузер автоматически отправляет серверу при каждом запросе. Это как "визитка" браузера: сервер смотрит на неё и понимает, с какого устройства и браузера зашёл пользователь

Зачем это антифроду: — Мошенники часто подделывают UA, чтобы притвориться обычным пользователем с мобилки, когда на самом деле сидят с ПК через эмулятор — Если UA меняется между сессиями у одного пользователя — это красный флаг — Несовместимые комбинации (например, Windows + iPhone Safari) выдают фрод

Структура User-Agent: разбираем по кусочкам

Берём реальный пример:

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36

Выглядит страшно, но на самом деле тут всего 5 частей. Разберём каждую из них

Часть 1: Mozilla/5.0

Это исторический префикс, который есть у всех современных браузеров — Chrome, Edge, Firefox, Safari, Opera и т.д.

В 90-х годах браузер Netscape назывался "Mozilla", и сайты проверяли эту строку, чтобы понять, что это современный браузер. Когда появились другие браузеры, они тоже начали писать "Mozilla/5.0", чтобы сайты их не отсекали как старые

Читать далее

Отказоустойчивый кластер виртуализации KVM на Astra Linux

Уровень сложностиСредний
Время на прочтение24 мин
Охват и читатели9.5K

Импортозамещение, уход вендоров, требования регуляторов, безопасность — причин переезжать с продуктов Microsoft и VMware сегодня хватает.
Но важно, чтобы это было осознанное инженерное решение, а не реакция по принципу «лишь бы уйти». Тем более что далеко не всегда есть смысл переплачивать за продукт, который для вашей инфраструктуры избыточен.

В статье разбираю, как собрать отказоустойчивую виртуализацию на базе Astra Linux:
DRBD + GFS2 + Pacemaker против Ceph.

Отказоустойчивый кластер KVM на Астре

6 инструментов для параллельного Claude Code: тестирую всё, чтобы вам не пришлось

Уровень сложностиСложный
Время на прочтение12 мин
Охват и читатели7.1K

Conductor, Crystal, Auto-Claude, Claude Squad, CCManager и Cursor 2.0 — честное сравнение с плюсами, минусами и рекомендациями по сценариям.

Читать далее

Книга: «Terraform: лучшие практики. Подготовка, запуск и масштабирование облачной архитектуры на реальных примерах»

Время на прочтение3 мин
Охват и читатели6.2K

Привет, Хаброжители! С появлением Terraform, замечательного инструмента управления инфраструктурой как кодом (IaC), язык конфигурирования HashiCorp (HCL) изменил подход к определению и формированию инфраструктуры центров обработки данных.

Обновленное издание включает практические примеры развертывания инфраструктуры Azure, AWS и GCP с помощью Terraform. Углубитесь в изучение ручных и автоматизированных подходов к тестированию конфигураций Terraform и познакомьтесь с приемами создания сбалансированной, эффективной и универсальной инфраструктуры и управления ею с помощью модулей Terraform. Вы узнаете, как автоматизировать развертывание конфигурации Terraform с помощью непрерывной интеграции и непрерывной поставки (CI/CD).

Читать далее

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

Многогранный мониторинг Angie — продолжение истории

Уровень сложностиПростой
Время на прочтение18 мин
Охват и читатели9.3K

Многогранный мониторинг Angie - продолжение истории

 Мы привыкли, что веб-сервер - это чёрный ящик, который просто гонит трафик. Стандартные метрики Angie представлены широким спектром. Но что, если нам надо еще больше? Что если, прямо на уровне сервера, без изменения кода приложения, можно в реальном времени видеть, что именно клиенты добавляют в корзину, строить гистограммы времени ответа бэкендов, или подсчитать буквально что угодно и делать это с производительностью атомарных операций в памяти? Сегодня разбираем мощнейший модуль metric в Angie.

Читать далее

OVN в OpenStack: реализация Metadata API

Уровень сложностиСложный
Время на прочтение7 мин
Охват и читатели4.5K

Привет, Хабр! На связи Кирилл Савин, я — архитектор SDN в Рег.облаке. Мы уже подробно разбирали, как устроен OVN в связке с OpenStack, — в статье «OVN под капотом: как построить сеть в OpenStack». А затем показали, как трассировать пакеты в OVN и анализировать поведение трафика.

В этом материале продолжаем тему интеграции OVN с OpenStack и разбираем более узкий, но важный сценарий — работу Metadata API при использовании OVN в качестве backend для Neutron. Речь пойдет уже не столько о маршрутизации пакетов, сколько о служебной логике поверх сетевой плоскости и особенностях ее реализации в модели OVN.

Читать далее

Полгода на включение: как мы построили онбординг в команде не по инструкции. Часть 2: геймификация, бадди и адаптация

Время на прочтение12 мин
Охват и читатели4.6K

На связи — Катя Лысенко и вторая часть статьи о системе онбординга новых людей в команду. Здесь поговорим о маршруте, ролях и последовательности в управлении адаптацией. Освежить в памяти материал вы можете по ссылке на первую часть.

В структуре онбординга, которую мы внедрили, получилось три ключевых части:

Геймификация — всё, что происходит до выхода, плюс квесты первых дней и встречи.

План онбординга — подробный маршрут, направляющий новичка через обучение, знакомства и задачи.

Self-Assessment — регулярная точка саморефлексии, через которую новичок понимает, куда движется и что с ним происходит.

Как это было?

Читать далее

Я заменил Google на 50 строк Python. Через месяц я забыл, как пишется tar -xzf

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели68K

Десять лет в девопсе. Десять. И я гуглю tar -xzf. Не раз в год — раз в неделю. Ну, может раз в десять дней, если повезёт. Открываю хром, набираю «tar extract gz linux», пролистываю три рекламы, нахожу ответ на SO, копирую, вставляю, закрываю вкладку. Через неделю — по новой.

Я не идиот. Точнее, может и идиот, но не поэтому. Просто tar — это такой синтаксис, который у меня физически отказывается залезать в долговременную память. Там дефис или нет? xzf или xfz? Или zxf? Вроде порядок не важен? Или важен?..

Короче. Месяц назад я написал скрипт, который это решил. А потом скрипт решил больше, чем я хотел.

Читать далее

Я пришёл в программирование из логистики. И в итоге начал строить систему по проверке кода

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели8.5K

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

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

Нюанс какой: я зашёл «с места в карьер», как будто все уже знают, кто я, откуда и почему я так пишу и так думаю. А по факту — нет, конечно. Поэтому этот пост — «паспорт»: кто я, откуда выросла идея, почему я вообще полез в код, почему у меня агенты, почему «завод», и что я могу обсуждать с инженерами предметно (а что — не могу и не буду, потому что там секреты/безопасность/коммерческое ядро).

Сразу честно: я не классический инженер. Я могу где‑то не знать «ритуальную формулировку» термина или перепутать модное слово. Но я фанат причинности: если система говорит «работает» — она должна уметь это доказать. Всё остальное — разговоры.

Читать далее

Архитектура Laravel для продакшена: Traefik + FrankenPHP

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

Laravel может быть быстрым, но классическая модель PHP с полным bootstrap на каждый запрос быстро упирается в потолок. В статье разбирается практическая схема продакшен-развёртывания Laravel Octane на FrankenPHP с Docker Compose и Traefik: разделение web и воркеров, multi-stage сборка, healthcheck’и и автоматизированный деплой. Это цельный пример того, как может выглядеть современная Laravel-инфраструктура вне локальной среды.

Читать далее

Интеграция iiko и WFM: автоматизация расписания под почасовые продажи

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели4.9K

В этой статье разберем, как данные iiko становятся входом для WFM TARGControl: как забирать из POS почасовую выручку и количество чеков, превращать их во временные ряды, использовать для прогноза нагрузки и дальше — для планирования смен и аналитики.

Прежде чем перейти к API и эндпоинтам, ответим на вопрос «зачем вообще тащить POS в планирование». В HoReCa расписание проверяется не отчетом в конце недели, а кассой и залом в ближайшие 1–2 часа: спрос распределен неравномерно по времени, каналам (зал/доставка/навынос) и дням недели. Поэтому устойчивое планирование начинается не с «графика в таблице», а с измеримых драйверов спроса, которые можно регулярно обновлять автоматически.

Читать далее
1
23 ...