LFCA naucz się dostępności, wydajności i skalowalności w chmurze - część 14

LFCA naucz się dostępności, wydajności i skalowalności w chmurze - część 14

W poprzednim temacie naszej serii LFCA przedstawiliśmy wstęp do przetwarzania w chmurze, różnych typów i chmur oraz usług w chmurze i przeprowadziliśmy niektóre korzyści związane z przetwarzaniem w chmurze.

Jeśli Twoja firma nadal jeździ na tradycyjnym środowisku informatycznym, nadszedł czas. Szacuje się, że do końca 2021 r. Ponad 90% całkowitego obciążenia będzie obsługiwane w chmurze.

Wśród głównych korzyści związanych z objęciem przetwarzania w chmurze są lepsza wydajność, wysoka dostępność i skalowalność. W rzeczywistości szczotkowaliśmy je jako jedną z głównych zalet korzystania z technologii chmur.

W tym temacie koncentrujemy się na dostępności w chmurze, wydajności i skalowalności i staramy się zrozumieć, w jaki sposób te trzy łącza w celu spełnienia wymagań klientów i zapewnienia użytkownikom dostępu do ich danych, ponieważ potrzebują ich z dowolnej części świata.

1. Dostępność w chmurze

Aplikacje i usługi IT organizacji mają kluczowe znaczenie, a każde zakłócenia usług mogą mieć głęboki wpływ na przychody. Oczekiwanie klientów polega na tym, że usługi są dostępne przez całą dobę w dowolnym miejscu. I to właśnie dąży technologia chmurowa.

Wysoka dostępność jest ostatecznym celem przetwarzania w chmurze. Ma na celu zapewnienie maksymalnego możliwego czasu pracy usług firmy nawet w obliczu zakłóceń, które mogą być spowodowane przez bezprecedensowe przestoje serwera lub degradację sieci.

Wysoka dostępność jest możliwa dzięki systemom zbędnym i przełączającym awaryjne. Dzieje się tak w środowisku klastrowym, w którym wiele serwerów lub systemów wykonuje te same zadania, a tym samym zapewnianie redundancji.

Kiedy serwer upadnie, reszta może nadal działać i świadczyć usługi świadczone przez serwer dotkniętych. Doskonałym przykładem redundancji jest replikacja danych na wielu serwerach bazy danych w klastrze. W przypadku, gdy główny serwer bazy danych w klastrze wystąpi problem, inny serwer bazy danych nadal dostarczy danych wymaganych przez użytkowników.

Redundancja eliminuje pojedynczy punkt awarii i zapewnia, że ​​jest 99.999% dostępność usług i aplikacji. Klastrowanie zapewnia również równoważenie obciążenia między serwerami i zapewnia, że ​​obciążenie jest równo rozpowszechnione i nikt nie jest przytłoczony.

2. Skalowalność w chmurze

Kolejnym znakiem rozpoznawczym przetwarzania w chmurze jest skalowalność. Skalowalność to możliwość dostosowania zasobów w chmurze w celu zaspokojenia zmieniających się wymagań. Mówiąc najprościej, możesz bezproblemowo zwiększyć lub zmniejszyć zasoby w razie potrzeby, aby zaspokoić popyt bez narażania jakości usług lub przestojów.

Załóżmy, że prowadzisz blog, który zaczyna mieć trafienia i więcej ruchu. Możesz łatwo dodać więcej zasobów obliczeniowych, takich jak pamięć, pamięć RAM i CPU do instancji obliczeniowej w chmurze, aby obsłużyć dodatkowe obciążenie pracą. I odwrotnie, możesz zmniejszyć zasoby w razie potrzeby. Zapewnia to, że płacisz tylko za to, czego potrzebujesz, a to podkreśla ekonomia skali, którą zapewnia chmura.

Skalowalność jest dwojaki: skalowanie pionowe i skalowanie poziome.

Skalowanie pionowe

Nazywane również 'skalowanie„Skalowanie pionowe polega na dodaniu większej liczby zasobów, takich jak pamięć RAM, pamięć i procesor do instancji obliczeniowej w chmurze, aby pomieścić dodatkowe obciążenie pracą. Jest to odpowiednik zasilania fizycznego komputera lub serwera w celu zaktualizowania pamięci RAM lub dodania dodatkowego dysku twardego lub SSD.

Skalowanie poziome

Skalowanie poziome, znane również jako „Skalowanie„Polega na dodaniu większej liczby serwerów do puli wcześniej istniejących serwerów, aby zapewnić dystrybucję obciążenia na wielu serwerach. Przy skalowaniu poziomym nie ograniczasz się do pojemności jednego serwera, w przeciwieństwie do skalowania pionowego. Zapewnia to większą skalowalność i mniej przestojów.

