Перейти к основному содержимому

Инфраструктура, доступы и администрирование на старте

Руководителю Разработчику

После charter и формирования команды нужна техническая база: среды, доступы, инструменты и правила, кто что администрирует. Без этого разработчики работают только на ноутбуках, секреты утекают в чат, а prod появляется "на коленке". Эта статья — третий шаг раздела Начало работы на проекте.


Мини-глоссарий

ТерминРасшифровкаНа старте
EnvironmentСредаИзолированный контур (dev, stage, prod)
CIContinuous IntegrationАвтосборка и тесты на каждый коммит/PR
CDContinuous Delivery/DeploymentАвтодеплой на среду
VPNVirtual Private NetworkЗашифрованный доступ во внутреннюю сеть
SSOSingle Sign-OnЕдиный вход во все сервисы
IdPIdentity ProviderПровайдер идентичности (Azure AD, Keycloak)
RBACRole-Based Access ControlДоступ по ролям
SecretsСекретыПароли, API-ключи, сертификаты
VaultХранилище секретовHashiCorp Vault и аналоги
DLPData Loss PreventionЗащита от утечек данных
On-callДежурствоКто реагирует на алерты prod
IaCInfrastructure as CodeTerraform, Ansible — инфраструктура в коде
K8sKubernetesОркестратор контейнеров
SLAService Level AgreementСоглашение об уровне сервиса

Среды разработки

Среда (environment) — изолированный контур, где запускается приложение: свои настройки, база данных, секреты.

СредаНазначениеКто пользуетсяДанные
localРазработка на машине разработчикаDevФикстуры, docker-compose
dev / integrationОбщая сборка, интеграционные тестыDev, QAСинтетика, без PII
stage / preprodКопия prod по конфигу, приёмкаQA, PO, заказчикМаскированная копия или синтетика
prodБоевые пользователиOps, on-callРеальные данные

Правило: отладка на prod только по процедуре (инциденты). На старте достаточно dev + stage; prod — перед первым пилотом.

Детали CI/CD и деплоя — DevOps.

Что должно быть одинаково между stage и prod

  • версия runtime (Node, Java, .NET)
  • схема БД (миграции тем же инструментом)
  • переменные окружения (имена ключей; значения — разные)
  • балансировщик и TLS (пусть упрощённый на stage)

Что может отличаться

  • размер инстансов и реплик
  • внешние sandbox API вместо боевых
  • уровень логирования (debug на dev, info на prod)

Пошаговый чек-лист поднятия сред

Dev (неделя 1–2)

  • Репозиторий с README "как поднять локально"
  • docker-compose или skaffold для зависимостей (БД, Redis)
  • Общий dev-контур в облаке/ВЦ — опционально, но полезно для интеграций
  • CI собирает проект на каждый PR

Stage (неделя 2–4)

  • Деплой из ветки main или release branch
  • Тестовые учётные записи для QA и PO
  • Мониторинг: логи + алерт "среда лежит"
  • Бэкап конфигурации (не обязательно данных на старте)

Prod (перед пилотом)

  • Отдельный аккаунт/подписка или namespace
  • Runbook: кто деплоит, откат, контакты on-call
  • SLA согласован со спонсором
  • ИБ-review пройден

Сценарий — продуктовая компания

Контекст: SaaS в AWS, команда 12 человек, микросервисы.

Инфра на старте:

  • dev — локально + общий EKS namespace dev
  • stage — EKS staging, деплой из GitHub Actions
  • prod — отложен до beta; заранее заведён аккаунт и IaC-репозиторий
  • секреты — AWS Secrets Manager + External Secrets в K8s
  • мониторинг — CloudWatch + Grafana (даже базовая)

Особенности:

  • техлид + DevOps 1 FTE с первого месяца
  • ADR на выбор облака
  • cost alerts на dev/stage

Риски:

  • "prod-like" только на словах — stage на SQLite, prod на PostgreSQL
  • общий admin-доступ ко всем namespace

Сценарий — интегратор

