Kako rasporediti čvornu aplikaciju i bazu podataka na Heroku

Heroku je potpuno upravljana platforma zasnovana na oblaku kao usluga (PaaS) za izgradnju, pokretanje i upravljanje aplikacijama. Platforma je fleksibilna i dizajnirana s DX podrškom za vas i preferirani stil razvoja vašeg tima te vam pomaže da ostanete fokusirani i produktivni.

Programeri, timovi i tvrtke svih veličina koriste Heroku za postavljanje, upravljanje i skaliranje aplikacija. Bilo da gradite jednostavni prototip ili poslovni kritični proizvod, Heroku-ova potpuno upravljana platforma pruža vam najjednostavniji put do brze isporuke aplikacija.

Sa značajkama kao što su Heroku Runtime, Heroku Postgres (SQL), Heroku Redis, dodaci, isječci podataka, mjerni podaci aplikacije, pametni spremnici, podrška za poduzeće, GitHub integracija i još mnogo toga, Heroku pruža programerima slobodu da se usredotoče na svoj osnovni proizvod bez ometanja održavanja poslužitelja, hardvera ili infrastrukture.

Jedna od glavnih značajki Herokua je postavljanje, upravljanje i skaliranje aplikacija s vašim omiljenim jezicima [Node, Ruby, Python, Java, PHP, Go i drugi].

U ovom članku pokazat ću vam kako preuzeti postojeću aplikaciju Node.js i rasporediti je na Heroku - sve, od stvaranja računa Heroku do dodavanja baze podataka u vašu postavljenu aplikaciju.

Preduvjeti

U svom prethodnom članku napisao sam o "Izradi SlackBot-a s Node.js i SlackBots.js" i obećao sam da ću napisati sljedeći članak koji će pokazati kako hostirati SlackBot na Heroku, Zeit ili Netlify i objaviti ga na Trgovina Slack Apps. Pa, ovo je sljedeći članak, ali bez dijela "Objava u Slack Apps". To ćemo pokriti u drugom članku.

Pretpostavljam da već imate / znate sljedeće:

  • Pročitajte moj prethodni članak
  • Izradio je inspireNuggets SlackBot
  • Instalirani su Git, Node i npm
  • Besplatni Heroku račun
  • Instaliran Heroku CLI

Bonus

Ako već nemate instaliran npm, Node i Heroku CLI ili Heroku račun, evo brzog bonusa [Da, nema na čemu :)].

Instaliranje npm i Node

  • Node.js je JavaScript radno vrijeme izgrađeno na Chromeovom V8 JavaScript mehanizmu.
  • npm je upravitelj paketa za Node.js. Projekt otvorenog koda stvoren za pomoć programerima JavaScript-a da lako dijele upakirane module koda.

Node.js možete jednostavno preuzeti ovdje. Ne brinite, npm dolazi s Node.js, pa ovo instalira oba both

Stvaranje besplatnog Heroku računa

Molimo vas da krenete ovdje i popunite obrazac za prijavu. Prilično je jednostavno.

Instaliranje Heroku CLI

Sučelje Heroku naredbenog retka (CLI) olakšava stvaranje i upravljanje aplikacijama Heroku izravno s terminala. To je važan dio korištenja Herokua. [Pa, možete se odlučiti za upotrebu značajke integracije GitHub i nadzorne ploče Heroku, ali da, trebali biste naučiti kako koristiti CLI]

Heroku CLI zahtijeva Git, popularni sustav kontrole verzija. Ako još nemate instaliran Git, napisao sam ovaj članak da vam pomognem.

Heroku CLI za Mac OS

brew tap heroku/brew && brew install heroku 

ili preuzmite instalacijski program.

Heroku CLI za Ubuntu

sudo snap install --classic heroku 

Heroku CLI za Windows

Preuzmite instalacijski program za 64-bitnu ili 32-bitnu verziju.

Ostale metode instalacije

Molimo vas pročitajte ovo.

Početak rada s Heroku CLI

  • Provjerite svoju instalaciju
heroku --version 

heroku / 7.30.1 linux-x64 node-v11.14.0

  • Prijavite se na svoj Heroku račun

Postoje dva načina za to:

  • Potvrda putem Interneta
heroku login 

Slijedite upute i prijavite se putem web preglednika, a zatim se vratite na terminal.

  • CLI aut

Ovo je sigurnija opcija jer sprema vašu e-adresu i API token na ~/.netrcbuduću upotrebu.

heroku login -i 

Uvođenje vaše aplikacije Node.js

Pretpostavljam da ste već izgradili SlackBot. Ako niste, klonirajte gotov projekt.

Projekt je jednostavan Slackbot koji prikazuje slučajne inspirativne tehničke citate i šale za programere / dizajnere.

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

Ajmo sada rasporediti našu aplikaciju na Heroku ??. Pokazat ću vam dva načina kako to učiniti:

Postavite putem Heroku Gita

To se radi putem Heroku CLI.

☑️ Kontrolni popis
  • Navedite verziju Node.js koja će se koristiti za pokretanje vaše aplikacije na Heroku u vašoj package.jsondatoteci.
"engines": { "node": "10.16.0" }, 
  • Navedite početnu skriptu.

    Jednostavno stvorite Procfile(bez ikakvog nastavka datoteke) i dodajte

web: node index.js 

Heroku prvo traži ovaj Procfile. Ako nijedna nije pronađena, Heroku će pokušati pokrenuti zadani web postupak putem početne skripte u vašem package.json.

  • Pokrenite aplikaciju lokalno pomoću lokalne naredbe heroku kako biste bili sigurni da sve funkcionira u redu
heroku local web 

