Udostępnij za pośrednictwem


Dane obciążeń SaaS na platformie Azure

Traktuj dane jako najcenniejszy zasób rozwiązania. Jako niezależny dostawca oprogramowania (ISV) odpowiadasz za zarządzanie danymi klientów. Strategia projektowania danych i wybór magazynu danych może znacząco wpłynąć na klientów.

Ten artykuł zawiera wskazówki dotyczące zapewniania integralności danych i poufności dla klientów przy jednoczesnym spełnieniu wymagań dotyczących wydajności biznesowej. Podkreśla ona kluczowe kwestie, które pomogą Ci skutecznie osiągnąć te cele.

Wybieranie źródła danych

Magazyn danych w rozwiązaniu oprogramowania jako usługi (SaaS) ma wpływ na jego architekturę, wydajność, niezawodność i złożoność transakcyjną. Porównaj możliwości usług zarządzanych platformy Azure z podobnymi ofertami firm innych niż Microsoft. W niektórych sytuacjach można również rozważyć uruchomienie produktów open source na maszynach wirtualnych.

Uwagi dotyczące projektowania

  • Rozróżnianie operacji transakcyjnych i analitycznych. Transakcyjne magazyny danych są przeznaczone do obsługi aplikacji, a magazyny danych analitycznych są używane do raportowania i zadań, takich jak uczenie maszynowe. Te sklepy są tworzone za pomocą wyspecjalizowanych produktów i mają unikatowe potrzeby dotyczące wydajności, wzorców dostępu, schematów i przypadków użycia.

    Ten przewodnik koncentruje się na transakcyjnych magazynach danych.

  • Zrozumienie potrzeb związanych z danymi. Szacuj wolumin, częstotliwość, z jaką może się zmienić, oraz typ danych, które należy przechowywać.

    W miarę upływu czasu spodziewaj się znacznego wzrostu danych. W przypadku rozwiązań SaaS wzrost występuje w wielu wymiarach. Przewidywanie wzrostu ilości danych i typów danych w miarę wzrostu liczby klientów. Upewnij się, że planujesz ten wzrost i inwestujesz w technologie, które mogą je wspierać.

    Zdecyduj między platformą danych relacyjnych lub nierelacyjnych na podstawie charakteru danych. W przypadku wielu obciążeń transakcyjnych relacyjna baza danych jest dobrą opcją modelowania jednostek aplikacji jako tabel dyskretnych. Takie podejście umożliwia wykonywanie zapytań w modelu danych relacyjnych. Alternatywnie, jeśli dane naturalnie pasują do modelu dokumentu lub są zgodne ze strukturą grafu, podejście nierelacyjne może być bardziej odpowiednie.

    Aby uzyskać więcej informacji, zobacz SQL versus NoSQL data platforms (Platformy danych SQL i NoSQL).

  • Zminimalizuj typy magazynów danych. Przechowywanie różnych typów danych w wielu różnych magazynach danych może być korzystne dla dojrzałych organizacji, które mają wiedzę na różnych platformach danych. Jednak takie podejście często wprowadza niepotrzebne złożoność dla startupów i mniejszych organizacji. Bardziej efektywne jest skupienie się na jednej lub niewielkiej liczbie magazynów danych.

    Jeśli nie masz uzasadnienia biznesowego używania wielu magazynów danych, skoncentruj swoje wysiłki na jednej lub niewielkiej liczbie magazynów danych.

  • Wykorzystaj to, co wiesz, i zainwestuj w to. Jeśli Twój zespół ma już doświadczenie w zakresie określonego magazynu danych, często lepiej jest używać tego magazynu danych zamiast inwestować w uczenie się nowych umiejętności. Magazyny danych i platformy są złożone, a decyzje projektowe mogą być trudne do odwrócenia.

    Należy jednak pamiętać o potencjalnym wzroście. Jeśli bieżący magazyn danych nie spełnia już wymagań, wybierz magazyn danych, który może zwiększyć wydajność, odporność, bezpieczeństwo i wydajność operacyjną rozwiązania. Powinno to również pomóc zespołowi pogłębić swoją wiedzę.

