JavaRush /Java блог /Random UA /Маленькі хитрощі з Heroku
Игорь
40 рівень
Киев

Маленькі хитрощі з Heroku

Стаття з групи Random UA
Уявімо ситуацію. Ви пройшли курс 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 і не підведе у найвідповідальніший момент :)
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