Wdrożenie systemu kursów językowych online
data: 2010-03-09Miło nam poinformować, że ufa nam coraz więcej znaczących na rynku firm. Nasza ostatnia realizacja dotyczyła usługi kursów językowych online.
Zaplanowaliśmy oraz wdrożyliśmy architekturę mającą na celu maksymalną stabilność i niezawodność działania systemu. W kursach online, do których gwarantuje się użytkownikowi dostęp o każdej porze dnia i nocy jest to szczególnie istotne. Każda przerwa w działaniu systemu powoduje straty dla firmy oraz oczywiście uzasadnione pretensje użytkowników.
Cele, które klient chciał osiągnąć:
- dostęp do zasobów kursów dla wszystkich użytkowników przez 24h/7
- łatwość dodawania nowego sprzętu do parku maszynowego (skalowalność sprzętowa i softwareowa)
- 4 identyczne maszyny obsługujące żądania klientów
- kolokacja w najlepszej serwerowni w Polsce
Miejsce, w którym znajdują się maszyny dało nam pewną gwarancję niezawodności działania wykluczając problemy czysto techniczne takie jak: brak prądu (dwie niezależne elektrownie + awaryjny agregat) lub brak internetu (7 niezależnych operatorów o przepustowości +1Gbps każdy). Dodatkowo 4 identyczne maszyny znacząco ułatwiły sprawę rozkładania ruchu. Po konsultacjach z klientem ustaliliśmy, że jedynymi możliwymi awariami są: fizyczne uszkodzenie którejś z maszyn lub awaria działania samej aplikacji.
Zaprojektowane i wdrożone rozwiązanie:
- awarie sprzętu monitoruje heatbeat, który automatycznie testuje wszystkie węzły i w przypadku problemów wyklucza je z działającego klastra
- utratę danych w przypadku awarii dysków zabezpiecza sprzętowy RAID 1 na każdej maszynie oraz dodatkowo replikacja drbd partycji z danymi pomiędzy węzłami. Całość dopina standardowy backup wszystkich danych
- usługi działają na virtualnych adresach IP, które w przypadku awarii którejkolwiek z usług przekazywane są do innego węzła by ten w zastępstwie przejął ruch. Cały proces przeniesienia obsługi ruchu jest dla użytkownika niewidoczna
- własne skrypty sprawdzające poprawność działania usług (tej opcji nie oferuje heatbeat tym samym został zrealizowany autorski mechanizm monitorujący) serwer www, baza danych, aplikacja klienta
Realizacja z poszczególnymi etapami planowania, wdrożenia, testowania oraz korekcji błędów (głównie w dostosowaniu aplikacji klienta) zajęła niespełna trzy tygodnie.