Zalecenia dotyczące projektowania

Zalecenie Korzyści
Oddziel transakcyjne magazyny danych na potrzeby codziennych operacji od magazynów danych analitycznych i raportowania. Mieszanie intencji magazynów danych może prowadzić do niepotrzebnej złożoności. Segmentacja danych zwiększa wydajność operacyjną i maksymalizuje wykorzystanie każdego magazynu danych.
Wybierz relacyjną lub nierelacyjną strukturę danych na podstawie wymagań. Zacznij od jednej lub niewielkiej liczby magazynów danych.

Określanie priorytetów zarządzanych magazynów danych. Typowe opcje obejmują usługi Azure Cosmos DB, Azure SQL, MySQL, MongoDB i PostgreSQL.
Takie podejście pomaga zminimalizować złożoność i zagwarantować użycie odpowiedniego produktu w celu zmaksymalizowania wydajności. Zarządzane magazyny danych zapewniają elastyczność zarządzania zasobami i kosztami elastycznie i skaluj zgodnie z potrzebami. Użycie zarządzanych magazynów danych powoduje mniejsze obciążenie związane z zarządzaniem niż wdrażanie własnego magazynu danych we własnej infrastrukturze.
Zainwestuj w naukę wybranej technologii. Zapewnij zespołowi zarządzanie wymaganiami dotyczącymi wysokiego skalowania i innymi złożonościami rozwiązań SaaS. Dowiedz się więcej o używanych narzędziach i ich szerszym ekosystemie, dzięki czemu możesz efektywnie korzystać z platformy danych podczas skalowania.
Wdrażanie elastyczności w projekcie danych. W miarę rozwoju rozwiązania SaaS lub zmiany wymagań możesz dostosować się, dodając lub zmieniając magazyny danych. Ta elastyczność pozwala zacząć od jednego magazynu danych i rozwijać się wraz z upływem czasu, aby spełnić Twoje potrzeby.

Model dzierżawy i strategia bazy danych

Kluczowym aspektem projektowania danych jest decyzja o hostowanie zasobów w imieniu klientów lub hostowanie zasobów w ich środowisku. Większość dostawców SaaS hostuje zasoby dla wszystkich klientów, co zapewnia elastyczność zarządzania bazami danych. Jeśli hostujesz zasoby w środowisku klienta, rozważ sposób uzyskiwania dostępu do tych zasobów i zarządzania nimi.

Uwagi dotyczące projektowania

  • Zaplanuj segmentację bazy danych. W rozwiązaniach SaaS typu business-to-business (B2B) zalecamy utworzenie dedykowanych baz danych dla każdego klienta. Takie podejście zwiększa bezpieczeństwo danych dzięki zachowaniu ścisłej izolacji między klientami, co zmniejsza ryzyko mieszania danych i obsługuje klucze szyfrowania zarządzane przez klienta. Pomaga również spełnić wymagania dotyczące zgodności z przepisami dla niektórych klientów.

    Rozdzielenie danych klientów na poszczególne bazy danych może zwiększyć wydajność, minimalizując hałaśliwe problemy sąsiadów. Niektóre zarządzane magazyny danych obejmują mechanizmy kontroli alokacji zasobów w celu wyeliminowania tych problemów, zapewnienia wydajności kosztów i uwzględnienia narzędzi do zarządzania wieloma bazami danych na dużą skalę.

    W niektórych przypadkach odpowiednie jest przechowywanie danych wielu klientów w jednym magazynie danych. Na przykład w rozwiązaniach typu business-to-consumer (B2C) można zapisywać dane w jednym magazynie z partycjonowaniem logicznym na podstawie identyfikatora klienta. W rozwiązaniach B2B współużytkujących składniki można użyć jednego magazynu danych dla określonych części, takich jak magazyn zdarzeń, przy jednoczesnym zapewnieniu, że identyfikatory klientów są uwzględniane w każdym zdarzeń.

  • Sortowanie magazynów danych ze składnikami aplikacji. Jeśli hostujesz zasoby w imieniu klienta, wdróż je w tym samym regionie świadczenia usługi Azure, aby uniknąć opłat za przepustowość ruchu wychodzącego i opóźnienia. W przypadku hostowania aplikacji i magazynów danych w środowisku klienta należy wdrożyć je razem w tym samym środowisku, aby uniknąć złożoności między środowiskami.

  • Standaryzacja zarządzania magazynem danych tak samo, jak jest praktyczna. Jednolitość jest kluczem do zarządzania danymi wśród klientów. W miarę rozwoju firmy różnice między klientami zwiększają ryzyko i złożoność. Te różnice mogą również sprawić, że awarie produkcyjne będą bardziej prawdopodobne i będą trudniejsze do rozwiązywania problemów.

    Unikaj jednorazowych zmian w zarządzaniu, aby obsługiwać poszczególnych klientów. Na przykład w celu obsługi metadanych zarządzanych przez klienta należy unikać zmian schematu, takich jak dodawanie dodatkowych kolumn do bazy danych. Zamiast tego twórz funkcje dla klientów, aby dodawać własne metadane. Podobnie, jeśli musisz podać różne poziomy wydajności bazy danych dla różnych klientów, utwórz pojedynczy proces, którego można użyć do zastosowania różnych konfiguracji do różnych warstw klientów.

