sql >> Database teknologi >  >> NoSQL >> MongoDB

Sådan implementeres MongoDB på Heroku

MongoDB Atlas er let og gratis at konfigurere og implementere MongoDB på Heroku. MongoDB Atlas omtales almindeligvis som multi-cloud-dataapplikationsplatformen. Det er en integreret data- og cloud-DB-tjeneste, der forenkler og accelererer, hvordan brugere bygger med data.

Når du begynder at bygge mere komplekse cloud-native apps, har det en tendens til at vælge de rigtige værktøjer og tjenester til at være ret overvældende. Det er dog ikke tilfældet, når du vælger den bedste cloud DB-tjeneste, da MongoDB Atlas er din bedste løsning.

På den anden side er Heroku en platform som en tjeneste (PaaS), der giver udviklere mulighed for at køre, bygge, manipulere og betjene apps i skyen. Heroku understøtter et væld af programmeringssprog.

Denne artikelguide vil illustrere, hvordan man implementerer MongoDB på Heroku. Vi skal bruge MongoDB Atlas-versionen, da den nemt kan integreres med de fleste Heroku-applikationer. Denne proces kan virke kompleks i starten, men du vil indse, at intet er kompliceret, når du dykker dybt ned i det. Det eneste, der skal til, er at indstille din MongoDB Atlas-klyngeforbindelsesstreng til en kendt Heroku-konfigurationsvariabel, og så er du klar.

Atlas-udgaven er en fuldt administreret cloud MongoDB-tjeneste, der automatiserer MongoDB-klyngehåndtering i skyen. Det tilbyder brugerne automatisk skalering, automatiserede sikkerhedskopier, komplet suiteadministration, analytiske værktøjer og en multi-AZ-tolerancefejl. MongoDB Atlas er blandt de mest sofistikerede DBaaS.

Følg trinene heri for at lære, hvordan du får MongoDB op og kører hurtigt. Du vil også være i stand til at se, hvordan du forbinder MongoDB Atlas-klyngen til Heroku-apps ved at følge den dybdegående vejledning i denne artikel.

Sådan implementerer du MongoDB på Heroku

Denne artikelvejledning forudsætter, at du har følgende forudsætninger på plads:

  1. Du er godt fortrolig med MongoDB og har skrevet MongoDB-applikationer
  2. Du er fortrolig med Heroku og har implementeret Heroku-applikationer før
  3. Du har installeret Heroku CLI
  4. Du er fortrolig med Git og har installeret det.

Med de nævnte forudsætninger, lad os lære mere om emnet diskuteret ovenfor.

Opsætning af MongoDB Atlas Cluster

Først skal vi se på, hvordan man opsætter MongoDB Atlas Cluster i mindre end fem trin.

Trin 1:Oprettelse af en MongoDB Atlas-konto

Bemærk: Hvis du allerede har oprettet en MongoDB-konto med din e-mailadresse, skal du springe registreringsprocessen over og logge ind på din konto.

Det er meget nemt at tilmelde sig en ny MongoDB Atlas-konto. Du kan vælge at bruge din e-mailadresse eller din Google-konto til at registrere dig.

Processen er helt gratis; derfor behøver du ikke bekymre dig om at pådrage dig yderligere omkostninger.

Følg dette link for at tilmelde dig en MongoDB Atlas-konto gratis. Du skal blot udfylde dine oplysninger og klikke på knappen "Kom gratis i gang" for at få din gratis Atlas-konto.

Når du har en Atlas-konto, skal du fortsætte til næste trin

Trin 2:Oprettelse af dit projekt og din organisation

MongoDB Atlas vil som standard bede dig om at oprette en organisation og et projekt efter at have gennemført registreringsprocessen. Udfyld hurtigt de nødvendige detaljer for at fuldføre denne proces og gå videre til næste trin. Organisationen og projektet vil blive brugt til at implementere din klynge i fremtiden.

Trin 3:Implementer klynge

