Lekende lett deployment med Azure Toolkit for Eclipse og IntelliJ

Denne blogposten finnes også som video på Channel 9!  

Vi har tidligere gått igjennom hvordan du registrerer et Azure abonnement og vil i denne bloggposten se på hvordan man enkelt kan deploye Java applikasjoner til Azure. Vi bruker Azure Toolkit for Eclipse som er en plugin til Eclipse og kjører på Linux, Mac OS X og Windows. Eksakt samme funksjonalitet finnes i Azure Toolkit for IntelliJ, men i dette eksemplet velger vi å fokusere på Eclipse og bruker en helt ny funksjonalitet for å deploye direkte til en Azure Web App.

Web Apps er en ferdig PaaS-løsning i Azure som håndterer alt det praktiske for din applikasjon. Du angir bare noen detaljer som utviklingsspråk (f eks Java, Python eller PHP), versjon og web container (for Java støtter Azure Web Apps både Tomcat og Jetty out-of-the-box) og du er klar til å kjøre. Du trenger ikke bekymre deg om provisjonering, konfigurering og spesielt mye annet praktisk (alt det tar Azure hånd om på kun noen minutter) - uten kan bare fokusere på utviklingen.

Tidligere kunne vi fra Azure Toolkit kun publisere vår app til en Cloud Service, så hvis vi ønsket å bruke Azure Web Apps måtte vi i stedet manuelt eksportere vår Java applikasjon til en WAR-fil og laste opp denne via FTP.  Dette er nå integrert i vårt Azure Toolkit, så vi kan velge å publisere applikasjoner direkte til en eksisterende eller ny Web App. Azure Toolkit for Eclipse kan til og med provisjonere en ny Web App for oss helt automatisk, å siden deploye direkte til denne.

Hvis du har arbeidet med Eclipse og Tomcat før vil du kjenne igjen mye og kan hoppe direkte til de Azure-spesifikke delene som vil være mer interessant for deg.

 

 

 

Forberedelser

 

  • Installere Java Development Kit: <www.oracle.com/technetwork/java/javase/downloads/index.html>

Screen Shot 2016-03-06 at 19.58.12Screen Shot 2016-03-06 at 19.58.32

 

  • Installere Eclipse IDE for Java EE Developers: <www.eclipse.org/downloads/>

Screen Shot 2016-03-08 at 20.26.02

 

  • Installere Apache Tomcat 8: <tomcat.apache.org/>

Screen Shot 2016-03-08 at 19.42.57 Screen Shot 2016-03-08 at 19.44.38

 

 

 

Installere Azure Toolkit for Eclipse

 

Start Eclipse, og gå til Help->Install New Software... Screen Shot 2016-03-06 at 20.01.01

 

Skriv inn dl.msopentech.com/eclipse i adressefeltet. Kryss i Azure Toolkit for Java og kryss av Contact all update sites during install to find required software (ellers vil installasjonen ta ekstremt lang tid).
Screen Shot 2016-03-06 at 20.02.17

 

Klikk Next, akksepter lisensavtalet og klikk Finish. Når installasjonen er klar vil Eclipse starte på nytt. Azure Toolkit er nå installert.
Screen Shot 2016-03-06 at 20.02.25

 

 

 

Opprette en Azure Web App i Azure-portalen

 

Før vi tar den "enkle veien" og lar Azure Toolkit for Eclipse skape en Web App for oss vil jeg kjapt vise hvordan man gjør det manuelt i Azure-portalen. Hvis du ikke har et Azure-abonnement kan du fikse et på kun noen minutter gjennom å følge guiden her.

Når du har et abonnement, logg deg inn i portalen (portal.azure.com) og velg New->Web+Mobile->Web App.

Screen Shot 2016-03-06 at 20.05.29

 

Angi et navn for web appen, velg abonnementstype og ressursgruppe (bare å skape en ny med et unikt navn hvis du ikke har noen fra før). Klikk deretter på App Service plan for å sette opp denne.

Screen Shot 2016-03-06 at 20.07.31

 

Hvis du ikke har en eksisterende plan eller vil skape en ny klikker du bare på Create New og angir navn og location (West Europe har lavest latency for oss i Norge). Du må også velge Pricing tier som angir hva type HW du vil kjøre din applikasjon på. Dette kan lett endres etterpå så ikke stress.

Screen Shot 2016-03-06 at 20.07.02

 

Velg siden Create så vil din Web App deployes.

Screen Shot 2016-03-06 at 20.07.46

 

Når deployment er ferdig kan du klikke på din Web App for å konfigurere den.

Screen Shot 2016-03-06 at 20.12.48

 

Klikk på Application settings og sett Java version til Java 8. Default for Minor version er Newest, og Web container er satt til Newest Tomcat 8.0. La disse være.

Til info blir .NET, PHP og Python slått av når du velger Java. Dette er grunnet hvordan Java web containers fungerer på Azure Web Apps.

Screen Shot 2016-03-06 at 20.13.14

 

Klikk deretter Save for å oppdatere instillingene. Vi har nå satt opp vår Web App og konfigurert den for Java på Apache Tomcat.

For å laste opp Java applikasjoner til denne kan man f eks bruke FTP. Vi må da først angi Deployment credentials som vi finner under Settings.  Disse er globale og brukes for alle apps i ditt Azure-abonnement. Vi får deretter vårt Deployment username for akkurat denne appen (MatiasNewWebApp\matiasp) samt vårt FTP hostname gjennom å holde musepekeren over informasjonen og klikke på mappesymbolen Click to copy. Deretter er det lett å bruke valgfri FTP klient for å koble til Web Appen og laste opp vår Java applikasjon.

