Как да разположим Node Application и база данни в 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 Apps“. Ще разгледаме това в друга статия.

Предполагам, че вече имате / знаете следното:

  • Прочетете предишната ми статия
  • Изграден 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 

или изтеглете инсталатора.

Heroku CLI за 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
  • Щракнете върху бутона Add Buildpack и изберете Node.js в изскачащия модал.
  • Сега новата конфигурация на buildpack ще се използва при следващото внедряване на това приложение. Направете някои промени в приложението си и натиснете към GitHub - то ще се разгърне автоматично.

Добавяне на база данни към вашето внедрено приложение "

Пазарът на добавки Heroku има голям брой хранилища за данни, от доставчиците на Redis и MongoDB до Postgres и MySQL.

Heroku предоставя три услуги за управлявани данни на всички клиенти под формата на добавки:

  • Heroku Postgres
  • Хероку Редис
  • Apache Kafka на Heroku

Писането за тази тройка ще направи тази статия твърде дълга. Това е доста просто и ще добавя няколко връзки към Heroku Docs.

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

Заключение

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

Можете да използвате външни инструменти за периодичен пинг на вашия сървър, за да не заспи.

Ето някои, които трябва да имате предвид:

  • Pingmydyno
  • Heroku самопинг
  • Wakemydyno
  • Кофеин
Heroku е проектиран щателно, за да помогне на разработчиците да бъдат възможно най-продуктивни. Платформата премахва разочароващите препятствия и светските задачи, така че можете да останете без разсейване в потока си на развитие. Където и да сте по пътя на обучението, Heroku ви помага още повече да обичате разработването на приложения. - Хероку

Опитът Heroku предоставя услуги, инструменти, работни потоци и поддръжка на полиглот - всичко това е предназначено да подобри производителността на разработчиците. Използването на Heroku има още нещо и се надявам да проучите повече и да създадете невероятни неща с Heroku.

Ако сте студент, моля, регистрирайте се за GitHub Student Developer Pack, за да получите едно безплатно хоби Dyno за период до две години.

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