Як розгорнути Node-програму та базу даних на Heroku

Heroku - це хмарна, повністю керована платформа як послуга (PaaS) для створення, запуску та управління програмами. Платформа гнучка та розроблена з підтримкою DX для вас та бажаного стилю розробки вашої команди, а також допоможе вам залишатися зосередженими та продуктивними.

Розробники, команди та компанії будь-якого розміру використовують Heroku для розгортання, управління та масштабування програм. Незалежно від того, чи створюєте ви простий прототип чи критичний для бізнесу продукт, повністю керована платформа Heroku дає вам найпростіший шлях до швидкої доставки програм.

Завдяки таким функціям, як Heroku Runtime, Heroku Postgres (SQL), Heroku Redis, доповнення, кліпи даних, метрики додатків, розумні контейнери, підтримка корпоративного рівня, інтеграція GitHub та багато іншого, Heroku надає розробникам свободу зосередитися на своєму основному продукті без відволікання на підтримку серверів, обладнання та інфраструктури.

Однією з основних функцій Heroku є розгортання, управління та масштабування програм на ваших улюблених мовах [Node, Ruby, Python, Java, PHP, Go та ін.].

У цій статті я покажу вам, як взяти існуючу програму Node.js та розгорнути її на Heroku - все, починаючи від створення вашого облікового запису Heroku, до додавання бази даних до вашої розгорнутої програми.

Передумови

У своїй попередній статті я писав про "Створення SlackBot за допомогою Node.js і SlackBots.js" і пообіцяв написати наступну статтю, щоб показати, як розмістити SlackBot на Heroku, Zeit або Netlify, та опублікувати його в Магазин Slack Apps. Що ж, це наступна стаття, але без частини "Публікація у програмах Slack". Ми розглянемо це в іншій статті.

Я припускаю, що ви вже знаєте / знаєте наступне:

  • Прочитайте мою попередню статтю
  • Вбудований InspireNuggets SlackBot
  • Встановлено Git, Node та npm
  • Безкоштовний акаунт Heroku
  • Heroku CLI встановлено

Бонус

Якщо у вас ще не встановлені npm, Node та Heroku CLI або обліковий запис Heroku, ось швидкий бонус [так, ласкаво просимо :)].

Встановлення npm та Node

  • Node.js - це середовище виконання JavaScript, побудоване на механізмі JavaScript V8 Chrome.
  • npm - це менеджер пакетів для Node.js. Проект з відкритим кодом, створений, щоб допомогти розробникам JavaScript легко ділитися пакетованими модулями коду.

Ви можете просто завантажити Node.js тут. Не хвилюйтеся, npm поставляється з Node.js, тому це встановлює обидва ✨

Створення безкоштовного облікового запису Heroku

Завітайте сюди та заповніть форму для реєстрації. Це досить просто.

Встановлення Heroku CLI

Інтерфейс командного рядка Heroku (CLI) спрощує створення та керування програмами Heroku безпосередньо з терміналу. Це важлива частина використання Heroku. [Ну, ви можете вирішити використовувати функцію інтеграції GitHub та панель інструментів Heroku, але так, ви повинні навчитися користуватися CLI]

Heroku CLI вимагає популярної системи контролю версій Git. Якщо у вас ще не встановлений Git, я написав цю статтю, щоб допомогти вам.

Heroku CLI для Mac OS

brew tap heroku/brew && brew install heroku 

або завантажте інсталятор.

CLI Heroku для Ubuntu

sudo snap install --classic heroku 

Heroku CLI для Windows

Завантажте інсталятор для 64-розрядної або 32-розрядної версії.

Інші методи установки

Будь ласка, прочитайте це.

Початок роботи з Heroku CLI

  • Перевірте встановлення
heroku --version 

heroku / 7.30.1 linux-x64 node-v11.14.0

  • Увійдіть у свій акаунт Heroku

Це можна зробити двома способами:

  • Веб-автентифікація
heroku login 

Дотримуйтесь інструкцій та увійдіть через веб-браузер, а потім поверніться до терміналу.

  • Авторизація CLI

Це більш безпечний варіант, оскільки він зберігає адресу електронної пошти та маркер API ~/.netrcдля подальшого використання.

heroku login -i 

Розгортання програми Node.js

Я припускаю, що ви вже створили SlackBot. Якщо ні, клонуйте готовий проект.

Проект - це простий Slackbot, який відображає випадкові цитати та жарти для розробників / дизайнерів.

git clone //github.com/BolajiAyodeji/inspireNuggetsSlackBot.git && cd inspireNuggetsSlackBot 

А тепер давайте розгорнемо наш додаток на Heroku ??. Я покажу вам два способи зробити це:

Розгортання через Heroku Git

Це робиться через Heroku CLI.

Контрольний список
  • Вкажіть версію Node.js, яка буде використовуватися для запуску вашого додатка на Heroku у вашому package.jsonфайлі.
"engines": { "node": "10.16.0" }, 
  • Вкажіть свій початковий сценарій.

    Просто створіть Procfile(без будь-якого розширення файлу) і додайте

web: node index.js 

Heroku спочатку шукає цей Procfile. Якщо нічого не знайдено, Heroku спробує запустити веб-процес за замовчуванням за допомогою скрипта запуску у вашому package.json.

  • Запустіть програму локально, використовуючи локальну команду heroku, щоб переконатися, що все працює нормально
heroku local web 

