Akamai acquisirà LayerX per imporre il controllo sull'uso dell'IA su qualsiasi browser. Visualizza dettagli

Che cos'è l'architettura cloud?

Pavel Despot

scritto da

Pavel Despot

March 23, 2023

Pavel Despot

scritto da

Pavel Despot

Pavel Despot has more than 20 years of experience designing and deploying critical, large-scale solutions for global carriers and Fortune 500 companies around the world. He is currently the Senior Product Marketing for Cloud Computing Services at Akamai. In his previous role as Principal Cloud Solutions Engineer, he led application modernization and security initiatives for Akamai’s largest SaaS clients. Before joining Akamai, Pavel held various leadership roles on standards bodies, including the CTIA Wireless Internet Caucus (WIC), the CDMA Developers Group (CDG), and the Interactive Advertising Bureau (IAB). He has two patents in mobile network design, and currently resides in the Boston area.

 

L'architettura cloud e l'architettura di cloud computing sono sinonimi. Entrambi i termini fanno riferimento al modello che definisce la progettazione dei componenti dell'infrastruttura in un ambiente di cloud computing.

Il cloud computing è cresciuto rapidamente negli ultimi due decenni e continua ad espandersi a ritmi incredibili. Ciò che era iniziato come un servizio SaaS (Software-as-a-Service) insieme ad una soluzione IaaS (Infrastructure-as-a-Service) di base si è evoluto in un vasto ecosistema di soluzioni cloud-native per tutto, dai server ai cluster Kubernetes. 

In questo articolo, offriremo un corso intensivo sull'architettura cloud (nota anche come architettura di cloud computing), inclusi i componenti che costituiscono l'architettura cloud, i diversi modelli di cloud computing, i vantaggi del cloud e come prendere decisioni informate sulla migrazione nel cloud di un'app installata on-premise.

Che cos'è l'architettura cloud?

Dunque, che cos'è l'architettura cloud? E che cos'è l'architettura di cloud computing? L'architettura cloud e l'architettura di cloud computing sono sinonimi. Entrambi i termini fanno riferimento al modello che definisce la progettazione dei componenti dell'infrastruttura in un ambiente di cloud computing.

Esistono diversi modi per concettualizzare un'architettura cloud. Ad esempio, dal punto di vista di un provider di servizi cloud, un'architettura cloud è costituita da:

  • Un livello hardware, che include server bare metal, capacità di rete e dispositivi di archiviazione
  • Un livello di virtualizzazione, che include hypervisor e componenti SDN (Software-Defined Networking) per la virtualizzazione delle risorse fisiche 
  • Un livello di servizi, che include le risorse cloud fornite dal provider agli utenti 

Nella mente degli utenti, come gli sviluppatori e gli ingegneri DevOps, i componenti dell'architettura cloud comprendono:

  • Un front-end, come una console web, un'API (Application Programming Interface), l'interfaccia della riga di comando (CLI), un'app mobile o un altro client che consente l'accesso al servizio cloud 
  • Un back-end, che fornisce le risorse di elaborazione, archiviazione e software necessarie per il funzionamento del servizio 
  • Una rete, che fornisce la connettività tra le risorse cloud e o servizi quali la risoluzione del DNS 

Il ruolo dell'architettura di un ambiente cloud è specificare il modo con cui tutti i componenti si integrano e comunicano tra loro. Nella Figura 1, possiamo vedere l'architettura per un sistema di gestione di documenti basato sul cloud.

Nella Figura 1, possiamo vedere l'architettura per un sistema di gestione dei documenti basato sul cloud. Figura 1. Esempio di architettura cloud per un sistema di gestione dei documenti

Il modo con cui questi componenti vengono progettati, implementati e presentati agli (o estratti dagli) utenti varia a seconda del modello di delivery cloud e del tipo di cloud computing. Ad esempio, un'app web in esecuzione su una macchina virtuale in un cloud privato ha un'architettura diversa da quella di un'applicazione distribuita e basata su Kubernetes. 

Ciò che resta sempre uguale in tutte le implementazioni cloud è il fatto che il cloud è una piattaforma in grado di eliminare i problemi per gli utenti. Ad esempio, le soluzioni IaaS, come le istanze di Amazon Web Services (AWS) EC2, eliminano le complessità relative all'hardware. Con le app SaaS, come Google Docs, l'astrazione è ancora maggiore e tutte le operazioni (inclusa la manutenzione di sistemi operativi, middleware e applicazioni) sono nascoste agli utenti.

