Обновить
389.04

DevOps *

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

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

Монорепозитории на GitLab: rules:changes, условные include и «тонкое» клонирование

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

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

Монорепозитории удобны, пока CI не начинает пробегаться по всему дереву. Сегодня рассмотрим, как на GitLab собрать внятный pipeline для монорепы так, чтобы на каждое изменение реагировали только нужные куски. Базовых кирпичиков тут три: rules:changes, условные include и тонкое клонирование репозитория.

Читать далее

Взлом через картинку в Apple: уроки громкой уязвимости для разработчиков

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

Мир устроен так, что самые опасные угрозы обычно скрываются там, где их меньше всего ожидают. Мы в ИБ привыкли к фишинговым письмам и вирусам, но редко думаем, что обычная картинка в мессенджере может превратиться в инструмент шпионажа. Именно поэтому мы решили рассказать о громкой уязвимости PT-2025-34177 (CVE-2025-43300) – zero-day, которая, говоря простыми словами, позволяет злоумышленнику совершить атаку через вредоносную картинку, открытую пользователем на своем устройстве. И на этом примере показать, почему безопасность разработки — это не абстрактная теория, а жизненно важная практика для бизнеса, разработчиков, обычных пользователей и нас самих. Да-да, мошенники пишут даже сотрудникам службы ИБ, и картинки тоже отправляют.

Читать далее

Развитие Ansible: от фантастического устройства до зрелой экосистемы управления ИТ-инфраструктурой

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

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

Мы разберем современный инструментарий Ansible — от Execution Environments и Ansible Navigator до Event Driven Ansible и AWX. Вы узнаете, как эти компоненты превращают Ansible в полноценную платформу автоматизации, готовую справляться как с задачами небольших команд, так и с вызовами крупных компаний. А для начала немного истории, ведь название Ansible пришло к нам прямиком из научной фантастики...

Читать далее

Когда дело не в коде: как мы ловили мистические пропажи запросов на сетевом уровне

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

Привет, меня зовут Анатолий, я ведущий разработчик в ITFB Group. У нас высоконагруженный сервис торговых операций. И раз в неделю, как по расписанию, раздавался панический звонок: «Опять пропали запросы!». Мы неслись смотреть логи — а там... ничего. Ни ошибок, ни падений. Никаких пятисотых, только стабильные двухсотые. Стенды dev и prod молчали, как рыбы. Запросы загадочным образом появлялись через некоторое время, и всё работало, пока история не повторялась снова. Это был не баг, это был призрак. Призрак в сети.

Сегодня я расскажу, как мы его поймали.

Читать далее

Хватит ли мне недорогой VPS? Сравниваем недорогие тарифные планы HOSTKEY по конфигурациям, мощностями и применимости

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

Стоит ли экономить на VPS или лучше взять тариф с запасом? Мы протестировали три недорогих конфигурации HOSTKEY и наглядно показали, для каких задач хватит минимального тарифа, а где разумнее сразу инвестировать в более мощный сервер.

Читать далее

Не пора ли подумать о переходе на IP v6?

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

Протокол IP v6 существует уже довольно давно. С тех пор как перспектива полного исчерпания адресов в IP v4 стала очевидной, поддержка шестой версии стала появляться в различных операционных системах и сетевом оборудовании. Однако на практике до сих пор внедрение данного протокола можно встретить довольно редко.

В этой статье мы начнем рассматривать работу с протоколом IP v6 и поговорим о преимуществах данной версии, а также рассмотрим типы адресации.

Читать далее

Развивать или выпиливать легаси: где грань?

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

Дисклеймер: сказанное ниже относится к ситуации, когда в компании нет отдела (или хотя бы архитектора), который занимается созданием и развитием внутренних технологий и продукты компании тоже не являются инфраструктурными технологиями.

Я много лет занимался тех. консалтингом и работал архитектором в компаниях с кучей внутренних команд со своими проектами и один из самых частых вопросов:

Читать далее

Развертывание кластера Kubernetes с помощью Cluster API + Proxmox VE провайдер на Orange Pi 5 Plus (ARM64)

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

Можно ли запустить Kubernetes с Cluster API на Proxmox прямо на Orange Pi 5 Plus? Да, и это отличный способ собрать домашнюю лабораторию. В этой статье я описал как развернул Kubernetes-кластер с помощью Cluster API на Proxmox, установленном на Orange Pi 5 Plus ARM64 и получил компактное, но мощное решение для домашнего k8s-стенда

Читать далее

Shift-Left тестирование с Testcontainers: ловим баги на ранних этапах локальными интеграционными тестами

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

Баги, пойманные на проде, всегда стоят слишком дорого — и времени, и нервов, и репутации. Юнит-тесты не видят проблем с реальными зависимостями, моки быстро устаревают, а интеграционные среды тормозят разработку. Выход ищут в подходе shift-left: проверять критичную бизнес-логику раньше, прямо в IDE, без ожидания CI. В этой статье разберём, как библиотека Testcontainers позволяет поднимать реальные сервисы в контейнерах, писать интеграционные тесты так же просто, как юнит-тесты, и что это даёт с точки зрения скорости и качества по метрикам DORA.

Читать далее

Как мы решили проблему хаотичной структуры проекта с Pug и Vite

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

Привет, я Андрей Беннер, фронтенд-разработчик в Mish. Сейчас я расскажу вам о нашем опыте в оптимизации хаотичных процессов с помощью собственных разработок.

