NB замысел дизайна приложения

Команды, связанные с nb app, по сути, представляют собой адаптации, основанные на различных методах управления процессами, а затем объединенные в набор стабильных входов для управления приложениями. Целью этого является попытка свести умственное использование во время повседневной эксплуатации и обслуживания к набору команд.

В настоящее время методы управления процессами приложений, поддерживаемые CLI, в основном включают:

  • Докер -PM2

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

nb app start
nb app restart
nb app logs
nb app upgrade
nb app stop

Зачем нам объединять это в nb app

Управление процессами может быть реализовано разными способами, но большинство пользователей действительно заботятся не о том, что используется на нижнем уровне, а о конкретных действиях: «Я хочу запустить приложение», «Я хочу прочитать журнал» и «Я хочу обновить приложение».

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

Сократите затраты на обучение

Различные решения по управлению процессами работают по-разному:

  • В Docker есть система команд Docker.
  • PM2 имеет систему команд PM2
  • Supervisor также имеет свой собственный метод настройки.

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

После объединения под названием nb app для повседневного управления в большинстве случаев требуется освоить только один набор команд.

Унифицируйте бизнес-процессы

Управление жизненным циклом приложений — это не только управление процессами.

В таких процессах, как запуск, обновление и остановка, CLI часто необходимо обрабатывать дополнительную логику, например:

  • Экологическая инспекция
  • Обработка конфигурации
  • Миграция данных
  • Обновление версии
  • Управление журналами

Используя nb app в качестве единого входа, вы можете гарантировать согласованность поведения этих процессов. Если вы продолжите расширять свои возможности в будущем, вам не нужно будет заново изучать новый вход в эксплуатацию и обслуживание.

Почему nb app autostart все еще нужен?

После создания единого входа в управление процессом необходимо добавить еще один уровень возможности «автозапускаемого управления», чтобы завершить весь процесс. Вот почему существует nb app autostart.

Обычное использование:

# 为当前 env 开启自启动
nb app autostart enable

# 为指定 env 开启自启动
nb app autostart enable --env app1

# 查看自启动状态
nb app autostart list

# 启动所有已开启自启动的 env
nb app autostart run

# 启动时显示底层启动输出
nb app autostart run --verbose

Целью этого набора приказов является дальнейшее поддержание единства во внешнем мире. Другими словами, в сознании пользователя на этом уровне nb app вам не нужно заботиться о том, является ли нижний уровень Docker, PM2 или другими методами, которые могут поддерживаться в будущем. Внешний унифицированный метод работы по-прежнему аналогичен:

nb app autostart enable --env app1
nb app autostart disable --env app1

run К чему адаптируется этот слой?

nb app autostart также разделен на два уровня обязанностей:

  • enable / disable отвечают за управление тем, разрешает ли определенная среда автоматический запуск.
  • run отвечает за подтягивание всех окружений, у которых включен самозапуск, на этапе запуска системы.

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

nb app autostart run

Здесь адаптированы механизмы запуска системы, такие как systemd, launchd, и сценарии запуска хоста, а не менеджеры процессов приложений, такие как Supervisor.

Общий

  • Команды, связанные с nb app, по сути, представляют собой уровень адаптации поверх различных методов управления процессами. Будучи унифицированными снаружи, они могут уменьшить замешательство пользователя.
  • Реализация управления процессами может быть Docker, PM2, Supervisor и т.д. На данный момент поддерживаются Docker и PM2.
  • Поскольку конфигурации самозапуска для разных методов управления процессами различаются, для завершения всего процесса необходим единый набор возможностей nb app autostart.

Если вы хотите продолжать видеть ежедневные операции, вы можете перейти непосредственно к Управление приложением. Если вы готовы развернуть приложение в формальной среде, вы можете продолжить просмотр Развертывание производственной среды.