I denne fase vil du vælge en klynge fra forskellige klyngemuligheder. Af hensyn til denne artikelguide bruger vi muligheden "Delt klynge", som er den gratis klyngemulighed leveret af MongoDB Atlas. Under indstillingen "Delt klynge" skal du klikke på "Opret."

Du vil blive bedt om at vælge et par muligheder for din klynge på næste side, som fremhævet nedenfor:

Skyudbyder og region

Her skal du vælge, hvor din klynge skal udrulles til. Det er vigtigt at vælge en region tættest på din ansøgning. Ideelt set bør du vælge en konstant region for at minimere latensrelaterede problemer. Vi skal bruge denne region, "N. Virginia (us-east-1)", med AWS som vores kildeskyleverandør til denne guide. Vi valgte AWS som vores cloud-udbyder, da vi skal implementere på Heroku og hoste deres infrastruktur på AWS.

Klyngeniveau

I dette underafsnit vil du se de tilgængelige klyngelag for den klyngeindstilling, vi valgte, i dette tilfælde de delte klyngeindstillinger. Her vil du se en sammenligning af RAM, Storage, tiers Basispris og vCPU. Disse sammenligninger hjælper dig med at vælge det rigtige niveau, der passer til dit projekt. Vi overlader det til standardniveauet "M0 Sandbox" for denne vejledning.

Yderligere indstillinger

Denne sektion afhænger af det niveau, du vælger. Du får muligvis nogle yderligere indstillinger afhængigt af det niveau, du vælger. Disse indstillinger inkluderer sikkerhedskopieringsmuligheder og MongoDB-versioner, der skal implementeres. Vælg MongoDB version 4.4 og lad sikkerhedskopieringsindstillingen være slået fra.

Klyngenavn

Dette er den sidste mulighed. Her ville det hjælpe, hvis du navngav din klynge. Jeg vil kalde vores klynge "Leafix". Husk, at du ikke får lov til at ændre det, når du først har oprettet klyngen.

Bemærk:Det er tilrådeligt at gennemgå de valgte muligheder og foretage de nødvendige ændringer, før du opretter klyngen ved at bruge knappen "Opret klynge".

Trin 4:Opret en DB-bruger til din nyoprettede klynge

MongoDB Atlas kræver, at klienter godkendes som MongoDB-databasebrugere for at få adgang til klynger. Følg de angivne trin for at oprette en DB-bruger til din klynge.

  • Naviger til afsnittet "Databaseadgang". Den er placeret under fanen "Sikkerhed" i venstre side.
  • Klik på muligheden "Tilføj en ny databasebruger".
  • Der vises en prompt. Indtast din godkendelsesmetode og databasebrugerrettigheder
  • Brug "Adgangskoden" som din godkendelsesmetode, og angiv adgangskoden og brugernavnet.

Bemærk: Det anbefales stærkt at autogenerere en stærk adgangskode fra Atlas for at forhindre usikkerhedsrelaterede komplikationer. Når du har autogenereret adgangskoden, skal du kopiere og gemme den et praktisk sted, så den nemt kan genfindes i fremtiden. Dette trin er vigtigt, da vi skal kræve adgangskoden, mens vi opretter forbindelse til klyngen.

  • Giv brugeren flest privilegier ved at vælge "Atlas admin"-indstillingen.
  • Når du er færdig, skal du klikke på "Tilføj bruger" for at oprette en DB-bruger.

Trin 5:Giv autoriseret IP-adresseklyngeadgang

Dette er det sidste trin, når du opsætter MongoDB Atlas-klyngen. Denne sektion vil vælge de IP-adresser, der giver os adgang til Atlas-klyngen. For at give autorisation skal du følge trinene nævnt heri:

  1. Vælg "Netværksadgang" under "Sikkerhed".
  2. Vælg derefter "Tilføj IP-adresse".
  3. Vælg "Tillad adgang fra hvor som helst", og klik på knappen "Bekræft" for at fuldføre processen.

