Перейти к основному контенту
Tech Path Finder
КурсыИнтервьюКод-ревьюБлог
Tech Path Finder

Персонализированный путеводитель в IT. Квизы, мок-интервью, код ревью и аналитика прогресса.

@potapov_me

Платформа

  • Курсы
  • Прогресс
  • Мок-интервью
  • Код ревью
  • Живое ревью с ИИ
  • Тренажёр переговоров
  • Закладки

Контент

  • Блог
  • Главная
  • Обратная связь

Компания

  • О проекте
  • Тарифы
  • Условия использования
  • Конфиденциальность
  • Согласие на обработку данных
  • Cookie
  • Реквизиты

Аккаунт

  • Войти
  • Зарегистрироваться
  • Профиль

© 2026 Tech Path Finder. Все права защищены.

·ИП Потапов К.С.·Политика конфиденциальности·
Сделано с ❤️ в России
  1. 12-Factor App: Методология облачных приложений
DevOps / Мониторинг·14 тем·138 вопросов·уровень Middle, Senior

12-Factor App: Методология облачных приложений

Всеобъемлющий курс по методологии 12-Factor App — от основ до продвинутых практик. Научитесь строить масштабируемые, поддерживаемые и надёжные SaaS-приложения для облачной инфраструктуры. Курс охватывает все 12 оригинальных факторов плюс современные расширения (telemetry, health checks). Подходит для разработчиков всех уровней: от junior до senior.

Начать курс

12-Factor App

Двенадцать факторов сформулировали в Heroku в 2011 году, и сегодня половина пунктов выглядит самоочевидной — ровно до того момента, когда в очередном проекте обнаруживается конфиг с паролями, закоммиченный в репозиторий, состояние сессии в памяти процесса (масштабировать нельзя, перезапускать страшно) и релиз, который невозможно воспроизвести, потому что собирали руками на сервере.

Четырнадцать тем: обзор методологии, затем по одной теме на каждый фактор — кодовая база и её отношение к развёртываниям, явные зависимости, конфигурация в переменных окружения, внешние сервисы как присоединяемые ресурсы, разделение сборки, релиза и запуска, stateless-процессы, привязка портов, масштабирование процессной моделью, быстрый старт и корректное завершение, паритет сред разработки и продакшена, логи как поток событий, административные задачи как разовые процессы.

Тринадцатой идёт телеметрия — то, чего в исходном манифесте не было: метрики, распределённая трассировка и наблюдаемость как часть требований к приложению, а не как надстройка над ним.

Каждый фактор разбирается одинаково: что предписано, какую проблему это решает, как выглядит нарушение в реальном коде и что делать, если нарушение уже есть и переписать всё сразу нельзя. Отдельно обсуждается, где методология устарела или расходится с практикой контейнеров и Kubernetes.

Подходит любому уровню: junior получит принципы до того, как набьёт шишки, senior — систематизацию того, что уже знает интуитивно.

  1. 1

    Введение в 12-Factor App

    История создания методологии, философия и обзор всех двенадцати факторов

    10 вопросов
  2. 2

    Codebase — одна кодовая база

    Принцип единой кодовой базы для всех развёртываний приложения

    8 вопросов
  3. 3

    Dependencies — явные зависимости

    Явное объявление и изоляция всех зависимостей приложения

    10 вопросов
  4. 4

    Config — конфигурация в среде

    Хранение конфигурации в переменных окружения, разделение кода и конфига

    10 вопросов
  5. 5

    Backing Services — внешние сервисы

    Обработка внешних сервисов (БД, кэш, очереди) как присоединённых ресурсов

    10 вопросов
  6. 6

    Build, Release, Run — разделение стадий

    Строгое разделение на сборку, релиз и запуск приложения

    10 вопросов
  7. 7

    Processes — stateless процессы

    Выполнение приложения в виде stateless процессов без общего состояния

    10 вопросов
  8. 8

    Port Binding — привязка портов

    Самодостаточность через экспорт сервисов посредством привязки портов

    10 вопросов
  9. 9

    Concurrency — конкурентность

    Масштабирование через модель процессов и горизонтальное расширение

    10 вопросов
  10. 10

    Disposability — утилизация

    Быстрый запуск и graceful shutdown для отказоустойчивости

    10 вопросов
  11. 11

    Dev/Prod Parity — паритет сред

    Минимизация различий между development, staging и production

    10 вопросов
  12. 12

    Logs — логирование

    Логи как потоки событий, агрегация и маршрутизация

    10 вопросов
  13. 13

    Admin Processes — админ-процессы

    Административные задачи как одноразовые процессы

    10 вопросов
  14. 14

    Telemetry — телеметрия

    Метрики, распределённый трейсинг и observability в 12-Factor приложениях

    10 вопросов
  15. Зачёт

    Доступен после всех тем (0 из 14)

  16. Экзамен

    Доступен после зачёта