Aby uzyskać więcej informacji na temat wpływu modelu dzierżawy na strategię danych, zobacz.

Zalecenia dotyczące projektowania

Zalecenie Korzyści
Oceń, czy udostępnić bazy danych wielu klientom, czy udostępnić udostępnioną platformę danych.

Wdróż pojedynczą bazę danych dla danych każdego klienta, jeśli jest to konieczne. Zrelaksuj tę strategię, jeśli ścisła izolacja nie jest wymagana, na przykład w rozwiązaniach B2C.
Takie podejście minimalizuje hałaśliwe problemy sąsiadów i może obsługiwać wymagania dotyczące zgodności dla niektórych klientów.
Wdrażanie aplikacji i ich baz danych w tym samym regionie. Takie podejście optymalizuje koszty przepustowości i opóźnienia wynikające z dostępu do bazy danych w wielu regionach.
Zaprojektuj ustandaryzowane podejście do przechowywania danych lub metadanych zdefiniowanych przez klienta. Unikaj zmieniania schematu dla poszczególnych klientów lub powodować różnice w środowiskach klientów. Takie podejście pomaga uniknąć obciążeń operacyjnych związanych z zarządzaniem niespójnościami między bazami danych dla każdego klienta.
Zaplanuj rutynowe operacje konserwacji w środowisku wdrożonym przez klienta.

Zaplanuj dostęp do bazy danych pod kątem aktualizacji, zmian schematu, konserwacji i innych operacji.
Takie proaktywne podejście minimalizuje problemy z brakiem konserwacji i zmniejsza ryzyko przestojów i problemów z wydajnością.

Planowanie pojemności

Planowanie pojemności odnosi się do zarządzania wykorzystaniem zasobów, z naciskiem na procesor CPU, pamięć, magazyn i operacje dysku, takie jak operacje wejścia i wyjścia na sekundę (IOPS). Niektóre magazyny danych łączą te zasoby w prostą, syntetyczną metrykę zużycia zasobów, na przykład jednostkę przepływności bazy danych (DTU) w usłudze Azure SQL lub jednostkę żądania (RU) w usłudze Azure Cosmos DB. Zarządzane magazyny danych zapewniają elastyczność zarządzania zasobami, co pozwala na zmiany w czasie. Ważne jest ustanowienie początkowego planu i iterowanie w miarę rozwoju potrzeb.

