Search
Write a publication
Pull to refresh
175
1.1
Пацев Антон @chemtech

DevOps-инженер

Send message

Интеграция платформ через Keycloak: SSO и JWT в действии

Level of difficultyMedium
Reading time34 min
Views2.5K

В крупных компаниях с множеством платформ, например, интерфейсом интернет-магазина и системой обработки данных, часто требуется настроить доступ между системами через единый вход (SSO). Эта статья рассматривает задачу: обеспечить доступ из фронт-системы (reports-frontend) к API отчётов (reports-api) через Keycloak, чтобы JWT-токен содержал роль report_user. В контексте e-commerce это можно представить как интерфейс магазина, где менеджеры запрашивают отчёты о продажах, а Keycloak управляет аутентификацией.

Кому будет полезно?

Аналитики: Узнаете, как составлять заявки (например, в Jira) на настройку Keycloak, координировать с командами и проверять JWT в DevTools, чтобы избежать ошибок, таких как отсутствие роли в токене.

Разработчики: Познакомитесь с примером кода для React-фронтенда и Node.js-бэкенда, реализующим OIDC и PKCE.

Архитекторы: Поймёте, как Keycloak поддерживает SSO, масштабируемость (через PostgreSQL или Active Directory) и безопасность (PKCE, HTTPS).

Что внутри?

Теория: Объясняем SSO, OpenID Connect (OIDC), компоненты Keycloak (realms, хранилища, PKCE) и как JWT с ролью report_user обеспечивает доступ.

Практика: Показываем проект с React (reports-frontend), Node.js (reports-api) и Keycloak, запущенный через Docker Compose. Код включает realm-export.json, App.tsx, server.js, ReportPage.tsx.

Аналитика: Рассказываем, как аналитик формирует заявки на настройку Keycloak и координирует работу с админами, разработчиками и DevOps.

Практика SSO с Keycloak и JWT

VLESS+Reality и Multi-hop: Архитектура VPN-цепочки для нового поколения блокировок

Level of difficultyMedium
Reading time10 min
Views44K

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

Помните то блаженное время, когда для доступа к любому ресурсу хватало простого WireGuard до сервера в Германии? Я тоже помню. Но эта эпоха закончилась. Недавно я заметил, что мой верный VPN стал лагать, рвать соединение и вести себя так, будто его кто‑то целенаправленно «душит». Это был тот самый момент, когда я понял: игра изменилась. Системы глубокого анализа трафика (DPI) стали умнее, и мой трафик для них был как на ладони.

Это стало моим личным вызовом. Я отправился в путешествие по миру современных средств обхода блокировок, наступил на множество граблей (чего только стоит осознание, что «двойное шифрование» — это миф!), но в итоге нашел свое сокровище — рабочую и относительно устойчивую схему на базе VLESS+Reality и Multi‑hop.

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

Принять вызов

Как я пришёл в open source в 2025-м (с утилитой для бекапа PostgreSQL), чуть не потеряв проект на ~$1500\мес в 2023-м

Level of difficultyMedium
Reading time5 min
Views16K

Однажды я столкнулся с проблемой, когда почти потерял коммерчески успешный пет-проект из-за устаревших резервных копий БД (ещё до того, как он стал коммерчески неуспешным). При этом, даже после частичного восстановления, все-таки потерял ~30% прибыли от проекта, много нервов и времени.

Это подтолкнуло меня на разработку своего открытого инструмента для бекапа PostgreSQL. С разными хранилищами, уведомлениями при сбоях и health check'ом. Собственно, о том, как я потерял деньги и затем разработал проект — хочу рассказать в статье ниже.

Читать далее

Маленькая утилита для контроля квот в Yandex Cloud

Level of difficultyEasy
Reading time2 min
Views1.7K

Yandex Cloud использует квоты для мягкого контроля ресурсов. Квоты можно легко увеличить через специальную форму или техническую поддержку. Однако, очень часто бывает, что о необходимости увеличить квоты мы узнаем поздно, например, когда падает джоба с terraform. Это раздражает, а в некоторых случаях даже может сломать стейт и принести ненужные проблемы. Решить проблему поможет маленькая утилита.

Читать далее

Как работает DNS в Linux. Часть 2: все уровни DNS-кэширования

Reading time15 min
Views11K

В первой части мы разобрали, как в Linux работает процесс разрешения имен — от вызова getaddrinfo() до получения IP-адреса. Однако если бы каждый вызов требовал нового DNS-запроса, это было бы неэффективно и сильно нагружало как систему, так и сеть. Поэтому используется кэширование.

Кэширование DNS может быть везде — в glibc, в systemd-resolved, в браузерах и даже в приложениях на Go. Кэш помогает увеличить скорость работы, но создает дополнительные сложности при отладке. Например: вы меняете DNS-запись, но сервер продолжает ходить по старому IP-адресу. Или, Dig показывает правильный адрес, а curl всё равно подключается к устаревшему.

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

