Perché scegliere Servizi cloudShould I choose cloud services or something else?

Servizi cloud di Azure è la scelta giusta?Is Azure Cloud Services the choice for you? In Azure sono disponibili diversi modelli di hosting per l'esecuzione di applicazioni.Azure provides different hosting models for running applications. Ognuno fornisce un diverso set di servizi, pertanto quello da scegliere dipende dalle attività che si tenta di eseguire.Each one provides a different set of services, so which one you choose depends on exactly what you're trying to do.

Opzioni di calcoloCompute Options AudienceAudience
Servizio appApp Service App per dispositivi mobili, app per le API, app per la logica e app Web scalabili per qualsiasi dispositivoScalable Web Apps, Mobile Apps, API Apps, and Logic Apps for any device
Servizi cloudCloud Services App per cloud a più livelli scalabili e altamente disponibili con maggiore controllo del sistema operativoHighly available, scalable n-tier cloud apps with more control of the OS
Macchine virtualiVirtual Machines Macchine virtuali Windows e Linux personalizzate con controllo completo del sistema operativoCustomized Windows and Linux VMs with complete control of the OS

Informazioni sui servizi cloudTell me about cloud services

Servizi cloud è un esempio di Platform-as-a-Service (PaaS) .Cloud Services is an example of Platform-as-a-Service (PaaS). Analogamente al servizio app, questa tecnologia è stata progettata per supportare applicazioni scalabili, attendibili ed economicamente efficienti.Like App Service, this technology is designed to support applications that are scalable, reliable, and cheap to operate. Proprio come un servizio app, i servizi cloud sono ospitati su VM, tuttavia il controllo sulle VM è maggiore.Just like an App Service is hosted on VMs, so too are Cloud Services, however, you have more control over the VMs. È possibile installare il software personalizzato nelle macchine virtuali del servizio cloud ed accedervi in remoto.You can install your own software on Cloud Service VMs and you can remote into them.

cs_diagram

Maggiore controllo significa anche minore semplicità d'uso.More control also means less ease of use. Pertanto, se non sono necessarie opzioni di controllo aggiuntive, in genere è più semplice e rapido creare ed eseguire un'applicazione Web in App Web in servizio app che non in Servizi cloud.Unless you need the additional control options, it's typically quicker and easier to get a web application up and running in Web Apps in App Service compared to Cloud Services.

Sono disponibili due tipi dei servizi cloud.There are two types of Cloud Service roles. L'unica differenza tra i due è il modo in cui il ruolo è ospitato nella macchina virtuale.The only difference between the two is how your role is hosted on the virtual machine.

  • Ruolo WebWeb role
    Distribuisce e ospita automaticamente l'app tramite IIS.Automatically deploys and hosts your app through IIS.

  • Ruolo di lavoroWorker role
    Non usa IIS ed esegue l'app autonomamente.Does not use IIS and runs your app standalone.

Ad esempio, un'applicazione semplice può usare un solo ruolo Web che serve un sito Web.For example, a simple application might use just a single web role, serving a website. Un'applicazione più complessa può usare un ruolo Web per la gestione delle richieste in arrivo dagli utenti, quindi passare tali richieste a un ruolo di lavoro per l'elaborazione.A more complex application might use a web role to handle incoming requests from users, then pass those requests on to a worker role for processing. Per questa comunicazione è possibile che venga usato il bus di servizio o il servizio di accodamento di Azure.(This communication could use Service Bus or Azure Queues.)

Come illustrato nella figura precedente, tutte le VM in una singola applicazione vengono eseguite nello stesso servizio cloud.As the preceding figure suggests, all the VMs in a single application run in the same cloud service. Gli utenti accedono all'applicazione attraverso un indirizzo IP pubblico che esegue automaticamente il bilanciamento del carico delle richieste nelle VM dell'applicazione.Users access the application through a single public IP address, with requests automatically load balanced across the application's VMs. La piattaforma scala e distribuisce le VM in un'applicazione di Servizi cloud, in modo da evitare un singolo punto di errore hardware.The platform scales and deploys the VMs in a Cloud Services application in a way that avoids a single point of hardware failure.

Anche se le applicazioni sono eseguite nelle macchine virtuali, è importante capire che Servizi cloud fornisce PaaS, non IaaS.Even though applications run in virtual machines, it's important to understand that Cloud Services provides PaaS, not IaaS. La spiegazione seguente aiuta a comprendere meglio il concetto: una tecnologia IaaS, quale Macchine virtuali di Azure, consente di creare e configurare prima di tutto l'ambiente in cui l'applicazione viene eseguita, quindi di distribuire l'applicazione in tale ambiente.Here's one way to think about it: With IaaS, such as Azure Virtual Machines, you first create and configure the environment your application runs in, then deploy your application into this environment. L'utente ha la responsabilità di gestire questo ambiente, ad esempio distribuendo nuove versioni con patch del sistema operativo in ogni macchina virtuale.You're responsible for managing much of this world, doing things such as deploying new patched versions of the operating system in each VM. La tecnologia PaaS, invece, consente di procedere come se l'ambiente esistesse già.In PaaS, by contrast, it's as if the environment already exists. È sufficiente è distribuire l'applicazione.All you have to do is deploy your application. La gestione della piattaforma in cui viene eseguita l'applicazione, inclusa la distribuzione di nuove versioni del sistema operativo, non è a carico dell'utente.Management of the platform it runs on, including deploying new versions of the operating system, is handled for you.

