ВСЕ СТАТЬИ
Блог начинающего программиста
Кнопка войти через Яндекс
Регистрация
Программирование на JavaScript для начинающих 2.0

Самый востребованный язык программирования

Какой язык программирования должен знать абсолютно любой программист?

Узнай прямо сейчас!

Работа на Heroku - платформе для развертывания и масштабирования приложений со Stack, логами, PHP

Опубликовано:

Стеки (образы операционных систем) Heroku

Героку постоянно обновляет стопку данных – Stack. Принцип стопки – кто последний пришел, тот первый уйдет. Стек (Stack) является образом операционной системы, который проверяется и поддерживается Heroku. Стеки обычно базируются на дистрибутиве Linux, имеющем открытый исходный код, как у Ubuntu.

В настоящее время версией по умолчанию является стек Heroku-20. У него базовая технология - Ubuntu 20.04. Он доступен с 2020 года и будет жить до апреля 2025 года. Сейчас, ещё до апреля 2023 года, поддерживается Heroku-18 на базе Ubuntu 18.04, который действует с 2018 г. С 1 мая 2021 закончилась жизнь у версии стека Heroku-16. Но это не означает, что перестали функционировать и проекты, развернутые на этой версии. Нет. Они работают по-прежнему, просто нет обновлений безопасности.

Приложения Heroku пользуются определенным стеком. Когда программа Heroku создана, исходный код программы вместе с полученными зависимостями и результатами сборки, такими как язык и инфраструктура, собираются в пакет, известный как слак (slug). Пакет сборки отвечает за преобразование исходного кода приложения в исполняемый пакет, совместимый с этим стеком. Этот пакет обычно совместим только со стеком, на котором он был построен, поэтому приложения, которые ранее были развернуты, должны быть перестроены, чтобы быть совместимыми с новым стеком.

Каждый Stack на Героку поддерживает разные пакеты операционных систем и языковые версии среды выполнения. Эта поддержка обычно ограничивается программным обеспечением, которое все еще активно разрабатывается с момента первого выпуска стека.

Откат обновления стека приложения на хостинге Heroku

Рекомендуется всегда использовать самый последний доступный Stack. Если приложение работает не стабильно, или совсем не работает в новом обновленном стеке, можно обновление откатить для отладки и решения проблемы.

Откат удобно выполнить через панель управления Heroku на сайте. Для этого надо перейти на страницу настроек приложения, выбрать вкладку «Activity». На открывшейся странице выбрать версию развертывания (Deployed) и нажать активную ссылку «Roll back to here».

Работа с журналами логов

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

Журналы выполнения

Героку объединяет следующие категории журналов для развернутого приложения:

  • Logs приложений. Регистрация выходных данных самого приложения, включая журналы, созданные кодом и зависимостями приложения.
  • Системные Logs — события и действия, выполненные платформой Heroku от имени активного приложения, например: перезапуск аварийного процесса, переход в спящий режим или пробуждение веб-дино или отображение страницы с ошибкой.
  • Logs API — сведения о действиях администраторов, разработчиков, производимыми над проектом, например: развертывание нового кода, масштабирование формирования процесса или переключение режима обслуживания.
  • Журналы дополнений — сообщения от дополнительных служб.

Журналы сборки

Logs, полученные при создании и развертывании приложения, отделены от журналов среды выполнения приложения. Записи логов как успешных, так и неудачных сборок доступны на Activity вкладке вашего приложения на панели управления Heroku:

щелкните View build log любое событие сборки в ленте активности, чтобы просмотреть его логи.

Ограничения истории журнала

В течение 1 недели сохраняются последние 1500 строк сводного журнала. Но Героку предоставил, в том числе бесплатные, надстройки для работы с логами. Они увеличивают удобство работы, количество настроек, время хранения логов. В программу можно добавить одну надстройку.

Запись в журнал

Журналы фиксируют все, что ваш ресурс записывает в стандартный вывод (stdout) или стандартную ошибку (stderr). Можете войти из любого места кода вашего приложения с помощью простого оператора вывода.

Просмотр журналов