Читать далее

System Design: Чек-лист для расчета нагрузки и стоимости системы на все случаи жизни

Level of difficultyMedium
Reading time5 min
Views7.5K

Этот коротки чек-лист поможет вам структурированно отвечать на вопросы по расчету нагрузки и стоимости системы на собеседовании System Design. Используйте его как пошаговый гайд, чтобы не упустить ключевые моменты.

Читать далее

Как мы написали поверх Sentry кастомную систему профилирования приложения на проде

Level of difficultyMedium
Reading time10 min
Views1.3K

Привет, Хабр! В эфире Дмитрий Зайцев из Купера. Я отвечаю за Supply&Demand в команде разработки Shopper — мобильного приложения для сборщиков и курьеров. Сегодня я расскажу о том, что можно сделать, если пользователи постоянно жалуются, что ваше приложение тормозит, а вы не знаете, почему.

Читать далее

Особенности эксплуатации self-hosted passbolt

Level of difficultyEasy
Reading time4 min
Views1.2K

Привет! Меня зовут Андрей Кисин, я руковожу командой DevOps в CUSTIS. В этой статье расскажу о нашем опыте использования self-hosted Passbolt — open-source-решения для хранения паролей. Расскажу, как мы его адаптировали под свои нужды и с какими трудностями столкнулись. Посмотрим на альтернативы, их преимущества и недостатки, а также поговорим об организации работы по предоставлению доступа к секретам.

Читать далее

Настраиваем CI/CD Android-проекта, часть 3. Автоматизация публикации версий в Play Store

Level of difficultyMedium
Reading time25 min
Views1.4K

Всем привет, меня зовут Кирилл и я Android-разработчик в Scanny. В прошлых статьях мы разобрали, как будет выглядеть наш CI/CD, научились запускать статический анализатор кода, выполнять Android (Marathon Labs и Firebase Test Lab) и Unit-тестирование, собирать различные Build Flavors и отправлять их в нашу Telegram-группу.

В этой статье мы настроим публикацию свежих версий в Play Market на примере Gradle Play Publisher и Fastlane, а так же поработаем с Gitlab Tag'ами.

Так же улучшим наш CI/CD, собрав свой Docker-образ со всем необходимым окружением.

Читать далее

Single Sign-On (SSO) для системных аналитиков: от основ до деталей OIDC, SAML и Kerberos

Level of difficultyMedium
Reading time20 min
Views3.1K

Системным аналитикам часто приходится проектировать процессы авторизации, выбирать протоколы и описывать требования к аутентификации. Но когда дело доходит до SSO (Single Sign‑On) — архитектурных решений становится неожиданно много:
OIDC, SAML, Kerberos… Что из этого выбрать и почему?

В статье — подробный разбор SSO:

Что это такое, как работает и где мы сталкиваемся с этим каждый день (вход через Google, корпоративные порталы, файловые ресурсы Windows);

Как устроены OIDC, SAML и Kerberos — и чем они отличаются на каждом этапе: от запроса до logout;

Кому какой протокол подходит и как избежать архитектурных ловушек (например, использование SAML в мобильном приложении — это боль);

И, конечно, схемы, псевдокод и чек‑листы выбора.

Узнать больше про SSO, SAML и OpenID

Как работает ingress-nginx: нырнем поглубже. Часть 1 — basics

Level of difficultyMedium
Reading time11 min
Views6.9K

Наверняка вы все работаете с Kubernetes, публикуете сервисы наружу через Ingress-контроллер. Уверен, что большинство из вас использует ingress-nginx. Создаете манифест, деплоите его в k8s, но не всегда получаете именно тот результат, который хотели бы. Или же все работает, но спустя какое-то время что-то идет не так. 

В этой серии статей, созданной по мотивам выступления на DevOpsConf’25, мы подробно разберемся как работает сам ingress-nginx контроллер и почему это не совсем классический nginx. Погрузимся в дебри LUA-кода чтобы понять, как реализована балансировка. А также затронем тему сниппетов, как их включить если они вам очень нужны, и почему этого делать не стоит.

Меня зовут Алексей Колосков, я Lead DevOps из Hilbert Team. Больше 15 лет я в IT: за это время админил, разрабатывал, развивал on-premise инфраструктуру, инфраструктуру в облаках и даже курсы по DevOps, Security и DataTech в Yandex Cloud. Hilbert Team — провайдер IT-решений для крупного и среднего бизнеса в области облачных технологий, DevOps, DevSecOps, DataOps, MLOps и FinOps. Партнёр Yandex Cloud со специализацией Yandex Cloud Professional по направлениям DevOps и Data Platform.

