sql >> Databáze >  >> RDS >> Mysql

Úvahy DevOps pro nasazení databáze připravené na produkci

MySQL se snadno instaluje a používá, vždy byl oblíbený u vývojářů a systémových administrátorů. Na druhou stranu nasazení produkčního prostředí MySQL pro kritickou podnikovou zátěž je jiný příběh. Může to být trochu problém a vyžaduje to důkladnou znalost databáze. V tomto příspěvku na blogu probereme některé kroky, které je třeba podniknout, než budeme moci zvážit, zda je nasazení MySQL připraveno k produkci.

Vysoká dostupnost

Pokud patříte k těm šťastlivcům, kteří dokážou přijmout hodiny prostojů, můžete zde přestat číst a přeskočit na další odstavec. Pro 99,999 % systémů kritických pro podnikání by to nebylo přijatelné. Proto musí nasazení připravené k produkci zahrnovat opatření vysoké dostupnosti. Hlavním požadavkem by bylo automatické převzetí služeb při selhání databázových instancí a také vrstva proxy, která detekuje změny v topologii a stavu MySQL a podle toho směruje provoz. Existuje mnoho nástrojů, které lze použít k vytvoření takových prostředí, například MHA, MRM nebo ClusterControl.

Vrstva proxy

Hlavní detekce selhání, automatizované převzetí služeb při selhání a obnova – to jsou klíčové prvky při budování infrastruktury připravené na provoz. Ale samy o sobě to nestačí. Stále existuje aplikace, která se bude muset přizpůsobit změně topologie vyvolané převzetím služeb při selhání. Samozřejmě je možné aplikaci nakódovat tak, aby si byla vědoma selhání instance. Toto je však těžkopádný a neflexibilní způsob zpracování změn topologie. Zde přichází databázový proxy - střední vrstva mezi aplikací a databází. Proxy může před aplikací skrýt složitost vaší databázové vrstvy – vše, co aplikace udělá, je připojit se k proxy a proxy se postará o zbytek. Proxy bude směrovat dotazy do instance databáze, bude zpracovávat změny topologie a podle potřeby přesměrovávat. Proxy lze také použít k implementaci rozdělení čtení a zápisu, což aplikaci ulehčí od jednoho složitějšího případu. To vytváří další výzvu - jaký proxy použít? Jak to nakonfigurovat? Jak to sledovat? Jak jej učinit vysoce dostupným, aby se nestal SPOF?

Zde vám může pomoci ClusterControl. Může být použit k nasazení různých proxy pro vytvoření proxy vrstvy:ProxySQL, HAProxy a MaxScale. Předkonfiguruje proxy, aby se ujistil, že budou provozovat správně. Usnadňuje také implementaci jakýchkoli změn konfigurace, pokud potřebujete přizpůsobit nastavení proxy pro vaši aplikaci. Rozdělení pro čtení a zápis lze nakonfigurovat pomocí libovolného z proxy, které ClusterControl podporuje. ClusterControl také monitoruje proxy servery a v případě selhání je obnoví. Vrstva proxy se může stát jediným bodem selhání, protože automatické obnovení nemusí stačit – k vyřešení toho může ClusterControl nasadit Keepalived a nakonfigurovat virtuální IP pro automatizaci převzetí služeb při selhání.

Zálohy

I když nepotřebujete implementovat vysokou dostupnost, pravděpodobně se stále musíte starat o svá data. Zálohování je nutností pro téměř každou produkční databázi. Nic jiného než záloha vás nemůže zachránit před náhodným DROP TABLE nebo DROP SCHEMA (dobře, možná slave se zpožděnou replikací, ale jen na určitou dobu). MySQL nabízí několik metod pořizování záloh – mysqldump, xtrabackup, různé typy snímků (některé dostupné pouze u konkrétního poskytovatele hardwaru nebo cloudu). Není snadné navrhnout správnou strategii zálohování, rozhodnout se, které nástroje použít, a poté celý proces naskriptovat tak, aby se prováděl správně. Není to ani žádná raketová věda a vyžaduje pečlivé plánování a testování. Po vytvoření zálohy není vše hotovo. Jste si jisti, že zálohu lze obnovit a data nejsou odpadky? Ověřování vašich záloh je časově náročné a možná to není ta nejzajímavější věc, kterou budete mít na svém seznamu úkolů. Ale i tak je to důležité a je potřeba to dělat pravidelně.

ClusterControl má rozsáhlé funkce zálohování a obnovy. Podporuje mysqldump pro logické zálohování a Percona Xtrabackup pro fyzické zálohování – tyto nástroje lze použít téměř v každém prostředí, ať už cloudovém nebo on-premise. Je možné vytvořit strategii zálohování se směsí logických a fyzických záloh, přírůstkových nebo úplných, online způsobem.

