sql >> Databasteknik >  >> RDS >> MariaDB

Jämföra Galera Cluster Cloud-erbjudanden:Del tre Microsoft Azure

Microsoft Azure är känt för många som en alternativ offentlig molnplattform till Amazon AWS. Det är inte lätt att direkt jämföra dessa två jätteföretag. Microsofts molnverksamhet – kallat kommersiellt moln – inkluderar allt från Azure till Office 365 företagsabonnemang till Dynamics 365 till LinkedIn-tjänster. Efter att LinkedIn köptes upp av Microsoft började det flytta sin infrastruktur till Azure. Även om det kan ta lite tid att flytta LinkedIn till Azure, visar det Microsoft Azures kapacitet och förmåga att hantera miljontals transaktioner. Microsofts starka företagsarv, mjukvarustack och datacenterverktyg erbjuder både förtrogenhet och en hybrid metod för molninstallationer.

Microsoft Azure är byggt som en Infrastructure as a Service (IaaS) såväl som en Platform as a Service (PaaS). Azure Virtual-maskinen erbjuder fakturering per sekund och det är för närvarande en dator med flera klienter. Det har dock nyligen förhandsgranskat sitt nya erbjudande som gör att virtuella maskiner kan köras på fysiska servrar med en hyresgäst. Erbjudandet kallas Azure Dedicated Hosts.

Azure erbjuder även specialiserade stora instanser (som för SAP HANA). Det finns flertenantblock, fillagring och många andra ytterligare IaaS- och PaaS-funktioner. Dessa inkluderar objektlagring (Azure Blob Storage), ett CDN, en Docker-baserad containertjänst (Azure Container Service), en batchdatortjänst (Azure Batch) och händelsedriven "serverlös datoranvändning" (Azure Functions). Azure Marketplace erbjuder programvara och tjänster från tredje part. Samlokaliseringsbehov tillgodoses via partnerutbyten (Azure ExpressRoute) som erbjuds från partners som Equinix och CoreSite.

Med alla dessa erbjudanden har Microsoft Azure ökat sitt spel för att spela en viktig roll på den offentliga molnmarknaden. PaaS-infrastrukturen som erbjuds sina konsumenter har fått mycket förtroende och många flyttar sin egen infrastruktur eller privata moln till Microsoft Azures offentliga molninfrastruktur. Detta är särskilt fördelaktigt för konsumenter som behöver integration med andra Windows-tjänster, såsom Visual Studio.

Så vad är skillnaden mellan Azure och de andra molnen vi har tittat på i den här serien? Microsoft har fokuserat hårt på AI, analys och Internet of Things. AzureStack är en annan "moln-möter-datacenter"-satsning som har varit en verklig skillnad på marknaden.

Microsoft Azure Migration För- och nackdelar

Det finns flera saker du bör tänka på när du flyttar dina äldre applikationer eller infrastruktur till Microsoft Azure.

Styrkor

  • Företag som är strategiskt engagerade i Microsoft-teknik väljer i allmänhet Azure som sin primära IaaS+PaaS-leverantör. Den integrerade end-to-end-upplevelsen för företag som bygger .NET-applikationer med Visual Studio (och relaterade tjänster) är oöverträffad. Microsoft utnyttjar också sin enorma försäljningsräckvidd och förmåga att samförsälja Azure med andra Microsoft-produkter och tjänster för att driva introduktionen.
  • Azure tillhandahåller ett välintegrerat tillvägagångssätt för edge computing och Internet of Things (IoT), med erbjudanden som når från dess hyperskala datacenter ut genom edge-lösningar som AzureStack och Data Box Edge.
  • Microsoft Azures funktioner har blivit allt mer innovativa och öppna. 50 % av arbetsbelastningarna är Linux-baserade tillsammans med många öppen källkodsstack. Microsoft har en unik framtidsvision som innebär att ta in teknikpartners genom inbyggda förstapartserbjudanden som de från VMware, NetApp, Red Hat, Cray och Databricks.

