Come suonare come un esperto di cloud
Pubblicato: 2022-03-10Il tuo codice è stato scritto e il design è fantastico. Il nuovo progetto è quasi pronto per l'avvio quando il cliente chiede: "Dovrebbe funzionare nel cloud?"
Scoppi in un sudore freddo. La domanda è enorme. Regioni e zone , alta disponibilità , bilanciamento del carico : il cloud ha un proprio linguaggio.
Non preoccuparti; hai questo. Questo articolo ti insegnerà come prendere decisioni intelligenti sul cloud e risponderà alle domande sul cloud del tuo cliente.
Quattro grandi domande
Prima che tu e il tuo cliente possiate sapere che tipo di cloud desiderate, dovete discutere quattro domande:
- Quanto è complesso il software che devi eseguire?
- Quanto è necessario per ridimensionare?
- Quanto è importante che non si abbassi mai?
- Quanto velocemente deve funzionare per gli utenti di tutto il mondo?
Questo articolo fornisce il background e le informazioni necessarie per rispondere a queste domande e suonare come un esperto di cloud.
Cominciamo.
- Cos'è una nuvola?
- Perché il tuo cliente si preoccupa del cloud
- In che modo un cloud è diverso da un servizio di hosting?
- Perché le macchine virtuali contano così tanto
- Parliamo un po' di networking
- I diversi tipi di nuvole
- I pezzi di base di una nuvola
- Domande che probabilmente faranno i tuoi clienti
Cos'è una nuvola?
Quando si parla di cloud computing si intende proprio la possibilità di noleggiare un pezzo di un computer da qualcun altro. Questo è tutto ciò che c'è da fare.
Aziende come Amazon e Google hanno molti computer e sono disposte ad noleggiarne una parte. Noleggiare computer da loro è conveniente perché non è necessario costruire i propri data center o assumere il proprio personale di esperti per gestirli.
Quando noleggi una parte di un computer, hai bisogno che assomigli a un intero computer in modo da poter eseguire qualsiasi software tu voglia. Ecco perché i provider ti offrono una macchina virtuale (VM), un software che fa sembrare che tu stia utilizzando un computer separato.
Perché il tuo cliente si preoccupa del cloud
Prima di saperne di più sul cloud, è importante capire perché il tuo cliente si preoccupa. Non respingiamo il fascino delle parole d'ordine; il cloud è davvero trendy in questo momento. Il tuo cliente potrebbe semplicemente chiederlo perché tutti i ragazzi fantastici lo stanno facendo, ma ci sono ragioni per cui i ragazzi fantastici lo stanno facendo.
Cominciamo con le basi. Ospitare il proprio data center sarebbe una seccatura. Dovresti preoccuparti del consumo di energia, mantenere aggiornato il tuo hardware, assumere un team di esperti per eseguirlo e mille altri problemi che non hanno nulla a che fare con la tua attività. Cosa accadrebbe se si interrompesse la corrente, ci fosse un'inondazione o il tetto crollasse? Questi sono tutti motivi per non ospitare il tuo sito web su un server in esecuzione nel tuo salotto.
Non solo puoi passare tutti i mal di testa a qualcun altro, ma fargli eseguire il data center ti dà tre grandi vantaggi:
- Le nuvole sono globali .
Esistono nei data center di tutto il mondo, incluso uno vicino al tuo cliente. Ciò significa velocità . Non vuoi che i clienti in Cina attendano il caricamento dei dati dagli Stati Uniti. Quando vado su Google.com, ottengo un data center diverso a Boston rispetto a quello che farei a Chicago o Los Angeles, e questo è solo negli Stati Uniti. Questo è gran parte di ciò che rende possibile la velocità di Google. - Le nuvole crescono e si restringono .
Se compro un server, ho un server; anche se la mia app non ha bisogno dell'intero computer, devo comunque pagare per quel server. Quando la mia app diventa davvero popolare, devo acquistare più server velocemente. Il cloud non funziona così. Affittare condivisioni di server significa che posso cambiare l'importo che sto noleggiando: posso aumentare l'ordine quando sono occupato e ridimensionarlo quando non ne ho bisogno. - Le nuvole non scendono mai .
Mai dire mai... ma quasi mai. I fornitori di servizi cloud parlano di "cinque nove", ciò significa essere in aumento del 99,999% delle volte (con soli 5,26 minuti di inattività all'anno). Puoi renderlo ancora più piccolo con servizi come il bilanciamento del carico e il failover.
Questi sono tutti motivi per cui i cloud possono essere fantastici, ma puoi ottenerne alcuni da un semplice servizio di hosting. Se il tuo cliente chiede informazioni sul cloud, devi conoscere la differenza.
In che modo un cloud è diverso da un servizio di hosting?
Ho un sito Web personale su un servizio di hosting chiamato Media Temple. Il mio sito esegue WordPress, quindi ha bisogno di alcune cose:
- Una directory in cui inserire i miei file
- Un server HTTP
- Una banca dati
- PHP
La mia directory funziona su Linux, il mio server HTTP è Apache, il mio database è MySQL e tutto funziona su PHP; ecco perché lo chiamano stack LAMP (Linux-Apache-MySQL-PHP). Può sembrare un sacco di pezzi, ma sono limitati. Ad esempio, non riesco a installare un nuovo software. Se voglio eseguire il mio database su PostgreSQL, sono sfortunato. Non posso eseguire altri linguaggi come Python o Go; Non riesco a scrivere i miei programmi separati. Ottengo solo un insieme molto limitato e preconfigurato di cose che mi è permesso fare.
Il mio sito web funziona anche solo su un server in un posto. Dov'è quel server? Non ne ho idea. Penso che sia da qualche parte negli Stati Uniti, ma a parte questo non lo so, e non mi interessa molto. Il provider di hosting mi fornisce un unico server, digito un URL e il mio sito viene visualizzato (il più delle volte).
I provider di hosting semplificano le cose. Alcuni di essi ospitano altri stack e alcuni consentono un po' più di configurazione, ma è sempre un pacchetto prestabilito.
La differenza fondamentale tra un servizio di hosting e un cloud è la macchina virtuale. Un servizio di hosting mi dà solo parte di un sistema operativo esistente. Una macchina virtuale mi dà un intero sistema operativo tutto per me.
Perché le macchine virtuali contano così tanto
Una macchina virtuale si comporta proprio come una macchina reale. Può eseguire Linux o Windows e può fare qualsiasi cosa possa fare un normale computer. Apple non ti consente di eseguire OS X su una macchina virtuale (sebbene alcune persone l'abbiano fatto funzionare, creando un "Hackintosh").
Quando hai una macchina virtuale hai il controllo totale. Puoi eseguire tutto ciò che desideri: database, server di posta elettronica, crittografia e persino ricerche di extraterrestri. La macchina virtuale ti permette di fare tutto quello che vuoi.
Avere un intero sistema operativo tutto per te è davvero potente, ma prima di poter fare qualcosa di utile devi accedere alla VM.
Parliamo un po' di networking
Le macchine virtuali sono inutili se non puoi raggiungerle. Hai bisogno di una rete, anche se la rete può diventare un po' complessa.
Ma queste basi ti daranno ciò di cui hai bisogno per iniziare. Iniziamo con un esempio che ti sarà familiare. Probabilmente è in esecuzione in casa tua in questo momento.
Ho Comcast a casa. Comcast mi fornisce un modem via cavo con un indirizzo IP come 10.0.0.89
. Anche se mi dà solo un IP, ho due laptop, un iPad e un telefono; mia moglie e mia figlia hanno ancora più dispositivi. Per farlo funzionare, ho un router wireless che si collega al mio modem via cavo. Il mio router wireless fornisce a ogni dispositivo che ho un indirizzo IP come 192.168.0.100
, 192.168.0.101
e così via, ma quegli indirizzi sono privati della mia rete.
Il termine tecnico per quegli indirizzi privati non è instradabile . Ci sono alcuni indirizzi che sono impostati per uso privato; la maggior parte inizia con 10.
o 192.168
, come segno per i router Internet che questi indirizzi non sono ammessi in natura. Sto usando questi indirizzi speciali perché sono riutilizzabili.
Ogni indirizzo IP deve essere univoco in una determinata rete; in caso contrario, il router non saprebbe a quale computer volevo connettermi. Sono disponibili 4.294.967.296 indirizzi IP. Sebbene i progettisti di reti pensassero che fosse molto quando tutto questo è iniziato negli anni '70, ora stiamo finendo. Esistono altri protocolli, come IPv6, che potrebbero risolvere questo problema in futuro, ma oggi lo risolviamo con Network Address Translation (NAT). Lascia che ti mostri come funziona.
I dispositivi di casa mia hanno indirizzi unici in casa mia, ma non nel mondo intero. Quando voglio collegarmi a Internet, ho bisogno del router wireless che li traduca per me. Ogni volta che clicco su un collegamento, il mio laptop parla con il mio router wireless per fare la richiesta per me; a sua volta il router wireless parla al mondo per mio conto, ma utilizzando il proprio indirizzo. Quindi il mio modem via cavo fa la stessa cosa quando parla con Comcast e Comcast fa di nuovo la stessa cosa su una scala molto più ampia quando invia la mia richiesta a Internet generale. Ogni router sta traducendo l'indirizzo IP da quello precedente. Tutto ciò significa che molti computer possono riutilizzare un indirizzo IP come 192.168.0.101
e tutto funziona senza conflitti.
Allora qual è il mio vero indirizzo IP su Internet reale? In questo momento il mio vero indirizzo IP è 66.30.118.150
e il mio indirizzo IP privato è 192.168.0.103
.
Da dove viene l'indirizzo 66.30.118.150
? È un indirizzo IP di proprietà di Comcast. È chiaro che mi trovo a Cambridge, nel Massachusetts, negli Stati Uniti nordorientali. Non ho bisogno dei dettagli; tutto quello che devo sapere è che è un vero indirizzo pubblico che Comcast gestisce per me. Comcast probabilmente utilizza lo stesso indirizzo per centinaia o migliaia di altre persone.
Tutta questa traduzione di indirizzi fa qualcos'altro di molto importante. Mi offre un unico punto di accesso che controlla tutto ciò che entra nella mia rete domestica. Nessuno all'esterno può accedere al 192.168.0.103
; per loro è un indirizzo diverso. Ottengo molta sicurezza controllando quale traffico può entrare e uscire. Il mio router wireless è un punto critico in cui posso controllare cosa succede.
La maggior parte dei cloud funziona proprio come la mia rete domestica. I computer sono virtuali, le reti sono chiamate subnet e il router wireless è chiamato gateway , ma è la stessa cosa. Hanno macchine virtuali con indirizzi privati e gateway che li traducono in indirizzi pubblici. Hanno anche uno spazio di indirizzi che possono usare proprio come il mio router wireless a casa. Come questo:
Può sembrare complicato, ma non è troppo difficile. Un cloud è un modo per noleggiare computer da qualcun altro e configurarli in modo che assomiglino alla mia rete domestica.
Le cose più importanti da ricordare sono:
- Gli IP privati sono disponibili solo sulla tua rete privata;
- Gli IP pubblici sono disponibili su Internet;
- NAT consente agli IP privati di apparire come IP pubblici.
Non è tutto ciò che accade con il cloud networking, ma è più che sufficiente per essere operativo e accedere al cloud. Ora devi decidere che tipo di cloud desideri.
I diversi tipi di nuvole
Cloud è un termine amorfo: le persone lo usano per indicare molte cose diverse. Ci sono davvero tre diverse categorie di nuvole.
Nuvole infrastrutturali
La macchina virtuale e la rete sono gli elementi costitutivi di un'infrastruttura cloud , nota anche come Infrastructure as a Service ( IaaS ). Forniscono l'infrastruttura virtualizzata, su cui hai il pieno controllo. Decidi tu il sistema operativo e tutto ciò che viene eseguito su di esso.
Ottieni flessibilità e controllo, ma sei responsabile della gestione e del supporto di tutto ciò che installi.
Le nuvole di infrastruttura sono statiche o elastiche . Un cloud statico funziona come la mia rete domestica: ho un set di macchine virtuali che eseguono tutto ciò di cui ho bisogno. Vivono su una rete privata, con un gateway pubblico che garantisce loro l'accesso a Internet. I cloud statici sono ottimi per elaborare i dati, avere una potenza di calcolo aggiuntiva o ospitare un sito più complesso di quello che un provider di hosting può gestire. Puoi anche replicare il tuo cloud statico su altri data center in tutto il mondo.
I cloud elastici funzionano come i cloud statici, ma sono dinamici. Invece di un set fisso di server virtuali, hai un set che può crescere o ridursi a seconda delle tue esigenze. Il tuo cloud si espande quando hai una forte domanda sul tuo sito o servizio e torna alle dimensioni normali quando non lo fai. Tutta l'espansione e la contrazione ti fanno risparmiare denaro. Restituisci la potenza di calcolo che non ti serve quando non ti serve.
Netflix utilizza IaaS. Amazon Web Services fornisce l'infrastruttura e Netflix implementa il suo intero sistema in cima; ha scritto il proprio software per fornire un supporto altamente personalizzato per lo streaming di contenuti ad alta definizione. The Weather Company è un altro esempio: viene eseguito su IBM Cloud.
Piattaforma Cloud
Un cloud di piattaforma , noto anche come Platform as a Service ( PaaS ), è un cloud specializzato che fornisce blocchi software per la tua applicazione mentre il provider di servizi cloud gestisce l'infrastruttura e lo stack software per te.
Ad esempio, se hai bisogno di un'applicazione web, PaaS potrebbe fornirti WordPress o Drupal vaniglia da utilizzare. Se hai bisogno di un database, puoi scegliere MySQL o PostgreSQL. Se hai bisogno di strumenti di sviluppo, puoi scegliere tra Node, Java o PHP. Non devi preoccuparti di quale sistema operativo è in esecuzione o se è necessario applicare una patch di sicurezza MySQL: il provider cloud si occupa di questo per te.
Heroku è un cloud PaaS. Fornisce il software sottostante e tu scrivi solo quello che vuoi sopra. Ti dà una certa flessibilità, ma fa molta più gestione rispetto a un cloud IaaS.
Nubi di software
Un cloud software , noto anche come Software as a Service ( SaaS ), è un tipo di cloud molto specializzato che fornisce un servizio online ben definito. I provider di hosting sono un tipo speciale di cloud SaaS nascosto; funzionano in modo molto limitato.
Wix è un altro esempio di SaaS. Ti fornisce un servizio completo di hosting di applicazioni web con un ottimo editor, supporto per l'accesso e il pagamento degli utenti e un'ampia varietà di modelli tra cui scegliere. Wix si concentra su un solo lavoro. È molto limitato nelle funzionalità, ma anche più facile da usare.
I pezzi di base di una nuvola
Abbiamo parlato dei diversi tipi di nuvole e del perché ne hai bisogno. Prima di poter sembrare davvero un esperto di cloud, devi conoscere i diversi componenti che compongono un cloud.
Macchine virtuali
Una macchina virtuale è un software che funziona come un hardware, agendo come una macchina reale senza mai aver bisogno di un server separato da nessuna parte. Puoi fare quello che vuoi con la VM e supererà il test di anatra: cammina e ciarlata come un vero server. Il tuo software non conoscerà mai la differenza.
Questa flessibilità ha un prezzo. Sei responsabile della manutenzione della tua macchina virtuale. Il provider cloud si assicurerà che l'hardware sia in ottime condizioni, ma dovrai selezionare il tuo sistema operativo e tutto ciò che viene eseguito su di esso: patch di sicurezza, aggiornamenti software, configurazione. Dipende tutto da te.
E se non sei su un cloud elastico, ricordati di rilasciare tutte le macchine virtuali che non ti servono più. Il provider ti addebiterà se la VM sta funzionando o meno.
Sottoreti
Abbiamo già trattato il cloud networking. Le sottoreti sono reti che funzionano nel cloud.
IP privati e IP pubblici
La rete cloud assegnerà un indirizzo IP non instradabile alle macchine virtuali nella sottorete. Questi sono noti come IP privati perché sono privati della mia rete. Quando una macchina virtuale invia richieste a Internet, il gateway pubblico tradurrà tali richieste. Questo è chiamato traffico in uscita dai provider di servizi cloud.
Proprio come non posso accedere alla mia stampante di casa da un bar, nel cloud ho bisogno di un IP pubblico per accedere a una macchina virtuale.
Gli IP pubblici possono essere assegnati alle macchine virtuali per consentire il traffico in ingresso (traffico proveniente da Internet instradato alle macchine virtuali). Questo è importante perché i fornitori di servizi cloud ti addebiteranno in modo diverso il traffico in ingresso e in uscita.
Chiavi SSH
Una chiave SSH è un'informazione privata che ti consente di accedere al tuo cloud. È composto da due file. C'è una chiave pubblica che assomiglia a questa:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC5b8xmtjUd1taP4svy9FM/WZc/n5gkqKVkhIsqW27hw2WuhfTVNLA6IBBOs9+br+HlqGYwgYB3DSh0Zm/3Bok1uQhinH77FmKsrPGDpvtJv16weIvGiTMVp+Mct8DVKl48KZxvQKa0Hp6MxEc7cQ9WPvzWn9BPLHERSkSNwXSUobqpFBgIPy9UBWr5DsI2Li5HeMgMgTcbuVVdO/8I/rhKoIyTqkhY4CZcyssmWhMvPmk6+9IcOr0O4SyW9TL+CZgDH1mW2dUypT+1j6HgFjr9H8NfJ4EKnWnFkQXo8HZ4oh6lSTaIfDQfnbrjVUO14N7FW9ZgXbL9cJVx5FLw3ny9 [email protected]
E c'è una chiave privata che assomiglia a questa:
-----BEGIN RSA PRIVATE KEY----- MIIEogIBAAKCAQEAuW/MZrY1HdbWj+LL8vRTP1mXP5+YJKilZISLKltu4cNlroX0 1TSwOiAQTrPfm6/h5ahmMIGAdw0odGZv9waJNbkIYpx++xZirKzxg6b7Sb9esHiL xokzFafjHLfA1SpePCmcb0CmtB6ejMRHO3EPVj781p/QTyxxEUpEjcF0lKG6qRQY CD8vVAVq+Q7CNi4uR3jIDIE3G7lVXTv/CP64SqCMk6pIWOAmXMrLJloTLz5pOvvS HDq9DuEslvUy/gmYAx9ZltnVMqU/tY+h4BY6/R/DXyeBCp1pxZEF6PB2eKIepUk2 iHw0H52641VDteDexVvWYF2y/XCVceRS8N58vQIDAQABAoIBAHU7UKW+m2X55Dui zf0SqW5rXUtDwhOq6qTZhoGIvFjOBwKGfXosjRyyGJ0o6jyqvM1L4Q7ZUDXzg5fT CwXIhAYKrFprRXvHcypnS2hHsKW27k3yZ6tkIX+XW+VT5fzdhCXUyKks3jcRBHtJ ux7BI0kLGR02e6MSHYkowp47p1Auukx1saRkFTwvy+znABgqVETvtHBxAiElXndL JfQntaQacgWWDjl2qUj+06IB/Qzd9/Mo1Vtdb8SUZxv/Qc2raSi3LL0N4aSJGLGU pq395ggv9NdhUQf+DN9uGaOC4hYeGdO8gm27yysZ4rTT5iln5wOaCAcMTMrGL4+k GoU/nKECgYEA7AP/Mh9sUi9AX/17a3A/zxNAO1ZrvM+Caj/X/t/pt3HEOhqLz7o5 z3g8/Z+H0CJLZNiP9XbMak2wvOiqRj0y+FihX/ESll6XgIEPTBUcFSirWMe4f9og FltrnelUjHG9MTDW0P4jmmp1E5V8RgnCCv2VjN40ulP5zHPXXdU2FP8CgYEAySNs /qlFL7DTB/A851y6cUzQC5kiKlr/T8aUtOHeBo626jlnHDy/VY9vIJ0ttsYyHCdM OSdqZh5wRwvshr94tpOBQNnDTI4Xv7t2couHl7q2xTOYeWViwGyZaatNYlWWFh/u YSCTd2jn6cvBZOZP3BAiWoF9nzLcsjfpNLdzAkMCgYAx8TaTOKsHSRBqP41aUspt 2zkAVW0+6vpB2Xivalpegyhu0yc6scGB8YOWd6eZl2g00s7DtnvTEtWPY/yEGHcs rjSXxL+WKjYM70J5aw4iPBTmGH0mMNYRZQ8Ev1cw0PCj9B3A48ZM6rITjtJZT79L 7BU1Vd/6fcKiTPEJ3hAvqQKBgBKOQBnmR8m0iGNtGFFHzrNxIKhRQkOiDXewnDtr su3r8Jf/H7INMKGWD+x0U6lO84SBY5jKOBifqkADq5hqxZoiVYREEq5XVX2Mr8q1 cJbg1MewkNpyLgAOhMCo2wS9XJFB9N3lAXW8qdh5waerT6a/nku3Mn2jVZTjb5I7 clK9AoGAZLuvLAJpFOf/mweajULV+oFMGzIArvbk1c+cGySeI5uZwfQ9lv2MOb0N DuFTXZt6QpKV9Nix/8KgBIP2Vac6gSAeF6kIXk2+nV6gXm5tojYrf6gG1jY8ceRD IFSeGlnBhYVrFcQ79fYwJtSQgGde4PtNF1yq9ipluAyLuy1cLUc= -----END RSA PRIVATE KEY-----
Utilizzare questi due file insieme invece di una password.
L'autenticazione a chiave pubblica SSH è un modo affidabile per accedere a un sistema remoto, più sicuro del nome utente e della password standard. (SSH sta per "secure shell".) Probabilmente hai già visto le chiavi SSH nella forma della tua chiave Github.
Le chiavi SSH si basano sulla crittografia a chiave pubblica e sull'autenticazione challenge-response per prevenire attacchi di forza bruta e altre minacce.
Queste chiavi assicurano che solo tu abbia accesso alle tue macchine virtuali e funzionano perfettamente con script e altre attività automatizzate.
Centri dati
Un data center è un grande edificio pieno di computer. I fornitori di servizi cloud te ne noleggiano parti.
I computer sono potenti server che possono ospitare più macchine virtuali contemporaneamente. Questi server consumano molta energia e generano molto calore e devono essere fisicamente vicini tra loro in modo che la rete sia veloce. Quindi un data center è la struttura in cui un fornitore di servizi cloud ospita tutto l'hardware fisico che esegue una parte del suo cloud. Il data center richiede un raffreddamento adeguato, alimentazione ridondante, ampia larghezza di banda di rete, accesso controllato e personale qualificato per mantenere tutte le macchine in funzione.
Un data center può gestire molto carico, ma è in un solo posto. Un provider cloud globale deve diffondere i data center in tutto il mondo per garantire che i clienti ovunque abbiano una latenza di accesso di rete accettabile ai propri server.
Regioni e zone
Un fornitore di servizi cloud deve organizzare i propri data center per garantire che possa continuare a soddisfare le richieste durante interruzioni di corrente, inondazioni, uragani e altri disastri. I provider chiamano questa qualità del servizio e fa tutto parte dell'assicurarsi che il cloud non si interrompa mai.
Una regione è un'area geografica con una specifica latenza di rete di andata e ritorno (da dove a dove?). Le regioni hanno nomi come Dallas, Tokyo o Francoforte. Hai la garanzia di ottenere la latenza di rete per cui stai pagando all'interno di quell'area.
Una regione è composta da una o più zone. Le zone sono un data center isolato in una regione con un'infrastruttura elettrica, meccanica e di rete indipendente progettata per garantire l'assenza di un singolo punto di guasto condiviso tra altre zone. Ciò consente di creare applicazioni a elevata disponibilità di tolleranza ai guasti distribuendo in più zone in una regione. La regione può andare avanti se una zona va in crash, ma è davvero brutto quando tutte le zone cadono.
Un data center ospita una zona. Più data center sono raggruppati insieme per creare un'area multizona. Le zone hanno nomi come us-south-1, us-south-2 e us-south-3. Una piccola regione può essere servita da un unico solido data center, mentre una regione popolosa potrebbe richiedere più data center per far fronte alla domanda di rete e di elaborazione.
Disaster Recovery, alta disponibilità e tolleranza ai guasti
Questi concetti fanno sudare anche gli architetti IT più esperti. Rimangono svegli la notte chiedendosi come faranno a non far calare mai le nuvole.
Ma hai questo! Il cloud (quasi) non va mai giù, ed è facile assicurarsi di essere coperti se lo fa. Esaminiamo questi concetti uno per uno:
Il ripristino di emergenza (DR) è un insieme di politiche e procedure che descrivono in dettaglio cosa fare durante e dopo un incidente grave. Progetta il tuo sistema in modo che fallisca con grazia (il che significa che i tuoi utenti capiranno che qualcosa non va ma lo hai coperto) e dopo un incidente, sai come ripristinarlo il più rapidamente possibile. Hai bisogno del ripristino di emergenza quando un'intera regione è inattiva, il tuo servizio è sotto attacco informatico o è vulnerabile e devi eliminarlo.
L'alta disponibilità (HA) non è che un obiettivo: i "cinque nove" di cui abbiamo parlato prima. Vuoi che la tua applicazione sia resiliente al fallimento. Questo è quasi impossibile se esegui un server nel tuo salotto, ma è fattibile con il cloud. Raggiungi l'obiettivo dell'elevata disponibilità affidandoti all'infrastruttura fault-tolerant del cloud: tutto è a tuo carico.
Un'infrastruttura a tolleranza d'errore è un progetto che assicura che un backup prenda il sopravvento in caso di problemi. Il cloud è un sistema a tolleranza d'errore. Se una zona all'interno di una regione si guasta, le altre zone garantiranno la continuità del servizio. È necessario sfruttare tale tolleranza agli errori utilizzando componenti come i bilanciatori di carico.
Bilanciatori di carico
L'elevata disponibilità deriva dall'esecuzione simultanea di più istanze dell'applicazione. Un sistema di bilanciamento del carico è un'apparecchiatura che indirizzerà il traffico dai tuoi utenti a una delle tue istanze che è attiva e funzionante; prende le richieste e le invia al server sano successivo.
Il servizio di bilanciamento del carico monitora lo stato delle tue macchine virtuali e può tenere conto di diversi parametri. Può rilevare se la tua macchina virtuale o app si arresta in modo anomalo, ma può anche verificare la latenza di rete, dati specifici nelle intestazioni delle richieste e molto altro.
Domande che probabilmente faranno i tuoi clienti
Quindi la tua applicazione funziona alla grande, ma il tuo cliente sta pensando di abbracciare il cloud. Sei pronto per questo? Ecco le domande comuni a cui dovresti essere in grado di rispondere per sembrare un esperto di cloud.
Quando voglio più di un provider di hosting?
Il tuo cliente potrebbe essere impegnato a tutta velocità nella migrazione di tutti i servizi al cloud. Con una maggiore flessibilità, resilienza e una presenza geograficamente distribuita, il cloud rende facile entusiasmarsi.
Ma anche se il cloud è più veloce, più flessibile e affidabile, è anche più costoso; potrebbe anche richiedere ulteriore supporto IT per mantenere in funzione il sistema del cliente. Il cloud non è per tutti.
Se il sistema del tuo cliente è attualmente in esecuzione su un provider di hosting, dovresti passare al cloud?
Considera le esigenze presenti e future: se il tuo cliente è alla ricerca di un'elevata disponibilità per conformarsi alle normative, passa al cloud. Se il tuo cliente si rivolge a un pubblico globale, passa al cloud. Se sono previsti aumenti drastici della domanda durante tutto l'anno, passa al cloud.
Se al sistema accedono principalmente utenti locali all'interno di un'area geografica specifica o se non è mission-critical per il tuo client, non passare al cloud.
Il punto importante: se il sistema del tuo cliente funziona bene su un provider di hosting, dovresti prendere in considerazione le offerte SaaS esistenti che fornirebbero la resilienza e le prestazioni del cloud, isolando il tuo cliente da spese IT non necessarie. Esistono provider di hosting tradizionali come Bluehost che offrono servizi basati su cloud e ci sono provider di servizi cloud che offrono servizi di hosting.
Che tipo di cloud dovrei usare?
Trovare il giusto tipo di cloud può essere difficile, poiché ogni provider offre un'ampia gamma di servizi e opzioni. Le prime cose da considerare sono la complessità dello stack software del client e l'hardware su cui è attualmente in esecuzione.
Se l'intero stack è altamente personalizzato con librerie open source ricompilate, kernel Linux personalizzati o ottimizzazioni di archiviazione speciali, dovresti prima esaminare IaaS. Alcuni fornitori consentiranno al tuo cliente di combinare e abbinare, utilizzando IaaS per componenti altamente personalizzati e selezionando PaaS per altre parti.
Tuttavia, se le esigenze del tuo cliente sono per lo più basate su librerie standard, PaaS è molto probabilmente un punto di partenza migliore; il provider cloud si assicurerà che il codice del tuo client sia sempre in esecuzione su dipendenze aggiornate.
Una volta identificato il modello cloud corretto, i requisiti e i criteri di valutazione saranno unici per il tuo cliente. Ma vale sempre la pena prestare attenzione ai requisiti non funzionali: il tuo cliente deve rispettare normative, certificazioni o standard specifici del dominio? Hanno qualche dipendenza o partnership con fornitori specifici?
Infine, pensa al supporto per la migrazione del provider di servizi cloud e al blocco del fornitore: quanto è difficile per il tuo cliente migrare verso un concorrente una volta che il sistema è in esecuzione. Considera un piano di uscita anche se il tuo cliente non ha intenzione di trasferirsi.
Come posso assicurarmi che il mio sito non vada mai giù?
Supponiamo che il tuo cliente lavori nel settore sanitario statunitense. HIPAA richiede che ogni organizzazione disponga di una sorta di piano di ripristino di emergenza e che includa il tuo sito web. L'attività del tuo cliente fallirà se il sito non funziona, quindi hai bisogno della resilienza del cloud.
Il cloud ti offre gli strumenti di cui hai bisogno per assicurarti che il tuo sito non si interrompa mai. Avrai bisogno di più istanze della tua applicazione in esecuzione contemporaneamente e un modo per controllare il traffico in modo che i tuoi utenti non accedano mai a un'istanza danneggiata.
Se il tuo client sta distribuendo il tuo sito su un cloud IaaS, avrai bisogno di più istanze della tua applicazione e di un sistema di bilanciamento del carico per controllare il traffico. Se il tuo client ha un cloud PaaS, assicurati di avere più istanze in esecuzione, poiché il cloud fornirà automaticamente la parte di routing.
Se il tuo sito utilizza un database, assicurati che il cloud del tuo client sia configurato per supportare l' affinità di sessione (chiamata anche sessioni permanenti ), un modo per garantire che tutto il traffico degli utenti venga instradato alla stessa macchina virtuale.
Come faccio a rendere il mio sito veloce per tutti nel mondo?
Se il tuo cliente sta diventando globale e richiede che la tua applicazione fornisca un servizio rapido agli utenti finali di tutto il mondo, allora hai bisogno della flessibilità e della portata geografica del cloud.
Anche se il cloud è globale, è necessario che le istanze della tua applicazione vengano eseguite vicino a dove si trovano i tuoi utenti.
Collabora con il tuo client per identificare quali regioni cloud potrebbero servire al meglio la tua base di utenti e dove il tuo client ospita le API che supportano il tuo sito: le tue istanze dovrebbero essere vicine a entrambe. Potresti anche discutere della configurazione di un proxy globale che instrada il traffico verso diverse aree geografiche in base alla posizione dell'utente.
Conclusione
Fornire un servizio scalabile e resiliente a una base di clienti in crescita su Internet è molto complesso; abbiamo appena graffiato la superficie qui. Ecco perché vogliamo lasciare i dettagli ad Amazon, Google e agli altri fornitori di servizi cloud. Il tuo compito è prendere buone decisioni su come utilizzare i loro servizi.
Ricorda, quando il tuo client ti chiede se qualcosa deve essere eseguito nel cloud, devi porre quattro domande:
- Quanto è complesso il software che devi eseguire?
- Quanto è necessario per ridimensionare?
- Quanto è importante che non si abbassi mai?
- Quanto velocemente deve funzionare per gli utenti di tutto il mondo?
Inizia con queste quattro semplici domande e sembrerai un esperto di cloud. Collabora con i tuoi clienti per capire cosa significano per loro le risposte a queste domande, considerando i diversi tipi di cloud, e sarai una parte importante della soluzione delle loro esigenze.