Контекст: Разработка в контуре заказчика (on-prem), VPN, Active Directory.

Инфра на старте:

  • dev/stage — ВМ заказчика, доступ по VPN
  • CI — Jenkins или GitLab на стороне заказчика
  • prod — поднимает IT заказчика по акту
  • секреты — согласованное хранилище (Vault заказчика)

Особенности:

  • заявки на доступы — SLA IT заказчика (3–10 дней)
  • запрет на вынос кода и данных за контур
  • документирование портов и firewall rules

Риски:

  • разработка началась до выдачи VPN
  • тестовые данные = копия prod без маскирования (нарушение ФЗ-152)

Сценарий — госконтракт / ГИС

Контекст: Сертифицированный контур, требования регулятора, аудит.

Инфра на старте:

  • среды описаны в проектной документации
  • dev/stage/prod — физическая или логическая сегментация
  • журналирование доступа и изменений
  • антивирус, DLP, сертифицированные СЗИ (средства защиты информации) — по ТЗ
  • prod — только после приёмки stage и акта

Особенности:

  • смена конфигурации prod — change request в ITSM
  • pentest или сканирование уязвимостей по регламенту
  • данные не покидают контур РФ

Риски:

  • "временный" prod на незащищённой ВМ
  • админские пароли в Excel на общем диске

Программное обеспечение

Минимальный набор для веб/backend-команды:

КатегорияВариантыКто выбирает
IDEVS Code, IntelliJ, RiderТехлид рекомендует, dev выбирает
Git-хостингGitHub, GitLab, Bitbucket, self-hostedТехлид + IT
CIGitHub Actions, GitLab CI, Jenkins, TeamCityDevOps
ТрекерJira, YouTrack, Linear, Azure BoardsPM
WikiConfluence, Notion, docs в репоPM + техпис
ЧатSlack, Teams, Mattermost, Telegram (осторожно с секретами)PM
СекретыVault, Sealed Secrets, env в CIDevOps + ИБ
МониторингPrometheus+Grafana, Datadog, ELKDevOps
СУБДPostgreSQL, MySQL, MS SQL — по ADRАрхитектор

Список фиксируют в онбординг-пакете с ссылками на установку и версиями.

Согласованные версии

Зафиксируйте в wiki таблицу:

КомпонентВерсияГде проверить
Node.js20 LTS.nvmrc, CI
Java21pom.xml, CI
PostgreSQL16docker-compose, stage
Docker24+README

Разъезд версий local vs CI vs stage — частая причина "у меня работает".


Аппаратное обеспечение

РольТипичные требованияПримечание
Разработчик16+ GB RAM, SSD 512 GB+, второй мониторAndroid/iOS — больше RAM
QA webКак у dev + профили браузеров
QA mobileСтенд устройств или BrowserStack / Sauce Labs
ML / тяжёлая сборкаGPU-станции или облачные runner'ыНе покупать GPU "на всех"
DevOpsДоступ к админкам облака, не обязательно топовое железо
УдалёнкаГарнитура, стабильный канал 50+ Мбит/сУдалённая команда

Закупку согласует IT-администратор или офис-менеджер; техлид даёт минимальные спеки, не бренды "на вкус".

Корпоративный ноутбук и BYOD

МодельПлюсыМинусы
КорпоративныйMDM, шифрование, единая политикаСрок поставки
BYOD (личное)Быстрый стартРиск утечки, сложный offboarding

На проектах с ПДн и госконтрактом BYOD часто запрещён политикой ИБ.


Доступы и безопасность

На старте оформите:

  1. Учётные записи — SSO (Azure AD, Google Workspace, Keycloak), группы по ролям
  2. VPN / Zero Trust — доступ к внутренним API и БД
  3. Принцип наименьших привилегий — junior без root в prod
  4. Ротация секретов — API-ключи не в репозитории
  5. Аудит — кто выдал доступ, срок действия, журнал входов
  6. MFA — двухфакторная аутентификация на Git и облако

Матрица доступов (пример)