Varningar

  • Microsoft Azures tillförlitlighetsproblem fortsätter att vara en utmaning för kunder, till stor del som ett resultat av Azures växtvärk. Sedan september 2018 har Azure haft flera tjänstepåverkande incidenter, inklusive betydande avbrott som involverar Azure Active Directory. Dessa avbrott gör att kunderna inte har någon möjlighet att minska stilleståndstiden.
  • Gartners kunder upplever ofta utmaningar med att genomföra implementeringar i tid inom budget. Detta kommer från att Microsoft ofta tillhandahåller orimligt höga förväntningar på kunderna. Mycket av detta beror på att Microsofts säljteam "uppmuntras" att på lämpligt sätt positionera och sälja Azure inom sin kundbas.
  • Företag beklagar ofta kvaliteten på Microsofts tekniska support (tillsammans med de ökande kostnaderna för support) och fältlösningsarkitekter. Detta påverkar kundnöjdheten negativt och fördröjer användningen av Azure och därmed kundernas utgifter.

Microsoft kanske inte är ditt förstahandsval eftersom det har setts som en "inte-så-öppen-källkodsvänlig" teknikjätte, men i ärlighetens namn har det anammat mycket aktivitet och stöd inom Världen med öppen källkod. Microsoft Azure erbjuder helt hanterade tjänster till de flesta av de bästa RDBMS-databaserna med öppen källkod som PostgreSQL, MySQL och MariaDB.

Galera Cluster-varianter (Percona, Codership eller MariaDB) stöds tyvärr inte av Azure. Det enda sättet du kan distribuera ditt Galera-kluster till Azure är med hjälp av en virtuell maskin. Du kanske också vill kolla deras blogg om hur du använder MariaDB Enterprise Cluster (som är baserat på Galera) på Azure.

Azures virtuella maskin

Virtual Machine är motsvarande erbjudande för beräkningsinstanser i GCP och AWS. En Azure Virtual Machine är en on-demand, högpresterande datorserver i molnet och kan distribueras i Azure med olika metoder. Dessa kan inkludera användargränssnittet inom Azure-portalen, användning av förkonfigurerade bilder på Azure Marketplace, skript via Azure PowerShell, distribution från en mall som definieras med hjälp av en JSON-fil, eller genom att distribuera direkt via Visual Studio.

Azure använder en distributionsmodell som kallas Azure Resource Manager (ARM), som definierar alla resurser som utgör en del av din övergripande applikationslösning, vilket gör att du kan distribuera, uppdatera eller ta bort din lösning i en enda operation .

Resurser kan inkludera lagringskontot, nätverkskonfigurationer och IP-adresser. Du kanske har hört termen "ARM-mallar", vilket i huvudsak betyder JSON-mallen som definierar de olika aspekterna av din lösning som du försöker distribuera.

Azure Virtual Machines finns i olika typer och storlekar, med namn som börjar med A-serien till N-serien. Varje VM-typ är byggd med specifika arbetsbelastningar eller prestandabehov i åtanke, inklusive allmänna ändamål, datoroptimerad, lagringsoptimerad eller minnesoptimerad. Du kan också distribuera mindre vanliga typer som GPU eller virtuella datorer med hög prestanda.

I likhet med andra offentliga molnerbjudanden kan du göra följande i dina virtuella maskininstanser...

  • Kryptera din disk på virtuell maskin . Även om detta inte kommer lätt i jämförelse med GCP och AWS. Att kryptera din virtuella maskin kräver ett mer manuellt tillvägagångssätt. Det kräver att du slutför Azure Disk Encryption-kraven. Eftersom Galera inte stöder Windows, pratar vi här bara om Linux-baserade bilder. I grund och botten kräver det att du har dm-crypt- och vfat-moduler närvarande i systemet. När du väl har fått den biten rätt kan du kryptera den virtuella datorn med Azure CLI. Du kan kolla in hur du aktiverar Azure Disk Encryption for Linux IaaS virtuella datorer för att se hur du gör det. Att kryptera din disk är mycket viktigt, särskilt om ditt företag eller din organisation kräver att dina Galera Cluster-data måste följa de standarder som föreskrivs av lagar och förordningar som PCI DSS eller GDPR.
  • Skapa en ögonblicksbild . Du kan skapa en ögonblicksbild antingen med Azure CLI eller via portalen. Se deras manual om hur du gör det.
  • Använd automatisk skalning eller skalningsuppsättningar för virtuella maskiner om du behöver horisontell skalning . Kolla in översikten över automatisk skalning i Azure eller översikten över skalningsuppsättningar för virtuella datorer.
  • Multi Zone Deployment . Distribuera dina virtuella maskininstanser i olika tillgänglighetszoner för att undvika en enda punkt av fel.

