Distribuire la prima app a Cloud Foundry in Microsoft Azure

Cloud Foundry è una popolare piattaforma di applicazioni open source disponibile in Microsoft Azure. In questo articolo viene illustrato come distribuire e gestire un'applicazione in Cloud Foundry in un ambiente Azure.

Creare un ambiente Cloud Foundry

Esistono diverse opzioni per la creazione di un ambiente Cloud Foundry in Azure:

Importante

Se si distribuisce PCF da Azure Marketplace, annotare il SYSTEMDOMAINURL e le credenziali amministratore necessarie per accedere al gestore di app di Pivotal, entrambi descritti nella Guida alla distribuzione dal marketplace. Questi elementi sono necessari per completare questa esercitazione. Per le distribuzioni dal marketplace, il SYSTEMDOMAINURL è nel formato https://system.indirizzo-ip.cf.pcfazure.com.

Connettersi al controller del cloud

Il controller del cloud è il punto di ingresso principale in un ambiente Cloud Foundry per la distribuzione e la gestione delle applicazioni. L'API del controller del cloud di base (CCAPI) è un'API REST, ma è accessibile attraverso vari strumenti. In questo caso, si interagisce con essa tramite l'interfaccia della riga di comando di Cloud Foundry. L'interfaccia della riga di comando può essere installata su Linux, MacOS o Windows, ma se si preferisce non installarla è disponibile preinstallata in Azure Cloud Shell.

Per eseguire l'accesso, anteporre api al SYSTEMDOMAINURL ottenuto dalla distribuzione dal marketplace. Poiché la distribuzione predefinita usa un certificato autofirmato, è necessario includere anche l'istruzione skip-ssl-validation.

cf login -a https://api.SYSTEMDOMAINURL --skip-ssl-validation

Viene chiesto di accedere al controller del cloud. Usare le credenziali dell'account amministratore acquisite dalle fasi di distribuzione del marketplace.

Cloud Foundry offre organizzazioni e spazi come spazi dei nomi per isolare i team e gli ambienti all'interno di una distribuzione condivisa. La distribuzione dal marketplace PCF include l'organizzazione sistema predefinita e un set di spazi creato per contenere i componenti di base, come il servizio di scalabilità automatica e il Service Broker di Azure. Per il momento, scegliere lo spazio sistema.

Creare un'organizzazione e uno spazio

Se si digita cf apps, viene visualizzato un set di applicazioni di sistema che sono state distribuite nello spazio di sistema all'interno dell'organizzazione sistema.

È consigliabile mantenere l'organizzazione sistema riservata per le applicazioni di sistema, pertanto creare un'organizzazione e uno spazio per ospitare l'applicazione di esempio.

cf create-org myorg
cf create-space dev -o myorg

Usare il comando di destinazione per passare alla nuova organizzazione e al nuovo spazio:

cf target -o testorg -s dev

A questo punto, quando si distribuisce un'applicazione essa viene automaticamente creata nella nuova organizzazione e nel nuovo spazio. Per confermare che non sono attualmente presenti app nella nuova organizzazione/spazio, digitare nuovamente cf apps.

Nota

Per altre informazioni sulle organizzazioni e gli spazi e su come possono essere usati per il controllo degli accessi in base al ruolo, vedere la documentazione di Cloud Foundry.

Distribuire un'applicazione

Usiamo un'applicazione Cloud Foundry di esempio chiamata Hello Spring Cloud, che viene scritta in Java ed è basata sul framework Spring e su Spring Boot.

Clonare il repository Hello Spring Cloud

L'applicazione di esempio Hello Spring Cloud è disponibile su GitHub. Clonarla nel proprio ambiente e modificarla nella nuova directory:

git clone https://github.com/cloudfoundry-samples/hello-spring-cloud
cd hello-spring-cloud

Compilare l'applicazione.

Compilare l'app mediante Apache Maven.

mvn clean package

Distribuire l'applicazione con cf push

È possibile distribuire la maggior parte delle applicazioni per Cloud Foundry tramite il comando push:

cf push

Quando si effettua il push di un'applicazione, Cloud Foundry rileva il tipo di applicazione (in questo caso, un'app Java) e identifica le relative dipendenze (in questo caso, il framework Spring). Inserisce quindi in un pacchetto tutti gli elementi necessari per eseguire il codice in un'immagine del contenitore autonoma, denominata droplet. Infine, Cloud Foundry pianifica l'applicazione in uno dei computer disponibili nell'ambiente e crea un URL in cui è possibile raggiungerla, disponibile nell'output del comando.

Output del comando push cf

Per visualizzare l'applicazione hello-spring-cloud, aprire l'URL specificato nel browser:

Interfaccia utente predefinita per Hello Spring Cloud

Nota

Per altre informazioni su cosa accade durante cf push, vedere How Applications Are Staged (Come vengono gestite temporaneamente le applicazioni) nella documentazione di Cloud Foundry.

Visualizzare i registri applicazioni

Per visualizzare i registri di un'applicazione in base al nome, è possibile usare l'interfaccia della riga di comando di Cloud Foundry:

cf logs hello-spring-cloud

Per impostazione predefinita, il comando registri usa tail, che visualizza i nuovi registri man mano che vengono scritti. Per visualizzare i nuovi registri, aggiornare l'applicazione hello-spring-cloud nel browser.

Per visualizzare i log che sono già stati scritti, aggiungere l'istruzione recent:

cf logs --recent hello-spring-cloud

Scalare l'applicazione

Per impostazione predefinita, cf push crea solo una singola istanza dell'applicazione. Per garantire la disponibilità elevata e consentire la scalabilità orizzontale per una velocità effettiva superiore, in genere è consigliabile eseguire più istanze delle applicazioni. È possibile scalare orizzontalmente le applicazioni già distribuite tramite il comando scale:

cf scale -i 2 hello-spring-cloud

L'esecuzione del comando cf app nell'applicazione indica che Cloud Foundry sta creando un'altra istanza dell'applicazione. Dopo che l'applicazione è stata avviata, Cloud Foundry avvia automaticamente il bilanciamento del carico del traffico.

Passaggi successivi