Sposoby klastrowania aplikacji webowych w oparciu o rozwiązania OpenSource. Piotr Klimek. piko@piko.homelinux.net



Podobne dokumenty
Budowanie tanich, wysoko wydajnych i wysoko dostępnych systemów pod Linuksem Mariusz Droździel Październik 2009

Referat pracy dyplomowej

Zapewnienie wysokiej dostępności baz danych. Marcin Szeliga MVP SQL Server MCT

REFERAT O PRACY DYPLOMOWEJ

PRZEDMIOT ZAMÓWIENIA I TERMINY REALIZACJI

Rozwiązania HPE Storage jak zapewnić pełne bezpieczeństwo Twoich danych?

Jarosław Kuchta. Administrowanie Systemami Komputerowymi. Klastry serwerów

Opis Przedmiotu Zamówienia

Wirtualizacja bez macierzy? Żaden problem.

Autorytatywne serwery DNS w technologii Anycast + IPv6 DNS NOVA. Dlaczego DNS jest tak ważny?

Opis wdrożenia Platformy Technologicznej epodreczniki.pl na zasobach Poznańskiego Centrum Superkomputerowo-Sieciowego

ZAPYTANIE OFERTOWE. Zamawiający. Przedmiot zapytania ofertowego. Wrocław, dnia r.

ZAŁOŻENIA PROJEKTOWE I SPECYFIKACJA USŁUG

Modele SaaS, PaaS, IaaS w geoinformatyce

Przepełnienie bufora. SQL Injection Załączenie zewnętrznego kodu XSS. Nabycie uprawnień innego użytkownika/klienta/administratora

Od czego zacząć przy budowaniu środowisk wysokiej dostępności?

Wprowadzenie. Co to jest klaster? Podział ze względu na przeznaczenie. Architektury klastrów. Cechy dobrego klastra.

Projektowanie i implementacja wysokowydajnych aplikacji w języku

Rodzaje pamięci masowych by Silas Mariusz

Metody replikacji baz danych Oracle pomiędzy ośrodkami przetwarzania danych

TECHNOLOGIE BIG DATA A BEZPIECZEŃSTWO INFORMATYCZNE WE KNOW YOU KNOW. silmine.com

Seeon Enterprise Search Engine. Rozwiązanie obsługiwane przez eo Networks S.A.

Sposób funkcjonowania

Przewidywanie Nieprzewidywalnego Sybase w środowiskach wysokiej dostępności. Jak wykorzystać technologie do budowy centrum zapasowego.

Koncepcja wirtualnej pracowni GIS w oparciu o oprogramowanie open source

Zapytanie ofertowe nr 03/05/2014. Zakup licencji na oprogramowanie do wirtualizacji Działanie POIG 8.2

Hadoop i Spark. Mariusz Rafało

AE/ZP-27-16/14. Oprogramowanie do wykonywania kopii zapasowych oraz zarządzania maszynami wirtualnymi

NASZA OFERTA Serwery. dedykowane.

Kinowa Biblioteka Filmowa KINOSERWER. KinoSerwer

InfoCloud24 Usługowe Centrum Danych

Niezawodne usługi outsourcingowe na przykładzie usług kampusowych i Krajowego Magazynu Danych w sieci PIONIER

Tworzenie aplikacji bazodanowych

27/13 ZAŁĄCZNIK NR 4 DO SIWZ. 1 Serwery przetwarzania danych. 1.1 Serwery. dostawa, rozmieszczenie i zainstalowanie 2. serwerów przetwarzania danych.

NOWY OPIS TECHNICZNY PRZEDMIOTU ZAMÓWIENIA

Studium przypadku budowania skalowalnych stron www. Tomasz Paszkowski

Administracja środowiskiem informatycznym projektu ZSZ

Kinowa Biblioteka Filmowa KINOSERWER. KinoSerwer

Konsolidacja wysokowydajnych systemów IT. Macierze IBM DS8870 Serwery IBM Power Przykładowe wdrożenia

ZAPYTANIE OFERTOWE. Wytworzenie i wprowadzenie na rynek platformy zarządzania systemami chmur obliczeniowych

Budowanie tanich, wysoko wydajnych i wysoko dostępnych systemów pod Linuksem

