Microsoft Azure è noto a molti come una piattaforma cloud pubblica alternativa ad Amazon AWS. Non è facile confrontare direttamente queste due aziende giganti. Il business cloud di Microsoft, soprannominato cloud commerciale, include tutto, da Azure agli abbonamenti aziendali di Office 365 a Dynamics 365 ai servizi di LinkedIn. Dopo che LinkedIn è stata acquisita da Microsoft, ha iniziato a spostare la sua infrastruttura in Azure. Sebbene lo spostamento di LinkedIn in Azure potrebbe richiedere del tempo, dimostra le capacità e la capacità di Microsoft Azure di gestire milioni di transazioni. La forte tradizione aziendale, lo stack software e gli strumenti del data center di Microsoft offrono familiarità e un approccio ibrido alle implementazioni cloud.
Microsoft Azure è costruito come Infrastructure as a Service (IaaS) e come Platform as a Service (PaaS). La macchina virtuale di Azure offre la fatturazione al secondo ed è attualmente un calcolo multi-tenant. Tuttavia, ha recentemente presentato in anteprima la sua nuova offerta che consente l'esecuzione di macchine virtuali su server fisici single-tenant. L'offerta è denominata Host dedicati di Azure.
Azure offre anche istanze di grandi dimensioni specializzate (ad esempio per SAP HANA). Sono disponibili blocchi multi-tenant, archiviazione di file e molte altre funzionalità IaaS e PaaS aggiuntive. Questi includono l'archiviazione di oggetti (Archiviazione BLOB di Azure), una rete CDN, un servizio contenitore basato su Docker (servizio contenitore di Azure), un servizio di elaborazione batch (Azure Batch) e il "calcolo senza server" basato su eventi (Funzioni di Azure). Azure Marketplace offre software e servizi di terze parti. Le esigenze di colocation vengono soddisfatte tramite scambi di partner (Azure ExpressRoute) offerti da partner come Equinix e CoreSite.
Con tutte queste offerte Microsoft Azure ha intensificato il proprio gioco per svolgere un ruolo fondamentale nel mercato del cloud pubblico. L'infrastruttura PaaS offerta ai propri consumatori ha raccolto molta fiducia e molti stanno spostando la propria infrastruttura o cloud privato nell'infrastruttura cloud pubblica di Microsoft Azure. Ciò è particolarmente vantaggioso per i consumatori che necessitano dell'integrazione con altri servizi Windows, come Visual Studio.
Quindi, cosa c'è di diverso tra Azure e gli altri cloud che abbiamo visto in questa serie? Microsoft si è concentrata molto su intelligenza artificiale, analisi e Internet delle cose. AzureStack è un altro sforzo di "cloud-meets-data center" che è stato un vero elemento di differenziazione nel mercato.
Pro e contro di Migrazione Microsoft Azure
Ci sono diverse cose che dovresti considerare quando sposti le tue applicazioni o infrastrutture legacy in Microsoft Azure.
Punti di forza
- Le aziende che si impegnano strategicamente nella tecnologia Microsoft generalmente scelgono Azure come provider IaaS+PaaS principale. L'esperienza end-to-end integrata per le aziende che creano applicazioni .NET usando Visual Studio (e servizi correlati) è insuperabile. Microsoft sta inoltre sfruttando la sua straordinaria portata di vendita e la capacità di co-vendere Azure con altri prodotti e servizi Microsoft per promuoverne l'adozione.
- Azure offre un approccio ben integrato all'edge computing e all'Internet of Things (IoT), con offerte che vanno dal suo data center iperscalabile attraverso soluzioni edge come AzureStack e Data Box Edge.
- Le funzionalità di Microsoft Azure sono diventate sempre più innovative e aperte. Il 50% dei carichi di lavoro è basato su Linux insieme a numerosi stack di applicazioni open source. Microsoft ha una visione unica per il futuro che prevede l'ingresso di partner tecnologici attraverso offerte native di prima parte come quelle di VMware, NetApp, Red Hat, Cray e Databricks.
Attenzioni
- I problemi di affidabilità di Microsoft Azure continuano a rappresentare una sfida per i clienti, in gran parte a causa dei crescenti problemi di Azure. Da settembre 2018, Azure ha avuto più incidenti con impatto sui servizi, comprese interruzioni significative che coinvolgono Azure Active Directory. Queste interruzioni lasciano i clienti senza la possibilità di mitigare i tempi di inattività.
- I clienti di Gartner spesso incontrano difficoltà nell'esecuzione puntuale delle implementazioni nel rispetto del budget. Questo viene da Microsoft che spesso fornisce aspettative irragionevolmente alte per i clienti. Gran parte di ciò deriva dal fatto che i team di vendita sul campo di Microsoft sono stati "incoraggiati" a posizionare e vendere in modo appropriato Azure all'interno della sua base di clienti.
- Le aziende lamentano spesso la qualità del supporto tecnico Microsoft (insieme al costo crescente del supporto) e gli architetti di soluzioni sul campo. Ciò ha un impatto negativo sulla soddisfazione dei clienti e rallenta l'adozione di Azure e quindi la spesa dei clienti.
Microsoft potrebbe non essere la tua prima scelta in quanto è stato visto come un gigante tecnologico "non così open source", ma in tutta onestà ha abbracciato molte attività e supporto all'interno del Mondo Open Source. Microsoft Azure offre servizi completamente gestiti alla maggior parte dei principali database RDBMS open source come PostgreSQL, MySQL e MariaDB.
Le varianti di Galera Cluster (Percona, Codership o MariaDB), sfortunatamente, non sono supportate da Azure. L'unico modo per distribuire il cluster Galera in Azure è tramite una macchina virtuale. Potresti anche voler controllare il loro blog sull'utilizzo di MariaDB Enterprise Cluster (basato su Galera) su Azure.
Macchina virtuale di Azure
Virtual Machine è l'offerta equivalente per le istanze di calcolo in GCP e AWS. Una macchina virtuale di Azure è un server di elaborazione su richiesta ad alte prestazioni nel cloud e può essere distribuito in Azure con vari metodi. Questi potrebbero includere l'interfaccia utente all'interno del portale di Azure, l'uso di immagini preconfigurate nel mercato di Azure, lo scripting tramite Azure PowerShell, la distribuzione da un modello definito tramite un file JSON o la distribuzione diretta tramite Visual Studio.
Azure usa un modello di distribuzione denominato Azure Resource Manager (ARM), che definisce tutte le risorse che fanno parte della soluzione applicativa complessiva, consentendo di distribuire, aggiornare o eliminare la soluzione in un'unica operazione .
Le risorse possono includere l'account di archiviazione, le configurazioni di rete e gli indirizzi IP. Potresti aver sentito il termine "modelli ARM", che essenzialmente significa il modello JSON che definisce i diversi aspetti della tua soluzione che stai cercando di implementare.
Le macchine virtuali di Azure sono disponibili in diversi tipi e dimensioni, con nomi che iniziano con dalla serie A alla serie N. Ogni tipo di macchina virtuale è costruito tenendo conto di carichi di lavoro o esigenze di prestazioni specifiche, tra cui uso generale, ottimizzazione del calcolo, ottimizzazione dell'archiviazione o ottimizzazione della memoria. Puoi anche distribuire tipi meno comuni come GPU o VM di calcolo ad alte prestazioni.
Simile ad altre offerte di cloud pubblico, puoi eseguire le seguenti operazioni nelle istanze della tua macchina virtuale...
- Crittografa il tuo disco sulla macchina virtuale . Anche se questo non è facile rispetto a GCP e AWS. La crittografia della macchina virtuale richiede un approccio più manuale. Richiede il completamento dei prerequisiti di Crittografia dischi di Azure. Poiché Galera non supporta Windows, stiamo parlando solo di immagini basate su Linux. Fondamentalmente, richiede la presenza di moduli dm-crypt e vfat nel sistema. Una volta che hai corretto quel pezzo, puoi crittografare la macchina virtuale usando l'interfaccia della riga di comando di Azure. Puoi vedere come abilitare Crittografia dischi di Azure per macchine virtuali IaaS Linux per vedere come farlo. La crittografia del disco è molto importante, soprattutto se la tua azienda o organizzazione richiede che i dati del tuo Cluster Galera seguano gli standard imposti da leggi e regolamenti come PCI DSS o GDPR.
- Creazione di un'istantanea . È possibile creare uno snapshot tramite l'interfaccia della riga di comando di Azure o tramite il portale. Controlla il loro manuale su come farlo.
- Utilizza il ridimensionamento automatico o i set di scalabilità di macchine virtuali se hai bisogno del ridimensionamento orizzontale . Consulta la panoramica della scalabilità automatica in Azure o la panoramica dei set di scalabilità di macchine virtuali.
- Distribuzione multizona . Distribuisci le tue istanze della macchina virtuale in diverse zone di disponibilità per evitare single point of failure.
Puoi anche creare (o ottenere informazioni da) le tue macchine virtuali in diversi modi. È possibile usare il portale di Azure, Azure PowerShell, le API REST, gli SDK client o con l'interfaccia della riga di comando di Azure. Le macchine virtuali nella rete virtuale di Azure possono anche essere facilmente connesse alla rete dell'organizzazione e trattate come un data center esteso.
Prezzi Microsoft Azure
Proprio come altri provider di cloud pubblico, Microsoft Azure offre anche un piano gratuito con alcuni servizi gratuiti. Offre anche opzioni di pagamento in base al consumo e istanze riservate tra cui scegliere. Il pagamento in base al consumo parte da $ 0,008/ora - $ 0,126/ora.
Per le istanze riservate, più tempo esegui il commit e il contratto con Azure, più risparmi sul costo. Microsoft Azure afferma di aiutare gli abbonati a risparmiare fino al 72% dei costi di fatturazione rispetto al suo modello con pagamento in base al consumo quando gli abbonati si iscrivono per un periodo da uno a tre anni per una macchina virtuale Windows o Linux. Microsoft offre anche una maggiore flessibilità, nel senso che se la tua azienda ha bisogno di cambiamenti, puoi annullare l'abbonamento ad Azure RI in qualsiasi momento e restituire l'IR rimanente non utilizzata a Microsoft come tariffa di risoluzione anticipata.
Controlliamo i prezzi rispetto a GCP, AWS EC2 e una macchina virtuale di Azure. Questo si basa sulla regione us-east1 e confronteremo le fasce di prezzo per le istanze di calcolo richieste per eseguire il tuo Galera Cluster.
Macchina/ | Google | AWS EC2 | Microsoft |
Condiviso | f1-micro G1-piccolo I prezzi partono da $ 0,006 - $ 0,019 all'ora | t2.nano – t3a.2xlarge Il prezzo parte da $ 0,0058 - $ 0,3328 all'ora | Serie B Il prezzo parte da $ 0,0052 - $ 0,832 all'ora |
Standard | n1-standard-1 – n1-standard-96 I prezzi partono da $ 0,034 - $ 3,193 all'ora | m4.large – m4.16xlarge m5.large – m5d.metal I prezzi partono da $ 0,1 - $ 5,424 all'ora | Av2 Standard, D2-64 v3 di ultima generazione, D2s-64s v3 di ultima generazione, D1-5 v2, DS1-S5 v2, serie DC Il prezzo parte da $ 0,043 - $ 3,072 all'ora |
Memoria elevata/ ottimizzata per la memoria | n1-highmem-2 – n1-highmem-96 n1-megamem-96 n1-ultramem-40 – n1-ultramem-160 I prezzi partono da $ 0,083 - $ 17,651 all'ora | r4.large – r4.16xlarge x1.16xlarge – x1.32xlarge x1e.xlarge – x1e.32xlarge I prezzi partono da $ 0,133 - $ 26,688 all'ora | D2a – D64a v3, D2as – D64as v3, E2-64 v3 di ultima generazione, E2a – E64a v3, E2as – E64as v3, E2s-64s v3 ultima generazione, D11-15 v2, DS11-S15 v2, serie M, serie Mv2, istanze, ottimizzazione della memoria estrema Il prezzo parte da $ 0,043 - $ 44,62 all'ora |
CPU/Storage elevati ottimizzati | n1-highcpu-2 – n1-highcpu-32 I prezzi partono da $ 0,05 - $ 2,383 all'ora | h1.2xlarge – h1.16xlarge i3.large – i3.metal I3en.large - i3en.metal d2.xlarge – d2.8xlarge I prezzi partono da $ 0,156 - $ 10,848 all'ora | Serie Fsv2, serie F, serie Fs Il prezzo parte da $ 0,0497 - $ 3,045 all'ora |
Crittografia dati su Microsoft Azure
Microsoft Azure non offre supporto per la crittografia direttamente per Galera Cluster (o viceversa). Esistono, tuttavia, modi per crittografare i dati inattivi o in transito.
La crittografia in transito è un meccanismo per proteggere i dati quando vengono trasmessi attraverso le reti. Con Archiviazione di Azure puoi proteggere i dati usando:
- Crittografia a livello di trasporto, ad esempio HTTPS, quando si trasferiscono dati in o in uscita da Archiviazione di Azure.
- Crittografia wire, come la crittografia SMB 3.0, per le condivisioni file di Azure.
- Crittografia lato client, per crittografare i dati prima che vengano trasferiti in Archiviazione e per decrittografare i dati dopo che sono stati trasferiti fuori Archiviazione.
Microsoft utilizza la crittografia per proteggere i dati dei clienti quando sono in transito tra l'area clienti e i servizi cloud Microsoft. Nello specifico, Transport Layer Security (TLS) è il protocollo che i data center di Microsoft utilizzeranno per negoziare con i sistemi client connessi ai servizi cloud Microsoft.
Viene inoltre impiegata Perfect Forward Secrecy (PFS) in modo che ogni connessione tra i sistemi client dei clienti e i servizi cloud di Microsoft utilizzi chiavi univoche. Le connessioni ai servizi cloud Microsoft sfruttano anche le lunghezze delle chiavi di crittografia a 2.048 bit basate su RSA.
Crittografia a riposo
Per molte organizzazioni, la crittografia dei dati inattivi è un passaggio obbligatorio verso il raggiungimento della privacy, della conformità e della sovranità dei dati. Tre funzionalità di Azure forniscono la crittografia dei dati inattivi:
- La crittografia del servizio di archiviazione è sempre abilitata e crittografa automaticamente i dati del servizio di archiviazione durante la scrittura in Archiviazione di Azure. Se la logica dell'applicazione richiede che il database MySQL Galera Cluster archivi dati importanti, l'archiviazione in Archiviazione di Azure può essere un'opzione.
- La crittografia lato client fornisce anche la funzione di crittografia a riposo.
- Crittografia dischi di Azure consente di crittografare i dischi del sistema operativo e i dischi dati utilizzati da una macchina virtuale IaaS. Crittografia dischi di Azure supporta anche l'abilitazione della crittografia nelle macchine virtuali Linux configurate con lo striping del disco (RAID) tramite mdadm e l'abilitazione della crittografia nelle macchine virtuali Linux tramite LVM per i dischi dati
Distribuzioni multi-AZ/Multi-regione/multi-cloud del cluster Galera con GCP
Simile ad AWS e GCP, Microsoft Azure non offre supporto diretto per la distribuzione di un cluster Galera su un Multi-AZ/-Region/-Cloud. Puoi, tuttavia, distribuire i tuoi nodi manualmente e creare script usando PowerShell o l'interfaccia della riga di comando di Azure per farlo per te. In alternativa, quando esegui il provisioning dell'istanza della tua macchina virtuale, puoi posizionare i tuoi nodi in diverse zone di disponibilità. Microsoft Azure offre anche un altro tipo di ridondanza, oltre ad avere la sua zona di disponibilità, chiamata set di scalabilità di macchine virtuali. Puoi controllare le differenze tra la macchina virtuale e i set di scalabilità.
Alta disponibilità, scalabilità e ridondanza del cluster Galera in Azure
Uno dei motivi principali per l'utilizzo di un cluster di nodi Galera è l'elevata disponibilità, la ridondanza e la sua capacità di scalabilità. Se stai servendo traffico a livello globale, è meglio soddisfare il tuo traffico per regione. Dovresti assicurarti che la tua progettazione architettonica includa la distribuzione geografica dei nodi del tuo database. A tal fine, si consigliano implementazioni multi-AZ, multi-regione o multi-cloud/multi-datacenter. In questo modo si evita che il cluster si interrompa e si verifichi un malfunzionamento dovuto alla mancanza di quorum.
Come accennato in precedenza, Microsoft Azure dispone di una soluzione di ridimensionamento automatico che può essere sfruttata utilizzando i set di scalabilità. Ciò ti consente di ridimensionare automaticamente un nodo quando viene raggiunta una determinata soglia (in base a ciò che stai monitorando). Ciò dipende dagli elementi dello stato di integrità che stai monitorando prima che venga ridimensionato verticalmente. Puoi dare un'occhiata al loro tutorial su questo argomento qui.
Per distribuzioni multi-regione o multi-cloud, Galera ha il proprio parametro chiamato gmcast.segment per il quale può essere impostato all'avvio del server. Questo parametro è progettato per ottimizzare la comunicazione tra i nodi Galera e ridurre al minimo la quantità di traffico inviato tra i segmenti di rete. Ciò include l'inoltro del set di scrittura e la selezione dei donatori IST e SST. Questo tipo di configurazione consente di distribuire più nodi in regioni diverse. A parte questo, puoi anche distribuire i tuoi nodi Galera su un diverso instradamento di fornitori di cloud da GCP, AWS, Microsoft Azure o all'interno di una configurazione on-premise.
Ti consigliamo di consultare il nostro blog Configurazioni multiple di data center utilizzando il cluster Galera per MySQL o MariaDB e Migrazione della rete zero tempi di inattività con il cluster MySQL Galera utilizzando il nodo di inoltro per raccogliere ulteriori informazioni su come implementare questi tipi di distribuzioni.
Prestazioni del database del cluster Galera su Microsoft Azure
Le macchine host sottostanti utilizzate dalle macchine virtuali in Azure sono, infatti, molto potenti. Le più recenti VM in Azure sono già state dotate di moduli di ottimizzazione della rete. Puoi verificarlo nelle informazioni del kernel eseguendo (ad esempio in Ubuntu).
uname -r|grep azure
Nota:assicurati che il comando contenga la stringa "azure".
Per Centos/RHEL, l'installazione di qualsiasi Linux Integration Services (LIS) dalla versione 4.2 contiene l'ottimizzazione della rete. Per saperne di più, visita la pagina sull'ottimizzazione del throughput della rete.
Se la tua applicazione è molto sensibile alla latenza di rete, potresti essere interessato a guardare il gruppo di posizionamento di prossimità. È attualmente in anteprima (e non ancora consigliato per l'uso in produzione), ma questo aiuta a ottimizzare il throughput della rete.
Per il tipo di macchina virtuale che consumeresti, ciò dipenderebbe dai requisiti del traffico dell'applicazione e dalle richieste di risorse. Per le query che consumano molto memoria, puoi iniziare con Dv3. Tuttavia, per l'ottimizzazione della memoria, inizia con la serie Ev3. Per requisiti CPU elevati, come database con transazioni elevate o applicazioni di gioco, inizia con la serie Fsv2.
Scegliere lo storage giusto e gli IOPS richiesti per il volume del database è un must. In genere, un disco persistente basato su SSD è la scelta ideale. Inizia con l'SSD standard che è conveniente e offre prestazioni costanti. Questa decisione, tuttavia, potrebbe dipendere dall'eventuale necessità di più IOPS a lungo termine. In questo caso, dovresti scegliere l'archiviazione SSD Premium.
Ti consigliamo inoltre di controllare e leggere il nostro blog Come migliorare le prestazioni del cluster Galera per MySQL o MariaDB per saperne di più sull'ottimizzazione del tuo cluster Galera.
Backup del database per i nodi Galera in Azure
Non esiste un supporto per il backup naitve esistente per i dati di MySQL Galera in Azure, ma puoi creare uno snapshot. Microsoft Azure offre Azure VM Backup che acquisisce uno snapshot che può essere pianificato e crittografato.
In alternativa, se desideri eseguire il backup dei file di dati dal tuo Galera Cluster, puoi anche utilizzare servizi esterni come ClusterControl, utilizzare Percona Xtrabackup per il backup binario o utilizzare mysqldump o mydumper per i backup logici. Questi strumenti forniscono copie di backup per i tuoi dati mission-critical e puoi leggerli se vuoi saperne di più.
Galera Cluster Monitoring in Azure
Microsoft Azure ha il suo servizio di monitoraggio denominato monitoraggio di Azure. Monitoraggio di Azure massimizza la disponibilità e le prestazioni delle tue applicazioni offrendo una soluzione completa per la raccolta, l'analisi e l'azione in base ai dati di telemetria dal cloud e dagli ambienti locali. Ti aiuta a capire come funzionano le tue applicazioni e identifica in modo proattivo i problemi che le riguardano (e le risorse da cui dipendono). Puoi impostare o creare avvisi di integrità, ricevere notifiche su avvisi e avvisi rilevati nei servizi che hai distribuito.
Se desideri un monitoraggio specifico per il tuo database, dovrai utilizzare strumenti di monitoraggio esterni che dispongono di metriche di database avanzate e altamente granulari. Sono disponibili diverse scelte tra cui scegliere, come PMM di Percona, DataDog, Idera, VividCortex o il nostro ClusterControl (il monitoraggio è GRATUITO con ClusterControl Community.)
Sicurezza del database del cluster Galera in Azure
Come discusso nei nostri blog precedenti per AWS e GCP, puoi adottare lo stesso approccio per proteggere il tuo database nel cloud pubblico. Dopo aver creato una macchina virtuale, puoi specificare quali porte possono essere aperte o creare e configurare il tuo gruppo di sicurezza di rete in Azure. È possibile configurare le porte che devono essere aperte (in particolare le porte 3306, 4444, 4567, 4568) oppure creare una rete virtuale in Azure e specificare le subnet private se rimangono come nodo privato. Per aggiungere questo, se configuri le tue VM in Azure senza un IP pubblico, può ancora una connessione in uscita semplicemente perché usa SNAT e PAT. Se hai familiarità con AWS e GCP, ti piacerà questa spiegazione per renderla più facile da comprendere.
Un'altra funzionalità disponibile è il controllo dell'accesso basato sul ruolo in Microsoft Azure. Questo ti dà il controllo su quali persone accedono alle risorse specifiche di cui hanno bisogno.
Oltre a questo, puoi proteggere i tuoi dati in transito utilizzando una connessione TLS/SSL o crittografando i tuoi dati quando sono inattivi. Se utilizzi ClusterControl, la distribuzione di dati in transito sicuri è semplice e facile. Puoi dare un'occhiata al nostro blog Gestione delle chiavi SSL e crittografia dei dati MySQL in transito se vuoi provare. Per i dati inattivi, puoi seguire la discussione che ho affermato in precedenza nella sezione Crittografia di questo blog.
Risoluzione dei problemi del cluster Galera
Microsoft Azure offre un'ampia gamma di tipi di log per facilitare la risoluzione dei problemi e il controllo. I registri Registri attività, Registri di diagnostica di Azure, Report di Azure AD, Macchine virtuali e servizi cloud, Registri di flusso del gruppo di sicurezza di rete (NSG) e Informazioni dettagliate sull'applicazione sono molto utili durante la risoluzione dei problemi. Potrebbe non essere sempre necessario approfondire tutti questi aspetti quando è necessaria la risoluzione dei problemi, tuttavia, si aggiungerebbero ulteriori approfondimenti e indizi durante il controllo dei registri.
Se stai usando ClusterControl, vai su Registri -> Registri di sistema e sarai in grado di sfogliare i log degli errori acquisiti presi dal nodo MySQL Galera stesso. Oltre a questo, ClusterControl fornisce un monitoraggio in tempo reale che amplificherebbe il tuo sistema di allarme e notifica in caso di emergenza o se i tuoi nodi MySQL Galera sono kaput.
Conclusione
Al termine di questa serie di blog in tre parti, ti abbiamo mostrato le offerte ei vantaggi di ciascuno dei giganti della tecnologia al servizio del settore del cloud pubblico. Esistono vantaggi e svantaggi quando si seleziona l'uno rispetto all'altro, ma ciò che conta di più è il motivo per cui si passa a un cloud pubblico, i vantaggi per l'organizzazione e il modo in cui soddisfa i requisiti dell'applicazione.
La scelta del fornitore per il tuo Galera Cluster può comportare considerazioni finanziarie come "cosa è più conveniente" e si adatta meglio alle tue esigenze di budget. Potrebbe anche essere dovuto alle leggi sulla privacy e alla conformità alle normative, o anche allo stack tecnologico che desideri utilizzare. L'importante è il rendimento dell'applicazione e del database una volta che si trovano nel cloud a gestire grandi quantità di traffico. Deve essere altamente disponibile, deve essere resiliente, avere i giusti livelli di scalabilità e ridondanza ed eseguire backup per garantire il ripristino dei dati.