Kromě obnovy má také možnosti ověřit zálohu – například ji obnovit na samostatném hostiteli, abyste ověřili, zda proces zálohování funguje správně nebo ne.

Pokud byste chtěli pravidelně sledovat zálohy (a pravděpodobně byste to chtěli udělat), ClusterControl má schopnost generovat provozní zprávy. Zpráva o zálohování vám pomůže sledovat provedené zálohy a informuje, zda při jejich pořizování došlo k nějakým problémům.

Několik nines DevOps Průvodce správou databázíZjistěte, co potřebujete vědět k automatizaci a správě vašich databází s otevřeným zdrojovým kódemStáhněte si zdarma

Monitorování a trendy

Bez řádného monitorování služeb není žádné nasazení připraveno k produkci. Chcete se ujistit, že budete upozorněni, pokud se některé služby stanou nedostupnými, abyste mohli podniknout akci, prošetřit nebo zahájit postupy obnovy. Samozřejmě také chcete mít trendy řešení. Nelze dostatečně zdůraznit, jak důležité je mít monitorovací data pro hodnocení stavu infrastruktury nebo pro jakékoli vyšetřování, ať už postmortální nebo sledování stavu služeb v reálném čase. Metriky nejsou stejně důležité – pokud nejste příliš obeznámeni s konkrétním databázovým produktem, pravděpodobně nebudete vědět, které jsou nejdůležitější metriky ke shromažďování a sledování. Jistě, můžete být schopni shromáždit vše, ale pokud jde o kontrolu dat, je stěží možné projít stovkami metrik na hostitele – musíte vědět, na které z nich byste se měli zaměřit.

Svět s otevřeným zdrojovým kódem je plný nástrojů určených k monitorování a shromažďování metrik z různých databází – většina z nich by vyžadovala, abyste je integrovali s vaší celkovou monitorovací infrastrukturou, platformou chatops nebo nástroji podpory oncall (jako je PagerDuty). Může být také nutné nainstalovat a integrovat více komponent – ​​úložiště (nějaký druh databáze časových řad), prezentační vrstvu a nástroje pro sběr dat.

ClusterControl je trochu jiný přístup, protože jde o jeden jediný produkt s monitorováním v reálném čase, sledováním trendů a řídicími panely, které zobrazují nejdůležitější detaily. Databázoví poradci, což může být cokoliv od jednoduchých konfiguračních rad, upozornění na prahové hodnoty nebo složitějších pravidel pro predikce, by obecně vytvořili komplexní doporučení.

Možnost škálování

Databáze mají tendenci narůstat a není nepravděpodobné, že by rostly co do objemu transakcí nebo počtu uživatelů. Schopnost škálovat nebo zvětšovat může být pro výrobu rozhodující. I když odvedete skvělou práci při odhadování hardwarových požadavků na začátku životního cyklu produktu, pravděpodobně budete muset zvládnout fázi růstu – pokud bude váš produkt úspěšný (ale to je to, co všichni plánujeme, že jo ?). Musíte mít prostředky, jak snadno rozšířit svou infrastrukturu, aby se vyrovnala s příchozí zátěží. U bezstavových služeb, jako jsou webové servery, je to poměrně snadné – stačí zřídit více instancí pomocí nejnovějšího produkčního obrazu nebo kódu z vašeho nástroje pro správu verzí. U stavových služeb, jako jsou databáze, je to složitější. Musíte zajistit nové instance pomocí vašich aktuálních produkčních dat, nastavit replikaci nebo nějakou formu shlukování mezi aktuální a novou instancí. Může to být složitý proces, a abyste to udělali správně, musíte mít hlubší znalosti o vybraném modelu shlukování nebo replikace.

ClusterControl, jak název napovídá, poskytuje rozsáhlou podporu pro vytváření klastrovaných nebo replikovaných nastavení databází. Použité metody jsou testovány v bitvě v tisících nasazení. Dodává se s rozhraním příkazového řádku (CLI), takže jej lze snadno integrovat se systémy správy konfigurace. Mějte však na paměti, že možná nebudete chtít provádět změny ve svém fondu databází příliš často – zřizování nové instance zabere čas a ve stávajících databázích zvyšuje režii. Proto možná budete chtít trochu zůstat na straně „over-provisioned“, takže budete mít nějaký čas na vytvoření nové instance, než se váš cluster přetíží.

Celkově vzato existuje několik kroků, které musíte po počátečním nasazení provést, abyste se ujistili, že je vaše prostředí připraveno na produkci. Se správnými nástroji je mnohem snazší se tam dostat.


  1. Vložit text s jednoduchými uvozovkami v PostgreSQL

  2. Jak VYBRAT nejnovější čtyři položky na kategorii?

  3. Postgresql vloží spoušť na nastavenou hodnotu

  4. Rozdíl mezi GiST a GIN indexem