sql >> Databáze >  >> RDS >> PostgreSQL

Jak nasadit vysoce dostupný Canvas LMS s databázovým clusterem PostgreSQL

V těchto pandemických časech jsou platformy Learning Management System (LMS) stále důležitější, aby vám umožnily pokračovat ve vzdělávání na dálku, když tradiční vzdělávací systém už prostě není k dispozici.

Mít platformu LMS bez High Availability může být problém v případě selhání, protože veškeré vaše snahy o udržení systému v chodu nebudou dávat smysl, aniž byste měli databázi neustále k dispozici.

V tomto blogu uvidíme populární LMS aplikaci s názvem Canvas LMS a jak ji nasadit způsobem s vysokou dostupností pomocí PostgreSQL a ClusterControl.

Co je to Canvas?

Canvas je webový systém řízení výuky (LMS). Používají ho vzdělávací instituce, pedagogové a studenti k přístupu a správě výukových materiálů online kurzů a ke komunikaci o rozvoji dovedností a studijních výsledcích.

Canvas obsahuje řadu přizpůsobitelných nástrojů pro vytváření a správu kurzů, analýzy a statistiky kurzů a uživatelů a nástroje pro interní komunikaci.

Nasazení databáze Canvas LMS PostgreSQL

Nejprve nasadíme PostgreSQL Cluster, který bude používat aplikace Canvas LMS. Za tímto účelem použijeme ClusterControl k nasazení 3 uzlů PostgreSQL (1 primární a 2 pohotovostní uzly) a 2 HAProxy Load Balancery s konfigurací Keepalived mezi nimi.

HAProxy je nástroj pro vyrovnávání zatížení, který distribuuje provoz z jednoho zdroje do jednoho nebo více cílů a může pro tento úkol definovat specifická pravidla a/nebo protokoly. Pokud některý z cílů přestane reagovat, je označen jako offline a provoz je odeslán do zbývajících dostupných cílů.

Keepalived je služba, která vám umožňuje konfigurovat virtuální IP adresu v rámci aktivní/pasivní skupiny serverů. Tato virtuální IP adresa je přiřazena aktivnímu serveru. Pokud tento server selže, IP adresa se automaticky migruje na „sekundární“ pasivní server, což mu umožní pokračovat v práci se stejnou IP adresou transparentním způsobem pro systémy.

Podívejme se tedy, jak implementovat zmíněnou topologii pomocí ClusterControl.

Nasazení databáze

Chcete-li provést nasazení z ClusterControl, jednoduše vyberte možnost „Deploy“ a postupujte podle zobrazených pokynů.

Při výběru PostgreSQL musíte zadat uživatele, klíč nebo heslo a port pro připojení pomocí SSH k vašim serverům. Můžete také přidat název svého nového clusteru a pokud chcete, aby ClusterControl nainstaloval odpovídající software a konfigurace za vás.

Po nastavení přístupových informací SSH je třeba definovat přihlašovací údaje k databázi , verze a datadir (volitelné). Můžete také určit, které úložiště použít.

V dalším kroku musíte přidat své servery do clusteru, který se chystáte vytvořit, pomocí IP adresy nebo názvu hostitele.

V posledním kroku si můžete vybrat, zda bude vaše replikace synchronní nebo Asynchronní a poté stačí stisknout „Deploy“

Po dokončení úlohy můžete svůj nový cluster PostgreSQL vidět v hlavní obrazovka ClusterControl.

Nyní máte vytvořený cluster, můžete na něm provádět několik úkolů, jako přidání nástroje pro vyrovnávání zatížení (HAProxy) nebo nové repliky.

Nasazení nástroje Load Balancer

Chcete-li provést nasazení nástroje pro vyrovnávání zatížení, vyberte v akcích clusteru možnost „Přidat nástroj pro vyrovnávání zatížení“ a vyplňte požadované informace.

Stačí přidat IP nebo název hostitele, port, zásady a uzly, které budete používat.

Keepalived Deployment