Det er alt. Du har opsat din MongoDB Atlas-klynge.

Bemærk :Du ønsker ikke at tillade denne type IP-adresseadgang i et produktionsmiljø på grund af sikkerhedsproblemer. Du skal identificere den nøjagtige IP-adresse for din applikation og udtrykkeligt indstille IP-adresseområdet. Denne proces er skræddersyet til at forbedre din klynges sikkerhed.

Opretter forbindelse til din klynge

Følg denne vejledning for at oprette forbindelse til din nyoprettede klynge:

  1. Under afsnittet "Datalagring" på venstre navigationslinje skal du klikke på "Klynger."
  2. Klik på fanen "Forbind".
  3. Vælg din driverversion, og kopier derefter kun forbindelsesstrengen

Når du er færdig, skal du opdatere forbindelsesstrengen. Igen, forsøm ikke at tilføje dit brugernavn og din adgangskode.

Oprettelse af en Heroku-konto

Det er meget nemt at oprette en Heroku-konto. Besøg først Herokus officielle hjemmeside og tilmeld dig ligesom vi gjorde for MongoDB Atlas. Når du har fuldført din Heroku-konto, skal du fortsætte og installere Heroku CLI.

Installer Heroku CLI

Det er vigtigt at sikre, at du har Git installeret på dit Linux OS, da Heroku CLI kræver Git. Git er et populært versionskontrolsystem, der almindeligvis bruges af de fleste udviklere. Det er meget nemt at installere Git. Åbn din terminal og udfør kommandoen nedenfor:

sudo apt-get install git-all

Output:

Den kommando vil installere Git i dit Linux OS. Kør derefter denne anden kommando for at installere Heroku på dit Linux OS:

sudo snap install --classic heroku

Output:

Giv terminalen tid til at udføre kommandoen og installer Heroku helt.

Log ind og opret en ny applikation på Heroku-webstedet

Vi tror, ​​du har fulgt artiklen tæt, og du har oprettet en Heroku-konto. Hvis det er tilfældet, skal du åbne dit Heroku Dashboard. Indtast de detaljer, du brugte til at oprette din Heroku-konto for at logge ind på dit dashboard. Når du er logget ind, skal du fortsætte til næste trin for at oprette en ny applikation:

  1. Naviger til heroku.com/apps
  2. Vælg Ny>Opret ny app> Vælg region>Opret app.
  3. Vær tålmodig, mens appen er oprettet.
  4. Når processen er færdig, vil du blive omdirigeret til dit betjeningspanel. Vælg afsnittet "Deploy"

Tilslutning af Heroku-applikationen til lokale lagre

Følg implementeringsvejledningerne i denne artikels implementeringssektion, som du tidligere valgte.

Log alligevel ind på Heroku i afsnittet "Deploy", vi valgte tidligere.

Kør følgende kommandoer (også angivet i sektionen Deploy) for at oprette forbindelse til Heroku og bygge en ny Dyno fra din server/projektrodmappe:

Bemærk: Vinkelbeslagene “<> ” brugt i eksemplerne nedenfor angiver de brugerleverede identifikator/parameter/argumentværdier. Når du kører kommandoerne, bør du udelade dem.

# Tilføj Heroku-fjernbetjening

heroku git:remote -a <name-of-the-newly-created-app>

# Tag et kig på de tilgængelige fjernbetjeninger.

# Forbindelsen til det nye 'heroku' fjernlager skulle være synlig.

git remote -v

# På udviklingsgrenen, begå det seneste arbejde.

git add .

git commit -m 'Write a clear, meaningful commit message here.'

git push origin <development-branch-name>

# Filialer skal tjekkes ud til masterfilialen.

git checkout master

# Opdateringer fra udviklingsgrenen er slået sammen.

git merge <development-branch-name>

git push heroku master

Opsætning af Heroku til at oprette forbindelse til MongoDB Atlas Cluster ved hjælp af konfigurationsvariabler