РольGitJiraDev БДStage БДProd БДK8s prod
Junior devRead/Write featureRead/WriteRead/WriteRead
Senior devWrite + reviewRead/WriteRead/WriteReadRead
DevOpsAdmin orgReadAdminAdminAdminAdmin
QAReadRead/WriteReadRead/Write
PMReadAdmin project
POReadRead/WriteRead stage

Секреты — что нельзя

  • коммитить в Git (даже "временно")
  • слать в Slack/Telegram/email
  • хранить в общем Google Doc
  • шарить один API-ключ на всю команду

Секреты — что можно

  • Vault / Secrets Manager с аудитом
  • переменные CI (masked)
  • .env.local в .gitignore + пример .env.example без значений
  • ротация при уходе сотрудника
Prod-копия на dev

Слив дампа prod на ноутбук разработчика — нарушение политики ПДн и типичный источник утечек. Используйте маскирование и синтетические данные.


RACI — инфраструктура и доступы

ДействиеRACI
Выбор облака / on-premDevOps, архитекторСпонсор / IT-директорИБ, финансыPM
Поднять dev-средуDevOpsТехлидDevsPM
Выдать доступ новому devIT / DevOpsТехлидИБPM
Добавить секрет в VaultDevOpsТехлидИБ
Деплой на stageDevOps или CIТехлидQAPM
Деплой на prodDevOpsСпонсор или change boardИБ, on-callКоманда
Закупка ноутбуковITIT-директорТехлидHR

Администрирование и разработка

ЗонаКто владеетРазработчик может
Серверы, K8s, БД prodDevOps / SRE / ITТолько по runbook
Репозиторий, ветки, CIТехлид + DevOpsMaintainer/developer по политике
Jira workflowPM + тимлидПредлагать изменения
Wiki, структура разделовТехпис / тимлидРедактировать по правилам
Лицензии ПОIT / закупкиЗапрос через тикет
DNS, TLS-сертификатыDevOps / IT
Firewall, портыIT / сетьЗаявка с обоснованием

Ситуация, когда разработчик сам поднял prod на личном VPS, — сигнал отсутствия ITSM и риска для SLA.

Граница "сделай сам" и "заявка в IT"

ДействиеDevOps/командаIT организации
Новый pod в K8s devКоманда
Открыть порт на firewall prodЗаявкаIT
Новый домен *.company.comЗаявкаIT
Увеличить RAM на dev-ВМКоманда (если облако)IT (если on-prem)

Инструменты по этапам зрелости

ЭтапМинимумСледующий шаг
День 1Git, CI lint+test, local docker
Неделя 2Dev-среда, секреты вне gitStage
Месяц 1Stage + мониторингIaC для stage
ПилотProd + on-call + runbookАвтоскейлинг
МасштабK8s, observability, DRChaos testing

Не обязательно покупать Datadog и Terraform в первый день — обязательно не хранить пароли в репозитории.


Чек-лист готовности среды

  • Dev-среда поднимается по документации новым человеком за ≤ 1 рабочий день
  • Есть тестовые данные без персональных данных prod (маскирование)
  • CI запускается на каждый PR
  • Секреты не в git history (проверка gitleaks/trufflehog)
  • Известно, к кому эскалировать падение dev/stage
  • Матрица доступов опубликована
  • MFA включена на Git и облако
  • Offboarding-чек-лист для отзыва доступов

Типичные ошибки

ОшибкаСимптомРешение
Только local"На моей машине работает"Общий dev + CI
Stage = devБаги только на prodОтдельный конфиг stage
Один admin на всехНет аудитаRBAC + персональные учётки
Секреты в .env в gitУтечка в историиVault + rotate + gitleaks
Prod без мониторингаУзнаём от пользователейАлерты с первого пилота
VPN "когда-нибудь"Dev без доступа к APIVPN в неделю 1
Игнор лицензийАудит штрафРеестр лицензий в IT

FAQ

Можно ли начать без stage?