Du kan också skapa (eller få information från) dina virtuella maskiner på olika sätt. Du kan använda Azure Portal, Azure PowerShell, REST API, Client SDK eller med Azure CLI. Virtuella maskiner i det virtuella Azure-nätverket kan också enkelt anslutas till din organisations nätverk och behandlas som ett utökat datacenter.

Microsoft Azure-prissättning

Precis som andra offentliga molnleverantörer erbjuder Microsoft Azure också en gratis nivå med några gratistjänster. Det erbjuder också pay-as-you-go-alternativ och reserverade instanser att välja mellan. Pay-as-you-go börjar på 0,008 USD/timme – 0,126 USD/timme.

För reserverade instanser, ju längre du binder och kontrakterar med Azure, desto mer du sparar på kostnaden. Microsoft Azure hävdar att de hjälper prenumeranter att spara upp till 72 % av sina faktureringskostnader jämfört med sin pay-as-you-go-modell när prenumeranter registrerar sig för en period på ett till tre år för en Windows- eller Linux Virtual Machine. Microsoft erbjuder också extra flexibilitet i den meningen att om ditt företags behov ändras kan du avbryta din Azure RI-prenumeration när som helst och returnera den återstående oanvända RI till Microsoft som en tidig uppsägningsavgift.

Låt oss kolla in prissättningen i jämförelse mellan GCP, AWS EC2 och en virtuell Azure-maskin. Detta är baserat på us-east1 region och vi kommer att jämföra prisklasserna för de beräkningsinstanser som krävs för att köra ditt Galera Cluster.

Maskin/
Instans
Typ

Google
Compute Engine

AWS EC2

Microsoft
Azure

Delad

f1-micro

G1-small

Priserna börjar på 0,006 USD -  0,019 USD per timme

t2.nano – t3a.2xlarge

Priset börjar på 0,0058 USD - 0,3328 USD per timme

B-serien

Priset börjar på 0,0052 USD - 0,832 USD per timme

Standard

n1-standard-1 – n1-standard-96

Priserna börjar på 0,034 USD –3,193 USD per timme

m4.large – m4.16xlarge

m5.large – m5d.metal

Priserna börjar på 0,1 USD - 5,424 USD per timme

Av2 Standard, D2-64 v3 senaste generationen, D2s-64s v3 senaste generationen, D1-5 v2, DS1-S5 v2, DC-serien

Priset börjar på 0,043 USD - 3,072 USD per timme

Högt minne/minne optimerat

n1-highmem-2 – n1-highmem-96

n1-megamem-96

n1-ultramem-40 – n1-ultramem-160

Priserna börjar på 0,083 USD –17,651 USD per timme

r4.large – r4.16xlarge

x1,16xlarge – x1,32xlarge

x1e.xlarge – x1e.32xlarge

Priserna börjar på 0,133 USD –26,688 USD per timme

D2a – D64a v3, D2as – D64as v3, E2-64 v3 senaste generationen, E2a – E64a v3, E2as – E64as v3, E2s-64s v3 senaste generationen, D11-15 v2, DS11-S15 v2, M-serien, Mv2-serien, Instanser, Extreme Memory Optimized

Priset börjar på $0,043 - $44,62 per timme

Hög CPU/lagringsoptimerad

n1-highcpu-2 – n1-highcpu-32

Priserna börjar på 0,05 USD - 2,383 USD per timme

h1.2xlarge – h1.16xlarge

i3.large – i3.metal

I3en.large - i3en.metal

d2.xlarge – d2.8xlarge

Priserna börjar på 0,156 $ - 10,848 $ per timme

