Pomiń nawigację

Skalowanie w górę a zwiększanie skali w poziomie

Wprowadzenie do skalowalności bazy danych w ramach przetwarzania w chmurze

Dane, wszędzie dane — co mamy na myśli, kiedy mówimy o skalowalności

Skalowalność w ramach przetwarzania w chmurze to zdolność szybkiego i łatwego zwiększania lub zmniejszenia rozmiaru lub możliwości rozwiązania IT lub zasobu. Chociaż termin skalowalność może odnosić się do możliwości dowolnego systemu do obsługi rosnącej ilości pracy, gdy mówimy o tym, czy skalować w górę, czy zwiększać skalę w poziomie, często odwołujemy się do baz danych oraz danych — i to wielu danych.

Skalowalność bazy danych to główna kwestia dla współczesnych deweloperów aplikacji. Załóżmy, że nowa aplikacja odniesie sukces i zapotrzebowanie na nią wrośnie, a liczba użytkowników korzystających z niej sięgnie milionów użytkowników na całym świecie. Jedną z najważniejszych możliwości, która pomaga deweloperom aplikacji nadążyć za zapotrzebowaniem i minimalizować przestoje, jest możliwość wydajnego skalowania.

Ta dyskusja na temat różnic między zwiększaniem skali w poziomie i skalowaniem w górę koncentruje się na sposobach, w jakie skalowalność pomaga nam dostosować i obsłużyć ogromną ilość i szerokie spektrum danych, zmieniając woluminy danych i przesuwając wzorce obciążeń — wszystkie generowane w chmurze, na urządzeniach przenośnych, w mediach społecznościowych i systemach danych big data.

Skalowanie w poziomie a skalowanie w górę

Na najbardziej podstawowym poziomie, skalowalność bazy danych można podzielić na dwa typy:

W ramach skalowania w pionie, czyli skalowania w górę albo w dół, zwiększa się lub zmniejsza moc obliczeniową albo bazy danych odpowiednio do potrzeb — zmieniając poziomy wydajności lub używając elastycznych pul baz danych w celu automatycznego dostosowania do wymagań związanych z obciążeniem.

W ramach skalowania w poziomie, czyli zwiększania lub zmniejszania skali w poziomie, dodaje się więcej baz danych lub dzieli się dużą bazę danych na mniejsze węzły, korzystając z podejścia partycjonowania danych nazywanego dzieleniem na fragmenty, którymi można łatwiej i szybciej zarządzać na wielu serwerach.

Skalowanie w górę / w pionie

Skalowanie w pionie jest używane, gdy konieczne jest szybkie reagowanie w celu rozwiązania problemu z wydajnością, którego nie można rozwiązać przy użyciu klasycznych technik optymalizacji bazy danych, takich jak zmiany zapytań lub indeksowanie. Skalowanie w górę jest przydatne do radzenia sobie ze wzrostami w obciążeniach, w których bieżący poziom wydajności nie spełnia wszystkich wymagań. Skalowanie w górę umożliwia dodawanie kolejnych zasobów w celu radzenia sobie z gwałtownymi wzrostami obciążeń. Wówczas, gdy zasoby nie są już potrzebne, skalowanie w dół pozwala wrócić do pierwotnego stanu i zaoszczędzić na kosztach chmury.

Skaluj w górę w przypadku, gdy:

  • Widoczna będzie informacja, że obciążenia osiągają pewien limit wydajności, na przykład limity procesora CPU lub operacji we/wy.
  • Musisz szybko reagować, aby rozwiązać problemy z wydajnością, których nie można rozwiązać za pomocą klasycznej optymalizacji bazy danych.
  • Potrzebujesz rozwiązania, które umożliwia zmianę warstw usług w celu dostosowania się do zmieniających się wymagań dotyczących opóźnień.

Skalowanie w poziomie

Deweloperzy aplikacji zaczynają rozważać zwiększenie skali w poziomie, gdy nie mogą uzyskać wystarczającej ilości zasobów dla swoich obciążeń, nawet przy wykonywaniu operacji na najwyższych poziomach wydajności. W przypadku skalowania w poziomie dane są dzielone na kilka baz danych lub fragmentów między serwerami, a każdy fragment można niezależnie skalować w górę lub w dół.

W jaki sposób partycjonowanie danych poprawia skalowalność? Skalowanie pojedynczej bazy danych w górę przez dodanie zasobów, takich jak maszyny wirtualne, prowadzi ostatecznie do wyczerpania fizycznych ograniczeń sprzętowych. Ponieważ każda z partycji danych jest hostowana na innym serwerze, w przypadku podzielenia danych na wiele fragmentów możliwości skalowania systemu stają się niemal nieograniczone.

