Introduzione

Completato

Si immagini di essere uno sviluppatore Java che crea e distribuisce app che vengono eseguite nei server locali. Orchestrare questi server, dipendenze e scalabilità, per nominarne alcuni, sono tutti processi complessi.

A differenza delle macchine virtuali che emulano hardware, i contenitori vengono eseguiti direttamente all'interno del sistema operativo host, del kernel e dell'hardware, essenzialmente come un altro processo. Questo significa che i contenitori richiedono meno risorse di sistema, comportando un footprint più piccolo con un sovraccarico notevolmente inferiore, tempi di avvio delle app più veloci e un ottimo caso d'uso per il ridimensionamento su richiesta.

Con i contenitori ci si assicurerà che le app e le dipendenze siano sempre isolate nelle immagini del contenitore e pronte per la distribuzione su larga scala.

In questo modulo prima di tutto si inserirà un'app Java in un contenitore. Per praticità, è stata selezionata un'app Java esistente da usare. Dalla rete Internet aperta e condivisa sotto Licenza MIT, Flight Booking System for Airline Reservations è un sistema di prenotazione dei voli completamente reattivo, basato su Webe che si appoggia a una compagnia aerea di esempio, compilato con l'architettura MVC (Model View Controller) creato usando Java Servlets e Java Server Pages (JSP).

Si creerà quindi un Dockerfile e si scriveranno le istruzioni Docker necessarie per compilare un'immagine del contenitore. Si eseguirà quindi l'immagine del contenitore in locale e si testerà l'app. Si eseguirà quindi il push dell'immagine del contenitore in Registro Azure Container e la si distribuirà nel servizio Azure Kubernetes.

Alla fine di questo modulo, sarà possibile inserire un'app Java in un contenitore, eseguire il push dell'immagine del contenitore in Registro Azure Container e quindi distribuirla nel servizio Azure Kubernetes.

Si userà la propria sottoscrizione di Azure (con accesso per creare, aggiornare e rimuovere le risorse) per distribuire le risorse in questo modulo. Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.

Importante

Per evitare addebiti superflui nella sottoscrizione di Azure, una volta completato questo modulo ricordare di effettuare il deprovisioning delle risorse di Azure.

Obiettivi di apprendimento

Gli obiettivi del modulo sono:

  • Containerizzare un'app Java.
  • Creare un'immagine del contenitore per l'app Java.
  • Eseguire l'immagine del contenitore in locale.
  • Eseguire il push dell'immagine del contenitore in Registro Azure Container.
  • Distribuire l'immagine del contenitore nel servizio Azure Kubernetes.

Prerequisiti

Gli sviluppatori Java hanno già familiarità con la creazione di app. Completando gli esercizi in questo modulo si userà un account Azure personale. Assicurarsi di disporre delle risorse seguenti:

  • Una sottoscrizione di Azure con accesso per creare, aggiornare e rimuovere le risorse
  • Installazioni locali dell'interfaccia della riga di comando di Docker, dell'interfaccia della riga di comando di Git e dell'interfaccia della riga di comando di Azure (2.12 o versione successiva)