Beskriva alternativ för hög tillgänglighet och haveriberedskap för PaaS-distributioner

Slutförd

PaaS är annorlunda när det gäller tillgänglighet; du kan bara konfigurera de alternativ som Azure tillhandahåller.

För SQL Server-baserade alternativ för Azure SQL Database och Azure SQL Database Managed Instance är alternativen aktiv geo-replikering (endast Azure SQL Database) och autofailover-grupper (Azure SQL Database eller Azure SQL Database Managed Instance).

Azure Database for MySQL har ett serviceavtal som garanterar tillgängligheten 99,99, vilket innebär att nästan ingen stilleståndstid bör uppstå. För Azure Database for MySQL startar en inbyggd redundansmekanism om ett problem på nodnivå inträffar, till exempel maskinvarufel. Alla transaktionsändringar i MySQL-databasen skrivs synkront till lagring vid incheckning. Om ett avbrott på nodnivå inträffar skapar databasservern automatiskt en ny nod och kopplar datalagringen.

Ur programsynpunkt måste du koda den nödvändiga logiken för återförsök eftersom alla anslutningar tas bort som en del av att den nya noden snurras upp och eventuella transaktioner i flygtransaktioner går förlorade. Den här processen anses vara bästa praxis för alla molnprogram, eftersom de bör utformas för att hantera tillfälliga fel.

Azure Database for PostgreSQL använder en liknande modell som MySQL i sin standarddistributionsmodell. Azure PostgreSQL erbjuder dock även en skalbar hyperskalningslösning med namnet Citus. Citus ger både utskalning och ytterligare hög tillgänglighet för en servergrupp. Om den är aktiverad konfigureras en väntelägesreplik för varje nod i en servergrupp, vilket också skulle öka kostnaden eftersom den skulle fördubbla antalet servrar i gruppen. I händelse av att den ursprungliga noden har ett problem, till exempel att den inte svarar eller misslyckas helt, tar vänteläget plats. Data hålls synkroniserade via PostgreSQL synkron direktuppspelningsreplikering.

Precis som med Azure Database for MySQL måste lösningar som använder Azure Database for PostgreSQL även inkludera omprövningslogik i programmet på grund av avbrutna anslutningar och förlust av transaktioner under flygning.

Både Azure Database for MySQL och PostgreSQL stöder alternativet för en läsreplik. Det innebär att en replik kan användas för aktiviteter som rapportering för att avlasta arbete från den primära databasen. En läsreplik förbättrar också tillgängligheten eftersom den finns i en annan region.