Uwagi dotyczące projektowania

  • Poznaj wymagania dotyczące alokacji zasobów. Różni klienci w rozwiązaniach SaaS mogą mieć różne potrzeby dotyczące zasobów. Mniejsza klienci mogą wymagać minimalnych zasobów, a więksi klienci mogą potrzebować więcej. Więksi klienci często płacą więcej, co uzasadnia większą alokację zasobów. Korzystając z oddzielnych baz danych dla każdego klienta, można dostosować alokację zasobów na podstawie ich rozmiaru i potrzeb.

  • Poznaj różne modele pojemności oferowane przez platformy danych. Platformy danych oparte na chmurze często udostępniają wiele modeli zasobów. Na przykład niektóre usługi platformy Azure, takie jak Azure Cosmos DB, udostępniają aprowizowane modele oparte na przepływności i modele bezserwerowe. Usługa Azure SQL Database udostępnia również elastyczne pule.

    Aprowizowana przepływność wymaga wstępnie określonej alokacji zasobów z pojedynczej bazy danych lub grupy baz danych. Pule elastyczne umożliwiają udostępnianie zasobów między wieloma bazami danych. Pule elastyczne są często używane w rozwiązaniach SaaS.

    Mimo że aprowizowana przepływność wymaga z wyprzedzeniem przydzielenia zasobów, usługi takie jak Azure Cosmos DB zapewniają przepływność skalowania automatycznego. Reguły dynamicznego dodawania lub usuwania zasobów można ustawić na podstawie określonych wyzwalaczy.

    Modele zasobów bezserwerowych są automatycznie skalowane na podstawie zapotrzebowania. Ta funkcja sprawia, że są one dobrym punktem wyjścia, jeśli nie można przewidzieć wymagań dotyczących pojemności przed upływem czasu. Mogą one jednak obsługiwać mniej funkcji i stać się nieefektywne w miarę zwiększania się kosztów. Modele bezserwerowe są dostępne w usługach Azure SQL Database i Azure Cosmos DB.

Zalecenia dotyczące projektowania

Zalecenie Korzyści
Modelowanie wymagań bazy danych dla każdego klienta. Ustal, czy należy mieć wiele małych baz danych, mniej dużych baz danych, czy kombinację tych dwóch baz danych.

Użyj t-shirtowego ćwiczenia do określania rozmiaru, aby podzielić klientów na małe, średnie i duże zasobniki.
Takie podejście zapewnia przybliżone oszacowanie zasobów potrzebnych dla klienta i ułatwia mapowanie klientów na model rozliczeń.
Segmentuj pule zasobów na podstawie rozmiaru baz danych klientów, które ich używają.

Korzystaj z aprowizowanej pojemności. Można na przykład utworzyć udostępnioną elastyczną pulę SQL dla mniejszych klientów, oddzielną pulę dla średnich klientów i dedykowane zasoby dla dużych klientów.
Segmentując pule zasobów na podstawie rozmiaru bazy danych klientów, można zoptymalizować alokację zasobów i efektywność kosztową.
Skorzystaj z wbudowanych funkcji skalowania oferowanych przez usługi zarządzane. Możesz odciążyć obowiązki związane ze skalowaniem na platformę. Funkcje, takie jak pule elastyczne i autoskalowanie, mogą pomóc w optymalizacji użycia zasobów.
Regularnie sprawdzaj bezserwerowe magazyny danych, aby upewnić się, że nadal spełniają Twoje potrzeby. Możesz mieć pewność, że magazyn danych będzie skuteczny wraz ze zmieniającymi się potrzebami. Optymalizowanie wydajności i wydajności w miarę zmiany wymagań.

Wysoka dostępność i odzyskiwanie po awarii

Klienci rozwiązań SaaS często mają wysokie oczekiwania dotyczące wysokiej dostępności i odzyskiwania po awarii (DR). Jeśli klienci działają w branżach regulowanych lub polegają na rozwiązaniu do codziennych operacji, ich wymagania mogą być jeszcze bardziej rygorystyczne.

Wysoka dostępność i odzyskiwanie po awarii nie są jednowymiarowe rozwiązania i zależą od różnych czynników. Jasne zrozumienie dostępnych opcji, które mają zastosowanie zarówno do Ciebie, jak i wymagań klientów w celu podejmowania świadomych decyzji dotyczących ograniczania różnych zagrożeń.

Kompromis: niezawodność, koszty i wydajność: Odporność usług danych często wymaga dystrybucji replik lub kopii danych w szerszym obszarze geograficznym w celu ograniczenia ryzyka. Istnieją jednak kompromisy. Tym większa odległość, jaką dane muszą podróżować, tym większa ochrona przed zlokalizowanymi awariami. Jednak kopiowanie danych na dłuższych dystansach zwiększa opóźnienie i często kosztuje więcej. Wiele zarządzanych magazynów danych zapewnia automatyczną replikację danych, ale mogą nakładać limity na typy replikacji, które można wykonywać na różnych dystansach w celu utrzymania wydajności.

