Od aplikacji do użytkownika

Przy planowaniu i eksploatacji serwerów usługowych często pomija się zagadnienia związane z dostarczeniem aplikacji przez sieć. Istnieją sposoby na usprawnienie pracy aplikacji, korzystające ze zdobyczy nowych technologii sieciowych.

Dzisiejsze aplikacje biznesowe coraz częściej korzystają z interfejsu webowego - jest prosty w uruchomieniu i nie wymaga instalacji żadnej aplikacji klienckiej na stacji roboczej. To sprawny sposób obsługi niektórych usług biznesowych, ale w miarę skalowania usługi zaczynają się problemy. Oprócz zajętości pasma sieciowego pojawiają się kłopoty związane z wydajnością serwerów, które muszą przetworzyć mnóstwo połączeń. Każdy z użytkowników zlokalizowanych w różnych sieciach otwiera własne połączenie do serwera usługowego, a zatem nieduże strumienie otwieranych i zamykanych połączeń komasują się w wielką powódź, z którą musi dać sobie radę serwer aplikacyjny. Należy także uwzględnić narzut spowodowany koniecznością uwierzytelnienia użytkownika oraz utrzymywania szyfrowanej sesji SSL. Do tego dochodzi konieczność ochrony serwera przed atakami takimi jak SQL Injection.

Odciążyć stos TCP/IP

Od dawna praktykowanym sposobem zmniejszenia obciążenia serwera jest zastosowanie specjalizowanych kart sieciowych, które odciążają stos TCP/IP. Mimo wszystko nadal do serwera dociera bardzo wiele równoczesnych połączeń, które są często otwierane i zamykane. Bardzo dobre efekty przynosi wprowadzenie urządzenia, które przyjmie wiele z nich i skomasuje w ciągłym otwartym strumieniu - zmniejszenie częstotliwości otwierania i zamykania sesji sprawia, że obciążenie serwera spada średnio o 20%. W ten sposób można komasować połączenia nie tylko aplikacji webowych, ale praktycznie dowolnych aplikacji TCP/UDP - to potrafi NetScaler firmy Citrix.

SSL terminujemy na bramie

Procesory w dzisiejszych serwerach są coraz szybsze, producenci wyposażają je także w specjalizowane instrukcje, które przyspieszają proces szyfrowania informacji za pomocą algorytmu AES. Mimo wszystko proces zestawiania szyfrowanego połączenia wpływa na obciążenie serwera, dlatego warto zastanowić się nad przeniesieniem tego zadania do zewnętrznej bramy sieciowej, która przyjmie strumienie SSL, zdekoduje je i dalsza komunikacja do serwera odbędzie się już w skomasowanym, nieszyfrowanym połączeniu.

Użycie akceleratora SSL i terminowanie połączeń na bramie umożliwia także inspekcję ruchu SSL za pomocą dowolnego urządzenia IPS, bez konieczności inwestowania w kosztowne i wymagające sporej mocy obliczeniowej IPS-y z inspekcją SSL. W takim przypadku deszyfrowanie odbywa się na bramie, a następnie strumień połączeń przechodzi przez IPS do serwera.

Nie tylko https

Na bramie można terminować nie tylko szyfrowane połączenia do pojedynczych aplikacji. Od kilku lat SSL VPN zdobywa kolejne firmy. Jest to standardowa technologia udostępnienia zasobów. Nie wymaga korzystania z innych urządzeń poza przeglądarką internetową, a sposób działania takiego tunelu umożliwia uruchomienie menu dostępnych zasobów i aplikacji. Użytkownik po zalogowaniu do firmowej bramy może skorzystać z aplikacji i zasobów plikowych. Jest to bardzo prosty sposób udostępnienia zasobów, gdyż wszystko, co jest potrzebne dla użytkownika, znajdzie się w jednym miejscu. Ich udostępnienie jest kontrolowane przez administratorów. Można także zastosować dwuskładnikowe uwierzytelnienie.

Wiele serwerów, wiele aplikacji

Aby obsłużyć aplikację z kilku serwerów, niezbędny jest load balancer - rozwiązanie, które rozłoży obciążenie na więcej niż jedną maszynę. Istnieją różne sposoby rozkładania obciążenia na kilka maszyn. Najprostszą jest przekazywanie połączeń kolejno na każdy z serwerów, ale sposób ten nie gwarantuje równomierności wysycenia maszyn przez obciążenie z zewnątrz. Lepsze algorytmy bazują na czasie odpowiedzi, a nawet na parametrach serwera pobieranych np. za pomocą SNMP. Dobre równoważenie obciążenia sprawia, że można realizować strategię skalowania poziomego za pomocą klastrów tańszych serwerów, zamiast skalowania pionowego polegającego na instalacji silniejszych maszyn. Zapewnienie równomierności rozłożenia obciążenia na klastrze serwerów skraca czas odpowiedzi aplikacji, gdyż dobry load balancer nie dopuści do nadmiernego obciążenia maszyny, co skutkuje opóźnieniami.