I principali componenti fisici dell'infrastruttura cloud

Al di sotto dei livelli di astrazione, il cloud computing presenta gli stessi tre principali livelli di un'infrastruttura IT on-premise: 

  • Risorse di elaborazione, come CPU, RAM e GPU
  • Risorse di rete, come le interfacce di rete 
  • Risorse di archiviazione, come SSD e HDD

Con modelli quali IaaS, la fatturazione si basa spesso sul consumo di risorse in queste categorie. 

Nota: non bisogna confondere l'architettura cloud con l'architettura di rete. L'architettura cloud include l'architettura di rete, laddove rilevante. Ad esempio, i servizi SD-WAN, SDN e DNS possono essere inclusi tutti nell'architettura cloud di un ambiente aziendale.

Modelli di implementazione cloud di base: confronto tra cloud pubblico e cloud privato

I due modelli base di servizi cloud utilizzabili sono il cloud pubblico e il cloud privato (Tabella 1). Le piattaforme di cloud pubblico sono disponibili al pubblico in generale e l'architettura è gestita da un provider di servizi cloud. Le piattaforme di cloud privato sono dedicate a una singola organizzazione. 

Il compromesso tra cloud pubblico e cloud privato è una maggiore semplicità (cloud pubblico) rispetto al controllo (cloud privato). Gli utenti del cloud pubblico utilizzano i servizi, mentre il provider dei servizi si occupa della manutenzione e del provisioning dell'infrastruttura. Tuttavia, gli utenti del cloud pubblico devono accontentarsi delle funzionalità offerte dal provider dei servizi. Inoltre, i dati del cloud pubblico risiedono nei data center del provider dei servizi, il che ha delle implicazioni in quanto a conformità e sovranità dei dati. 

Al contrario, gli utenti del cloud privato hanno pieno controllo della loro infrastruttura e delle relative funzionalità. Lo svantaggio è che l'utente (oppure una terza parte che agisce per suo conto) deve gestire le complessità derivate dalla manutenzione, la configurazione e l'applicazione di patch all'infrastruttura. 

La Tabella 1 elenca i vantaggi e gli svantaggi delle piattaforme del cloud pubblico rispetto a quelle del cloud privato Tabella 1. I vantaggi e gli svantaggi del cloud pubblico e del cloud privato

Il cloud privato è più sicuro del cloud pubblico?

In generale, i cloud privati offrono due vantaggi in termini di sicurezza rispetto ai cloud pubblici.

  1. I cloud privati sono dedicati a una singola organizzazione 
  2. e, in genere, non sono accessibili direttamente tramite l'Internet pubblico.

Ecco perché si sente dire spesso che i cloud privati sono più sicuri dei cloud pubblici. In teoria, e laddove le aziende che gestiscono il cloud privato applicano le best practice di sicurezza in termini di configurazione e manutenzione, si tratta di un'affermazione ragionevole. A parità di condizioni, l'isolamento di un cloud privato è un vantaggio in termini di sicurezza. 

Tuttavia, molte organizzazioni non dispongono delle competenze di sicurezza e di risorse in-house necessarie per rafforzare, applicare patch, scansionare e gestire l'infrastruttura con lo stesso rigore offerto dai provider di servizi cloud hyperscale. Un cloud privato senza patch e non propriamente configurato può essere meno sicuro di un cloud pubblico, pertanto le aziende ne devono tenere conto quando si parla di valutazione dei rischi

Modelli di implementazione cloud avanzati: cloud ibrido e cloud privato 

Oltre al cloud pubblico e al cloud privato, esistono altri modelli di implementazione del cloud. Ad esempio, il National Institute of Standards and Technology definisce il community cloud come un'infrastruttura cloud fornita ad uso esclusivo di una specifica comunità di consumatori provenienti da organizzazioni che condividono le stesse preoccupazioni.  Tuttavia, i due più comuni modelli di implementazione di infrastrutture cloud avanzati sono:

  • Cloud ibrido: la combinazione di più modelli di implementazione cloud all'interno di un'organizzazione. Ad esempio, un team che replica un database in un cloud pubblico e in un cloud privato utilizza un modello di cloud ibrido. 

  • Multicloud: l'uso di diversi provider di cloud pubblico all'interno di un'organizzazione. Ad esempio, un'azienda che esegue cluster in Azure Kubernetes Service (AKS) e in Amazon Elastic Kubernetes Service (EKS) utilizza un modello multicloud.