Uwagi dotyczące projektowania

  • Kwantyfikują odporność. Mierzenie wymagań dotyczących odporności przy użyciu celów poziomu usług (SLO), które obejmują metryki, takie jak czas pracy, czas odzyskiwania i punkt odzyskiwania. Te metryki są oparte zarówno na wymaganiach biznesowych, jak i klientach, którzy mogą mieć różne potrzeby. Jeśli przechowujesz duże ilości danych w imieniu klientów, rozwiązanie wysokiej dostępności i odzyskiwania po awarii może być bardziej złożone, aby spełnić rygorystyczne wymagania.

    Aby uzyskać więcej informacji na temat metryk odporności, zobacz RE:04 Zalecenia dotyczące definiowania celów niezawodności.

  • Korzystanie z funkcji platformy. Platforma Azure zapewnia możliwości odporności w centrum danych, w regionie przy użyciu stref dostępności i w szerszym obszarze geograficznym przy użyciu wielu regionów. Połącz strategie, takie jak strefy dostępności, tworzenie kopii zapasowych między regionami i wdrożenia w wielu regionach, aby osiągnąć odpowiedni poziom odporności rozwiązania. W przypadku wymagań dotyczących wysokiej odporności należy rozważyć architekturę wieloregionową, pasywną z asynchroniczną replikacją danych między regionami. Takie podejście może spowodować utratę danych podczas katastrofalnego przestoju.

    Kompromis: Wieloregionowe, aktywne-aktywne projekty z replikacją są najbardziej odporne, ale są złożone do kompilowania i testowania. W przypadku najbardziej aktywnych rozwiązań należy zaprojektować podejście do rozwiązywania konfliktów, które odpowiada za opóźnienia synchronizacji danych. Większość rozwiązań nie potrzebuje tego stopnia odporności.

    Zapoznaj się z tematem RE:05 Recommendations for using availability zones and regions (Zalecenia dotyczące używania stref dostępności i regionów).

  • Użyj sygnatur wdrażania, aby odizolować promień wybuchu składników. Wzorzec sygnatur wdrażania jest powszechnie używany w rozwiązaniach SaaS, ponieważ zapewnia korzyści związane z wdrażaniem, zarządzaniem, wydajnością i odpornością. Na przykład wdrożenie jednej sygnatury w Stany Zjednoczone i innej sygnatury w Europie gwarantuje, że klienci w jednym regionie są odizolowani od awarii w innym regionie i mogą działać niezależnie.

Zalecenia dotyczące projektowania

Zalecenie Korzyści
Skoncentruj się na wymaganiach dotyczących odporności podczas myślenia o ogólnych wymaganiach dotyczących danych dla Twoich i Twoich klientów. Uziemiając decyzje projektowe w tych wymaganiach, możesz upewnić się, że wykonasz odpowiednie kompromisy i uniknąć niedostatecznej lub nadmiernej inżynierii dla Twoich potrzeb.
Odzwierciedlanie różnych poziomów odporności w modelu rozliczeniowym.