Fsv2-serien, F-serien, Fs-serien

Priset börjar på 0,0497 USD - 3,045 USD per timme

Datakryptering på Microsoft Azure

Microsoft Azure erbjuder inte krypteringsstöd direkt för Galera Cluster (eller vice versa). Det finns dock sätt du kan kryptera data antingen i vila eller under transport.

Kryptering under transport är en mekanism för att skydda data när den sänds över nätverk. Med Azure Storage kan du säkra data genom att använda:

  • Kryptering på transportnivå, som HTTPS, när du överför data till eller ut ur Azure Storage.
  • Trådkryptering, som SMB 3.0-kryptering, för Azure-filresurser.
  • Kryptering på klientsidan, för att kryptera data innan den överförs till Storage och för att dekryptera data efter att den har överförts från Storage.

Microsoft använder kryptering för att skydda kunddata när den transporteras mellan kunders rike och Microsofts molntjänster. Mer specifikt är Transport Layer Security (TLS) det protokoll som Microsofts datacenter kommer att använda för att förhandla med klientsystem som är anslutna till Microsofts molntjänster.

Perfect Forward Secrecy (PFS) används också så att varje anslutning mellan kunders klientsystem och Microsofts molntjänster använder unika nycklar. Anslutningar till Microsofts molntjänster drar också fördel av RSA-baserade 2 048-bitars krypteringsnyckellängder.

Kryptering i vila

För många organisationer är datakryptering i vila ett obligatoriskt steg mot att uppnå datasekretess, efterlevnad och datasuveränitet. Tre Azure-funktioner ger kryptering av data i vila:

  • Storage Service Encryption är alltid aktiverad och krypterar automatiskt lagringstjänstdata när den skrivs till Azure Storage. Om din applikationslogik kräver att din MySQL Galera Cluster-databas lagrar värdefull data, kan lagring i Azure Storage vara ett alternativ.
  • Kryptering på klientsidan tillhandahåller också funktionen för kryptering i vila.
  • Azure Disk Encryption gör att du kan kryptera OS-diskarna och datadiskarna som en virtuell IaaS-maskin använder. Azure Disk Encryption stöder även aktivering av kryptering på virtuella Linux-datorer som är konfigurerade med diskstripning (RAID) genom att använda mdadm, och genom att aktivera kryptering på virtuella Linux-datorer genom att använda LVM för datadiskar

Galera Cluster Multi-AZ/Multi-Region/Multi-Cloud-distributioner med GCP

I likhet med AWS och GCP erbjuder Microsoft Azure inte direkt stöd för att distribuera ett Galera-kluster på ett Multi-AZ/-Region/-Cloud. Du kan dock distribuera dina noder manuellt samt skapa skript med PowerShell eller Azure CLI för att göra detta åt dig. Alternativt, när du tillhandahåller din virtuella maskin-instans kan du placera dina noder i olika tillgänglighetszoner. Microsoft Azure erbjuder också en annan typ av redundans, förutom att ha sin tillgänglighetszon, som kallas Virtual Machine Scale Sets. Du kan kontrollera skillnaderna mellan virtuell maskin och skaluppsättningar.

Galera Cluster High Availability, Scalability och Redundans på Azure

En av de främsta anledningarna till att använda ett Galera-nodkluster är hög tillgänglighet, redundans och dess förmåga att skala. Om du betjänar trafik globalt är det bäst att du tillgodoser din trafik efter region. Du bör se till att din arkitektoniska design inkluderar geodistribution av dina databasnoder. För att uppnå detta rekommenderas distributioner med flera A-Ö, flera regioner eller flera moln/multidatacenter. Detta förhindrar att klustret går ner samt ett funktionsfel på grund av brist på beslutförhet.

Som nämnts tidigare har Microsoft Azure en automatisk skalningslösning som kan utnyttjas med skalningsuppsättningar. Detta gör att du kan skala en nod automatiskt när en viss tröskel har uppnåtts (baserat på vad du övervakar). Detta beror på vilka hälsostatusobjekt du övervakar innan det sedan skalas vertikalt. Du kan kolla in deras handledning om detta ämne här.