На 1–2 dev и MVP — допустимо dev + local, но приёмку PO лучше на отдельном stage. QA на prod недопустимо.

Кто платит за облако?

Фиксируют в charter: заказчик, интегратор или продуктовая компания. Cost center нужен до первого инстанса.

Нужен ли Kubernetes на старте?

Не обязательно. Docker-compose или PaaS (Heroku, Fly.io, managed App Service) часто быстрее для MVP.

Как быстро выдать доступы?

Цель — первый день. SLA IT > 3 дней — риск для онбординга; эскалируйте заранее.

Что такое Zero Trust?

Модель "не доверяй сети по умолчанию" — доступ к каждому ресурсу с проверкой identity и политики, не только "внутри VPN всё можно".

Как проверить, что секреты не в git?

gitleaks, trufflehog в CI; при находке — rotate секрета немедленно.

Нужен ли отдельный аккаунт облака на проект?

Рекомендуется: billing и IAM изолированы; проще закрыть проект без риска для других продуктов.

Как передать инфра новому DevOps?

Runbook в wiki + IaC в Git + список секретов в Vault (без значений в doc) + shadowing 3–5 дней.


Runbook деплоя (минимальный шаблон)

  1. Предусловия: PR merged, CI green, тикет в статусе "Ready for deploy"
  2. Кто деплоит: DevOps или release manager по RACI
  3. Команда / pipeline: ссылка на job в CI
  4. Проверка после деплоя: smoke-тест URL, health endpoint
  5. Откат: предыдущий tag или helm rollback — одна команда
  6. Эскалация: контакт on-call, канал #incidents

Храните в wiki раздела Среды; обновляйте при каждом изменении pipeline.


Мониторинг на старте (минимум)

СигналИнструментАлерт
HTTP 5xxIngress / load balancer> 1% за 5 мин
Pod not readyK8s / health checkлюбой prod pod
Disk > 85%node exporteremail on-call
CI failed on mainGitHub/GitLabSlack команда

Полный observability stack — после пилота; алерт "среда лежит" — до первого пользователя на stage.


Offboarding — чек-лист доступов

  • Git — revoke membership org
  • Jira / wiki — deactivate user
  • VPN / SSO — disable account
  • Облако — remove IAM keys
  • Vault — revoke personal tokens
  • Переназначить owned tickets и open PR
  • Сменить shared secrets, если были в группе

Выполнять в день последней смены, не "на следующей неделе".


Связь с соседними разделами

ТемаРаздел
CI/CD углублённоDevOps
Инциденты prod7.21
Инструменты Git/JiraСтатья 4
Безопасность инфрыРаздел 8

Стоимость инфраструктуры (ориентир)

СтатьяMVP (мес.)Комментарий
Облако dev+stage15–80 тыс. руб.Зависит от региона и SLA
CI minutes0–20 тыс.GitHub free tier часто хватает
Лицензии Jira/Confluenceпо seatsСогласовать с IT до старта
VPN / FortiClientлицензия ITВключить в заявку неделю 0
Мониторинг SaaS0–30 тыс.Free tier Grafana Cloud

Заложите cost review раз в квартал — dev-среды часто "раздуваются" незаметно.


Частые вопросы от разработчиков на старте

"Почему нет доступа к prod?"

По политике наименьших привилегий. Prod — через runbook и пару людей с правами; отладка — на stage.

"Можно ли поставить свою IDE?"

Обычно да, если код не копируется в личные облака без DLP. Уточните у ИБ.

"Docker на Windows тормозит"

WSL2 backend, выделите 8+ GB RAM Docker Desktop; тяжёлые сборки — на CI или remote dev.

"Где взять тестовые данные?"

Генераторы (Faker), фикстуры в repo, маскированный дамп — по заявке через DBA; не копируйте prod сами.


Связь со следующими шагами

Инфраструктура без репозитория и CI — половина контура. Настройте Git, трекер и wiki параллельно с dev-средой.


Что дальше

Репозиторий, трекер и wiki — как связать инструменты в единый контур.