28 / 28

12-Factor App

Фундаментальные понятия

Методология построения SaaS-приложений, состоящая из двенадцати принципов для создания масштабируемых, поддерживаемых и надёжных облачных приложений.

Пример

Приложение, соответствующее всем 12 факторам, легко развёртывается в любом окружении: `docker run myapp` или `kubectl apply -f deployment.yaml`.

Связанные термины

Cloud-Native

Фундаментальные понятия

Подход к разработке и запуску приложений, который использует преимущества облачной вычислительной модели: эластичность, отказоустойчивость, управляемость.

Пример

Cloud-native приложения строятся с использованием контейнеров, микросервисов и оркестрации (Kubernetes).

Связанные термины

SaaS (Software as a Service)

Фундаментальные понятия

Модель распространения программного обеспечения, при которой приложение размещается у поставщика услуг и доступно клиентам через интернет.

Пример

Gmail, Salesforce, Slack — примеры SaaS-приложений, построенных по принципам 12-Factor.

Связанные термины

Codebase (Кодовая база)

Развёртывание и инфраструктура

Единый репозиторий с исходным кодом приложения, из которого развёртываются все окружения (development, staging, production).

Пример

Один Git-репозиторий `github.com/company/myapp` используется для всех развёртываний: `git checkout prod && deploy`.

Связанные термины

Dependencies (Зависимости)

Развёртывание и инфраструктура

Внешние библиотеки и пакеты, которые требуются приложению для работы. В 12-Factor все зависимости должны быть явно объявлены.

Пример

Python: `requirements.txt` или `pyproject.toml`; Node.js: `package.json`; Ruby: `Gemfile`.

Связанные термины

Config (Конфигурация)

Развёртывание и инфраструктура

Настройки, которые меняются между окружениями (пароли БД, API-ключи, домены). В 12-Factor конфигурация хранится в переменных окружения, а не в коде.

Пример

Вместо `DB_PASSWORD = 'secret123'` в коде: `DB_PASSWORD = os.environ.get('DB_PASSWORD')`.

Связанные термины

Environment Variables (Переменные окружения)

Развёртывание и инфраструктура

Пары ключ-значение, передаваемые процессу из операционной системы. Используются для хранения конфигурации в 12-Factor приложениях.

Пример

export DATABASE_URL=postgres://user:pass@localhost:5432/db python app.py

Связанные термины

Backing Services (Внешние сервисы)

Архитектурные паттерны

Сервисы, которые приложение использует как сервисы: базы данных, системы кэширования, очереди сообщений, SMTP-серверы. В 12-Factor они рассматриваются как присоединённые ресурсы.

Пример

PostgreSQL, Redis, RabbitMQ, SendGrid — всё это backing services, подключаемые через конфигурацию.

Связанные термины

Build, Release, Run

Развёртывание и инфраструктура

Три строго разделённые стадии жизненного цикла приложения: сборка (компиляция), релиз (конфигурация + билд), запуск (исполнение).

Пример

CI/CD пайплайн: `build` → создаёт артефакт, `release` → добавляет config, `run` → запускает процесс.

Связанные термины

Stateless (Без состояния)

Процессы и выполнение

Процессы, которые не хранят состояние между запросами. Любые данные сохраняются во внешних сервисах (БД, кэш).

Пример

Веб-процесс обрабатывает запрос и не сохраняет данные в памяти — сессии хранятся в Redis.

Связанные термины

Process (Процесс)

Процессы и выполнение

Запущенный экземпляр приложения. В 12-Factor приложение выполняется как один или несколько stateless процессов.

Пример

Gunicorn запускает 4 worker-процесса: `gunicorn -w 4 app:app`.

Связанные термины

Port Binding (Привязка портов)

Архитектурные паттерны

Принцип, по которому приложение само экспортирует свой сервис, привязываясь к порту, а не полагается на внешний веб-сервер.

Пример

Flask-приложение: `app.run(host='0.0.0.0', port=5000)` — само слушает порт 5000.

Связанные термины

Concurrency (Конкурентность)

Процессы и выполнение

Способность приложения выполнять несколько задач одновременно. В 12-Factor достигается масштабированием процессов.

Пример

Масштабирование через процессы: `kubectl scale deployment myapp --replicas=10`.

Связанные термины

Disposability (Утилизируемость)

Процессы и выполнение

Способность процессов быстро запускаться и корректно завершаться (graceful shutdown) для отказоустойчивости и эластичности.

Пример

Приложение обрабатывает SIGTERM, завершает текущие запросы за 5 секунд и закрывает соединения с БД.

Связанные термины

Graceful Shutdown (Корректное завершение)

Процессы и выполнение