XaaS: i tipi di cloud computing 

Oltre ai diversi modelli di implementazione, esiste un'ampia varietà di diversi modelli di servizi di cloud computing. Nel complesso, questi modelli sono noti come XaaS o "Anything-as-a- Service". Con il modello XaaS, un provider offre agli utenti servizi di cloud computing spesso con prezzi basati su abbonamento. 

I tre modelli di servizi XaaS più comuni sono: SaaS, PaaS (Platform-as-a-Service) e IaaS (Figura 2). 

La Figura 2 mostra un'immagine dei tre modelli comuni "Anything-as-a- Service", noti anche come modelli di servizio XaaS: SaaS, PaaS e IaaS Figura 2. I tre modelli di servizio XaaS più comuni: SaaS, PaaS e IaaS

La differenza tra questi tre modelli di servizi di cloud computing risiede nella responsabilità del provider di servizi e dell'utente. La Tabella 2 analizza chi controlla i diversi aspetti dell'infrastruttura cloud con i diversi modelli.

La Tabella 2 elenca i diversi aspetti di un'infrastruttura cloud per ciascun modello. Tabella 2. Le responsabilità del provider e dell'utente nei tre servizi di cloud computing

Le piattaforme IaaS offrono agli utenti un controllo maggiore, ma sono anche più complesse in termini di gestione e manutenzione. Gli utenti sono responsabili di tutto, dalla selezione del sistema operativo all'applicazione delle patch. D'altra parte, le piattaforme SaaS, quali Google Docs e Slack, astraggono tutto, tranne il livello delle applicazioni. 

Le piattaforme PaaS rappresentano una via di mezzo e consentono all'utente di controllare i livelli delle applicazioni e dei dati. Ad esempio, con una piattaforma PaaS, potresti accedere direttamente a un database MySQL, ma non essere responsabile dell'applicazione delle patch alla versione MySQL sottostante o al sistema operativo. 

Oltre le soluzioni IaaS, PaaS e SaaS

Le soluzioni IaaS, PaaS, and SaaS sono solo l'inizio quando si tratta dei modelli di servizi cloud. L'ultimo decennio ha visto l'esplosione di nuove offerte di servizi cloud che coprono un'ampia varietà di casi d'uso. 

Ecco una suddivisione di altri modelli di servizi cloud che dovresti conoscere.

  • Le piattaforme AaaS (Authentication-as-a-Service), come Okta e Duo, offrono servizi quali MFA (Multi-Factor Authentication) e SSO (Single Sign-On).
  • Le piattaforme DaaS (Desktop-as-a-Service), come Amazon Workspaces e Azure Virtual Desktop, offrono desktop virtuali gestiti nel cloud 
  • Le piattaforme Caas (Containers-as-a-Service), come Google Cloud Run e Microsoft Azure Container Instances (ACI), semplificano il processo di implementazione e gestione di app containerizzate su una piattaforma cloud
  • Le piattaforme Kubernetes gestite, come AKS e EKS, offrono servizi Kubernetes ospitati per il coordinamento automatizzato dei cluster Kubernetes nel cloud 
  • Il computing senza server consente un approccio "on-demand" alle risorse di elaborazione che permette agli utenti di eseguire funzioni senza dover gestire l'infrastruttura sottostante.

I vantaggi del cloud computing

Il cloud computing è vantaggioso sia per i consumatori che per le aziende. I principali vantaggi del cloud computing rispetto alla tradizionale elaborazione on-premise sono:

  • Infrastruttura gestita: l'installazione, la configurazione e la manutenzione di server, switch, rack, alimentazione e apparecchiatura per il raffreddamento sono dispendiose in termini di costo e tempo. I servizi cloud offrono i vantaggi aziendali di una soluzione senza la complessità della gestione dell'infrastruttura. 
  • Risorse elastiche: scalare l'uso del cloud verso l'alto o verso il basso è facile in un cloud pubblico. Questa elasticità consente alle aziende di evitare i colli di bottiglia, in modo da potersi espandere rapidamente senza il rischio di investire eccessivamente in hardware.
  • Osservabilità completa: spesso, le piattaforme cloud dispongono di strumenti e dashboard di osservabilità inclusi.
  • Best practice integrate: i provider di servizi sono incentivati a raggiungere il giusto equilibrio tra performance, sicurezza e usabilità; inoltre, possono offrire ai loro clienti i vantaggi delle economie di scala. Di conseguenza, gli utenti possono sfruttare le best practice dell'infrastruttura usando semplicemente la piattaforma cloud giusta. 

