< ALEKSANDR GRIBAKIN />
Lead Full Stack & DevOps Engineer
15 лет в коде
Пятнадцать лет строю и масштабирую распределённые системы — застал переход индустрии от bare-metal серверов и монолитов к cloud-native, Kubernetes и GitOps. Берусь за то, что команды откладывают: технический долг, выкладка релизов с нуля и удержание систем в рабочем состоянии.
Kubernetes
Terraform
Docker
GitLab CI
PostgreSQL
Go
Node.js
█╗ █╗ █████╗ █████╗
██╗██╗██╔══██╗██╔══██╗
█╚███╔╝███████║██║ ██║
█║╚██╔╝ ██╔══██║██║ ██║
█║ ╚═╝ ██║ ██║██████║
╚═╝ ╚═╝ ╚═╝╚═════╝
██╗██╗██╔══██╗██╔══██╗
█╚███╔╝███████║██║ ██║
█║╚██╔╝ ██╔══██║██║ ██║
█║ ╚═╝ ██║ ██║██████║
╚═╝ ╚═╝ ╚═╝╚═════╝
ACCESS GRANTED
──────────────────────────────────
[ OK ] Connection from: detecting...
[ OK ] User-Agent: detecting...
[ OK ] Session started: detecting...
[ INFO ] Target: Lead Full Stack & DevOps Engineer
──────────────────────────────────
visitor@portfolio:~$ stats --breakdown
visitor@portfolio:~$
Результаты в цифрах
Карьерный путь
Отработанные архитектуры
Как я решаю эти классы задач — метод, а не список заказчиков
Migration
Bare-metal → гибридное облако
Terraform, Ansible, AWS, GCP, Linux
△ -30-40% расходов / поэтапно
Уход с серверов, которые вы содержите независимо от того, загружены они или нет. Поэтапно: сначала опись, потом повторение старой конфигурации на новом месте, потом перевод трафика. Бизнес не зависит от одной ночи большого переключения.
Platform
Kubernetes-платформа
Kubernetes, Helm, ArgoCD, Terraform, Prometheus
△ 99.9% аптайм / self-serve namespace
Общая инфраструктура, которой разработчики пользуются, не становясь сначала специалистами по инфраструктуре. Запросили место — получили уже настроенным, и новая работа начинается в тот же день, а не после чужой очереди.
IaC
Инфраструктура как код
Terraform, Ansible, GitLab CI, Vault, Linux
△ 100% воспроизводимость / 3 окружения
Каждый сервер описан в файле, поэтому любой из них пересоздаётся с нуля за минуты. Ничего не держится на одной машине, которую боятся трогать, или на правке, сделанной руками два года назад и нигде не записанной.
Tooling
Паритет локали и продакшена
Docker, Docker Compose, Terraform, Make, Linux
△ Один образ / 4 окружения
Ноутбук разработчика, тестовая среда и боевая работают одинаково. Это убирает целую категорию задержек: ошибки, которые вылезают только после релиза, никем не воспроизводятся и разбираются наугад.
Delivery
Стандартизированные конвейеры поставки
GitLab CI, Jenkins, Docker, Helm, GitHub Actions
△ 15 мин релиз / десятки сервисов
Один процесс выкладки на все части системы вместо своего у каждой команды. Выпуск изменения превращается из спланированной операции на несколько дней примерно в пятнадцать минут.
Deployment
Развёртывание без простоя
Kubernetes, ArgoCD, NGINX, Helm, Prometheus
△ Ноль простоя / откат 90 с
Обновления выходят без остановки сервиса, а релиз, который начал вести себя плохо, откатывается сам — раньше, чем это увидит большинство клиентов. Никаких заранее объявленных технических окон.
GitOps
GitOps-модель поставки
ArgoCD, Git, Helm, Kustomize, Kubernetes
△ Git как источник истины / авто-сверка
Одна письменная запись о том, как система должна быть настроена, и система сама к ней возвращается. Правки, сделанные руками в три часа ночи, не доживают до того, чтобы стать загадкой следующего месяца.
Architecture
Монолит на сервисы
PHP, Symfony, Go, gRPC, RabbitMQ
△ Постепенно / без заморозки
Разделение одной большой стареющей системы на части, с которыми можно работать по отдельности, — и всё это время она продолжает обслуживать клиентов. Без заморозки и без переписывания с нуля, которое идёт два года и ничего не отдаёт.
API
Слой API и контракты
Node.js, TypeScript, OpenAPI, gRPC, NGINX
△ Генерация клиентов / версии контрактов
Письменная договорённость о том, как части системы разговаривают между собой, сгенерированная из одного источника. Если кто-то вносит несовместимое изменение, оно ломается у него на экране при разработке, а не у клиента.
Queues
Асинхронная обработка задач
Python, FastAPI, Celery, RabbitMQ, Redis
△ Идемпотентные ретраи / разбор DLQ
Медленная работа — отчёты, импорты, письма, ответы платёжных систем — убрана с пути клиента, чтобы страницы оставались быстрыми. Что не прошло, повторяется безопасно, а если не проходит совсем, попадает туда, куда человек действительно смотрит.
Database
PostgreSQL под нагрузкой
PostgreSQL, PgBouncer, Patroni, Prometheus, Linux
△ Масштаб чтения / партиционирование
База данных продолжает справляться по мере роста объёма — обычно за счёт того, что выясняется, чем она на самом деле занята, а не за счёт покупки машины помощнее. Дешевле железа и работает дольше.
Caching
Многоуровневое кэширование
Redis, NGINX, CDN, Node.js, PostgreSQL
△ 4 уровня / явная инвалидация
Готовые ответы держатся ближе к посетителю: страницы открываются быстро, серверы работают меньше. У каждого слоя явное правило, насколько он может отстать, поэтому старую цену никто не увидит.
Search
Поиск и хранилище документов
Elasticsearch, MongoDB, Python, Kafka, Redis
△ Живая переиндексация / поток изменений
Поиск, который находит по смыслу, а не по точному совпадению слов, и остаётся актуальным по мере изменения каталога. Перестроение индекса идёт при работающем сайте, а не ночью с остановкой.
Web
SPA с серверным рендерингом
React, TypeScript, Vite, Node.js, NGINX
△ SSR первая отрисовка / типы сквозные
Страницы приходят уже нарисованными: посетитель сразу видит содержимое, а поисковик может его прочитать — дальше сайт ведёт себя как приложение. Лечит частую беду, когда сайт плохо ранжируется, потому что до запуска скриптов он пустой.
Design System
Библиотека компонентов
Vue.js, TypeScript, Webpack, Storybook, CSS
△ 40+ компонентов / WCAG AA
Один набор кнопок, форм и раскладок, из которого собираются все страницы. Новые экраны собираются, а не рисуются заново, выглядят одинаково по умолчанию, и люди с экранными читалками не оказываются забытыми.
Monitoring
Стек наблюдаемости
Prometheus, Grafana, Loki, Elasticsearch, Alertmanager
△ Связанные сигналы / алерты по SLO
Понимание того, чем занята система, и возможность проследить один запрос клиента насквозь, когда что-то пошло не так. Разница между «сайт как-то тормозит» и знанием, какой именно шаг тормозит и почему.
Process
Реагирование на инциденты
Grafana, Alertmanager, Ansible, Git, Linux
△ Дежурства по владению / живые runbook
Понятный ответ на вопрос, кого поднимают ночью, когда что-то сломалось, письменные инструкции, совпадающие с реальностью, и разбор после — дающий исправление, а не виноватого.
Профессиональные вехи
Шесть переходов, которые сегодня продают готовыми решениями. Я проходил их, когда готовых решений не существовало.