Określ oczekiwania klientów. Zerowa utrata danych podczas katastroficznych przestojów lub 100% czasu pracy może być nierealna.
Modele rozliczeń mogą pomóc klientom zrozumieć, w jakim stopniu gwarantowana odporność rejestruje się. Na przykład w przypadku niższej warstwy klienci uzyskują minimalne gwarancje. W wyższej warstwie klienci otrzymują większą odporność, ponieważ można sobie pozwolić na replikowanie swoich zasobów w wielu regionach.
Użyj stref dostępności platformy Azure dla rozwiązań produkcyjnych. Jeśli to możliwe, użyj strefowo nadmiarowych magazynów danych. Strefy dostępności zapewniają odporność na awarie centrum danych bez znacznego zwiększenia kosztów, opóźnień lub złożoności rozwiązania.
Zachowaj kopie zapasowe magazynów danych w formacie globalnie nadmiarowym przy użyciu replikacji między regionami, jeśli są dostępne. Kopie zapasowe danych między regionami dodają dodatkowy poziom odporności.
Użyj sygnatur wdrażania, aby utworzyć oddzielne wystąpienia rozwiązania w lokalizacjach rozproszonych geograficznie. Za pomocą sygnatur wdrażania do tworzenia oddzielnych wystąpień rozwiązania w lokalizacjach rozproszonych geograficznie można zwiększyć odporność i zapewnić więcej korzyści, takich jak łatwiejsze zarządzanie operacjami.
Oceń, czy potrzebujesz wdrożenia w wielu regionach i jeśli potrzebujesz projektu aktywne-aktywne, aby spełnić wymagania.

Weź pod uwagę kompromisy, które są zaangażowane. Składniki bezstanowe są łatwiejsze do replikacji niż składniki stanowe, takie jak magazyn danych.
Rozłożenie rozwiązania lub sygnatur między regionami zapewnia wyższy poziom odporności przez replikowanie danych między regionami.

Zabezpieczenia i zgodność

Odpowiadasz za zapewnienie poufności i integralności danych klientów. Podczas tworzenia punktu odniesienia zabezpieczeń należy wziąć pod uwagę wymagania dotyczące zabezpieczeń i obietnice. Zaplanuj spełnienie wymagań dotyczących zgodności klientów, w tym przechowywanie danych.

Uwagi dotyczące projektowania

  • Sieć: rozważ, kto będzie uzyskiwać dostęp do magazynu danych. Zazwyczaj tylko aplikacja wymaga bezpośredniej komunikacji, więc skonfiguruj ją pod kątem sieci tylko prywatnych.

  • Tożsamość: rozważ sposób uzyskiwania dostępu do magazynów danych. Wiele rozwiązań SaaS używa jednej tożsamości aplikacji dla wszystkich magazynów danych, a warstwa aplikacji wymusza izolację i autoryzację. W przypadku zabezpieczeń na poziomie wiersza lub autoryzacji na poziomie bazy danych może być konieczne propagowanie tożsamości użytkownika do magazynu danych, który jest złożony w środowisku wielodostępnym.

  • Przechowywanie danych: zaplanuj zasady przechowywania danych z wyprzedzeniem. Utrzymywanie większej ilości danych zwiększa koszty magazynowania i złożoność zarządzania. Na przykład duże ilości danych w transakcyjnej bazie danych mogą komplikować wykonywanie zapytań i obcinanie procesów.

    W przypadku długoterminowego przechowywania danych, takiego jak zgodność lub przyszłe analizy, rozważ przeniesienie danych do magazynu, który jest odpowiedni do długoterminowego przechowywania.

Zalecenia dotyczące projektowania

Zalecenie Korzyści
Skonfiguruj magazyny danych, aby korzystały z prywatnych punktów końcowych i wyłączały publiczne punkty końcowe. Takie podejście zwiększa bezpieczeństwo, ograniczając dostęp do sieci wewnętrznej. Ograniczając dostęp, można zmniejszyć ryzyko nieautoryzowanego dostępu i potencjalnych naruszeń danych.
Użyj tożsamości zarządzanych i identyfikatora Entra firmy Microsoft do uwierzytelniania. Unikaj używania kluczy bazy danych lub poświadczeń. Tożsamości zarządzane eliminują potrzebę posiadania kluczy bazy danych lub poświadczeń, co zmniejsza ryzyko kradzieży poświadczeń i upraszcza zarządzanie dostępem.
Podczas pracy z udostępnionymi magazynami danych upewnij się, że aplikacja obejmuje wszystkie żądania do jednej dzierżawy, uwzględniając identyfikator dzierżawy w WHERE klauzulach. Ten proces pomaga ograniczyć ryzyko wycieku danych między dzierżawami lub personifikacji.
Zaplanuj strategię przechowywania danych na podstawie zgodności i potrzeb biznesowych. Unikaj przechowywania niepotrzebnych danych historycznych. W przypadku długoterminowego przechowywania przenieś dane z magazynów podstawowych do magazynu archiwalnego. Unikając niepotrzebnego przechowywania, utrzymujesz mniejszy obszar powierzchni.
Korzystanie z funkcji magazynu danych w celu obsługi potrzeb związanych z cyklem życia danych.