Читать далее

Как работает ingress-nginx: нырнем еще глубже. Часть 2 — балансировка

Level of difficultyMedium
Reading time8 min
Views2.2K

В первой части мы разобрались с принципами работы Ingress-nginx контроллера. Теперь пришло время углубиться в то, как в Ingress-nginx устроен механизм обновления бэкендов и как реализована балансировка нагрузки на примере sticky sessions. Готовы узнать больше? Поехали!

Напомню, если вдруг забыли, эта статья написана по мотивам выступления на DevOpsConf’25, а меня зовут Алексей Колосков, я Lead DevOps из Hilbert Team.

Итак, рассмотрим, как реализовано обновление бэкендов в самом контроллере.

Читать далее

Регулярные выражения простыми словами. Часть 3

Level of difficultyEasy
Reading time11 min
Views9.1K

Разработчики делятся на три типа: тех, кто уже понимает регулярные выражения и порой решает сложные задачи одной строкой; тех, кто все еще боится их и всячески избегает; и тех, кто уже прочитал первую и вторую части этой серии статей и полон оптимизма разобраться с этими магическими письменами. Эта статья специально для третьих, чтобы обратно их напугать, ведь в этой части мы рассмотрим одну из самых сложных, но в буквальном смысле захватывающих тем.
Читать дальше →

AlertCLI: Когда Alertmanager слишком серьёзен

Level of difficultyEasy
Reading time3 min
Views1.1K

Привет, хабровчане! Сегодня я хочу рассказать вам о своём новом детище — AlertCLI. Это CLI-утилита для работы с Alertmanager, которая превращает ваши страдания от мониторинга в... ну, скажем так, в менее мучительные страдания. Потому что давайте признаем: когда в 3 часа ночи звонит PagerDuty, хочется не решать проблемы, а решить того, кто их создал.

Читать далее и потыкать у себя в проде

Красивый GitLab CI: extends, якоря, include, trigger

Level of difficultyMedium
Reading time9 min
Views10K
image

В последнее время мне довелось столкнуться с огромным количеством CI в GitLab. Я каждый день писал свои и читал чужие конфиги. Мой день буквально выглядел как:
Читать дальше →

(BRS) — CLI-набор для сетевой разведки и аудита безопасности

Level of difficultyMedium
Reading time2 min
Views1.4K

Мы в EasyProTech часто работаем с инфраструктурой, в которой нет места сложным обёрткам, тяжёлым тулзетам и веб-интерфейсам. Нужно просто:

Читать далее

Kafka, RabbitMQ, NATS в 2025

Level of difficultyMedium
Reading time5 min
Views6.2K

Всем привет, 

Команда devhands.io сделала с Владимиром Перепелицей интервью, посвященное сравнению наиболее популярных решений в области очередей и брокеров сообщений — Kafka, RabbitMQ, NATS.

Владимир — эксперт по большим проектам, очередям и Tarantool, Solution Architect в Exness, создатель S3 в VK Cloud, регулярный спикер и член ПК конференций Highload. А мы, R&D-центр devhands.io, разрабатываем образовательные программы по хайлоаду, перформансу, архитектуре, базам данных и другим направлениям.

Под катом – расшифровка интервью.

Читать далее

Прокачаться в работе с Ansible — подборка ресурсов

Reading time6 min
Views7.8K

Десятки тысяч компаний используют Ansible для управления конфигурациями и автоматизации ИТ-процессов. И мы подготовили подборку материалов, которые помогут познакомиться с этим инструментом — от базовых руководств уровня «с чего начать» до продвинутых практик по написанию эффективных плейбуков.

Читать далее

Наблюдаемость “по-взрослому”: опыт внедрения OpenTelemetry

Level of difficultyMedium
Reading time10 min
Views6.4K

Когда микросервисов становится столько, что в них легко запутаться, а Prometheus уже не справляется с единой картиной мира, пора переходить на новый уровень observability.

Расскажу как именно я внедрял OpenTelemetry в своей инфраструктуре, с какими сложностями столкнулся и какие возможности открывает такой подход.

Спойлер: вышло хорошо

Узнать больше

RoadMap по Go: с нуля до middle

Level of difficultyEasy
Reading time1 min
Views25K

Всем привет!

В последнее время мои знакомые стали меня часто спрашивать, как вкатиться в разработку на Go, и каждому я отвечал +- одно и то же, скидывал +- одни и те же материалы, которыми пользовался когда-то сам. И чтобы постоянно не повторяться, я решил составить простой и понятный алгоритм действий: «Учишь это шаг за шагом и становишься Go-разработчиком».

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

Information

Rating
478-th
Location
Омск, Омская обл., Россия
Works in
Date of birth
Registered
Activity

Specialization

DevOps
Senior