Mít testovací prostředí je nutností ve všech společnostech. Může to být nezbytné pro testování změn nebo nových verzí aplikace, nebo dokonce pro testování vaší stávající aplikace s novou verzí PostgreSQL. Nejtěžší na tom je zaprvé, jak nasadit testovací prostředí co nejpodobnější tomu produkčnímu a jak toto prostředí udržovat, aniž bychom vše znovu vytvořili od začátku.
V tomto blogu uvidíme, jak nasadit testovací prostředí různými způsoby pomocí ClusterControl, což vám pomůže automatizovat proces a vyhnout se manuálním časově náročným úkolům.
Replikace mezi clustery
Od ClusterControl 1.7.4 existuje funkce nazvaná Cluster-to-Cluster Replication. Umožňuje vám mít spuštěnou replikaci mezi dvěma autonomními clustery.
Podíváme se, jak tuto funkci použít pro existující cluster PostgreSQL. Pro tento úkol budeme předpokládat, že máte nainstalovaný ClusterControl a že pomocí něj byl nasazen primární cluster.
Vytvoření replikace mezi clustery
Chcete-li vytvořit novou replikaci Cluster-to-Cluster z uživatelského rozhraní ClusterControl, přejděte na ClusterControl -> Vyberte klastr PostgreSQL -> Akce klastru -> Vytvořit klastr Slave.
Podřízený klastr bude vytvořen streamováním dat z aktuálního primárního klastru.
Musíte zadat přihlašovací údaje a port SSH, název svého Slave Clusteru a pokud chcete, aby ClusterControl nainstaloval odpovídající software a konfigurace za vás.
Po nastavení přístupových informací SSH musíte definovat verzi databáze, datový adresář, port a přihlašovací údaje správce. Protože bude používat streamingovou replikaci, ujistěte se, že používáte stejnou verzi databáze a přihlašovací údaje musí být stejné, jaké používá primární klastr.
V tomto kroku musíte přidat server do nového Slave Clusteru. Pro tento úkol můžete zadat IP adresu nebo název hostitele uzlu databáze.
Stav úlohy můžete sledovat na monitoru aktivity ClusterControl. Po dokončení úlohy můžete vidět cluster na hlavní obrazovce ClusterControl.
ClusterControl CLI
ClusterControl CLI, také známý jako s9s, je nástroj příkazového řádku představený ve verzi ClusterControl 1.4.1 pro interakci, ovládání a správu databázových clusterů pomocí systému ClusterControl. ClusterControl CLI otevírá nové dveře pro automatizaci clusteru, kde jej můžete snadno integrovat se stávajícími nástroji pro automatizaci nasazení, jako je Ansible, Puppet, Chef atd. Tento nástroj ClusterControl můžete také použít k vytvoření Slave Clusteru. Podívejme se na příklad:
$ s9s cluster --create --cluster-name=PostgreSQL1rep --cluster-type=postgresql --provider-version=13 --nodes="192.168.100.133" --os-user=root --os-key-file=/root/.ssh/id_rsa --db-admin=admin --db-admin-passwd=********* --vendor=postgres --remote-cluster-id=14 --log
Nyní se podíváme na použitý parametr podrobněji:
-
Cluster:Chcete-li vytvořit seznam a manipulovat se shluky.
-
Vytvořit:Vytvořte a nainstalujte nový cluster.
-
Cluster-name:Název nového Slave Clusteru.
-
Typ clusteru:Typ clusteru, který se má nainstalovat.
-
Verze poskytovatele:Verze softwaru.
-
Uzly:Seznam nových uzlů v clusteru Slave.
-
Os-user:Uživatelské jméno pro příkazy SSH.
-
Os-key-file:Soubor klíče, který se má použít pro připojení SSH.
-
Db-admin:Uživatelské jméno správce databáze.
-
Db-admin-passwd:Heslo pro správce databáze.
-
ID vzdáleného-klastru:ID hlavního clusteru pro replikaci mezi clustery.
-
Protokol:Čekejte a sledujte zprávy úloh.
Správa replikace mezi clustery
Nyní máte svou replikaci Cluster-to-Cluster Replication spuštěnou a v této topologii lze provádět různé akce pomocí ClusterControl z uživatelského rozhraní i rozhraní CLI.
Přebudování klastru Slave
Chcete-li znovu sestavit Slave Cluster, přejděte na ClusterControl -> Vybrat Slave Cluster -> Uzly -> Vyberte uzel -> Akce uzlů -> Znovu sestavit replikační slave.
ClusterControl provede následující kroky:
-
Zastavit PostgreSQL Server
-
Odebrat obsah z jeho datového adresáře
-
Streamujte zálohu z Master do Slave pomocí pg_basebackup
-
Spustit otroka
Můžete také znovu sestavit Slave Cluster pomocí následujícího příkazu ze serveru ClusterControl:
$ s9s replication --stage --master="192.168.100.125" --slave="192.168.100.133" --cluster-id=15 --remote-cluster-id=14 --log
Parametry jsou:
-
Replikace:Sledování a řízení replikace dat.
-
Fáze:Stage/Rebuild Replication Slave.
-
Hlavní:Hlavní replikační server v hlavním clusteru.
-
Slave:Replikační slave v podřízeném clusteru.
-
Cluster-id:The Slave Cluster ID.
-
Remote-cluster-id:ID hlavního clusteru.
-
Protokol:Čekejte a sledujte zprávy úloh.
Vytvořit cluster ze zálohy
Dalším způsobem vytvoření testovacího prostředí je vytvoření nového clusteru ze zálohy primárního clusteru. Chcete-li to provést, přejděte na ClusterControl -> Vyberte svůj cluster PostgreSQL -> Záloha. Zde vyberte ze seznamu zálohu, kterou chcete obnovit.
Nyní můžete tuto zálohu obnovit ve své aktuální databázi, v samostatném uzlu, nebo z této zálohy vytvořit nový cluster.
Volba „Vytvořit klastr ze zálohy“ vytvoří z vybrané zálohy nový klastr PostgreSQL.
Musíte přidat pověření operačního systému a databáze a informace k nasazení nového clusteru. Po dokončení této úlohy uvidíte nový cluster v uživatelském rozhraní ClusterControl.
Obnovit zálohu na samostatném hostiteli
Ve stejné sekci Záloha můžete vybrat možnost „Obnovit a ověřit na samostatném hostiteli“ a obnovit zálohu v samostatném uzlu.
Zde můžete určit, zda chcete, aby ClusterControl nainstaloval software do nového uzlu, a deaktivovat firewall nebo AppArmor/SELinux (v závislosti na OS). Můžete ponechat uzel v provozu nebo může ClusterControl vypnout databázovou službu až do další úlohy obnovení. Po dokončení uvidíte obnovenou/ověřenou zálohu v seznamu záloh označenou zaškrtnutím.
Pokud tento úkol nechcete provádět ručně, můžete tento proces naplánovat pomocí funkce Ověřit zálohování, aby se tato úloha pravidelně opakovala v úloze zálohování.
Automatické ověření zálohy ClusterControl
V ClusterControl -> Vyberte svůj PostgreSQL Cluster -> Záloha -> Vytvořit zálohu.
Pro plánované zálohy je k dispozici funkce automatického ověření zálohy. Při plánování zálohování musíte kromě výběru běžných možností, jako je metoda nebo úložiště, určit také plán/frekvenci.
Pomocí ClusterControl si můžete vybrat různé metody zálohování v závislosti na technologii databáze a ve stejné sekci si můžete vybrat server, ze kterého chcete zálohu převzít, kam chcete zálohu uložit a pokud chcete zálohu nahrát do cloudu (AWS, Azure nebo Google Cloud). Zálohu můžete také komprimovat a šifrovat a určit dobu uchování.
Chcete-li použít funkci Verify Backup Feature, potřebujete vyhrazeného hostitele (nebo virtuálního počítače), který není součástí clusteru. ClusterControl nainstaluje software a obnoví zálohu v tomto hostiteli pokaždé, když se úloha spustí.
Po obnovení můžete v sekci ClusterControl Backup vidět ikonu ověření, stejnou, jakou získáte ručním ověřením ClusterControl, s tím rozdílem, že se nemusíte bát o restaurátorském úkolu. ClusterControl zálohu pokaždé automaticky obnoví.
Závěr
Nasazení testovacího prostředí pokaždé, když potřebujete, může být časově náročný úkol a je těžké toto udržovat aktuální. Výsledkem toho je, že společnosti někdy netestují nové verze nebo test není správný, například při použití jiného prostředí, než je produkční.
Jak jste mohli vidět, ClusterControl vám umožňuje nasadit stejné prostředí, jaké používáte v produkci, pomocí pouhých několika kliknutí, nebo dokonce automatizovat proces, abyste se vyhnuli jakékoli ruční práci.