Screen Shot 2016-03-06 at 20.15.05

 

 

 

Deployment med Azure Toolkit for Eclipse

 

Vi skal nå skape en web applikasjon i Eclipse som kjører på Apache Tomcat. Denne applikasjonen skal vi senere se hvordan vi kan deploye til en eksisterende samt en ny Web App.

Velg File->New->Dynamic Web Project. Screen Shot 2016-03-08 at 19.45.45

 

Gi prosjektet ditt et navn og klikk siden New Runtime for å konfigurere et runtime-miljø.

Screen Shot 2016-03-08 at 19.46.52

 

Velg Apache Tomcat v8.0. Screen Shot 2016-03-08 at 19.46.59

 

Du må her spesifisere installasjonsmappen for Apache Tomcat.

Screen Shot 2016-03-08 at 19.47.22

 

Klikk Finish for å skape web-prosjektet. Dette vil nå inneholde alle nødvendige libs for å kjøres som en web applikasjon på Apache Tomcat.

Screen Shot 2016-03-08 at 19.47.27

 

Vi skal nå opprette en Servlet som kjører på Tomcat og bare printer ut dato og tid på websiden. Høyreklikk på prosjektet og velg New->Servlet.

Screen Shot 2016-03-08 at 19.47.55

 

Gi den nye klassen et navn og klikk Finish. Dette gir oss en ferdiggenerert servlet som printer ut context-path, dvs hvor i mappestrukturen på serveren applikasjonen kjører i.

Screen Shot 2016-03-08 at 19.48.27

 

Dette "skjelettet" kan vi bygge videre på. For å holde det simpelt legger vi bare til en ny import (java.util.* ) som vi vil bruke for dato-funksjonaliteten.

Notér også ikonene for Azure publishing oppe i Eclipse's Toolbar.

Screen Shot 2016-03-08 at 19.49.49

 

Vi legger deretter til to rader kode for rett og slett å printe ut dato og tid, se under.

Screen Shot 2016-03-08 at 19.53.35

 

Vi endrer også @WebServlet så vi ikke trenger å spesifisere /HelloDate etter vår Web App's url.

Screen Shot 2016-03-08 at 20.05.44

 

 

Publiser applikasjonen som en Azure Web App

 

Høyreklikke på prosjektet og velg Azure->Publish as Azure Web App... Screen Shot 2016-03-08 at 20.03.33

 

Klikk på Subscriptions... Screen Shot 2016-03-08 at 20.23.05

 

Logg inn med brukernavn og passord som du brukte når du registrerte ditt Azure-abonnement.

Screen Shot 2016-03-08 at 20.23.59 Screen Shot 2016-03-08 at 20.25.11

 

Velg abonnementet du vil bruke og klikk Close.

Screen Shot 2016-03-08 at 20.05.57

 

 

Azure Toolkit vil nå lese inn evt. eksisterende Web Apps. Vi ser appen vi tidligere opprettet i Azure-portalen og kan deploye til denne, men i dette eksempelet velger vi i stedet å la Azure Toolkit opprette en ny Web App gjennom å klikke på New... Screen Shot 2016-03-08 at 20.05.57

 

Fyll inn navn, og velg container og abonnement. Resource Group og App Service plan kan vi opprette direkte gjennom å klikke på New, hvis vi trenger, eller ønsker å bruke nye.

Screen Shot 2016-03-08 at 20.06.18

 

Vår nye Web App blir nå opprettet direkte i Azure Toolkit.

Screen Shot 2016-03-08 at 20.06.24

 

Vi velger å deploye til AzureJavaDemo som er vår nye Web App. Velg Deploy to root for å få din applikasjon direkte i root-mappen på Web Appen (azurejavademo.azurewebsites.net i stedet for azurejavademo.azurewebsites.net/AzureJavaDemo).

Screen Shot 2016-03-08 at 20.06.41

 

Applikasjonen blir nå publisert til vår Azure Web App på kun noen sekunder og vi ser også at en WAR-fil har blitt opprettet i vårt prosjekt. Hvis vi ønsket kunne vi i stedet ha eksportert prosjektet til en WAR og lastet opp denne direkte i Web Appen via FTP som nevnt ovenfor, men dette er nå altså integrert i vårt Azure Toolkit.

Vi kan klikke på Published under Status i Azure Activity Log for å åpne opp en browser og komme direkte til vår applikasjon.

Screen Shot 2016-03-08 at 20.06.51

 

Under ser du resultatet når applikasjonen blir kjørt på azurejavademo.azurewebsites.net. Da den er deployet som root er pathen etter "Served at:" tom, og lenger ned printes dato og tid ut akkurat som vi ønsket. Hvis du har et eget domene du ønsker å bruke i stedet for azurewebsites.net er dette lett å fikse i Azure-portalen. Du må også angi litt info hos ditt Domain Name Register. Her er en detaljert guide for dette.

Screen Shot 2016-03-08 at 20.12.17

 

 

Oppsummering

Azure Web Apps er Azure's PaaS-løsning som passer strålende til de aller fleste typer av web applikasjoner uansett språk og plattform. Med det oppdaterte Azure Toolkit kan du nå publisere din applikasjon direkte fra Eclipse eller IntelliJ til en Azure Web App. Du konfigurerer enkelt instillinger for skalering, tilgjengelighet etc. i Azure-portalen og lar Azure håndtere alt praktisk rundt dette - så du kan fokusere på å utvikle din applikasjon.

Mer ressurser for Java på Azure finner du på Java Developer Center.