Chcete-li provést nasazení Keepalived, vyberte v akcích clusteru možnost „Add Load Balancer“ a poté přejděte na kartu Keepalived.

Zde vyberte uzly HAProxy a zadejte virtuální IP adresu, která bude použít pro přístup k databázi.

V tuto chvíli byste měli mít následující topologii:

Nyní propojme toto prostředí s Canvas LMS pro vysokou dostupnost.

Jak nakonfigurovat Canvas LMS

Nejprve jej budete muset nainstalovat. Existují různé způsoby, jak to udělat, pomocí automatického nastavení na Dockeru, ručně nebo dokonce pomocí různých přístupů, jako je QuickStart nebo instalace orientovaná na produkci. Můžete se podívat na oficiální dokumentaci a vybrat si pro vás nejlepší metodu.

Jakmile máte nainstalovaný Canvas LMS, můžete pokračovat v konfiguraci souboru database.yml pro použití prostředí PostgreSQL High Availability, které jste právě nasadili.

$ cat config/database.yml

production:

  adapter: postgresql

  encoding: utf8

  database: canvas_production

  host: VIRTUAL_IPADDRESS

  username: CANVAS_USER

  password: CANVAS_PASSWD

  timeout: 5000

Zde nahraďte:

  • VIRTUAL_IPADDRESS pro virtuální IP adresu nakonfigurovanou v Keepalived

  • CANVAS_USER pro uživatele databáze Canvas

  • CANVAS_PASSWD pro heslo databáze Canvas

Ujistěte se, že máte přístup k databázi pomocí vaší virtuální IP adresy jako hostitele a že je to povoleno v konfiguračním souboru pg_hba.conf PostgreSQL. Můžete to otestovat spuštěním následujícího příkazu z vašeho aplikačního serveru:

$ psql -h VIRTUAL_IPADDRESS -U CANVAS_USER canvas_production

Funkce automatického obnovení ClusterControl

Otázkou tedy je, kromě procesu nasazení, jakou roli zde hraje ClusterControl?

V případě selhání ClusterControl povýší nejpokročilejší pohotovostní uzel na primární a také vás upozorní na problém. Také selže při replikaci zbytku pohotovostního uzlu z nového primárního serveru.

Ve výchozím nastavení je HAProxy nakonfigurován se dvěma různými porty:čtení-zápis a pouze čtení. Na portu pro čtení a zápis máte primární uzel jako online a ostatní uzly jako offline a na portu pouze pro čtení máte primární i pohotovostní uzel online.

Když HAProxy zjistí, že některý z vašich uzlů není přístupný, automaticky jej označí jako offline a nebere jej v úvahu při odesílání provozu na něj. Detekce se provádí pomocí skriptů kontroly stavu, které jsou konfigurovány ClusterControl v době nasazení. Tyto kontrolují, zda jsou instance aktivní, zda procházejí obnovením nebo jsou pouze pro čtení.

Když ClusterControl povýší pohotovostní uzel, HAProxy označí starý primární uzel jako offline pro oba porty a uvede povýšený uzel online do portu pro čtení a zápis.

Pokud vaše aktivní HAProxy, které je přiřazena virtuální IP adresa, ke které se vaše systémy připojují, selže, Keepalived automaticky migruje tuto IP adresu na pasivní HAProxy. To znamená, že vaše systémy jsou poté schopny normálně fungovat.

Závěr

V tomto blogu jsme hovořili o tom, jak je důležité mít prostředí PostgreSQL s vysokou dostupností pro použití s ​​vaší platformou Canvas LMS, a jak vám ClusterControl může pomoci s úlohami nasazení a automatického obnovení. Také jsme zmínili, jak zlepšit toto prostředí přidáním HAProxy a Keepalived pro účely vysoké dostupnosti.


  1. Chyba migrace Django:Sloupec neexistuje

  2. sqlplus, jak najít podrobnosti o aktuálně připojené databázové relaci

  3. Co je sekvence v oracle

  4. Rychlost zkrácení Postgresql