Scalabilità e gestioneScaling and management

Se si usa Servizi cloud, non è necessario creare macchine virtuali.With Cloud Services, you don't create virtual machines. Fornire invece un file di configurazione che specifica ad Azure quante macchine virtuali di ogni tipo sono richieste, ad esempio tre istanze del ruolo Web e due istanze del ruolo di lavoro. Le macchine virtuali vengono poi create automaticamente dalla piattaforma.Instead, you provide a configuration file that tells Azure how many of each you'd like, such as three web role instances and two worker role instances, and the platform creates them for you. L'utente decide le dimensioni delle macchine virtuali di supporto, ma non le crea esplicitamente.You still choose what size those backing VMs should be, but you don't explicitly create them yourself. Se l'applicazione deve gestire un carico maggiore, è possibile richiedere VM aggiuntive e tali istanze verranno create automaticamente da Azure.If your application needs to handle a greater load, you can ask for more VMs, and Azure creates those instances. Se il carico diminuisce, è possibile chiudere tali istanze e interromperne il pagamento.If the load decreases, you can shut down those instances and stop paying for them.

Un'applicazione di Servizi cloud viene in genere resa disponibile agli utenti mediante un processo in due fasi.A Cloud Services application is typically made available to users via a two-step process. Prima di tutto lo sviluppatore carica l'applicazione nell'area di gestione temporanea della piattaforma.A developer first uploads the application to the platform's staging area. Quando lo sviluppatore è pronto per l'attivazione dell'applicazione, usa il portale per il passaggio in produzione.When the developer is ready to make the application live, they use the Azure portal to swap staging with production. Il passaggio dalla gestione temporanea alla produzione può essere eseguito senza tempi di inattività, consentendo l'aggiornamento di un'applicazione in esecuzione a una nuova versione senza interferire con l'uso da parte degli utenti.This switch between staging and production can be done with no downtime, which lets a running application be upgraded to a new version without disturbing its users.

MonitoraggioMonitoring

Servizi cloud offre inoltre funzionalità di monitoraggio.Cloud Services also provides monitoring. Analogamente a Macchine virtuali di Azure, rileva un server fisico in errore e riavvia le VM in esecuzione su tale server in una nuova macchina.Like Azure Virtual Machines, it detects a failed physical server and restarts the VMs that were running on that server on a new machine. Servizi cloud consente inoltre di rilevare errori di macchine virtuali e applicazioni, non solo errori hardware.But Cloud Services also detects failed VMs and applications, not just hardware failures. A differenza di Macchine virtuali, dispone di un agente in ogni ruolo Web e di lavoro ed è quindi in grado di avviare nuove macchine virtuali e istanze di applicazione in caso di errori.Unlike Virtual Machines, it has an agent inside each web and worker role, and so it's able to start new VMs and application instances when failures occur.

L'utilizzo della tecnologia PaaS da parte di Servizi cloud comporta anche altre implicazioni, ad esempio il fatto che le applicazioni basate su tale tecnologia devono essere scritte in modo da essere eseguite correttamente in caso di errore di istanze dei ruoli Web o di lavoro.The PaaS nature of Cloud Services has other implications, too. A tale scopo, è necessario che lo stato di un'applicazione di Servizi cloud non venga salvato nel file system delle rispettive macchine virtuali.One of the most important is that applications built on this technology should be written to run correctly when any web or worker role instance fails. A differenza delle VM create tramite Macchine virtuali di Azure, le operazioni di scrittura effettuate nelle VM di Servizi cloud non sono persistenti.To achieve this, a Cloud Services application shouldn't maintain state in the file system of its own VMs. La persistenza è offerta solo dai dischi dati di Macchine virtuali.Unlike VMs created with Azure Virtual Machines, writes made to Cloud Services VMs aren't persistent; there's nothing like a Virtual Machines data disk. È pertanto necessario che tutti gli stati di un'applicazione di Servizi cloud vengano scritti esplicitamente in database SQL, BLOB, tabelle o altre tecnologie di archiviazione esterna.Instead, a Cloud Services application should explicitly write all state to SQL Database, blobs, tables, or some other external storage. Le applicazioni create in questo modo risulteranno più scalabili e più resistenti agli errori, obiettivi essenziali di Servizi cloud.Building applications this way makes them easier to scale and more resistant to failure, both important goals of Cloud Services.

Passaggi successiviNext steps

Creare un'app di servizio cloud in .NETCreate a cloud service app in .NET
Creare un'app di servizio cloud in Node.jsCreate a cloud service app in Node.js
Creare un'app di servizio cloud in PHPCreate a cloud service app in PHP
Creare un'app del servizio cloud in PythonCreate a cloud service app in Python