[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-mikroservisy-chto-takoe-12-factor-app":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":16,"progress":17,"seo":18},908,"chto-takoe-12-factor-app",23,"mikroservisy","Микросервисы","🔗","Что такое 12-Factor App?","12-Factor App — это методология разработки SaaS-приложений, описанная инженерами Heroku, определяющая 12 принципов создания облачных приложений. Особенно актуальна для микросервисов.\n\n| Фактор | Принцип | Пример в Spring Boot |\n|---|---|---|\n| 1. Codebase | Один репозиторий, много деплоев | Git repo -> dev, staging, prod |\n| 2. Dependencies | Явное объявление зависимостей | pom.xml, build.gradle |\n| 3. Config | Конфигурация в переменных окружения | `@Value(\"${DATABASE_URL}\")` |\n| 4. Backing Services | БД, брокеры — подключаемые ресурсы | Смена БД через конфиг |\n| 5. Build, Release, Run | Разделение этапов | Maven build -> Docker image -> Run |\n| 6. Processes | Stateless-процессы | Состояние в Redis\u002FБД |\n| 7. Port Binding | Самодостаточность через порт | Встроенный Tomcat\u002FNetty |\n| 8. Concurrency | Горизонтальное масштабирование | Запуск дополнительных реплик |\n| 9. Disposability | Быстрый запуск, graceful shutdown | `server.shutdown: graceful` |\n| 10. Dev\u002FProd Parity | Минимальные различия окружений | Docker, Testcontainers |\n| 11. Logs | Логи в stdout | Сбор через Docker\u002FK8s |\n| 12. Admin Processes | Одноразовые задачи в том же окружении | Flyway-миграции |\n\n### Ключевые примеры\n\n```java\n\u002F\u002F Фактор 3: Config — конфигурация через переменные окружения\n@Value(\"${DATABASE_URL}\")\nprivate String databaseUrl;\n\n\u002F\u002F НЕ правильно:\n\u002F\u002F private String databaseUrl = \"jdbc:postgresql:\u002F\u002Fprod-db:5432\u002Fpayments\";\n```\n\n```yaml\n# Фактор 9: Disposability — graceful shutdown\nserver:\n  shutdown: graceful\nspring:\n  lifecycle:\n    timeout-per-shutdown-phase: 30s\n```\n\n> **На собеседовании:** не нужно перечислять все 12 факторов. Выделите 3-4 самых важных (Config, Processes\u002FStatelessness, Disposability, Logs) и объясните их на примерах. Покажите, что Spring Boot «из коробки» соответствует большинству факторов.","","middle",[15],"microservices",[],null,{"title":19,"description":20,"ogTitle":19,"ogDescription":21,"keywords":22,"schemaAnswer":23,"featuredSnippetReady":24},"Что такое 12-Factor App? — Gymterview","12-Factor App — это методология разработки SaaS-приложений, описанная инженерами Heroku, определяющая 12 принципов создания облачных приложений. Особенно актуал","12-Factor App — это методология разработки SaaS-приложений, описанная инженерами Heroku, определяющая 12 принципов созда",[15,13],"12-Factor App — это методология разработки SaaS-приложений, описанная инженерами Heroku, определяющая 12 принципов создания облачных приложений. Особенно актуальна для микросервисов.",true]