Vaša bi se aplikacija sada trebala izvoditi na // localhost: 5000.

  • Ne zaboravite .gitignore
/node_modules .DS_Store /*.env 
? Krenimo

Kako to funkcionira, projekt već radi na lokalnom i već ste se prebacili na GitHub.

  • Trčanje heroku create

U osnovi, ova naredba stvara novu aplikaciju Heroku za vas s nekom nasumično generiranom domenom i dodaje Heroku u vaše lokalno Git spremište.

  • Sad trči git push heroku master

Ovo je čarobna naredba, ona gura vašu aplikaciju na Heroku, instalira je tamo i pokreće na dodijeljenoj domeni.

U gornjem primjeru to je //lit-cove-58897.herokuapp.com/

Uvijek možete izmijeniti postavke aplikacije i domene na nadzornoj ploči Heroku

  • Sada posjetite svoju aplikaciju u pregledniku
heroku open 
  • Također možete pogledati informacije o svojoj pokrenutoj aplikaciji pomoću jedne od naredbi za bilježenje. Ovo je vrlo korisno u pogreškama za uklanjanje pogrešaka.
heroku logs --tail 

Primjenite putem GitHub integracije

Integraciju GitHub možete konfigurirati na kartici Deploy aplikacija na nadzornoj ploči Heroku.

☑️ Kontrolni popis
  • Ovdje se primjenjuju svi prethodni kontrolni popisi - provjerite jeste li već instalirali aplikaciju na GitHub
? Krenimo

Kako ova metoda funkcionira je da cijeli svoj projekt gurnete na GitHub i integrirate u Heroku. Svaki put kad pritisnete, ona se raspoređuje s GitHub-a na Heroku. Prilično cool zar ne?

  • Prijavite se na svoju nadzornu ploču Heroku i izradite novu aplikaciju
  • Odaberite naziv i regiju aplikacije

Sada je vaša aplikacija uspješno stvorena

  • Kliknite karticu implementacije i pomaknite se do odjeljka Metoda postavljanja
  • Kliknite gumb Poveži se s GitHubom
  • Sada imate odjeljak Poveži se s GitHubom , potražite spremište i postavite.
  • Sada je vaša aplikacija uspješno postavljena

Automatsko postavljanje

Sada je vaša aplikacija postavljena, ali morat ćete nastaviti s ručnom implementacijom. Morate omogućiti automatsko postavljanje za GitHub granu, tako da Heroku gradi i raspoređuje sve potiske na tu granu.

  • Pomaknite se do odjeljka Automatsko postavljanje

Odaberite granu koju želite rasporediti. U idealnom slučaju, ovo bi trebala biti mastergrana, ali promijenite je prema svojim željama.

Sada će svaki pritisak na master(ili granu koju ste odabrali) implementirati novu verziju ove aplikacije.

Node.js Buildpack

U Herokuu, Buildpacks su skripte koje se pokreću kada se aplikacija instalira. Koriste se za instaliranje ovisnosti za vašu aplikaciju i konfiguriranje vašeg okruženja.

Nakon postavljanja aplikacije osigurajte da dodate projektni paket Node.js u svoj projekt.

  • Idite na Postavke i pomaknite se do odjeljka Buildpack
  • Pritisnite gumb Add Buildpack i odaberite Node.js u modulu Popup.
  • Sada će se koristiti nova konfiguracija buildpack-a kada se sljedeća aplikacija instalira. Unesite neke promjene u svoju aplikaciju i pritisnite GitHub - ona će se automatski implementirati.

Dodavanje baze podataka u vašu instaliranu aplikaciju '

Tržište dodataka Heroku ima velik broj spremišta podataka, od pružatelja usluga Redis i MongoDB do Postgresa i MySQL-a.

Heroku pruža tri usluge upravljanja podacima za sve kupce u obliku dodataka:

  • Heroku Postgres
  • Heroku Redis
  • Apache Kafka na Herokuu

Pisanje o ovoj trojici učinit će ovaj članak predugim. Prilično je jednostavno, a ja ću dodati neke poveznice na Heroku dokumente.

  • Heroku Postgresql Dokumenti
  • Heroku Redis Dokumenti
  • Apache Kafka na Heroku dokumentima

Zaključak

Svakom Heroku računu dodijeljen je skup besplatnih dyno sati. Heroku (besplatni) dynos izvrsni su za hosting aplikacija i osobnih projekata. Međutim, nedostatak je taj što će vaša aplikacija zaspati ako u roku od 30 minuta ne primi nikakav web promet :(.

Možete koristiti vanjske alate za povremeno pinganje poslužitelja kako nikada ne bi zaspao.

Evo nekoliko koje treba uzeti u obzir:

  • Pingmydyno
  • Heroku samopitiranje
  • Wakemydyno
  • Kofein
Heroku je pomno dizajniran da pomogne programerima da budu što produktivniji. Platforma uklanja frustrirajuće prepreke i svakodnevne zadatke, tako da možete ostati bez smetnji u svom razvojnom toku. Gdje god da ste na putu učenja, Heroku vam pomaže da još više volite razvoj aplikacija. - Heroku

Iskustvo Heroku pruža usluge, alate, tijekove rada i podršku za poliglot - sve osmišljeno kako bi poboljšalo produktivnost programera. Korištenje Herokua ima više i nadam se da ćete istražiti više i izgraditi nevjerojatne stvari s Herokuom.

Ako ste student, molimo vas da se registrirate za GitHub Student Developer Pack da biste dobili jedan besplatni Hobby Dyno do dvije godine.

Paket daje studentima besplatan pristup najboljim alatima za programere na jednom mjestu kako biste mogli učiti radeći.