Często pewnie w artykułach czy rozmowach spotkaliście się z określeniem wysoka dostępność aplikacji – co to oznacza w praktyce?
To nic innego jak przyjęte pewne reguły oraz technologie, które mają pomóc w tym, że Twoja aplikacja będzie odporniejsza na brak możliwości jej użycia ze względu chociażby na:
- awarie sprzętowe (np. uszkodzenia dysków)
- awarie zewnętrzne (np. brak zasilania, brak łącza internetowego)
- awarie programowe (np. uszkodzona baza czy problemy z serwerem baz danych)
- inne
W praktyce sprowadza się to do wybrania dodatkowych technologii lub ich funkcji lub też dodatkowego sprzętu, który ma doprowadzić do sytuacji, że przestoje są jak najmniejsze.
Im mniejsze przestoje tym większa dostępność aplikacji. Ale z drugiej strony im większą dostępność aplikacji chcesz uzyskać tym większe koszty musisz ponieść dlaczego?
Ano zastanówmy się wspólnie nad powyższymi przykładami jakie wymieniłem:
- jeśli masz awarie sprzętowe typu uszkodzenie dysku będziesz inwestować w większe ilości dysków i stosować technologię RAID, która ma na celu uchronić Cię przed utratą wszystkich danych kiedy jeden dysk zostanie uszkodzony (drugi przejmie działanie i będzie aplikacja będzie działać na jednym dysku)
- jeśli masz awarię zasilania kupisz jakiś UPS, który podtrzyma pracę serwera i/lub stanowisk sprzedażowych, jeśli awaria będzie się przeciągać, będziesz potrzebować większej pojemności UPS aby dłużej pracował – oczywiście te są droższe. Jeśli masz awarię łącza być może masz firmę w takim a nie innym regionie, gdzie infrastruktura nie jest najlepsza więc możesz pokusić się o zapasowe łącze radiowe – wiadomo trzeba za nie zapłacić
- jeśli masz awarię programowe to być może będziesz chciał drugi serwer i zastosujesz technologię automatycznego utrzymywania dwóch kopii bazy celem szybkiego przełączania się np. database mirroring w SQL Server – ale ten jest dostępny w edycji standard i wyższych, więc koszty licencji rosną
Jak widzisz równanie jest proste wyższa dostępność = wyższe koszty utrzymania .
Rozwiązaniem oczywiście może być korzystanie z usług chmurowych np. WAPRO Online, gdzie te koszty ponosi dostawca chmury ale korzystając z tego, że świadczy takie usługi dla wielu klientów jest w stanie takie koszty udźwignąć.