PlateSpin Protect Dariusz Leonarski Starszy konsultant Novell Sp. z o.o.

Architektura i mechanizmy systemu

Win Admin Replikator Instrukcja Obsługi

Zdalne monitorowanie i zarządzanie urządzeniami sieciowymi

Zbuduj prywatną chmurę backupu w firmie. Xopero Backup. Centralnie zarządzane rozwiązanie do backupu serwerów i stacji roboczych

Wykorzystanie wirtualizacji w kluczowych scenariuszach data-center

VMware vsphere 5.5: Install, Configure, Manage

Optymalna Chmura. Właściwy kierunek dla Twojego biznesu

Bazy danych i ich aplikacje

Hosting i backup danych w środowisku operatorskim

Przetwarzanie i zabezpieczenie danych w zewnętrznym DATA CENTER

RUGGEDCOM RX1400. Switch zarządzalny warstwy 3 zintegrowany z modemem GSM i serwerem portów szeregowych. siemens.com/rx1400 siemens.

Załącznik nr 1 - Szczegółowy opis przedmiotu zamówieni Specyfikacja techniczna - minimalne obligatoryjne wymagania techniczne, funkcjonalne sprzętu

DYREKTOR GENERALNY URZĘDU ZAMÓWIEŃ PUBLICZNYCH

Win Admin Replikator Instrukcja Obsługi

Standard określania klasy systemu informatycznego resortu finansów

Into the cloud... Based on a true story. 3CX, twórca rozwiązań Unified Communications udoskonala centralę telefoniczną software dzięki chmurze

Wysoka dostȩpność w systemie Linux

Zmiana treści Specyfikacji Istotnych Warunków Zamówienia.

Zarządzanie farmami serwerów Linux

Wsparcie migracji obliczeń poprzez wirtualizację zasobów sieciowych

Bazy danych. Plan wykładu. Rozproszona baza danych. Fragmetaryzacja. Cechy bazy rozproszonej. Replikacje (zalety) Wykład 15: Rozproszone bazy danych

Odpowiedź II wyjaśnienie na zapytania do Specyfikacji Istotnych Warunków Zamówienia.

WHITE PAPER. Planowanie, przygotowanie i testowanie działań na wypadek wystąpienia awarii

EMC Celerra NS. Pełny obraz

Wykorzystanie wolnego oprogramowania w GIS Center

IP Anycast. Ochrona i skalowanie usług sieciowych. Łukasz Bromirski lbromirski@cisco.com

Win Admin Replikator Instrukcja Obsługi

Stabilis Smart Factory

NASZA OFERTA. Serwery. dedykowane.

KONFERENCJA technologie sieciowe

BEZPIECZNA FIRMA. Zarządzanie serwerami. Zapewniamy najwyższą jakość usług, 24 godziny na dobę, 7 dni w tygodniu!

Ełk, dn r. DOMSET Marcin Brochacki. ul. Wojska Polskiego 43 lok. 3, Ełk. Nip ZAPYTANIE OFERTOWE

Usługi utrzymaniowe infrastruktury SI PSZ

Parametry wydajnościowe systemów internetowych. Tomasz Rak, KIA

Projektowanie sieci metodą Top-Down

MODEL WARSTWOWY PROTOKOŁY TCP/IP

ZMIANA TREŚCI SPECYFIKACJI ISTOTNYCH WARUNKÓW ZAMÓWIENIA

Rozwiązania HA i DR. Etapy projektowania infrastruktury sprzętowej. Robert Kleniewski. IBM Certified Architect

LANDINGI.COM. Case Study. Klient Landingi.com. Branża IT, marketing i PR. Okres realizacji od grudnia 2013 do chwili obecnej.

OPIS TECHNICZNY PRZEDMIOTU ZAMÓWIENIA

Wysokowydajny system składowania plików graficznych ze zdjęciami użytkowników portalu. Tomasz Paszkowski

Wirtualizacja infrastruktury według VMware. Michał Małka DNS Polska

TSMBOX. Backup Appliance Build for Recovery Speed. Przemysław Jagoda. Zbigniew Parys

Jeden partner wiele rozwiązań, jak wybrać to właściwe

Oferta dysków twardych WD do centrów danych Ewolucja dysków o dużej pojemności

