Održite Semaphore dostupnim kada čvor aplikacije stane
Postavite aktivne Semaphore čvorove iza jedne adrese servisa. Održite interfejs i API dostupnim tokom održavanja čvora aplikacije, uz zajedničku bazu i Redis koordinaciju.
Vaša infrastruktura zavisi od dostupnosti automatizacije
Tokom incidenta timu je potreban Semaphore za pokretanje poslova oporavka i infrastrukturnih promena. Jedan nedostupan čvor aplikacije ne bi trebalo da ukine taj pristup.
Održite Semaphore dostupnim uz Enterprise HA
Enterprise HA održava interfejs i API dostupnim preko ispravnih čvorova aplikacije kada drugi čvor stane.
Šta je Semaphore-u potrebno za HA
Dva ili više Semaphore čvorova
Pokrenite najmanje dve ekvivalentne Semaphore instance. Uskladite zajedničku konfiguraciju i dodelite svakom čvoru jedinstveni ha.node_id.
Balansiranje HTTP i WebSocket saobraćaja
Usmerite i HTTP i WebSocket veze kroz balanser opterećenja koji može ukloniti neispravan čvor iz grupe.
Zajednička SQL baza i Redis
Povežite svaki čvor sa istom PostgreSQL ili MySQL bazom i Redis backend-om. Zaštitite i ove zajedničke servise od otkaza. SQLite nije podržan za HA.
Planirajte ostatak produkcionog okruženja
Planirajte dostupnost celog okruženja
Prikažite zajedničko stanje u arhitekturi
Dokumentovana topologija je active-active: ravnopravni Semaphore čvorovi koriste jednu zajedničku PostgreSQL ili MySQL bazu i Redis koordinaciju. Baza čuva stanje aplikacije; Redis podržava distribuirana zaključavanja, stanje reda i ažuriranja između čvorova. SQLite i BoltDB nisu podržani izbori baze za ovaj HA dizajn.
Podržite i zahteve i ažuriranja uživo
Balanser mora obraditi HTTP i WebSocket saobraćaj da bi klijenti pristupili ispravnim čvorovima i dobijali ažuriranja uživo. Njegovo rezervisanje, TLS konfiguracija, provere zdravlja i operativno ponašanje deo su okruženja. Dodavanje čvorova aplikacije ne podešava automatski ta svojstva.
Odvojeno skalirajte aplikaciju i puteve izvršavanja
Aplikacioni čvorovi obezbeđuju veb/API i sloj koordinacije. Runner-i mogu nezavisno da smeštaju i šire izvršavanje zadataka. To pomaže timu da razluči da li se promena kapaciteta odnosi na korisničko/API opterećenje, paralelnost zadataka ili pristup drugoj mreži, umesto da pretpostavi da svaki dodatni aplikacioni čvor rešava sva tri problema.
Dajte svakoj oblasti otkaza sopstveni plan oporavka
Dostupnost aplikacionih čvorova, oporavak baze podataka, dostupnost Redis-a i oporavak od katastrofe na nivou lokacije su različite odgovornosti. Rezervne kopije, testiranje vraćanja podataka, ciljevi oporavka i procedure nadogradnje kompatibilne sa verzijama ostaju neophodni. Topologija može izdržati jednu vrstu otkaza, a ostati ranjiva na drugu.
Održite koordinaciju dostupnom uz Redis Sentinel
Koristite Redis Sentinel backend kada koordinaciji takođe treba prelazak pri otkazu. Svaki Semaphore čvor pronalazi aktivni Redis master kroz Sentinel i prati unapređenu repliku bez ponovnog pokretanja. Podesite isto Sentinel okruženje na čvorovima aplikacije uz plan dostupnosti zajedničke baze i balansera.
Uključite zajedničke zavisnosti u plan dostupnosti
SQL baza, Redis i balanser opterećenja opslužuju sve čvorove aplikacije. Podesite rezervisanje i oporavak ovih servisa uz Semaphore čvorove.
Sačuvajte put oporavka podataka
Redundantnost aplikacije i oporavak podataka rešavaju različite probleme. Održavajte rezervne kopije i testirajte vraćanje podataka za bazu podataka i konfiguraciju od kojih zavisi vaša automatizacija.
Dokumentacija i povezane mogućnosti
FAQ
Koje komponente su potrebne za visoku dostupnost Semaphore-a?
Dokumentovana active-active arhitektura koristi više Semaphore čvorova aplikacije, zajedničku PostgreSQL ili MySQL bazu, Redis koordinaciju i balanser koji podržava HTTP i WebSocket saobraćaj. Svakom čvoru trebaju odgovarajuća zajednička podešavanja i jedinstven HA identifikator. Planirajte dostupnost zavisnosti uz čvorove aplikacije. Sam drugi proces ne pruža zajedničko stanje i koordinaciju potrebne punoj topologiji.
Da li je Semaphore HA active-active ili active-passive?
Ovde opisana arhitektura je active-active, sa ravnopravnim čvorovima aplikacije koji učestvuju u servisu. Ne zavisi od namenskog primarnog čvora i pasivne rezerve. Koristite aktuelni HA vodič za podržani dizajn i ne izvodite zasebnu active-passive referentnu arhitekturu iz opštih formulacija o dostupnosti. Ako infrastruktura zahteva drugu topologiju, razjasnite stanje i ponašanje pri otkazu pre postavljanja.
Mogu li da koristim SQLite ili BoltDB u HA okruženju?
Ne. Dokumentovani HA dizajn zahteva zajedničku PostgreSQL ili MySQL bazu uz Redis. Baza je zajednički izvor stanja aplikacije za učesničke čvorove. Ako prelazite sa jednog čvora i druge opcije skladištenja, planirajte migraciju, rezervne kopije i proveru kao zaseban posao. Dodavanje čvorova aplikacije ne bi trebalo da bude prvi test da predviđena zajednička baza sadrži i pruža potrebne podatke.
Da li HA aplikacije štiti i bazu, Redis i balansiranje opterećenja?
Tim komponentama treba sopstvena strategija otpornosti. Višečvorni dizajn Semaphore aplikacije ne stvara automatski prelazak baze pri otkazu, rezervno balansiranje ili dostupan Redis servis. Utvrdite oblast otkaza, proces oporavka i zahteve kapaciteta svake zavisnosti. Testirajte ceo put od zahteva klijenta do rezultata zadatka da plan dostupnosti obuhvati servis koji ljudi koriste, a ne samo broj pokrenutih čvorova aplikacije.
Da li će tekući zadaci preživeti otkaz ili nadogradnju čvora aplikacije?
Ne pretpostavljajte neprekinuto izvršavanje tekućih zadataka samo zato što postoji više čvorova aplikacije. Ponašanje zavisi od puta izvršavanja, komponente koja je otkazala i verzije sistema. Testirajte životni ciklus zadatka na koji se oslanjate, uključujući prijavu statusa i učešće ranera. Isto tako, pažljivo planirajte kompatibilnost nadogradnje i migracije umesto da svaku promenu verzije smatrate garantovanom postepenom nadogradnjom bez prekida. Dostupnost interfejsa i kontinuitet zadataka su različiti zahtevi.
Koji plan uključuje HA i kako da je procenimo?
Visoka dostupnost je mogućnost Enterprise izdanja. Počnite potrebnim radnim vremenom, procesom održavanja, ciljevima oporavka i postojećim servisima baze i balansiranja opterećenja. Koristite dokumentovanu topologiju da pronađete nedostatke, pa testirajte uklanjanje čvora, oporavak zavisnosti i rezervne kopije u reprezentativnom okruženju. Razgovor o arhitekturi je koristan kada su ti zahtevi poslovno kritični jer rezultat određuje celo okruženje, a ne jedan prekidač funkcije.
Mogu li korisnici da zadrže isti URL kada se čvor aplikacije isključi?
To je svrha postavljanja aktivnih čvorova aplikacije iza jedne balansirane adrese servisa. Balanser mora prestati da šalje zahteve nedostupnom čvoru i podržavati HTTP i WebSocket saobraćaj. Preostalom čvoru i dalje treba pristup zajedničkoj bazi, Redis-u i usklađenoj konfiguraciji aplikacije da bi opsluživao projekat.
Da li mi treba HA za izvršavanje zadataka u više privatnih mreža?
Ne. Više lokacija izvršavanja obezbeđuju raneri. Visoka dostupnost odnosi se na Semaphore aplikacioni sloj, dok raneri određuju gde se zadaci izvršavaju i kojim sistemima mogu pristupiti. Produkciono okruženje može koristiti oba: HA čvorove aplikacije za zajednički interfejs i API i ranere projekta blizu privatne infrastrukture.