För multiregion- eller multimolninstallationer har Galera sin egen parameter som heter gmcast.segment som kan ställas in vid serverstart. Denna parameter är utformad för att optimera kommunikationen mellan Galera-noderna och minimera mängden trafik som skickas mellan nätverkssegment. Detta inkluderar förmedling av skrivuppsättningar och val av IST- och SST-givare. Den här typen av inställningar låter dig distribuera flera noder i olika regioner. Bortsett från det kan du också distribuera dina Galera-noder på en annan molnleverantör som dirigerar från GCP, AWS, Microsoft Azure eller inom en lokal installation.

Vi rekommenderar att du kollar in vår blogg Multiple Data Center Setups Using Galera Cluster for MySQL eller MariaDB and Zero Downtime Network Migration With MySQL Galera Cluster Using Relay Node för att samla mer information om hur man implementerar dessa typer av distributioner.

Galera Cluster Database Performance på Microsoft Azure

De underliggande värddatorerna som används av virtuella maskiner i Azure är i själva verket mycket kraftfulla. De senaste virtuella datorerna i Azure har redan utrustats med nätverksoptimeringsmoduler. Du kan kontrollera detta i din kärninformation genom att köra (t.ex. i Ubuntu).

uname -r|grep azure

Obs:Se till att ditt kommando har den "azurblå" strängen.

För Centos/RHEL, installation av alla Linux Integration Services (LIS) sedan version 4.2 innehåller nätverksoptimering. För att lära dig mer om detta, besök sidan om att optimera nätverksgenomströmning.

Om din applikation är mycket känslig för nätverkslatens kan du vara intresserad av att titta på närhetsplaceringsgruppen. Den är för närvarande i förhandsvisning (och rekommenderas ännu inte för produktionsanvändning) men detta hjälper till att optimera din nätverksgenomströmning.

För vilken typ av virtuell maskin du skulle konsumera skulle detta bero på kraven på din programtrafik och resursbehov. För frågor som har hög minnesförbrukning kan du börja med Dv3. Men för minnesoptimerad, börja sedan med Ev3-serien. Börja sedan med Fsv2-serien för höga CPU-krav, t.ex. databas med höga transaktioner eller spelapplikationer.

Att välja rätt lagring och nödvändig IOPS för din databasvolym är ett måste. Generellt sett är en SSD-baserad beständig disk ditt idealiska val. Börja med Standard SSD som är kostnadseffektiv och erbjuder konsekvent prestanda. Detta beslut kan dock bero på om du behöver mer IOPS på lång sikt. Om så är fallet bör du välja Premium SSD-lagring.

Vi rekommenderar också att du kollar och läser vår blogg How to Improve Performance of Galera Cluster for MySQL eller MariaDB för att lära dig mer om hur du optimerar ditt Galera Cluster.

Databasbackup för Galera-noder på Azure

Det finns inget befintligt naivt säkerhetskopieringsstöd för dina MySQL Galera-data i Azure, men du kan ta en ögonblicksbild. Microsoft Azure erbjuder Azure VM Backup som tar en ögonblicksbild som kan schemaläggas och krypteras.

Alternativt, om du vill säkerhetskopiera datafilerna från ditt Galera Cluster, kan du också använda externa tjänster som ClusterControl, använda Percona Xtrabackup för din binära säkerhetskopia eller använda mysqldump eller mydumper för dina logiska säkerhetskopior. Dessa verktyg tillhandahåller säkerhetskopior av dina verksamhetskritiska data och du kan läsa detta om du vill veta mer.

Galera Cluster Monitoring på Azure

Microsoft Azure har sin övervakningstjänst som heter Azure Monitor. Azure Monitor maximerar tillgängligheten och prestanda för dina applikationer genom att leverera en heltäckande lösning för att samla in, analysera och agera på telemetri från dina moln och lokala miljöer. Det hjälper dig att förstå hur dina applikationer fungerar och identifierar proaktivt problem som påverkar dem (och de resurser de är beroende av). Du kan ställa in eller skapa hälsovarningar, få aviseringar om råd och varningar som upptäcks i de tjänster du distribuerade.