Obrona przez atakami

Każda aplikacja webowa udostępniona w internecie jest narażona na ataki; najpopularniejszy to wstrzyknięcie kodu SQL (SQL Injection). Najprostszym sposobem przeciwdziałania jest eliminacja danych, które mogłyby być wprowadzone do pól aplikacji. Niezależnie od przyczyn podatności (najczęściej jest to błąd programistyczny) można zmniejszyć ryzyko ataku przez odfiltrowanie wprowadzanych z zewnątrz danych. Jeśli takie informacje da się odfiltrować na bramie, wówczas prawdopodobieństwo udanego ataku maleje, gdyż napastnik ma o wiele trudniejsze zadanie, a jego działalność można łatwiej wykryć. To samo dotyczy prób kradzieży z firmy niektórych informacji szczególnego znaczenia, często w nieszyfrowanym połączeniu. Chociaż nie zastąpi to innych metod ochrony, z powodzeniem je uzupełni.

Dwa centra obliczeniowe

Użytkownicy dzisiejszych aplikacji oczekują ciągłej dostępności usług i każda przerwa w pracy przekłada się na niższe przychody w firmie. W planach i rozwiązaniach przeznaczonych do utrzymania ciągłości działania wielu przedsiębiorstw pojawiły się zatem rezerwowe ośrodki przetwarzania danych. Zazwyczaj są one "gorącą" rezerwą dla głównego ośrodka, chociaż niektóre przedsiębiorstwa decydują się na hostowanie aplikacji równocześnie z obu centrów. Technicznie jest to możliwe, wystarczy klaster load balancerów, by rozrzucić obciążenie między serwerami w obu ośrodkach jednocześnie. Dodatkową zaletą jest brak konieczności uruchamiania rezerwowego ośrodka w przypadku awarii - po prostu przejmie on na siebie całe obciążenie związane z pracą aplikacji. W przypadku awarii wystarczy uruchomić w rezerwowym ośrodku dodatkowe serwery i dołączyć do klastra - proces ten można wykonać automatycznie, jest o wiele mniej czasochłonny i kłopotliwy od uruchamiania całego rezerwowego ośrodka.

Aplikacje mobilne

Oprogramowanie biznesowe działa także na smartfonach i tabletach, przy czym jednym z problemów jest komunikacja. Aplikacja musi mieć połączenie do firmowych zasobów, by z nich skorzystać, z drugiej strony każde udostępnienie zasobów wiąże się ze wzrostem ryzyka naruszenia bezpieczeństwa. W starszych urządzeniach (np. w telefonach z systemem Windows CE/Windows Mobile) stosowano tunel VPN IPSec lub PPTP, który należało zestawić przed uruchomieniem połączenia. Alternatywą stały się tunele realizowane przez operatora komórkowego do firmowej sieci, ale ograniczały one bezpieczną komunikację do łączności w sieci GSM. Nie rozwiązywały one jednak problemu podziału na aplikacje firmowe i osobiste, a zatem programy, takie jak klient prywatnej poczty elektronicznej, miały dostęp do firmowych serwerów i zasobów.

Ponieważ w dobie BYOD nie można liczyć na zarządzanie przez firmę sprzętem, który jest własnością pracownika, należało rozwiązać problem w inny sposób - utworzyć szyfrowany kontener, w którym aplikacje będą przechowywane razem z danymi. Każde połączenie z kontenera może odbyć się jedynie do sieci firmowej, w szyfrowanym połączeniu. Aplikacja mobilna otwiera połączenie, które jest terminowane na bramie firmowej i przekazywane dalej, do serwera współpracującego z taką aplikacją. Zarządzanie całym kontenerem odbywa się także przez oprogramowanie wbudowane w bramę, dzięki czemu nie ma możliwości niekontrolowanego połączenia do zasobów firmowych. Technologia działa w obu najważniejszych systemach mobilnych (iOS oraz Android) i nie wymaga specjalnych zabiegów, poza uruchomieniem odpowiednich usług i rozwiązań po stronie firmowego IT. Potrzebna aplikacja jest dostępna w repozytoriach sklepów dla obu platform. Gdy aplikacje nie są już potrzebne, zostaną automatycznie usunięte.

Kluczowym elementem systemu dystrybucji aplikacji tą drogą jest oprogramowanie, które realizuje kontener w smartfonie, oraz brama sieciowa, która przyjmie przychodzące połączenia od tuneli. Każda z aplikacji otwiera przy tym swój własny niezależny tunel (nazywany przez Citriksa MicroVPN), kierowany przez bramę (NetScaler) do właściwego serwera.


TOP 200