Если вы когда-либо работали с проектами на стеке Vite + Pug + SCSS + TypeScript, то наверняка сталкивались с хаосом в файловой структуре и рутиной, мешающей сосредоточиться на главном — решении задач бизнеса и создании удобного интерфейса для пользователя.

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

Читать далее

Ivory — удобный инструмент для работы с кластерами PostgreSQL

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

Ivory — это бесплатный open-source инструмент с веб-интерфейсом, созданный для управления кластерами PostgreSQL, которые работают под контролем Patroni. Если раньше для таких задач приходилось использовать командную строку или Patroni API, то с Ivory всё можно делать через удобный браузерный интерфейс.

Цель проекта — упростить жизнь администраторам баз данных (DBA) и разработчикам:

Читать далее

Обратная совместимость в Java-мире

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

Это текстовая версия доклада с Java Rock Star Meetup, с которым выступал Владимир Ситников (@vladimirsitnikov) — performance engineer, PgJDBC и JMeter committer, а также член программных комитетов JPoint, Joker, Heisenbug, DevOops и SmartDara. Если вы больше любите смотреть видео, то смотрите запись доклада на YouTube или VK Видео.

От приложения мы хотим стабильности и предсказуемости. Мы хотим, чтобы приложение было одинаковым. Эта предсказуемость и обратная совместимость являются эдакой священной коровой, которая движет Java вперёд, возможно, движет назад и, возможно, по некоторым сведениям, из-за этого Java и умрёт.

Однако 30 лет Java прожила. Давайте посмотрим, как это всё было и что было в начале.

Читать далее

Google меняет правила игры: верификация разработчиков и ограничения APK в Android

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

Google анонсировал радикальные изменения в экосистеме Android, которые затронут процесс установки приложений из сторонних источников. Новая система верификации разработчиков может перевернуть привычный подход к sideload'у APK-файлов. Давайте разберёмся, что это значит для пользователей, разработчиков и всей экосистемы Android.

Что меняется?

Согласно новости от iXBT, Google вводит обязательную верификацию разработчиков для установки APK на сертифицированных устройствах Android (то есть на большинстве смартфонов и планшетов с Google Play Services). Теперь приложения, загружаемые не из Play Store, должны быть подписаны ключами разработчиков, прошедших проверку личности через новую консоль Android Developer. Это не проверка кода на вредоносность, а именно идентификация автора приложения.

Читать далее

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

Как подружить Bitwarden CLI с пайплайном деплоя

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

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

Решение — Bitwarden Secrets Manager + CLI. Централизованно храним ключи, раздаём доступ выборочно и автоматически подтягиваем их при деплое. В статье покажу, как настроить всё с Docker, NestJS, Vite и Coolify, чтобы деплой стал безопасным и удобным.

Читать далее

Clickhouse / zookeeper. Развертывание

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

Всем привет!

В этой статье мы разберём, как развернуть кластер ClickHouse с использованием ZooKeeper для обеспечения репликации и отказоустойчивости. Я покажу пошаговую настройку сервисов, объясню, зачем ZooKeeper нужен ClickHouse, какие порты и конфигурации используются, а также поделюсь практическими советами по работе в Kubernetes.

Читать далее

Тихий герой воскресного утра: как bash-скрипт спас нас от OOM Killer

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

Привет, Хабр! Статья не входила в планы, пишу с чувством лёгкой сюрреалистичности. В воскресенье утром наш основной API-гейтвей пережил маленькую апокалиптическую битву с памятью и выиграл без моего участия. Делюсь с Вами, как небольшой скрипт, на который я не полагал абсолютно никаких надежд, отработал аварию.

Читать далее

Автомасштабируем узлы кластера Kubernetes. Часть 1

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

Автомасштабирование узлов кластера Kubernetes и горизонтальное масштабирование подов позволяют быстро расширить ресурсы при пиковых нагрузках. Но сложные приложения могут не нагружать поды или узлы максимально, но требовать дополнительных ресурсов, например, для параллельной обработки нескольких объектов в очереди. Триггером масштабирования кластера может быть не утилизация, а события от внешних систем — например, очереди сообщений Kafka, системы мониторинга Prometheus или от платформы CI/CD.

Всем привет! Меня зовут Илья Смирнов, я архитектор решений в Cloud.ru. Расскажу, как лучше справляться с пиковыми нагрузками, если вы развернули свое приложение в кластере Kubernetes. Вместе запустим такое демо-приложение и посмотрим, как с ним работают классические подходы автомасштабирования — в этой части, а затем попробуем масштабировать кластер по событиям с помощью KEDA (Kubernetes-based Event Driven Autoscaler) — в следующей. Не пропустите!

Читать далее

Как не потерять свои контейнеры у себя в инфраструктуре?

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

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

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

Читать далее

Allure + Jenkins/Gitlab CI. Настройка автоматической отправки отчетов по почте

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

Автоматизированное тестирование – важная часть разработки, но недостаточно просто запускать тесты. Важно предоставлять отчёты в удобном и наглядном формате, чтобы повышать прозрачность процессов и улучшать командную коммуникацию.

Но отчёты сами по себе малоэффективны, если команда не узнает о результатах вовремя. Чтобы тестирование было действительно полезным, важно оперативно уведомлять участников проекта о его статусе. Один из самых простых и эффективных способов – автоматическая отправка отчетов Allure по электронной почте.

Привет! Я SDET-специалист SimbirSoft Руслан, и в этой статье мы разберем как настроить SMTP-сервер для отправки почты в Jenkins, как настроить GitLab Runner и как автоматизировать отправку отчетов после выполнения тестов.

Читать далее

Observability в мире Интернета вещей

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

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

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

Читать далее

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