12+ лет в корпоративной IT-инфраструктуре. Начинал в аутсорсе с поддержки пользователей и админства. Дорос до архитектора полного цикла: серверная, сети, виртуализация, AD и Exchange, дальше AI-агенты в эксплуатации. Собираю инфраструктуру с нуля и автоматизирую то, что повторяется. Нейросети встраиваю в рабочие процессы, а не в презентации.
Правила простые. Сначала понять, зачем это бизнесу. Перед изменением план отката, после документация, чтобы система жила без меня. Отдельная слабость: легаси, которое «нельзя трогать». Люблю доводить его до состояния, когда трогать не страшно.
Кейсы
Инфраструктура и эксплуатация
~2400 площадок и ~8900 устройств в одном учёте · автоматика предлагает, сливаю руками
Инфраструктура крупной розничной сети жила в таблицах, которые никто не сверял. Собрал учёт на NetBox: ~2400 площадок, ~8900 устройств. Двенадцать таймеров тянут данные из учётных систем, сверяют, пишут обратно, проверяют качество. Опрос сетевого оборудования уходит в отдельную ветку, и сливаю её руками. Автоматика ничего не удаляет. Это правило, а не настройка. Репозиторий на GitLab CI, 841 зелёный тест.
NetBoxNetBox BranchingNAPALMnetbox-syncPostgreSQLsystemd timersGitLab CI
Свой 2FA-провайдер на Keycloak, SSO на уровне веб-сервера для OWA и Outlook-клиентов
Exchange не умеет второй фактор так, как было нужно. Трогать его внутренности никто бы не дал. Поставил ANGIE фронтом перед OWA и Outlook-клиентами, а 2FA вынес в Keycloak со своим провайдером. Сам Exchange не тронул ни строчкой. В проде, через эту схему ходит весь корпоративный почтовый поток.
4 площадки в 2 странах · 100–200 пользователей · 50+ серверов · почта, AD, сети и сертификаты, solo
Четыре площадки в двух странах. На старте пустое поле. Поднял AD, Exchange с DAG между площадками, почту через PMG с HAProxy и SNI-роутингом, маршрутизацию на WireGuard + GRE + OSPF поверх MikroTik RouterOS 7. Сертификаты выпускаются и доезжают до Exchange сами. Сделал трекинг сообщений, по которому можно разобрать инцидент, и BookStack, чтобы всё это было записано. Один, от проекта до сдачи.
Нативные клиенты под Windows и macOS с подписанной политикой · доверие обновлений привязано к центру выдачи
Клиент корпоративного доступа под Windows и macOS плюс серверная панель политик. Политику подписываю ECDSA P-256, клиент проверяет её встроенным ключом. Доверие обновлений привязал к выдающему центру, а не к отпечатку. С отпечатком перевыпуск сертификата положил бы обновления сразу всему парку. Машинные данные и профиль пользователя развёл. Вход в панель доменный, по Kerberos. Тесты выросли с 31 до 175. Всё в проде.
Сертификаты на 60 дней с авто-продлением · подключение сервиса одной командой · панель для остального
Сертификаты выписывались руками, поэтому периодически не выписывались вовсе. Поднял внутренний центр выдачи. Промежуточный CA подписал у корпоративного Windows-CA, так что раскатывать новые корни никому не пришлось. ACME выдаёт на 60 дней и продлевает сам, подключить сервис теперь одна команда плюс reload-хук. Без хука продлённый сертификат до демона не доезжает. Куда ACME не дотянулся, там панель. В проде пока Linux.
Доступ к отчёту решает группа в каталоге. Раздавать руками больше не нужно
Отчёты лежали в GitLab Pages, доступ раздавали руками. Написал шлюз: вход через корпоративный OIDC, дальше проверка группы каталога перед каждым отчётом. Сам GitLab наружу не смотрит. Основная возня вышла с cookie. Весь список членства в 4 КБ не влезает, и вместо отчёта пользователь получал бесконечный редирект. Кладу туда только пересечение групп с картой доступов. Единица прав теперь тип отчёта. 73 теста, писал сразу с ними.
24 приложения обновляются сами, большинство в проде · зависший ввод в VDI чинится без потери сессий
Парк около 4600 машин. Старый сервер управления трогать нельзя. Новый поднял рядом, прод не останавливал. Каталог обновляется сам: тянет версии вендоров, сверяет подпись и хэш, заменяет сборку и раздаёт дальше. 24 приложения, большинство уже в проде. Для VDI написал портал. Он чинит зависший ввод сохранением и возобновлением машины: пользователь не теряет сессии, а я не получаю звонок.
Аудит и починка GPO и ACL в лесу на ~23 тысячи учёток, поэтапно и с путём отката на каждом шаге
Лес на семь доменов и примерно 23 тысячи активных учёток, политики в нём десятилетиями правили разные люди. Написал 17 PowerShell-скриптов: найти битые, восстановить Security Filtering после массового даунгрейда на Authenticated Users, вычистить мёртвые NetLogon ACE. Каждый прогон начинается с pre-flight, дальше три фазы, на каждом шаге бэкап и путь отката. Сотни GPO. Ни одного изменения вслепую.
Лес на ~23 тысячи активных учёток: Windows Server 2008 → 2022, семь доменов свёл в одну структуру
Лес на семь доменов и примерно 23 тысячи активных учёток, в проде Windows Server 2008, репликация как повезёт. Перевёл на актуальную версию и единую структуру. Роли разложил по трём площадкам, объекты из нескольких доменов свёл в один. Репликация стала предсказуемой. Это, собственно, и было целью.
Active DirectoryWindows ServerDNSDHCPSites & Replication
Единый мониторинг с картой площадок; аварии больше не отсиживаются под бессрочными подавлениями
Zabbix с прокси в удалённых сетях, дашборды в Grafana под диагностику, рутина закрыта скриптами и Docker. Позже добавил географию. Адреса площадок уже лежали в учёте, координаты доехали штатной синхронизацией, своего кода не понадобилось. Около 2000 карт магазинов. Отдельно разгрёб бессрочные ручные подавления: их было в разы больше, чем нужно, и аварии спокойно под ними отсиживались. Покрытие полное, часть точек до города.
Site-to-site IPSec, резервные каналы, счёт за интернет меньше примерно на две трети
Несколько офисов и два ЦОД жили каждый сам по себе. Свёл в один контур через site-to-site IPSec. Каналы до ЦОД пересобрал на MikroTik и OpenVPN, часть железа переставил. Счёт за интернет упал примерно на две трети.
Hyper-V → ESXi, ESXi 5 → 6.7, vCenter 7, отказоустойчивый кластер примерно на 15 узлов
Свёл виртуализацию на VMware. Машины с Hyper-V перегнал, поднял vCenter 7 и отказоустойчивый кластер примерно на 15 физических узлов. Рядом вёл облако на vCloud Director.
Резервное копирование на трёх площадках, конфиги сетевого оборудования копируются сами, DRP
Резервное копирование на трёх площадках. Полный Veeam-контур под виртуалки, конфигурации сетевого оборудования копируются сами. План восстановления написан и лежит там, где его найдут. Не в столе. Проверял восстановлением, а не галочкой в отчёте.
Причина галлюцинаций оказалась в слое инструментов · каталог в контексте сжат вдвое
Агент, которому можно задать вопрос про инфраструктуру словами. LLM с tool-calling поверх MCP-серверов учёта и мониторинга, ответы приходят в бот. Прогнал 15 контрольных вопросов и сверил каждый ответ с базой. Честными оказались шесть. Дело было не в модели: узкая схема запросов, нет честного подсчёта, лимит шагов душит. Всё это слой инструментов, там и чинилось. Каталог уходит модели каждую итерацию, поэтому сжал вдвое. В проде. Спроса пока нет.
MCPLLM tool-callingPythonTelegram Bot APIDockerGitLab CI
Три агента через MCP Memory Server и состязательное ревью диффа: выжили 13 из 38 и 14 из 32
Сложную систему тяну один, поэтому собрал вокруг себя трёх агентов: стратег, хранитель базы знаний и разработчик в IDE. Общаются через MCP Memory Server. Вторым заходом добавил состязательное ревью собственного диффа: несколько независимых линз, а потом два скептика пытаются каждую находку развалить. За два прогона выжили 13 из 38 и 14 из 32. «Подтвердилось» тут значит «не смогли опровергнуть». Внешней проверки нет.
Выгрузка в BI на Python и автоматический разбор разговоров GPT-4 с отчётом в CRM
Вёл корпоративную АТС и облачную телефонию, попутно срезал расходы на связь. Статистику вынес в BI выгрузкой на Python. Раньше её считали руками. Разговоры отдал на разбор GPT-4, отчёт приходит руководителю прямо в CRM.
AsteriskFreePBXMikoPBXВАТС МегафонPythonChatGPT API