Distribuire la prima app a Cloud Foundry in Microsoft AzureDeploy your first app to Cloud Foundry on Microsoft Azure

Cloud Foundry è una popolare piattaforma di applicazioni open source disponibile in Microsoft Azure.Cloud Foundry is a popular open-source application platform available on Microsoft Azure. In questo articolo viene illustrato come distribuire e gestire un'applicazione in Cloud Foundry in un ambiente Azure.In this article, we show how to deploy and manage an application on Cloud Foundry in an Azure environment.

Creare un ambiente Cloud FoundryCreate a Cloud Foundry environment

Esistono diverse opzioni per la creazione di un ambiente Cloud Foundry in Azure:There are several options for creating a Cloud Foundry environment on 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.If you are deploying PCF from the Azure Marketplace, make a note of the SYSTEMDOMAINURL and the admin credentials required to access the Pivotal Apps Manager, both of which are described in the marketplace deployment guide. Questi elementi sono necessari per completare questa esercitazione.They are needed to complete this tutorial. Per le distribuzioni dal marketplace, il SYSTEMDOMAINURL è nel formato https://system.indirizzo-ip.cf.pcfazure.com.For marketplace deployments, the SYSTEMDOMAINURL is in the form https://system.ip-address.cf.pcfazure.com.

Connettersi al controller del cloudConnect to the Cloud Controller

Il controller del cloud è il punto di ingresso principale in un ambiente Cloud Foundry per la distribuzione e la gestione delle applicazioni.The Cloud Controller is the primary entry point to a Cloud Foundry environment for deploying and managing applications. L'API del controller del cloud di base (CCAPI) è un'API REST, ma è accessibile attraverso vari strumenti.The core Cloud Controller API (CCAPI) is a REST API, but it is accessible through various tools. In questo caso, si interagisce con essa tramite l'interfaccia della riga di comando di Cloud Foundry.In this case, we interact with it through the Cloud Foundry CLI. 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.You can install the CLI on Linux, MacOS, or Windows, but if you'd prefer not to install it at all, it is available pre-installed in the Azure Cloud Shell.

Per eseguire l'accesso, anteporre api al SYSTEMDOMAINURL ottenuto dalla distribuzione dal marketplace.To log in, prepend api to the SYSTEMDOMAINURL that you obtained from the marketplace deployment. Poiché la distribuzione predefinita usa un certificato autofirmato, è necessario includere anche l'istruzione skip-ssl-validation.Since the default deployment uses a self-signed certificate, you should also include the skip-ssl-validation switch.

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

Viene chiesto di accedere al controller del cloud.You are prompted to log in to the Cloud Controller. Usare le credenziali dell'account amministratore acquisite dalle fasi di distribuzione del marketplace.Use the admin account credentials that you acquired from the marketplace deployment steps.

Cloud Foundry offre organizzazioni e spazi come spazi dei nomi per isolare i team e gli ambienti all'interno di una distribuzione condivisa.Cloud Foundry provides orgs and spaces as namespaces to isolate the teams and environments within a shared deployment. 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.The PCF marketplace deployment includes the default system org and a set of spaces created to contain the base components, like the autoscaling service and the Azure service broker. Per il momento, scegliere lo spazio sistema.For now, choose the system space.

Creare un'organizzazione e uno spazioCreate an org and space

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.If you type cf apps, you see a set of system applications that have been deployed in the system space within the system org.

È consigliabile mantenere l'organizzazione sistema riservata per le applicazioni di sistema, pertanto creare un'organizzazione e uno spazio per ospitare l'applicazione di esempio.You should keep the system org reserved for system applications, so create an org and space to house our sample application.

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

Usare il comando di destinazione per passare alla nuova organizzazione e al nuovo spazio:Use the target command to switch to the new org and space:

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.Now, when you deploy an application, it is automatically created in the new org and space. Per confermare che non sono attualmente presenti app nella nuova organizzazione/spazio, digitare nuovamente cf apps.To confirm that there are currently no apps in the new org/space, type cf apps again.

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.For more information about orgs and spaces and how they can be used for role-based access control (RBAC), see the Cloud Foundry documentation.

Distribuire un'applicazioneDeploy an application

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.Let's use a sample Cloud Foundry application called Hello Spring Cloud, which is written in Java and based on the Spring Framework and Spring Boot.

Clonare il repository Hello Spring CloudClone the Hello Spring Cloud repository

L'applicazione di esempio Hello Spring Cloud è disponibile su GitHub.The Hello Spring Cloud sample application is available on GitHub. Clonarla nel proprio ambiente e modificarla nella nuova directory:Clone it to your environment and change into the new directory:

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

Compilare l'applicazione.Build the application

Compilare l'app mediante Apache Maven.Build the app using Apache Maven.

mvn clean package

Distribuire l'applicazione con cf pushDeploy the application with cf push

È possibile distribuire la maggior parte delle applicazioni per Cloud Foundry tramite il comando push:You can deploy most applications to Cloud Foundry using the push command:

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).When you push an application, Cloud Foundry detects the type of application (in this case, a Java app) and identifies its dependencies (in this case, the Spring framework). Inserisce quindi in un pacchetto tutti gli elementi necessari per eseguire il codice in un'immagine del contenitore autonoma, denominata droplet.It then packages everything required to run your code into a standalone container image, known as a 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.Finally, Cloud Foundry schedules the application on one of the available machines in your environment and creates a URL where you can reach it, which is available in the output of the command.

Output del comando push cf

Per visualizzare l'applicazione hello-spring-cloud, aprire l'URL specificato nel browser:To see the hello-spring-cloud application, open the provided URL in your 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.To learn more about what happens during cf push, see How Applications Are Staged in the Cloud Foundry documentation.

Visualizzare i registri applicazioniView application logs

Per visualizzare i registri di un'applicazione in base al nome, è possibile usare l'interfaccia della riga di comando di Cloud Foundry:You can use the Cloud Foundry CLI to view logs for an application by its name:

cf logs hello-spring-cloud

Per impostazione predefinita, il comando registri usa tail, che visualizza i nuovi registri man mano che vengono scritti.By default, the logs command uses tail, which shows new logs as they are written. Per visualizzare i nuovi registri, aggiornare l'applicazione hello-spring-cloud nel browser.To see new logs appear, refresh the hello-spring-cloud app in the browser.

Per visualizzare i log che sono già stati scritti, aggiungere l'istruzione recent:To view logs that have already been written, add the recent switch:

cf logs --recent hello-spring-cloud

Scalare l'applicazioneScale the application

Per impostazione predefinita, cf push crea solo una singola istanza dell'applicazione.By default, cf push only creates a single instance of your application. Per garantire la disponibilità elevata e consentire la scalabilità orizzontale per una velocità effettiva superiore, in genere è consigliabile eseguire più istanze delle applicazioni.To ensure high availability and enable scale out for higher throughput, you generally want to run more than one instance of your applications. È possibile scalare orizzontalmente le applicazioni già distribuite tramite il comando scale:You can easily scale out already deployed applications using the scale command:

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.Running the cf app command on the application shows that Cloud Foundry is creating another instance of the application. Dopo che l'applicazione è stata avviata, Cloud Foundry avvia automaticamente il bilanciamento del carico del traffico.Once the application has started, Cloud Foundry automatically starts load balancing traffic to it.

Passaggi successiviNext steps