Instalacja SQL Server Konfiguracja SQL Server Logowanie - opcje SQL Server Management Studio. Microsoft Access Oracle Sybase DB2 MySQL

ZAPYTANIE OFERTOWE. Medialab s.c. Bożena Rożenek, Zbigniew Rożenek, Łódź

VMware vsphere: Automation Fast Track

Praktyczne wykorzystanie mechanizmów zabezpieczeń w aplikacjach chmurowych na przykładzie MS Azure

Wydajny Linux. Jakub Woźniak KN Sieci Komputerowych i Systemów Rozproszonych Tenesys

Architektura systemów webowych wysokiej przepustowości. na przykładzie Wikia

Klastrowanie bazy IBM DB2. Adam Duszeńko

Klastrowe architektury serwera aplikacji Oracle Application Server 10g

Utrzymanie epuap. Raportt Q1 2014

Onet Moduły.

... Podpis osoby - osób upoważnionych do składania oświadczeń woli w imieniu wykonawcy

WAKACYJNA AKADEMIA TECHNICZNA

Transkrypt:

Sposoby klastrowania aplikacji webowych w oparciu o rozwiązania OpenSource Piotr Klimek piko@piko.homelinux.net

Agenda Wstęp Po co to wszystko? Warstwa WWW Warstwa SQL Warstwa zasobów dyskowych Podsumowanie

Wstęp Ilość systemów typu LAMP (Linux, Apache, PHP, MySQL) rośnie z roku na rok, część z nich w początkowej fazie swojego rozwoju nie jest projektowana pod kątem dużych obciążeń, a co za tym idzie nie są one zoptymalizowane i nie wyczerpują w pełni możliwości drzemiących w środowiskach tego typu. Większość administratorów wcześniej czy później staje przed koniecznością zoptymalizowania swojego środowiska, aby było ono w stanie podołać zwiększającemu się obciążeniu.

Problem Jest to zadanie trudne, gdyż najczęściej wymaga się od administratorów, aby zmiany które wprowadzają nie zakłócały pracy środowiska i nie wiązały się ze rewolucyjnymi zmianami w aplikacji. Ponadto przy odpowiednio dużym obciążeniu, lub wymaganiach stawianych co do dostępności środowiska nie istnieje możliwość dokonania jego optymalizacji w oparciu o pojedynczą maszynę i należy wprowadzić rozwiązanie oparte o klaster serwerów.

Rozwiązanie Rozwiązaniem problemów z wydajnością i awaryjnością jest stworzenie klastra serwerów dla aplikacji webowej, który będzie ukierunkowany na wydajność, skalowalność oraz zapewnienie bezawaryjnej pracy całego środowiska niezależnie od tego, czy wszystkie maszyny wchodzące w jego skład działają, czy nie. Duży nacisk powinien być położony na wyeliminowanie pojedynczych punktów awarii (single point of failure - SPOF), dlatego też wszystkie krytyczne punkty klastra powinny być redundantne. Ponadto klaster powinien być w granicach rozsądku zaprojektowany pod kątem zmniejszenia kosztów potrzebnych do jego budowy.

Podział środowiska Problem (i rozwiązania) zostały podzielone na logiczne warstwy, z których składa się środowisko działania aplikacji webowej. Każda z warstw tworzy osobną logiczną całość, z której korzysta aplikacja. Warstwy to: * Sieć LVS + VRRP * SQL MySQL+ Dual Master Replication * Storage NFS + DRBD Każda z warstw ponadto jest skalowalna i odporna na awarie.

Warstwa sieciowa Pierwszą z warstw jest sieć, do realizacji której użyty został projekt LVS. Pakiety pochodzące od klientów nie trafiają w takiej konfiguracji bezpośrednio do serwera aplikacji (dzięki odpowiednio ustawionemu routingowi/adresacji) lecz do serwera odpowiedzialnego za dalsze jego przekierowanie z uwzględnieniem szeregu warunków. W tym miejscu, aby zapewnić bezawaryjne działanie klastra użyte są dwie maszyny, z których jedna odpowiada na żądania klientów, a druga jest dla niej zapasem (hot backup), który uaktywnia się tylko w przypadku awarii pierwszej. Ponadto maszyna odpowiedzialna za rozdzielanie ruchu pomiędzy poszczególnymi serwerami WWW jest w stanie przy pomocy odpowiednich algorytmów rozdzielać ruch w taki sposób jaki jest wymagany, by optymalnie wykorzystać posiadane zasoby.