Vi havde det meget sjovt med hurtigt at opsætte vores Atlas-klynge, men vi tror, ​​du vil nyde denne sektion endnu mere!

Heroku-applikationer, der er Atlas-støttede, er ligetil at bygge op. Konstruer en konfigurationsvar på applikationsniveau, der indeholder din klynges forbindelsesstreng. Du kan sikkert få adgang til den konfigurationsvariant i din applikation, når den er konfigureret!

Sådan gør du:

Trin 1:Åbn Heroku CLI og log ind.

heroku login

Denne kommando fører dig til Heroku login-siden i din webbrowser. Klik på knappen "Log ind", hvis du allerede er logget ind. Du kan også bruge flaget -i til at logge på fra kommandolinjen.

Trin 2:Lav en kopi af min demo-app

Jeg har konstrueret en prototype Node-applikation, der bruger MongoDB Atlas, og som jeg gerne vil udgive til Heroku for at fortsætte denne lektion. Klon det, og gå derefter til følgende mappe:

git clone https://github.com/adriennetacke/mongodb-atlas-heroku-leaflix-demo.git

cd mongodb-atlas-heroku-leaflix-demo

Output:

Trin 3:Byg en Heroku-app

heroku create leaflix

Output:

Som du kan se, har jeg givet mit blad et navn.

Få din Atlas Cluster-forbindelsesstreng

Vend venligst tilbage til din Atlas-klynges dashboard for at hente vores forbindelsesstreng.

  • Vælg "Forbind" fra rullemenuen.
  • Vælg "Forbind din applikation" fra rullemenuen.

Den forbindelsesstreng, vi skal bruge for at forbinde til vores klynge, findes her. Skriv forbindelsesstrengen ned.

Indsæt forbindelsesstrengen i en editor; vi foretager nogle ændringer, før vi tildeler den til en Heroku-konfigurationsvariabel.

Atlas har nemt inkluderet brugernavnet på den databasebruger, vi tidligere har oprettet, som du kan se. Erstat "adgangskoden" med din personlige databasebrugers adgangskode og "dbname" med "sample_mflix", som er prøvedatasættet, vores demo-app vil bruge til at fuldføre forbindelsesstrengen og gøre den gyldig.

Bemærk:Hvis du ikke har adgangskoden til din databasebruger, skal du automatisk generere en og bruge den i forbindelsesstrengen. Hvis du autogenererer det igen, så husk at opdatere det! Gå til Databaseadgang> Klik på "Rediger" på den databasebruger, du ønsker at finde adgangskoden til> Nulstil din adgangskode> Generer automatisk en anden sikker adgangskode.

Opret en MONGODB_URI-konfigurationsvariabel

Nu hvor vi har oprettet den korrekt, er det tid til at gemme vores forbindelsesstreng i en Heroku-konfigurationsvariabel. Indstil MONGODB_URI-konfigurationsvariablen til vores forbindelsesstreng:

heroku config:set MONGODB_URI="mongodb+srv://yourUsername:[email protected]/sample_mflix?retryWrites=true&w=majority"

Her er et par vigtige punkter, du skal huske på:

  • Denne kommando består kun af én linje.
  • Fordi vores forbindelsesstrengs format indeholder specialtegn, skal den være omgivet af anførselstegn.

Det er så enkelt som det! Du har med succes tilføjet din Atlas-klynges forbindelsesstreng til en Heroku-konfigurationsvariabel, så du kan få sikker adgang til den, efter din app er implementeret til Heroku.

Bemærk: Du kan også indtaste denne config var i Heroku Dashboards fane "Indstillinger" for din app. Gå til Leaflix> Indstillinger i dine apps. Klik på knappen "Reveal Config Vars" i Config Vars sektionen, og indtast din config var der.

Det sidste trin er at ændre din applikations kode for at give adgang til disse variabler.

Brug af Heroku config var-værdier til at forbinde din app til en MongoDB Atlas Cluster