Migrazione su un'architettura cloud

Lanciare nuovi progetti nel cloud è una cosa, ma migrare i carichi di lavoro esistenti nel cloud è un'altra. Non esiste un approccio unico che funzioni in tutti i casi d'uso, ma esiste un set generico di principi e best practice che puoi usare per fare la scelta giusta. 

  • Assicurati che la migrazione nel cloud abbia un senso: non tutti i carichi di lavoro devono andare sul cloud. Crea un caso aziendale per confrontare i costi necessari per la migrazione nel cloud con quelli richiesti per smantellare completamente i carichi di lavoro o se, invece, convenga lasciarli on-premise. 
  • Scegli saggiamente il provider di servizi cloud: le funzioni e i costi sono importanti, ma sono solo una parte dell'equazione. Considera i requisiti non funzionali, il supporto, gli SLA e la reputazione del fornitore prima di prendere la decisione 
  • Seleziona un modello di servizi e implementazione adeguato per le tue esigenze: cloud pubblico o privato, piattaforma IaaS, PaaS o SaaS, ognuna di queste soluzioni presenta una serie di compromessi tra controllo, funzionalità e dipendenza da un unico fornitore. Valuta i pro e i contro prima di scegliere un modello. Ad esempio, sebbene possa sembrare logico migrare il tuo server Exchange on-premise su una macchina virtuale equiparabile, su una piattaforma IaaS, il servizio e-mail di Office 365 (SaaS) potrebbe essere una soluzione migliore. 
  • Tieni sotto controllo i tuoi budget: i costi per il cloud possono aumentare rapidamente. La maggior parte dei principali provider di servizi cloud offrono strumenti di calcolo dei costi per il cloud, che puoi usare per ottenere stime ragionevoli ed evitare sorprese. Inoltre, assicurati di impostare, laddove possibile, la ricezione di avvisi sui budget e di tenere sotto controllo i tuoi rendiconti. Implementa un approccio sistematico per il monitoraggio dei costi e assicurati di rispettare i budget previsti. 
  • Prepara sempre un piano di emergenza: backup, piani di rollback e test pre-produzione possono aiutarti a mitigare i rischi legati alla perdita di dati e ai problemi di downtime durante la migrazione nel cloud. Assicurati di pensare e soppesare tutto attentamente prima di eseguire la migrazione dei carichi di lavoro critici. 
  • Considera il modello Strangler Fig per le app monolitiche complesse: il sistema Lift-and-Shift non funziona per tutto. Se il tuo team deve migrare complesse app monolitiche sul cloud, considera la possibilità di utilizzare l'applicazione Strangler Fig per passare gradualmente ai microservizi cloud-native nel corso del tempo.

Conclusione

Quello dell'architettura cloud è un argomento complesso e c'è ancora molto da imparare. Grazie a ciò che abbiamo trattato qui, tuttavia, dovresti aver compreso bene i concetti di base, i motivi sottostanti e le modalità del cloud computing.



Pavel Despot

scritto da

Pavel Despot

March 23, 2023

Pavel Despot

scritto da

Pavel Despot

Pavel Despot has more than 20 years of experience designing and deploying critical, large-scale solutions for global carriers and Fortune 500 companies around the world. He is currently the Senior Product Marketing for Cloud Computing Services at Akamai. In his previous role as Principal Cloud Solutions Engineer, he led application modernization and security initiatives for Akamai’s largest SaaS clients. Before joining Akamai, Pavel held various leadership roles on standards bodies, including the CTIA Wireless Internet Caucus (WIC), the CDMA Developers Group (CDG), and the Interactive Advertising Bureau (IAB). He has two patents in mobile network design, and currently resides in the Boston area.