VRRP Aby zapewnić redundancje kluczowych punktów klastra (SPOF) został użyty protokół VRRP (Virtual Router Redundancy Protocol), który sam w sobie pozwala na współdzielenie przez urządzenia adresów IP w trybie master-standby. Aby efektywnie z niego korzystać zastosowany został projekt KeepAlived, który zajmuje się badaniem dostępności drugiej maszyny w parze i w przypadku wykrycia awarii przejmuje jej adres IP. Do administratora zaś należy napisanie odpowiednich skryptów, które pozwolą na przezroczyste przełączanie usług, tak aby zapewnić nieprzerwane działanie aplikacji. Tandem VRRP i KeepAlived został użyty w każdej z warstw by zapewnić nieprzerwany dostęp do najważniejszych usług.

Warstwa SQL Druga warstwa zapewnia komunikacje aplikacji z bazami danych opartymi o MySQL, w którym w celu zapewnienia niezawodności i aktualności danych użyta została technika replikacji zapytań pomiędzy serwerami. Domyślna konfiguracja replikacji w MySQL opiera się o jedną maszynę typu master, do której trafiają zapytania modyfikujące zawartość danych (INSERT, UPDATE, DELETE), dopiero z tej maszyny dane są replikowane na serwery typu slave. W moim projekcie, aby uniknąć awarii całego klastra w przypadku awarii serwera master znajdują się dwa takie serwery, technika ta nazywa się 'dual master replication' i polega na tym, że para serwerów pełni wobec siebie jednocześnie rolę master i slave, dzięki czemu zapytania modyfikujące dane mogą trafiać zarówno do jednego jak i drugiego serwera. Natomiast w przypadku awarii jednego z nich na drugim znajduje się aktualna kopia danych.

Dual Master Repliaction schemat działania

Warstwa zasobów dyskowych Zadaniem trzeciej warstwy jest zapewnienie aplikacji dostępu do zasobów dyskowych, przy pomocy znanego od lat sieciowego systemu plików NFS, oraz dedykowanych serwerów dla niego. Aby uniknąć tworzenia SPOFa serwery NFS są zabezpieczone poprzez RAID over NET z użyciem rozwiązania DRBD. Rozwiązanie to jest alternatywą dla bardzo drogiej dedykowanej macierzy. Obydwa serwery NFS realizują między swoimi systemami plików RAID, przy czym jeden z nich pracuje w trybie standby i jedynie replikuje zmiany pojawiające się na pierwszej maszynie. W przypadku awarii tak samo jak we wcześniej opisanych warstwach następuje przezroczyste dla aplikacji przełączenie serwerów. W momencie, gdy pierwszy z serwerów wróci do macierzy po awarii replikowane są na niego dane, które zostały w czasie jego nieobecności zapisane na drugiej maszynie i przejmuje on ponownie rolę mastera.

Podsumowanie W rezultacie relatywnie tanim kosztem otrzymujemy klaster, który od strony softwarowej jest odporny na awarie w kluczowych punktach. Celowo pominąłem aspekty zabezpieczeń sprzętowych takich jak macierze RAID, redundantne zasilanie, redundancje łącz, system monitoringu, system backupów. Nie wspomniałem też o nadzorowaniu rozwoju aplikacji, oraz jej bezpieczeństwie. Są to tematy do osobnych rozważań. Przedstawione środowisko zapewnia dość dużą skalowalność, oraz może zostać zbudowane za równowartość macierzy sprzętowej dobrej klasy. W newralgicznych punktach takich jak serwery SQL pełniące role master, oraz serwery NFS należy liczyć się z koniecznością zakupu sprzętu z wyższej półki. Jednak wszystkie maszyny typu slave (WWW i SQL), oraz te które realizują LVS mogą być budowane na bazie komputerów, jakie każdy z nas posiada w domu, gdyż ich bezawaryjność, czy wydajność jest zapewniana poprzez ich ilość a nie klasę sprzętu.

Pytania?