Du vil bemærke, at vi har hårdkodet vores Atlas-klyngeforbindelsesstreng i vores demoapplikation. Vi skal omarbejde vores kode for at bruge den tidligere genererede Heroku-konfigurationsvariabel.

Miljøvariabler bruges til at eksponere konfigurationsvariabler for din applikations kode. Det sprog, du vælger for at få adgang til disse variabler, bestemmer, hvordan du får adgang til dem; for eksempel, i Java, vil du bruge System.getenv('nøgle') opkald, og i Ruby ville du bruge ENV['nøgle'] opkald.

Når vi ved, at vores applikation er skrevet i Node, kan vi bruge process.env-variablen i Node.js til at oprette forbindelse til vores Atlas-klynge. Skift uri-konstanten i server.js-filen til:

const uri = process.env.MONGODB_URI;

Det afslutter vores diskussion. Vores applikation vil sikkert få adgang til vores Atlas-klyngeforbindelsesstreng, når den er installeret, fordi vi har tilføjet den som en Heroku-konfigurationsvar.

Gem filen, begå ændringen, og implementer derefter til Heroku.

git commit -am "fix: refactor hard-coded connection string to Heroku config var"

git push heroku master

Din applikation er nu blevet implementeret! Ved at bruge denne kommando kan du dobbelttjekke, at mindst én forekomst af Leaflix kører:

heroku ps:scale web=1

Du vil vide, at mindst én forekomst er oppe at køre, hvis du får en meddelelse, der siger:"Skalering af dynos... færdig, kører i øjeblikket web på 1:Free."

Til sidst skal du navigere til din apps hjemmeside. Du kan gøre det ved at følge nedenstående trin:

heroku open

Når du trykker på "Har du brug for et grin?" knappen, vil vores software vælge en film baseret på kategorien " Komedie " i genreområdet. Hvis alt er i orden, skulle du se noget som dette:sample_mflix-datasættet bruges i dette eksempel, som kommer direkte fra vores Atlas-klynge.

Konfiguration af IP-adresser for Heroku i MongoDB Atlas

Vores klynge er allerede operationel, og vores app er nu live på Heroku!

Vi konfigurerer vores klynge til at acceptere forbindelser fra enhver IP-adresse for at få os igennem artikelvejledningen. Du foretrækker udelukkende at begrænse adgangen til din applikation, og der er et par muligheder på Heroku for at gøre det.

Den første mulighed er at bruge en tilføjelse til at give din applikation en statisk udgående IP-adresse, som du kan bruge til at begrænse adgangen i Atlas. Nogle eksempler kan findes her.

En anden mulighed er at bruge Heroku Private Spaces og bruge rummets statiske udgående IP'er. Dette er et dyrere valg, men det eliminerer en ekstra tilføjelse.

Der er forskellige dokumenter og artikler derude, der hævder, at du kan bruge AWS eller Heroku IP-områder til at give adgang til IP'er, der stammer fra dit AWS-område eller Heroku Dynos i disse regioner. Selvom dette er tænkeligt, tilrådes det ikke, fordi sådanne intervaller kan ændre sig over tid. Så i stedet foreslår vi at bruge en af ​​de to fremgangsmåder, der er anført ovenfor.

Du kan bruge IP-adresserne til din applikation til at konfigurere din firewall i Atlas, når du har dem.

Fjern eventuelle eksisterende IP-områder fra din Atlas-klynge, og føj dem derefter til din tilladelsesliste. Du kan gøre det ved at følge den procedure, vi brugte til "Tilføj IP-adresser og slet de eksisterende IP-områder."

Det er alt! Du har med succes implementeret MongoDB på Heroku


  1. Hvordan oprettes forbindelse til Atlas M0 (Free Tier) klynge korrekt via Java-driver?

  2. golang + redis præstationsproblem med samtidighedsplanlægning

  3. MongoDB-sammenlægninger ved hjælp af Java

  4. Python + Memcached:Effektiv cachelagring i distribuerede applikationer