Jestem właścicielem i operatorem visualwebsiteoptimizer.com /. Aplikacja zawiera fragment kodu, który moi klienci wstawiają na swoich stronach internetowych, aby śledzić określone dane. Ponieważ fragment kodu to zewnętrzny kod JavaScript (u góry kodu witryny), przed wyświetleniem witryny klienta przeglądarka użytkownika kontaktuje się z naszym serwerem aplikacji. W przypadku awarii naszego serwera aplikacji przeglądarka będzie próbowała nawiązać połączenie, zanim upłynie limit czasu (zwykle 60 sekund). Jak możesz sobie wyobrazić, nie możemy sobie pozwolić na wyłączenie naszego serwera aplikacji w żadnym scenariuszu, ponieważ wpłynie to negatywnie na doświadczenie nie tylko odwiedzających naszą stronę internetową, ale także odwiedzających naszą stronę internetową naszych klientów!
Obecnie używamy mechanizmu przełączania awaryjnego DNS z jednym serwerem kopii zapasowej zlokalizowanym w innym centrum danych (właściwie innym kontynencie). Oznacza to, że monitorujemy nasz serwer aplikacji z 3 oddzielnych lokalizacji i jak tylko wykryjemy, że jest wyłączony, zmieniamy rekord A, aby wskazywał adres IP serwera kopii zapasowej. Działa to dobrze dla większości przeglądarek (ponieważ nasze TTL wynosi 2 minuty), ale IE buforuje DNS przez 30 minut, co może być zabójcą transakcji. Zobacz najnowszy post z naszego visualwebsiteoptimizer.com/split-testing-blog/maximum-theoretical-downtime-for-a-website-30-minutes/
Jakiego rodzaju konfiguracji możemy użyć, aby zapewnić niemal natychmiastowe przełączenie awaryjne na wypadek poważnej awarii centrum danych aplikacji? Przeczytałem tutaj www.tenereillo.com/GSLBPageOfShame.htm, że posiadanie wielu rekordów A jest rozwiązaniem, ale nie stać nas jeszcze na synchronizację sesji. Inną strategią, którą badamy, są dwa rekordy A, jeden wskazujący na serwer aplikacji, a drugi na zwrotny serwer proxy (znajdujący się w innym centrum danych), który rozwiązuje problem na głównym serwerze aplikacji, jeśli jest uruchomiony, i na serwerze kopii zapasowej, jeśli działa. Czy uważasz, że ta strategia jest rozsądna?
Aby mieć pewność co do naszych priorytetów, możemy pozwolić sobie na utrzymanie własnej witryny lub aplikacji w dół, ale nie możemy pozwolić, aby strona internetowa klientów zwolniła z powodu naszego przestoju. W przypadku awarii serwerów aplikacji nie zamierzamy odpowiadać domyślną odpowiedzią aplikacji. Wystarczy pusta odpowiedź, wystarczy, że przeglądarka zakończy połączenie HTTP (i nic więcej).
Odniesienie: Przeczytałem ten wątek, który był przydatny serverfault.com/questions/69870/multiple-data-centers-and-http-traffic-dns-round-robin-is-the-only-way-to-assure