W usłudze Azure Cosmos DB ustaw czas wygaśnięcia dokumentów. W usłudze Azure SQL zaimplementuj strategię okna przewijania przy użyciu partycjonowania tabeli, aby zminimalizować wpływ procesu archiwizacji na bazę danych.
Te podejścia zapewniają efektywne zarządzanie cyklem życia danych, optymalizowanie magazynu przez archiwizowanie lub usuwanie nieaktualnych danych oraz zmniejszanie interwencji ręcznej, gdy jest to możliwe.

Operacje

Rozwiązania SaaS często obejmują dużą liczbę baz danych lub innych magazynów. Ważne jest, aby zaplanować rutynową konserwację floty i zapoznać się z opcjami automatyzacji, aby efektywnie zarządzać tymi zadaniami.

Uwagi dotyczące projektowania

  • Poznaj możliwości twojego zespołu. Jeśli nie masz dużych zespołów administratorów baz danych, którzy mogą wykonywać szczegółowe analizy baz danych poszczególnych klientów, należy zaplanować wykonywanie operacji na dużą skalę i używać narzędzi platformy, jeśli to możliwe.

  • Zaplanuj regularne procedury konserwacji. Podaj listę regularnych operacji konserwacji i ich częstotliwość. Określone operacje różnią się w zależności od typu używanego magazynu danych. Na przykład:

    • Monitoruj łączną ilość danych i danych znajdujących się w określonych jednostkach, takich jak ważne tabele.
    • Ponownie skompiluj indeksy.
    • Tworzenie lub usuwanie indeksów na podstawie zmieniających się wzorców zapytań.
    • Ponowne równoważenie partycji.

    Zapoznaj się z funkcjami platformy, które mogą pomóc w regularnej konserwacji i proaktywnym poszukiwaniu nowych problemów. Na przykład usługa SQL Database Advisor w usłudze Azure SQL Database monitoruje problemy.

  • Projektowanie pod kątem automatyzacji. Zautomatyzowane operacje są niezbędne do efektywnego skalowania rozwiązania SaaS. Identyfikowanie regularnych i okazjonalnych zadań oraz tworzenie podręczników lub skryptów automatyzacji dla nich. W przypadku zadań, których nie można natychmiast zautomatyzować, dokładnie udokumentowaj procesy, aby zapewnić spójność i przejrzystość.

Zalecenia dotyczące projektowania

Zalecenie Korzyści
Staraj się zapewnić spójność między magazynami danych klientów, jeśli jest to możliwe.

Jeśli klient wymaga specjalnych zakwaterowania, zintegruj je z ogólnym procesem, zamiast dostosowywać konfigurację dla tego klienta. Na przykład użyj tego samego schematu dla każdej bazy danych i użyj tych samych procesów, aby wdrożyć zasoby i zarządzać nimi.
Spójność ułatwia wprowadzanie zmian na dużą skalę i minimalizuje ryzyko przypadkowych problemów podczas wdrożeń lub procedur konserwacji.
Uważnie wdrażaj ograniczone zasoby i szukaj możliwości usprawnienia operacji. Można uniknąć małych wydajności i mieć lepsze wykorzystanie zasobów i ogólną wydajność.
Tworzenie automatyzacji dla powtarzających się zadań. Wybierz zakup zautomatyzowanych narzędzi zamiast tworzenia niestandardowego rozwiązania.

Zapoznaj się z opcjami zapewnianych przez platformę i dostawców innych niż Microsoft.
Inwestując w automatyzację jakości, można wielokrotnie używać tych zasobów i zmniejszać zadania ręczne, które często są podatne na błędy. Zautomatyzowane narzędzia są przydatne, jeśli nie jesteś ekspertem w magazynie danych, którego używasz, lub jeśli nie masz pewności co do niezbędnych zadań konserwacji.
Starannie wdróż pojemność administracyjną bazy danych twojego zespołu. Zarezerwuj administratorów ludzkiej bazy danych w celu uzyskania najbardziej wpływowych działań, takich jak radzenie sobie z dużymi klientami lub automatyzacja tworzenia, która może być skalowana w wielu klientach. Ustalając priorytety cennych funkcji, można zmaksymalizować wydajność.

