Рубрики
Uncategorized

12-факторные приложения лучшие практики для микросервисов

Сегодня я хочу поговорить о мощной 12-факторной методологии приложения, которая является существенным основанием … Tagged с сегодняшним, дежоптом, микросервисами, Куберовниками.

Сегодня я хочу поговорить о мощной 12-факторной методологии приложений, которая является основной основой для разработчиков, так и для инженеров OPS!

Методология приложения 12 факторов была впервые опубликована в 2011 году инженерами Heroku, которые стали свидетелями развертывания и развернутых сотен приложений и вышли с методом построения веб-приложений в масштабе.

Эта методология, когда следовало, позволяет компании:

🔸 Быстро разработать программное обеспечение 🔸 Обеспечение максимальной портативности программного обеспечения 🔸 Развертывание программного обеспечения на современных облачных платформах 🔸 Sync Development & Production, а 🔸 масштабируется их программное обеспечение без значительных изменений

Теперь давайте посмотрим на 12 факторов вкратце:

1. Кодовая база

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

Существует только одна кодовая база для приложения для 12-факторов, которая передается в разработке, производстве, постановке и QA. Одна кодовая база не означает, что вы не можете иметь разные развертывания; Разница между развертываниями позаботится о системе управления версиями, такими как Git.

2. Зависимости

Явно заявляйте и изолировать зависимости

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

3. Конфигурация

Хранить конфигурацию в среде

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

4. Служба поддержки

Лечить сервисные услуги как прикрепленные ресурсы

Принципиальный принцип поддержки предусматривает, что для приложения 12-фактора все внешние компоненты должны рассматриваться как прикрепленные ресурсы. Внешние компоненты могут быть чем угодно, от баз данных к системам кэширования. Неважно, стоит ли это местное или управлять 3-й партийной службой. Поддерживающие службы могут быть прикреплены или отсоединены к развертыванию по желанию, тем самым увеличивая гибкость приложения.

5. Построить, освобождать, Запустить

Строго отдельные этапы сборки и пробега

Процесс развертывания должен быть разбит на три реплицируемых этапа:

  • Этап сборки — преобразование кода в исполняемый пакет/сборка.
  • Этап выпуска — принимает пакет сборки и сочетает в себе его с настройками конфигурации для текущего развертывания.
  • Этап запуска — запускает приложение в среде выполнения.

6. Процессы

Выполните приложение как одно или несколько процессов без гражданства

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

7. Переплета порта

Экспортные услуги по привязку порта

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

8. Параллельность

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

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

9. Распоряжение

Максимизировать надежность с быстрым запуск и изящным отключением

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

10. Четность dev/prod

Держите развитие, постановку и производство как можно более похожими

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

11. Журналы

Лечить журналы как потоки событий

Журналы предоставляют видимость в поведении запущенного приложения. Приложение 12-факторов не должно попытаться написать или управлять журналами LogFiles. Журналы должны быть направлены на одно или несколько окончательных пунктов назначения для просмотра и долгосрочного архива.

12. Процессы администратора

Запустите задачи администратора/управления в качестве одноразовых процессов

Разработчики часто должны выполнять некоторые одноразовые административные или технические задачи для приложения, такие как управление миграциями базы данных, запуск консоли и т. Д. Эти процессы администратора должны рассматриваться как гражданин первого класса, и его следует указать одинаковую среду в качестве регулярных процессов приложения.

Я надеюсь, что вам понравился этот краткий обзор технологий приложения 12 факторов. Эта структура позволяет разработчикам разрабатывать веб-приложения в масштабе.

Ссылка на полную статью👇 Приложение 12 факторов

Я буду придумать больше таких заметок по темам вокруг DevOps, распределенных систем и мониторинга производительности. Итак, оставайся настроенными! 🙂

Хорошего дня, люди! 👋 Ankit, ваши дружелюбные дежопты Content Curator 👨 🏽. 💻

В настоящее время здание Signoz — Инструмент APM и наблюдаемости APM-источника 💙

Signos/Signos.

Signoz помогает разработчикам мониторировать свои проблемы приложения и устранять неполадки, альтернативу открытым исходным кодом для Datadog, NewRelic и т. Д. 🔥 🖥

Мониторируйте свои приложения и устраните неполадки проблем в развертываемых приложениях, альтернативу открытой исходности к DataDog, новую реликвию и т. Д.

Signoz помогает разработчикам мониторировать приложениями и устранять проблемы в своих развернутых приложениях. Signoz использует распределенную трассировку, чтобы получить видимость в вашем программном стеке.

👉 Вы можете увидеть метрики, такие как задержка P99, скорость ошибок для ваших услуг, внешние вызовы API и отдельные конечные точки.

👉 Вы можете найти корневую причину проблемы, перейдя на точные следы, которые вызывают проблему и видят подробные лечения отдельных следов отдельных запросов.

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

  • Обзор приложений Метрики, такие как RPS, 50-й/90-й/99-й процентиль задержки, а также Скориемость ошибок
  • Медленные конечные точки в вашем приложении
  • Смотрите точные трассы запроса, чтобы выяснить проблемы в Downstream Services, замедление запросов DB, вызовите 3-й партийные услуги, такие как платежные шлюзы, так далее
  • Фильтр следов по имени службы, операции, латентностью, ошибкой, тегами/аннотациями.
  • Совокупные метрики на отфильтрованных следах. Например, вы можете получить ошибку …

Оригинал: «https://dev.to/ankit01oss/the-12-factor-app-best-practices-for-microservices-5cdg»