Om du vill ha övervakning specifik för din databas måste du använda externa övervakningsverktyg som har avancerade, mycket detaljerade databasstatistik. Det finns flera alternativ du kan välja mellan såsom PMM av Percona, DataDog, Idera, VividCortex eller vår alldeles egna ClusterControl (övervakning är GRATIS med ClusterControl Community.)

Galera Cluster Database Security på Azure

Som diskuterats i våra tidigare bloggar för AWS och GCP, kan du använda samma tillvägagångssätt för att säkra din databas i det offentliga molnet. När du väl har skapat en virtuell maskin kan du ange vilka portar som bara kan öppnas, eller skapa och konfigurera din nätverkssäkerhetsgrupp i Azure. Du kan ställa in portarna som behöver vara öppna (särskilt portarna 3306, 4444, 4567, 4568), eller skapa ett virtuellt nätverk i Azure och ange de privata undernäten om de finns kvar som en privat nod. För att lägga till detta, om du konfigurerar dina virtuella datorer i Azure utan en offentlig IP, kan den fortfarande en utgående anslutning bara för att den använder SNAT och PAT. Om du är bekant med AWS och GCP, kommer du att gilla den här förklaringen för att göra det lättare att förstå.

En annan funktion som är tillgänglig är rollbaserad åtkomstkontroll i Microsoft Azure. Detta ger dig kontroll över vilka personer som får åtkomst till de specifika resurser de behöver.

Utöver detta kan du säkra din data under transport genom att använda en TLS/SSL-anslutning eller genom att kryptera din data när den är i vila. Om du använder ClusterControl är det enkelt och enkelt att distribuera en säker dataöverföring. Du kan kolla in vår blogg SSL Key Management and Encryption of MySQL Data in Transit om du vill testa. För data i vila kan du följa diskussionen som jag har nämnt tidigare i avsnittet Kryptering av den här bloggen.

Felsökning av Galera Cluster 

Microsoft Azure erbjuder ett brett utbud av loggtyper för att underlätta felsökning och granskning. Loggarna Aktivitetsloggar, Azure diagnostikloggar, Azure AD-rapportering, Virtuella maskiner och molntjänster, Network Security Group (NSG) flödesloggar och Application Insight är mycket användbara vid felsökning. Det kanske inte alltid är nödvändigt att gå in på alla dessa när du behöver felsökning, men det skulle ge fler insikter och ledtrådar när du kontrollerar loggarna.

Om du använder ClusterControl, gå till Loggar -> Systemloggar, så kommer du att kunna bläddra i de fångade felloggarna från själva MySQL Galera-noden. Förutom detta tillhandahåller ClusterControl realtidsövervakning som skulle förstärka ditt larm- och aviseringssystem i händelse av en nödsituation eller om din MySQL Galera-nod(er) är kaput.

Slutsats

När vi avslutar den här bloggserien i tre delar har vi visat dig erbjudandena och fördelarna med var och en av de tekniska jättarna som betjänar den offentliga molnindustrin. Det finns fördelar och nackdelar när du väljer den ena framför den andra, men det viktigaste är din anledning till att flytta till ett offentligt moln, dess fördelar för din organisation och hur det uppfyller kraven i din applikation.

Valet av leverantör för ditt Galera-kluster kan involvera ekonomiska överväganden som "vad är mest kostnadseffektivt" och bättre passar dina budgetbehov. Det kan också bero på integritetslagar och regelefterlevnad, eller till och med på grund av den teknologistacken du vill använda. Det som är viktigt är hur din applikation och databas kommer att fungera när den väl är i molnet och hanterar stora mängder trafik. Det måste vara mycket tillgängligt, måste vara motståndskraftigt, ha rätt skalbarhet och redundans och ta säkerhetskopior för att säkerställa dataåterställning.


  1. Hur konverterar man en sträng till datum i MySQL?

  2. Hur importerar jag en SQL Server .bak-fil till MySQL?

  3. HikariCP:Vilka tidsgränser på databasnivå bör övervägas för att ställa in maxLifetime för Oracle 11g

  4. ROWIDTOCHAR() Funktion i Oracle