JavaRush/Java блог/Random/Маленькие хитрости с Heroku
Игорь
40 уровень

Маленькие хитрости с Heroku

Статья из группы Random
участников
Представим ситуацию. Вы прошли курс JavaRush, прошли онлайн-стажировку, и у вас красуется первый проект на PaaS платформе Heroku. Вы рассылаете резюме и начинаете ходить по собеседованиям. И вот на одном из них вас просят показать ваш проект (или же его захотят быстро глянуть еще до собеседования, перейдя по ссылке из резюме). Открывается браузер, и начинает дооолго грузиться ваш сайт. Да, можно обьяснить, что это бесплатный Heroku и он так работает, но впечатление испорчено. В причинах данного поведения и методах борьбы с ним мы и попытаемся разобраться в этой статье.
Маленькие хитрости с Heroku - 1
Начать стоит с понятия dyno hours. Согласно документации, Dyno hours — это, по сути, время работы вашего приложения/приложений, выраженное в часах/месяц. Сразу после регистрации бесплатного аккаунта вам дается 550 часов в месяц. Проведя несложные калькуляции, получаем около 17 часов в день для одного приложения. Маловато будет. Посему привязываем кредитную карту в Account settings — Billing и получаем еще 450 бесплатных часов (32 часа в сутки уже с головой). Эту проблему решили. Есть еще одна. В вышеупомянутом документе указано также о "засыпании" (dyno sleeping) приложения при отсутствии активности на протяжении 30 минут. На просторах интернета встречается три основных подхода :
  1. Регулярно (к примеру, раз в 5 минут) отсылать запросы приложению изнутри самого приложения.

    С помощью JavaScript это будет выглядеть так:

    var http = require("http");
    setInterval(function() {
        http.get("http://<your app name>.herokuapp.com");
    }, 300000); // every 5 minutes (300000)
  2. Использовать внешние сайты "пингалки", которые будут с заданной периодичностью проверять ваш сайт.

    Примером таких сайтов является Pingdom, Uptime Robot, Kaffeine и другие. Принцип прост. Заходим, регистрируемся (если надо), указываем сайт и интервал времени и применяем настройки.

  3. Использовать Heroku Newrelic addon Данный плагин предназначен для мониторинга и уведомления о падениях сайта, но как полезный "побочный эффект" он не даст заснуть приложению. На этом методе, как на самом, на мой взгляд, красивом, я и остановился. Опишу его подробнее.

    Чтобы установить addon, нужно перейти по данной ссылке и нажать кнопку "Install New Relic APM". В открывшемся окне нужно выбрать тарифный план и название приложения, к которому будет применен данный addon.

    Маленькие хитрости с Heroku - 2

    После чего нажать кнопку "Provision add-on".

    После установки New Relic станет доступен на странице настройки приложения в списке установленных аддонов.

    Маленькие хитрости с Heroku - 3

    Клацаем на ссылку и попадаем на страницу настроек дополнения.

    Переходим на вкладку "Synthetics" и нажимаем кнопку "Add new".

    Маленькие хитрости с Heroku - 4

    В открывшемся окне в разделе "Enter the details" указываем произвольное название монитора и адрес сайта, который будем мониторить. Выбираем локацию, откуда будет сайт проверяться в "Select monitoring locations".

    Периодичность проверки указываем в "Set the shedule" (я ставил 15 минут) и email для уведомлений в "Get notified".

    После всех настроек не забываем нажать кнопку "Create monitor".

Вуаля, монитор создан и теперь ваше приложение будет работать 24/7 и не подведет в самый ответственный момент :)
Комментарии (9)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Zezari Zezari
Уровень 0
21 марта 2022, 07:28
Добавьте в статью сайт UptimeControl.net, потому что только у них на бесплатном плане 3-минутный интервал проверки доступности сайта.
Anonymous #2250292
Уровень 41
14 января 2021, 04:20
3 способ уже не дает так просто плагин установить, нужно крепить кредит кард обязательно
Applejack Настраиваю телевизор в кругу друзей
24 ноября 2020, 08:21
Что-то у меня New Relic отказывается работать (сайт то бесконечно грузит, то "Что-то пошло не так"). Использую Better Uptime
20 мая 2022, 03:49
Спасибо за совет)
alex
Уровень 41
5 ноября 2020, 10:40
а если приложение спит - это время учитывается или нет?
Стас Пасинков Software Developer в Zipy Master
9 октября 2018, 10:23
ожидал, что статья будет про какие-то конфиги и все такое)) но тоже неплохо) вроде не встречал еще ничего по хероку тут)
Игорь
Уровень 40
9 октября 2018, 10:44
CLI тоже имеется(не уверен правда в чрезмерной гибкости настроек ибо PaaS все таки). Так что конфиги конфижить при желании тоже можно. В статье просто старался описать как можно проще. За отзыв спасибо)
Сергеев Виктор
Уровень 40
Master
8 октября 2018, 19:06
Мы пойдем на все, ради халявы =) Спасибо, хорошие трюки
Игорь
Уровень 40
9 октября 2018, 08:22
Ну тут халява как бы легальная) По крайней мере 2й и 3й метод. Думаю, если владельцам было б это не угодно, то ужесточили б меры. Так, к примеру, раньше приложение должно было "спать" 6 часов в сутки без вариантов. Сейчас вроде отменили. Ну а вообще, желаю всем таких приложений, чтобы посещаемость зашкаливала и так. Тогда все данные хитрости будут просто не нужны)))