Niektóre typy technologii baz danych, w szczególności nierelacyjne bazy danych lub NoSQL, są opracowywane z udziałem unikatowych możliwości skalowania danych w poziomie przez dzielenie na fragmenty — co umożliwia obsługę dużych, niepowiązanych, nieokreślonych lub szybko zmieniających się danych.

Niektóre usługi relacyjnych baz danych (SQL), które pierwotnie oferowały usługi skalowania w górę lub w dół, zaczynają oferować atrakcyjne opcje dopasowane do zalet skalowalności nierelacyjnych baz danych. Usługi hiperskali, takie jak Microsoft Azure SQL Database w warstwie Hiperskala i Azure Database for PostgreSQL w warstwie Hiperskala umożliwiają użytkownikom szybkie skalowanie magazynu do 100 TB, zapewniają elastyczną, natywną dla chmury architekturę umożliwiającą rozwój magazynu stosownie do potrzeb oraz pozwalają na niemal natychmiastowe tworzenie kopii zapasowych oraz szybkie przywracanie baz danych w ciągu kilku minut.

Skaluj w poziomie w przypadku, gdy:

  • Masz aplikacje rozproszone geograficznie, w których każda aplikacja powinna uzyskać dostęp do części danych w regionie. Każda aplikacja będzie mieć dostęp tylko do fragmentu skojarzonego z tym regionem bez wpływu na inne fragmenty.
  • Masz globalny scenariusz fragmentowania — taki jak równoważenie obciążenia — w przypadku którego masz dużą liczbę klientów rozproszonych geograficznie wstawiających dane do własnych dedykowanych fragmentów.
  • Przekroczono limit określony w wymaganiach dotyczących wydajności również w przypadku warstw o najwyższej wydajności usługi lub jeśli dane nie mieszczą się w pojedynczej bazie danych.

Skalowanie automatyczne

Skalowanie automatyczne to proces automatycznego i dynamicznego dopasowywania zasobów w celu spełnienia wymagań dotyczących wydajności systemu. W miarę wzrostu ilości pracy aplikacje mogą potrzebować dodatkowych zasobów w celu utrzymania wymaganych poziomów wydajności lub zaspokojenia rosnącego zapotrzebowania. Jeśli zapotrzebowanie spowalnia i dodatkowe zasoby nie są już potrzebne, możesz zaoszczędzić na wydatkach na chmurę dzięki automatycznej usłudze cofania przydziału nieużywanych zasobów.

Skalowanie automatyczne wykorzystuje elastyczność środowisk hostowanych w chmurze. Zmniejsza koszty ogólne związane z zarządzaniem poprzez ograniczenie konieczności ciągłego podejmowania decyzji przez operatorów systemu dotyczących dodawania lub usuwania zasobów albo sprawdzania wydajności systemu.

Chociaż istnieją dwie główne metody skalowania aplikacji — w pionie lub w poziomie — automatyzowanie skalowania w pionie jest rzadziej używane, ponieważ skalowanie w górę często wymaga tymczasowej niedostępności systemu podczas jego ponownego wdrażania.

Skalowanie automatyczne jest bardziej powszechne w przypadku skalowania w poziomie, ponieważ zwiększanie lub zmniejszanie skali w poziomie oznacza, że wystarczy dodać lub usunąć wystąpienia zasobu, a aplikacja nadal będzie działać bez zakłóceń w miarę aprowizowania nowych zasobów. Jeśli zapotrzebowanie spadnie, zasoby można bezproblemowo wyłączyć i cofnąć ich przydział.