Skalowanie jest bardziej pożądane w porównaniu do skalowania

A oto dlaczego. Z Skalowanie poziome, Zasadniczo dodajesz więcej zasobów, takich jak serwery lub magazyn do już istniejącej puli zasobów. Pozwala to połączyć moc i wydajność wielu instancji obliczeniowych w jedną, a tym samym uzyskać lepszą wydajność, a nie tylko dodawanie zasobów na jednym serwerze. Dodatkowe serwery sugerują, że nie będziesz musiał radzić sobie z deficytem zasobów.

Dodatkowo, Skalowanie poziome Zapewnia redundancję i tolerancję błędów w taki sposób, że nawet jeśli wpłynie na jeden serwer, reszta będzie kontynuować udowodnienie dostępu do wymaganych usług. Skalowanie pionowe jest związany z jednym punktem awarii. Jeśli instancja obliczeniowa zawiedzie się, wszystko z nią spada.

Skalowanie poziome oferuje również maksymalną elastyczność w przeciwieństwie do Skalowanie pionowe gdzie aplikacje są budowane jako jedna duża jednostka. To sprawia, że ​​trudniej jest zarządzać, zaktualizować lub zmienić sekcje kodu bez konieczności ponownego uruchomienia całego systemu. Skalowanie pozwala na oddzielanie aplikacji i pozwala na bezproblemową aktualizację z minimalnym przestojem.

3. Wydajność w chmurze

Zapewnienie, że wydajność aplikacji spełnia wymagania klientów może być dość pod górę, szczególnie jeśli masz wiele komponentów siedzących w różnych środowiskach, które muszą stale się ze sobą komunikować.

Problemy takie jak opóźnienie prawdopodobnie przejawiają się i wpłyną na wydajność. Ponadto nie jest łatwo przewidzieć wydajność, w której zasoby są udostępniane przez różne podmioty. Niezależnie od tego, nadal możesz osiągnąć wysoką wydajność i pozostać na powierzchni, wdrażając następujące środki.

1. Instancja w chmurze

Upewnij się, aby korzystać z odpowiednich instancji w chmurze z wystarczającymi zasobami, aby obsługiwać obciążenia twoich aplikacji i usług. W przypadku aplikacji wymagających zasobów upewnij się, że dostarczasz wystarczającą ilość zasobów pamięci RAM, CPU i przechowywania w celu zapobiegania możliwym deficytowi zasobów.

2. Balancer obciążenia

Zaimplementuj równoważenie obciążenia, aby równo rozpoznać ruch sieciowy między zasobami. Zapewni to, że żadna z twoich aplikacji nie jest przytłoczona popytem. Załóżmy, że Twój serwer internetowy otrzymuje duży ruch, który powoduje opóźnienia i wpływa na wydajność.

Idealnym rozwiązaniem byłoby wdrożenie Skalowanie poziome z w sumie 4 serwerami internetowymi siedzącymi za balansem. Balancer obciążenia rozdzieli ruch sieciowy na 4 serwerach Web i zapewni, że nie jest przytłoczony obciążeniem pracą.

3. Buforowanie

Użyj rozwiązań buforowania, aby przyspieszyć dostęp do plików według aplikacji. Przechowywanie pamięci podręcznej często odczytują dane, a tym samym eliminuj stałe wyszukiwania danych, które mogą wpływać na wydajność. Zmniejszają opóźnienia i obciążenie, ponieważ dane są już buforowane, a tym samym poprawiając czas reakcji.

Buforowanie można wdrożyć na różnych poziomach, takich jak poziom aplikacji, poziom bazy danych. Popularne narzędzia buforowania obejmują pamięć podręczną Redis, Memcached i Larnish.

4. Monitoring wydajności

Wreszcie, pamiętaj o monitorowaniu wydajności swoich serwerów i aplikacji. Dostawcy chmury zapewniają natywne narzędzia, które mogą pomóc w obserwowaniu serwerów chmur z przeglądarki internetowej.

Ponadto możesz wziąć własną inicjatywę i zainstalować bezpłatne i open source narzędzia monitorujące. Przykłady takich wniosków to Grafana, NetData i Prometeusz, aby wymienić kilka.

Wniosek

Nie możemy wystarczająco podkreślić, w jaki sposób dostępność, skalowanie i wydajność są kluczowe w chmurze. Trzy czynniki określają jakość usług, którą otrzymasz od dostawcy chmur i ostatecznie narysuj granicę między sukcesem lub porażką firmy.

Zostań Certyfikowaną Fundacją Linux IT Associate (LFCA)