Тепер ваш додаток повинен працювати на // localhost: 5000.

  • Не забувайте це робити .gitignore
/node_modules .DS_Store /*.env 
? Давайте розгорнемо

Як це працює, у вас вже працює проект на локальному рівні, і ви вже перейшли на GitHub.

  • Біжи heroku create

По суті, ця команда створює для вас новий додаток Heroku з випадковим чином згенерованим доменом і додає Heroku до вашого локального сховища Git.

  • Тепер біжи git push heroku master

Це чарівна команда, вона штовхає ваш додаток до Heroku, встановлює його там і запускає у виділеному домені.

У наведеному вище прикладі це //lit-cove-58897.herokuapp.com/

Ви завжди можете змінити налаштування програми та домени на своїй інформаційній панелі Heroku

  • Тепер відвідайте свій додаток у своєму браузері
heroku open 
  • Ви також можете переглянути інформацію про запущений додаток, використовуючи одну з команд реєстрації. Це дуже корисно при налагодженні помилок.
heroku logs --tail 

Розгортання за допомогою інтеграції GitHub

Ви можете налаштувати інтеграцію GitHub на вкладці Розгортання програм на інформаційній панелі Heroku.

Контрольний список
  • Тут застосовуються всі попередні контрольні списки - переконайтеся, що програма вже розгорнута на GitHub
? Давайте розгорнемо

Як працює цей метод, ви перекладаєте весь проект на GitHub та інтегруєте його на Heroku. Щоразу, коли ви натискаєте, він розгортається з GitHub на Heroku. Досить круто, правда?

  • Увійдіть на свою інформаційну панель Heroku і створіть новий додаток
  • Виберіть назву програми та регіон

Тепер ваш додаток успішно створено

  • Клацніть на вкладку розгортання та прокрутіть до розділу Метод розгортання
  • Натисніть Підключитися до GitHub кнопку
  • Тепер у вас є розділ Connect to GitHub , пошук сховища та розгортання.
  • Тепер ваш додаток успішно розгорнуто

Автоматичне розгортання

Тепер ваш додаток розгорнуто, але вам доведеться продовжувати розгортання вручну. Вам потрібно ввімкнути автоматичне розгортання для гілки GitHub, тому Heroku будує та розгортає всі поштовхи до цієї гілки.

  • Виділіть Автоматично розгортає розділ

Виберіть гілку, яку потрібно розгорнути. В ідеалі це повинна бути masterгілка, але змініть це відповідно до ваших уподобань.

Тепер кожне натискання на master(або вибрану вами гілку) розгортатиме нову версію цього додатка.

Node.js Buildpack

У Heroku Buildpacks - це сценарії, які запускаються під час розгортання програми. Вони використовуються для встановлення залежностей для вашого додатка та налаштування вашого середовища.

Після розгортання вашого додатка переконайтеся, що ви додали пакет збірки Node.js до свого проекту.

  • Перейдіть до Налаштування та прокрутіть до розділу Buildpack
  • Натисніть кнопку Додати Buildpack і виберіть Node.js у модальному режимі спливаючого вікна.
  • Тепер нова конфігурація buildpack буде використана при наступному розгортанні цієї програми. Внесіть деякі зміни у свій додаток і натисніть на GitHub - він автоматично розгорнеться.

Додавання бази даних до розгорнутого додатка '

На ринку доповнень Heroku є велика кількість сховищ даних, починаючи від постачальників Redis та MongoDB, закінчуючи Postgres та MySQL.

Heroku надає всі послуги керованих даних для всіх клієнтів у вигляді Додатків:

  • Heroku Postgres
  • Героку Редіс
  • Апаче Кафка на Героку

Якщо писати про цю трійку, ця стаття стане занадто довгою. Це досить просто, і я додаю кілька посилань на Документи Heroku.

  • Документи Heroku Postgresql
  • Heroku Redis Docs
  • Apache Kafka на Heroku Docs

Висновок

На кожен рахунок Heroku виділяється пул безкоштовних дино-годин. Heroku (безкоштовно) dynos чудово підходить для розміщення додатків та особистих проектів. Однак недоліком є ​​те, що ваш додаток засне, якщо протягом 30 хвилин не отримає жодного веб-трафіку :(.

Ви можете використовувати зовнішні інструменти для періодичного пінгування вашого сервера, щоб він ніколи не засинав.

Ось деякі, на які слід звернути увагу:

  • Пінгмидино
  • Самопинг Heroku
  • Вакемидино
  • Кофеїн
Heroku ретельно розроблений, щоб допомогти розробникам бути максимально продуктивними. Платформа усуває неприємні перепони та буденні завдання, тому ви можете не відволікатися у своєму процесі розробки. Де б ви не були на шляху навчання, Heroku допомагає вам ще більше полюбити розробку додатків. - Героку

Досвід Heroku надає послуги, інструменти, робочі процеси та підтримку поліглотів - усі вони призначені для підвищення продуктивності розробників. Користуватися Heroku можна більше, і я сподіваюся, ви вивчите більше і створите дивовижні речі за допомогою Heroku.

Якщо ви студент, будь ласка, зареєструйтесь у GitHub Student Developer Pack, щоб отримати Одне безкоштовне хобі Dyno терміном до двох років.

Цей пакет дає студентам безкоштовний доступ до найкращих інструментів розробника в одному місці, щоб ви могли вчитися на практиці.