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>
- Installere Eclipse IDE for Java EE Developers: <www.eclipse.org/downloads/>
- Installere Apache Tomcat 8: <tomcat.apache.org/>
Installere Azure Toolkit for Eclipse
Start Eclipse, og gå til Help->Install New Software...
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).
Klikk Next, akksepter lisensavtalet og klikk Finish. Når installasjonen er klar vil Eclipse starte på nytt. Azure Toolkit er nå installert.
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.
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.
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.
Velg siden Create så vil din Web App deployes.
Når deployment er ferdig kan du klikke på din Web App for å konfigurere den.
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.
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.
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.
Gi prosjektet ditt et navn og klikk siden New Runtime for å konfigurere et runtime-miljø.
Du må her spesifisere installasjonsmappen for Apache Tomcat.
Klikk Finish for å skape web-prosjektet. Dette vil nå inneholde alle nødvendige libs for å kjøres som en web applikasjon på Apache Tomcat.
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.
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.
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.
Vi legger deretter til to rader kode for rett og slett å printe ut dato og tid, se under.
Vi endrer også @WebServlet så vi ikke trenger å spesifisere /HelloDate etter vår Web App's url.
Publiser applikasjonen som en Azure Web App
Høyreklikke på prosjektet og velg Azure->Publish as Azure Web App...
Logg inn med brukernavn og passord som du brukte når du registrerte ditt Azure-abonnement.
Velg abonnementet du vil bruke og klikk Close.
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...
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.
Vår nye Web App blir nå opprettet direkte i Azure Toolkit.
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).
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.
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.
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.