Hem Alert: Arduino + moln meddelandehantering på en stor Display (12 / 14 steg)
Steg 12: Distribuera till molnet med Heroku
Nu när hem Alert arbetar i utveckling, låt oss få det att fungera på molnet. Det finns otaliga alternativ tillgängliga för distribution av webbapplikationer. Baserat på omfattningen och komplexiteten i hem Alert, jag bestämde mig för att ställa in min egen virtuell privat server inte är mödan värt. Istället är det bättre att satsa på en tjänst som Heroku, en ansökan värd. För min skala är Herokus gratis tier mer än tillräckligt. Även för komponenten Redis kunde jag välja en fri plan från en av många Redis leverantörer som arbetar med Heroku.
Fortfarande, det finns lite av arbetsinsats, som har att göra med att få min ansökan något modifierad så att den kan uppfylla Herokus specifikationer. Detaljerna är här, men i huvudsak du måste du lägga till dessa filer i projektet Sinatra (alla filerna som följer kan laddas från mitt Github konto):
config.ru: den berättar Heroku vilken fil innehåller programmet. Här är innehållet:
kräver '. / web "
köra Sinatra::Application
De första linjen pekar på web.rboch den andra raden faktiskt går din ansökan.
Gemfile: den innehåller pärlor (ruby kod paket) som krävs av programmet. Heroku kommer att se ut inuti denna fil till räkna ut vad andra koden måste installera så att programmet fungerar. Ett annat sätt att se på Gemfile är det är innehåller en lista över beroenden för ditt projekt. Om någon av dessa beroenden inte är tillgängliga, fungerar inte din ansökan. Här är vad som finns inuti Gemfile för denna app:
Källa "https://rubygems.org"
ruby "2.1.1"
pärla "sinatra"
pärla "puma"
Gem "redis"
För det första ställer den källdatabasen i alla Gem koden vara rubygems.org. Nästa, det kräver den Ruby versionen 2.1.1 används för att köra programmet. Då den listar krävs pärlor: Redis Sinatra och Puma (en stora Ruby web application server).
Procfile: den berättar Heroku hur du startar din server. Det finns bara en linje här:
Web: rackup -s puma -p $PORT
Denna linje säger att "web" är den enda typ av service som krävs (du kan ha andra, som "arbetare", för behandling i bakgrunden), och att starta tjänsten Heroku måste du använda kommandot som kommer efter den ":".
Du kan simulera vad Heroku kommer att göra genom att följa denna sekvens på datorn utveckling (endast typ Testet innan pilen, vad som följer på pilen är endast en beskrivning av kommandot):
$> pärla installera maskinen — > installerar maskinen, som vet hur man hanterar Gemfile.
$> bunt installera -> Bundler bearbetar Gemfile och installerar beroenden.
$> rackup config.ru — > Rackup är ett verktyg som kan bearbeta filen config.ru. Det kommer normalt med den senare versionen av Ruby, om det inte "installera det såhär: pärla installera rack.
Det sista steget leder faktiskt starta ditt program. Du bör se det exakt samma resultatet som när du startade den med ruby web.rb tidigare. Det är samma program igång, bara med skillnaden att den andra metoden är hur Heroku startar den.
Vi är nästan redo att distribuera programmet till ditt Heroku-konto. Om du inte har en ännu, gå vidare och skapa en nu. Sedan Följ quickstart guide för att installera ditt konto och din lokal Utvecklingsmaskin, och särskilt Heroku Verktygsbälte.
Heroku Toolbelt installerar Heroku kommandoraden klienten, Git (öppen källkod kod ledningssystem) och Foreman (ett Ruby verktyg som hjälper till att hantera Procfile-baserade program).
När du slutfört installationen av Heroku Toolbelt anvisningarna på webbplatsen Heroku, Följ dessa steg för att få din ansökan distribuerat (allt skrivs i kommandoraden, inuti app katalog):
$> heroku inloggning — > Logga in på Heroku via kommandoraden
$> git init — > initiera en Git-förrådet för din ansökan
$> git lägga till. — > (märker pricken!) Lägga till alla filer i den aktuella katalogen till Git-förrådet
$> git begå -m "init" — > begå dessa filer i databasen, så med ett nytt meddelande
$> heroku skapa – > Skapa en ny app på Heroku. Heroku ger din app ett slumpmässigt namn, något som "blazing-galaxy-997". Anteckna namnet och Webbadressen så du kan komma åt den via din webbläsare senare. Denna URL kommer att se ut så här: "http://blazing-galaxy-997.herokuapp.com/". Du måste också kopiera hostname ("blazing-galaxy-997.herokuapp.com" delen) av ditt nya program till hemsida konstanten av din Arduino skiss. Gör nu så du inte glömmer senare.
$> heroku addons: Lägg till rediscloud — > lägger den gratis nivån av tjänsten Rediscloud Redis till din ansökan. Konfigurationsinställningarna skapas automatiskt och görs tillgängliga för ditt program.
$> git push heroku master — > distribuera din kod till Heroku. Detta kommer att automatiskt överföra koden, installera alla beroenden Heroku och starta programmet. I slutet av processen, kommer du att se något så här: "http://blazing-galaxy-997.herokuapp.com distribuerats till Heroku", vilket innebär att din ansökan är nu live på den offentliga Cloud! Grattis!
Varsågod, ge det en snurr!