Wiele dostawców systemów opartych na chmurze, na przykład Microsoft Azure, obsługuje automatyczne skalowanie w poziomie.

  • Baza danych to dowolna kolekcja powiązanych ze sobą informacji, które są przechowywane i organizowane w celu łatwiejszego uzyskiwania do nich dostępu oraz zarządzania nimi. Ponieważ nowe dane oraz typy danych są generowane z niesamowitą szybkością, utrzymanie porządku, dostępności i bezpieczeństwa danych staje się wyzwaniem. Systemy zarządzania bazami danych (DBMS), które obejmują warstwę narzędzi do zarządzania, są często używane do obsługi ogromnych ilości danych.

    Stale pojawiają się nowe typy i technologie baz danych dostosowujące się do ogromnych ilości danych generowanych w chmurze, na urządzeniach przenośnych, w mediach społecznościowych i w systemach danych big data.

    Dowiedz się więcej o bazach danych
  • Bazy danych NoSQL, często określane jako nierelacyjne lub „nie tylko” SQL, to zróżnicowany zestaw technologii baz danych, który obsługuje przechowywanie i pobieranie danych inaczej niż tradycyjne, relacyjne bazy danych (SQL).

    Bazy danych NoSQL nie wymagają wstępnie zdefiniowanego schematu i mogą korzystać z wielu modeli danych, co czyni je niezwykle efektywnymi w obsłudze dużych ilości danych bez struktury i skalowaniu projektów baz danych big data.

    Dowiedz się więcej o bazach danych NoSQL
  • PostgreSQL to niezawodna baza danych typu open source znana z niezawodności i integralności danych, która działa wspólnie z zapytaniami dotyczącymi danych relacyjnych i nierelacyjnych. Baza danych PostgreSQL jest powszechnie używana w takich dziedzinach jak usługi finansowe, produkcja, rządowe systemy informacji geograficznych i technologia internetowa. Deweloperzy tworzą aplikacje za pomocą bazy danych PostgreSQL, a administratorzy mają do niej zaufanie w kwestii ochrony danych.

    Dowiedz się więcej o bazie danych PostgreSQL
  • Buforowanie jest typową techniką używaną przez deweloperów i specjalistów IT, której celem jest zwiększanie wydajności i skalowalności systemu. Buforowanie jest możliwe dzięki tymczasowemu kopiowaniu często używanych danych do szybkiego magazynu znajdującego się blisko aplikacji. Jeśli ten szybki magazyn danych znajduje się bliżej aplikacji niż oryginalne źródło, buforowanie może znacznie poprawić czasy odpowiedzi aplikacji klienckich poprzez szybszą obsługę danych. Deweloperzy często projektują aplikacje w taki sposób, aby buforowały przetworzone dane, a następnie ponownie wykorzystywały pamięć podręczną do obsługi żądań szybciej niż w przypadku standardowych zapytań bazy danych.

    Dowiedz się więcej o buforowaniu
  • Dzielenie danych na fragmenty to rodzaj partycjonowania danych poziomych pozwalający na podzielenie dużych baz danych na mniejsze, którymi można szybciej i łatwiej zarządzać na wielu serwerach.

    Dowiedz się więcej o dzieleniu bazy danych na fragmenty
  • Platforma jako usługa, często występująca w skróconej formie jako PaaS, to usługa od dostawcy usług w chmurze oferująca środowisko na żądanie do tworzenia, testowania i dostarczania aplikacji oraz zarządzania nimi. Rozwiązanie platformy jako usługi ułatwia i przyspiesza tworzenie aplikacji internetowych lub mobilnych przez deweloperów bez konieczności radzenia sobie z konfigurowaniem niezbędnej podstawowej infrastruktury serwerów, magazynu, sieci i baz danych oraz zarządzaniem nią.

    Dowiedz się więcej na temat rozwiązań PaaS

Eksplorowanie skalowalności w chmurze za pomocą platformy Azure

Poznaj kompleksowe podejście do skalowania w górę a zwiększania skali w poziomie, takie, które pasuje do Twojego scenariusza w ramach środowisk lokalnych, wielochmurowych i brzegowych. Rodzina usług baz danych platformy Azure oferuje możliwość wyboru w pełni zarządzanych relacyjnych baz danych, baz danych NoSQL i baz danych w pamięci, łącząc zastrzeżone mechanizmy z mechanizmami typu open source, aby spełnić potrzeby nowoczesnych deweloperów aplikacji.

Oszczędzaj czas i pieniądze dzięki zautomatyzowanemu zarządzaniu infrastrukturą obejmującemu rozwiązania do automatyzacji dotyczące skalowalności, dostępności i zabezpieczeń.

Powiązane produkty i usługi

Azure SQL

Rodzina baz danych SQL w chmurze z elastycznymi opcjami migracji, modernizacji i tworzenia aplikacji

Azure Cosmos DB

Szybka baza danych NoSQL z otwartymi interfejsami API w dowolnej skali

Azure PostgreSQL

W pełni zarządzana, inteligentna i skalowalna baza danych PostgreSQL

Azure SQL Database

Zarządzana, inteligentna baza danych SQL w chmurze

Azure SQL Managed Instance

Zarządzane i zawsze aktualne wystąpienie SQL w chmurze

Program SQL Server na maszynach wirtualnych

Migrowanie obciążeń programu SQL Server do chmury z najniższym całkowitym kosztem posiadania

Azure Database for MySQL

W pełni zarządzana, skalowalna baza danych MySQL

Azure Maria DB

Zarządzana usługa bazy danych MariaDB dla deweloperów aplikacji

Azure Cache for Redis

Przyspiesz działanie aplikacji, korzystając z buforowania danych o wysokiej przepływności i małych opóźnieniach

Skalowanie bez ograniczeń dzięki zarządzanym bazom danych

Skup się na tworzeniu aplikacji i ułatw sobie pracę dzięki bazom danych zarządzanym przez platformę Microsoft Azure

Wszystko gotowe — załóż bezpłatne konto