Initial commit: interview prep repo (resume, legend, stack cases, Kubernetes course)
This commit is contained in:
55
legend/DEPT_STACK.md
Normal file
55
legend/DEPT_STACK.md
Normal file
@@ -0,0 +1,55 @@
|
||||
# Технический стек отдела
|
||||
|
||||
Опорный документ для ответа на вопрос «расскажите про стек отдела» — по образцу чужой легенды (список стека + короткий аргумент, почему каждый инструмент здесь). В отличие от [LEGEND.md](LEGEND.md), где технология привязана к личной строке резюме, этот файл описывает **окружение целиком**, как его увидел бы инженер отдела — включая инструменты, с которыми не работал напрямую, но которые логично стоят рядом (см. [LEGEND.md](LEGEND.md) → «Инструменты отдела без личной строки в резюме»). Правило на такие инструменты то же, что в примере легенды: минимум 2-3 предложения по каждому, без «мы с этим не работали».
|
||||
|
||||
## Язык бэкенда
|
||||
|
||||
- **Java** — сопровождаемые сервисы внутреннего контура (детали продукта закрыты режимом, см. [STORY.md](STORY.md) → «Проект отдела»). Работа с этим слоем — эксплуатация и диагностика (логи, стектрейсы, health-эндпоинты), не разработка.
|
||||
|
||||
## ОС
|
||||
|
||||
- **Astra Linux SE** — основная серверная ОС парка отдела: сертифицированный дистрибутив для контуров с гособоронзаказом, естественный выбор для режимного предприятия.
|
||||
- **Debian** — DEV-песочница для обкатки конфигов и ролей перед прод-контуром на Astra: логично, потому что Astra построена на базе Debian, и навыки/пакеты в основном переносимы 1:1.
|
||||
|
||||
## Серверы и балансировка
|
||||
|
||||
- **Nginx** — маршрутизация и балансировка нагрузки перед сервисами и компонентами мониторинга (кейс — балансировка x3 Mimir round-robin, см. [STORY.md](STORY.md)).
|
||||
- **Kubernetes** — в рабочем стеке отдела нет (закрытый статичный парк VM не требует оркестрации, IaC-слой закрыт Ansible). Личный опыт с K8s — честный pet-кластер, см. [LEGEND.md](LEGEND.md) → «Домашняя лаборатория» и [../stack/kubernetes/CASE.md](../stack/kubernetes/CASE.md).
|
||||
|
||||
## Хранилище и артефакты
|
||||
|
||||
- **MinIO** — S3-совместимое объектное хранилище, служит бэкендом для блоков Mimir (Mimir архитектурно требует объектное хранилище под долгосрочные данные метрик — без него горизонтальное масштабирование не работает). Настраивали и администрировали в связке с админами, я — потребитель как часть стека мониторинга.
|
||||
- **Nexus** — внутренний менеджер артефактов/бинарей в закрытом контуре без выхода вовне: то же хранилище, откуда я брал архив бинаря Node Exporter при установке (см. [STORY.md](STORY.md) → «Простая задача»).
|
||||
|
||||
## Контроль версий
|
||||
|
||||
- **Git** — система контроля версий.
|
||||
- **Gitea** — внутренний git-хостинг: репозитории Ansible-ролей, конфигов, JSON дашбордов Grafana; встроенная **Wiki** — инструкции и постмортемы (см. [STORY.md](STORY.md)).
|
||||
|
||||
## Мониторинг
|
||||
|
||||
- **Grafana** — визуализация метрик, дашборды (50 в резюме).
|
||||
- **Prometheus** — сбор метрик по pull-модели.
|
||||
- **Mimir** — горизонтально масштабируемое хранилище метрик поверх Prometheus (remote_write), решение проблемы производительности одной федерации.
|
||||
- **Alertmanager** — маршрутизация и группировка алертов из Prometheus (куда идут уведомления, кто дежурит) — часть связки, встроен в архитектуру, отдельно не настраивал с нуля, но понимаю, зачем он между Prometheus и получателем алерта.
|
||||
- **Node Exporter** — метрики хоста (CPU/RAM/диск) — личный кейс установки, см. [STORY.md](STORY.md).
|
||||
- **Blackbox Exporter** — проверка доступности эндпоинтов (HTTP/TCP/ICMP), в частности контроль сроков TLS-сертификатов.
|
||||
- **Nginx Exporter** — метрики самого Nginx как балансировщика.
|
||||
- **Process Exporter** — метрики отдельных процессов на VM.
|
||||
- **Postgres Exporter** — метрики состояния БД, которые ведут разработчики/администраторы БД; я — потребитель метрик со стороны мониторинга, не администратор самой БД (администрирование PostgreSQL — честный pet, см. [../stack/databases/CASE.md](../stack/databases/CASE.md)).
|
||||
|
||||
## Логи
|
||||
|
||||
- **Elastic Stack (ELK)** — Elasticsearch (хранение/поиск), Logstash (обработка/парсинг), Kibana (дашборды и разбор логов при инциденте), **Filebeat** — лёгкий агент, доставляющий логи Java-сервисов с VM в Elasticsearch.
|
||||
|
||||
## CI/CD и автоматизация
|
||||
|
||||
- **TeamCity + Molecule** — CI-конвейер тестирования Ansible-ролей и раскатки конфигов/дашбордов.
|
||||
- **Ansible** — управление конфигурацией: роли и плейбуки на установку/настройку серверов и сервисов.
|
||||
- **Docker** — контейнеризация сервисов мониторинга и вспомогательных инструментов.
|
||||
- **Terraform** — в рабочем стеке отдела нет: инфраструктура статична (фиксированный парк VM без облачного API для программного провижининга), поэтому весь IaC-слой закрыт конфигурационным управлением через Ansible, отдельный инструмент под провижининг не требовался.
|
||||
- **Bash** — повседневная автоматизация и обвязка вокруг Ansible/Docker.
|
||||
|
||||
## Как этим пользоваться на собеседовании
|
||||
|
||||
Если спрашивают конкретно про MinIO/Nexus/Alertmanager/Postgres Exporter/Filebeat — ответ по формуле: «для чего инструмент нужен в нашей связке» + «кто именно его настраивал» + «как я с ним соприкасался» (правил конфиг / читал метрики / знаю архитектурную роль). Не выдавать это за уровень «настраивал с нуля самостоятельно», но и не говорить «не работал» — честная middle-позиция, как и с Terraform/Kubernetes выше.
|
||||
Reference in New Issue
Block a user