Процесс завершения работы приложения, при котором оно завершает текущие операции, закрывает соединения и освобождает ресурсы.

Пример

import signal signal.signal(signal.SIGTERM, handle_sigterm)

Связанные термины

Dev/Prod Parity (Паритет сред)

Развёртывание и инфраструктура

Принцип минимизации различий между development, staging и production окружениями для предотвращения багов при развёртывании.

Пример

Использование Docker: одинаковый контейнер запускается локально и в production.

Связанные термины

Logs (Логи)

Наблюдаемость и мониторинг

Потоки событий, которые приложение пишет в stdout/stderr. В 12-Factor приложение не управляет хранением логов — это делает среда выполнения.

Пример

import logging logging.info('User logged in') # Вывод в stdout, агрегация внешним инструментом

Связанные термины

Log Aggregation (Агрегация логов)

Наблюдаемость и мониторинг

Сбор логов от множества процессов и сервисов в единое хранилище для анализа и поиска.

Пример

ELK-стек (Elasticsearch, Logstash, Kibana), Loki, Splunk, Datadog Logs.

Связанные термины

Admin Processes (Административные процессы)

Процессы и выполнение

Одноразовые процессы для выполнения административных задач: миграции БД, консольные команды, скрипты.

Пример

`python manage.py migrate`, `rails console`, `django-admin shell`.

Связанные термины

Telemetry (Телеметрия)

Наблюдаемость и мониторинг

Автоматизированный сбор метрик, трассировок и логов для наблюдения за состоянием системы.

Пример

OpenTelemetry SDK отправляет метрики в Prometheus и трейсы в Jaeger.

Связанные термины

Metrics (Метрики)

Наблюдаемость и мониторинг

Числовые показатели работы системы: latency, throughput, error rate, CPU usage.

Пример

Prometheus-метрика: `http_requests_total{method="POST",status="200"}`.

Связанные термины

Distributed Tracing (Распределённая трассировка)

Наблюдаемость и мониторинг

Механизм отслеживания запроса через множество микросервисов для понимания пути выполнения и выявления узких мест.

Пример

Jaeger, Zipkin, AWS X-Ray показывают полный путь запроса через сервисы.

Связанные термины

Health Check (Проверка здоровья)

Наблюдаемость и мониторинг

Эндпоинт или механизм, позволяющий оркестратору определить, живо ли приложение и готово ли принимать запросы.

Пример

@app.get('/health') def health(): return {'status': 'ok'}

Связанные термины

Horizontal Scaling (Горизонтальное масштабирование)

Архитектурные паттерны

Увеличение количества экземпляров приложения для обработки большей нагрузки, в отличие от вертикального (увеличения мощности сервера).

Пример

Kubernetes: `kubectl scale deployment myapp --replicas=20`.

Связанные термины

Microservices (Микросервисы)

Архитектурные паттерны

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

Пример

Сервисы: Users, Orders, Payments, Notifications — каждый развёртывается отдельно.

Связанные термины

Container (Контейнер)

Развёртывание и инфраструктура

Изолированная среда выполнения приложения со всеми зависимостями. Стандарт де-факто для 12-Factor развёртываний.

Пример

Docker-образ: `docker build -t myapp . && docker run -p 5000:5000 myapp`.

Связанные термины

CI/CD (Continuous Integration / Continuous Deployment)

Развёртывание и инфраструктура

Практики автоматизации сборки, тестирования и развёртывания кода. Ключевой элемент 12-Factor методологии.

Пример

GitHub Actions: push → test → build → deploy to staging → deploy to prod.

Связанные термины

12-Factor++

Фундаментальные понятия

Современные расширения оригинальной методологии: API-first, телеметрия, health checks, feature flags.

Пример

Добавление 13-го фактора: Telemetry — обязательный сбор метрик и трейсов.

Связанные термины

Частые вопросы о курсе «12-Factor App: Методология облачных приложений»

Состав курса, уровни, практика и способы проверки знаний.

Что входит в курс «12-Factor App: Методология облачных приложений»?

Курс включает 14 тем и 138 вопросов с разбором ответа. Начать можно с первой темы курса.

Для какого уровня рассчитан курс «12-Factor App: Методология облачных приложений»?

Маршрут охватывает уровни Middle, Senior. Темы расположены от основы к более сложным инженерным задачам, поэтому можно начать с подходящего места и не пропускать важные зависимости.

Как проверить, что материал усвоен?

После прохождения тем доступен зачёт по курсу «12-Factor App: Методология облачных приложений» — 20 случайных вопросов с порогом 80%. После зачёта открывается экзамен с развёрнутыми ответами и автоматической оценкой, приближённый к техническому собеседованию.

Курс «12-Factor App: Методология облачных приложений» бесплатный?

Да, курс полностью бесплатный: все 14 тем доступны без оплаты.