Sovelluksen siirtäminen pilvipalveluun
Tarkastellaan seuraavaksi miten kurssin tehtävän voi lisätä Herokuun. Lisäämme Herokuun neljännen osan ensimmäisen tehtävän "Jokes". Tehtävän lisääminen verkkoon sisältää muutaman askeleen.
- Herokun käyttämän tietokannanhallintajärjestelmän ajurin määrittely.
- Tuotantokonfiguraation määrittely.
- Sovelluksen käynnistämiseen käytetyn ohjetiedoston määrittely.
- Sovelluksen lisäämisen versionhallintaan.
- Heroku-projektin luomisen sekä sovelluksen lähettämisen herokuun.
Tietokannanhallintajärjestelmän ajurin määrittely
Jotta voimme käyttää PostgreSQL-tietokannanhallintajärjestelmää, tarvitsemme sovellukseemme PostgreSQL-ajurin. Ajurin saa käyttöön lisäämällä projektin pom.xml
-tiedostoon seuraavan riippuvuuden.
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
</dependency>
Kun yllä oleva riippuvuus on määritelty projektiin, on ajuri käytössämme. Mikäli ajuria ei ole aiemmin ladattu koneelle, NetBeansissa joutuu klikkaamaan projektiin liittyvää Dependencies
-kohtaa ja valitsemaan Download Declared Dependencies
.
Tuotantokonfiguraation määrittely
Luodaan projektille seuraavaksi tuotantopalvelimen asetukset sisältävä konfiguraatiotiedosto. Käytämme tuotantoprofiilin nimenä merkkijonoa production
, joten luodaan sovelluksemme kansioon src/main/resources
tiedosto application-production.properties
. Oletuksena konfiguraatio peritään application.properties
-tiedostosta. Tehtäväpohjan tiedostossa määritellään mm. Hibernaten käyttämä kieli, joka on asetettu noudattamaan H2-tietokannanhallintajärjestelmän käytänteitä. Tämä tulee muuttaa.
Heroku syöttää käyttöömme merkittävän osan tietokanta-asetuksista valmiiksi, joten pääsemme konfiguraatiossa melko kevyellä. Ainoa oleellinen konfiguraatio on PostgreSQL-tietokannanhallintajärjestelmän käytänteiden seuraaminen. Konfiguraatiotiedoston sisällöstä tulee seuraava.
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
Sovelluksen käynnistämiseen käytetty ohjetiedosto
Heroku käynnistää sovelluksen sovelluksessa olevan Procfile
-tiedoston perusteella. Lisätään sovelluksen juurikansioon tiedosto Procfile
ja määritellään siihen ohjeet sovelluksen käynnistämiseen. Procfile
-tiedoston sisällöksi tulee seuraava:
web: java $JAVA_OPTS -Dspring.profiles.active=production -Dserver.port=$PORT -jar target/*.jar
Yllä oleva ohjeistus kertoo Herokulle miten sovellus tule käynnistää ja mitä muuttujia sovellukselle tulee antaa käynnistyksen yhteydessä. Yllä sovellukselle annetaan parametrina profiili 'production` sekä portti, johon palvelin käynnistyy. Tätä käytetään sen takia, että yksittäisellä Herokun palvelimella voi olla useita sovelluksia samaan aikaan käynnissä — tiettyyn osoitteeseen tulevat pyynnöt ohjataan aina tiettyyn porttiin.
Mikäli yllä olevaa konfiguraatiotiedostoa ei määritellä, Heroku ei käytä production
-profiilia. Tällöin mm. PostgreSQL-tietokantaa ei saada käyttöön.
Sovelluksen lisääminen git-versionhallintaan
Tässä oletamme, että projektia ei ole lisätty versionhallintaan. Alustetaan projektin juureen git-versionhallinta. Heroku käyttää myös git-versionhallintaa, joten voimme myöhemmin lähettää gitin avulla sovelluksemme Herokuun. Huom! Mikäli projektin juuressa on target
-kansio, suorita komento mvn clean
ennen seuraavia askeleita.
user@kone:~projekti$ git init
user@kone:~projekti$ git add .
user@kone:~projekti$ git commit -m "ensimmäinen versio"
Nyt sovellus on näennäisesti versionhallinnassa (vain paikallisella koneellamme).
Heroku-projektin luominen ja sovelluksen siirtäminen herokuun
Sovelluksen lisääminen herokuun vaatii sen, että luomme ensin Herokuun uuden (tyhjän) sovelluksen. Tämä onnistuu Herokun komentorivisovelluksella seuraavasti.
user@kone:~projekti$ heroku create
Komento luo Herokuun paikan sovelluksellemme sekä määrittelee versionhallintaamme etäosoitteen heroku
, johon sovelluksemme voi lähettää. Sovelluksen lähetys Herokuun onnistuu nyt gitin avulla seuraavasti.
user@kone:~projekti$ git push heroku master
Kun sovellus lähetetään Herokuun, Heroku lataa sovellukseen liittyvät riippuvuudet ja käynnistää sen. Tämän jälkeen sovellus on verkossa kaikkien tarkasteltavana. Voit avata sovelluksen selaimeen komennolla heroku open
.
user@kone:~projekti$ heroku open
Kun sovellus on Herokussa, voi sen toimintaa tarkastella lokeista. Komento heroku logs
on erittäin hyödyllinen virheiden etsinnässä. Tulostettavien rivien määrää voi kasvattaa parametrilla -n
— alla olevassa esimerkissä pyydetään viimeisimmät 500 riviä.
user@kone:~projekti$ heroku logs -n 500
Muutosten tekeminen sovellukseen
Kun sovellus on Herokussa, muutosten lisääminen sovellukseen on suoraviivaista. Kun lähdekoodia on muokattu ja sovellus toimii paikallisesti, uuden version lähettäminen herokuun onnistuu lisäämällä muutokset gitiin, committaamalla muutokset, ja lähettämällä muutokset Herokuun. Tätä ennen kannattaa ajaa komento mvn clean
, joka poistaa target
-kansion.
user@kone:~projekti$ mvn clean
user@kone:~projekti$ git add .
user@kone:~projekti$ git commit -m "seuraava versio"
user@kone:~projekti$ git push heroku master
:
Log in to view the quiz
:
Log in to view the quiz