Героку предоставляет сервис для получения и просмотра логов в двух вариантах:

  • получение логов через пользовательский интерфейс на сайте в своей панели управления Героку,
  • с помощью простого оператора вывода через командную строку терминала CLI.

heroku logs -a <наименование проекта>

Посмотреть логи можно и в приложении Git Bash, введя ту же команду

heroku logs -a <наименование проекта>

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

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

Logging in... done

Команда с умолчанием выведет 100 строк логов. Можно изменить команду, указав требуемое количество строк, параметром num (или -n). Максимальное количество – 1500.

heroku logs -n 1500

Журналы в реальный момент времени

По команде

tail -f

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

$ heroku logs -t

Фильтрация

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

heroku logs --dyno router
heroku logs --source app

При фильтрации по dyno можно использовать либо базовое имя (вроде --dyno web), либо полное имя (вроде --dyno web.1).

Также можно комбинировать переключатели фильтрации с –tail для получения потока отфильтрованных выходных данных в реальном времени.

$ heroku logs --source app --tail

Просмотр журналов с помощью панели управления Heroku

Можно просмотреть свои логи в интернете, войдя в свою панель управления Heroku . Перейдите к нужному приложению, например, https://dashboard.heroku.com/apps/<app-name>. На этой странице выберите «еще», чтобы увидеть раскрывающееся меню:

Больше сведений для работы с логами
В этом меню выберите View logs.

Работа на Heroku с PHP

Для работы на платформе Героку с использованием языка программирования PHP потребуется установить на локальную машину:

  • интерфейс командной строки Heroku (CLI),
  • PHP,
  • composer,
  • git.

Подготовка приложения PHP к развертыванию в Heroku

  1. Проверьте свой исходный код в репозитории Git

    Исходный код, необходимый для сборки отдельной программы или ее компонента, должен находиться в репозитории Git готовым для развертывания.

  2. Добавьте пульт Heroku Git

    У каждого приложения Героку есть собственный репо системы Git, размещенный на Героку. Вы развертываете новые версии своего приложения, отправляя изменения кода в это хранилище. Для этого вашему локальному репозиторию Git необходимо знать URL-адрес репозитория, размещенного на Героку.

Героку Git удобен для развертывания и не предназначен для использования в качестве стабильного репозитория git. Используйте GitHub (рекомендуется), или другую систему контроля версий для отслеживания вашей кодовой базы.

Интеграция с GitHub (развертывание на Heroku из GitHub)

Heroku интегрируется с GitHub, чтобы упростить развертывание кода, находящегося на ГитХаб, в приложения, работающие на Героку. Когда интеграция ГитХаб настроена для приложения Heroku, Heroku может автоматически создавать и выпускать (если сборка прошла успешно) push-уведомления в указанный репозиторий GitHub.

Включение интеграции с GitHub

Вы можете настроить интеграцию с ГитХаб на Deploy вкладке приложений в панели управления Героку.

Чтобы настроить интеграцию с GitHub, вам необходимо пройти аутентификацию в ГитХаб. Потребуется это сделать только один раз для каждой учетной записи Героку.

После того, как вы свяжете свое приложение Героку с репозиторием GitHub, вы сможете выборочно развернуть его из веток или настроить автоматическое разворачивание.

Ручное развертывание

При ручном развертывании вы можете создать немедленное развертывание любой ветки из репозитория GitHub, которая подключена к вашему приложению. Используйте ручное разворачивание, если вы хотите контролировать развертывание изменений в Героку.

Деплой ветки из ГитХаб в Героку
Рис. Деплой ветки из ГитХаб в Героку

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


Кипящий чайник с выхлопом клубов пара из носика

Интенсив «Основы программирования»

Бесплатный курс по программированию

Начать обучение

Бесплатный курс по основам PHP

Бесплатный Видеокурс по PHP!

Пример создания PHP-сайта!

Подробнее

Комментарии

Пока комментарий нет

Оставить свой комментарий:

Кнопка войти через Яндекс Зарегистрироваться
Имя:
Электронная почта:
Текст комментария:
Введите код с картинки:
картинка
PHP хостинг ХостиЯ