Dostęp klienta do danych

Niektórzy klienci mogą zażądać bezpośredniego dostępu do swoich danych na potrzeby niestandardowych raportów lub analiz. Dokładnie zastanów się, jak klienci mogą uzyskiwać dostęp do danych w rozwiązaniu i czy udzielić tych żądań lub zapewnić alternatywne metody spełniające ich potrzeby.

Uwagi dotyczące projektowania

  • Uzasadniaj przyczyny bezpośredniego dostępu. Dowiedz się, dlaczego klienci potrzebują dostępu do danych pierwotnych, uzyskując informacje o problemie biznesowym. Współpracuj, aby znaleźć rozwiązanie spełniające ich potrzeby bez wprowadzania zagrożeń na platformę.

    Znajdź alternatywne sposoby spełnienia wymagań, zamiast udzielać bezpośredniego dostępu. Jeśli do celów raportowania potrzebny jest dostęp, preferowane są metody warstwy aplikacji. Możesz na przykład tworzyć raporty dla nich przy użyciu usługi Microsoft Power BI lub wyeksportować podzbiór danych do pliku, który mu podasz. Możesz również utworzyć interfejsy API, których mogą używać do uzyskiwania dostępu do danych.

  • Oceń implikacje dotyczące zabezpieczeń i izolacji. Zapewnienie bezpośredniego dostępu do magazynu danych stanowi znaczne zagrożenie bezpieczeństwa. Unikaj ujawniania zasobów wewnętrznych stronom zewnętrznym, w tym klientom. W środowisku SaaS, które ma wielu klientów współużytkujących rozwiązanie, ryzyko jest jeszcze wyższe, ponieważ środowisko może zostać wykorzystane w celu uzyskania dostępu do danych innych klientów.

    Rozważ zapewnienie klientom dostępu do danych w bezpieczny, izolowany sposób, który nie wpływa na system produkcyjny, i umożliwia wprowadzanie wewnętrznych zmian projektu bazy danych bez przerywania zapytań klientów.

  • Rozważ wpływ na wydajność. Zezwolenie na bezpośredni dostęp do transakcyjnego magazynu danych może prowadzić do problemów z wydajnością głównej aplikacji. Na przykład klient może uruchomić zapytanie intensywnie korzystające z zasobów, które zakłóca działanie aplikacji.

Zalecenia dotyczące projektowania

Zalecenie Korzyści
Unikaj bezpośredniego udzielania dostępu do magazynów danych.

Jeśli musisz udzielić bezpośredniego dostępu, zapewnij dostęp do repliki tylko do odczytu, jeśli platforma danych ją obsługuje.
Metody warstwy aplikacji zapewniają kontrolę nad sposobem używania danych przez klientów. Jeśli nie można utworzyć konstrukcji warstwy aplikacji, dostęp za pośrednictwem replik tylko do odczytu zmniejsza obciążenie zapytań klienta dotyczących operacji.
Unikaj uwidaczniania szczegółów implementacji wewnętrznej. Kontrolując dostęp do struktur danych, można uniemożliwić klientom wprowadzanie założeń dotyczących funkcjonalności schematu bazy danych. Ta elastyczność umożliwia rozwijanie i optymalizowanie struktury bazy danych w czasie bez ograniczeń narzędzi utworzonych przez klienta lub niedokładnych założeń.

Dodatkowe zasoby

Multitenancy to podstawowa metodologia biznesowa projektowania obciążeń SaaS. Te artykuły zawierają więcej informacji na temat zagadnień dotyczących projektowania danych:

Następny krok

Dowiedz się więcej na temat zagadnień związanych z usługą DevOps dotyczących obciążeń SaaS, w tym efektywnego zarządzania cyklem życia klienta i bezpiecznych praktyk wdrażania.