Projektowanie pod kątem optymalizacji użycia

Ukończone
Maksymalizuj wykorzystanie zasobów i operacji. Zastosuj je do wynegocjowanych wymagań funkcjonalnych i niefunkcjonalnych rozwiązania.

Usługi i oferty zapewniają różne możliwości i warstwy cenowe. Po zakupie zestawu funkcji należy unikać niedostatecznego korzystania z nich. Znajdź sposoby zmaksymalizowania inwestycji w warstwie. Podobnie ciągła ocena modeli rozliczeń w celu znalezienia tych, które lepiej pasują do użycia, na podstawie bieżących obciążeń produkcyjnych.

Przykładowy scenariusz

Contoso University obecnie hostuje komercyjne rozwiązanie poza półki (COTS), które umożliwia wydziałowi uniwersyteckiemu tworzenie i aktualizowanie kursów na rok szkolny i jest podstawowym portalem rejestracji używanym przez studentów na potrzeby tych kursów. Rozwiązanie ma niestandardową integrację z systemem zarządzania edukacja typu oprogramowanie jako usługa (SaaS), do którego mają nadzieję w końcu zmigrować wszystkie swoje funkcje w ciągu kilku lat. W międzyczasie chcą zoptymalizować koszty niestandardowych składników integracji.

Rozwiązanie technologiczne oferty COTS jest zwykle traktowane jak czarna skrzynka, z wyjątkiem bazy danych, która jest usługą Azure Database for MySQL. Integracja niestandardowa to funkcja Durable Platformy Azure, która jest uruchamiana zgodnie z planem usługi w warstwie Standardowa w usłudze aplikacja systemu Azure Service. Ta usługa App Service wcześniej hostuje witrynę internetową uniwersytetu, ale tak już nie jest. Ta trwała funkcja to aplikacja w języku Python wspierana przez dedykowane konto usługi Azure Storage, które przeprowadza nocną synchronizację z bazy danych MySQL z interfejsem API SaaS.

Korzystanie z cen opartych na użyciu, gdy jest to praktyczne

Mogą istnieć usługi, które oferują ceny oparte na użyciu, co oznacza, że opłaty są naliczane tylko za użycie usługi i można zamknąć usługę, gdy nie jest konieczne, aby przestać ponosić koszty. Jeśli masz składniki obciążenia, które są używane tylko sporadycznie, może to pomóc zminimalizować straty kosztów w porównaniu do płacenia za składnik do uruchomienia 24/7/365.

Korzystając z cen opartych na użyciu, płacisz tylko za dokładnie to, czego używasz. Ta opcja jest dobrym wyborem, gdy obliczenia obciążenia nie powinny być używane w pełnym wymiarze czasu pracy.

Wyzwanie firmy Contoso

  • Zadanie synchronizacji zwykle jest uruchamiane przez około godzinę każdej nocy, o określonej godzinie. Wyniki były historycznie zadowalające. Awarie są rzadkie, a błędy przejściowe są obsługiwane dobrze w bieżącej konfiguracji.
  • Ponieważ zasoby obliczeniowe potrzebne do wykonania zadania synchronizacji są wykorzystywane tylko około godziny dziennie i płacą za 24 godziny niezależnie od wykorzystania, zespół obciążenia jest zainteresowany alternatywą dla bieżącego projektu.
  • Zespół rozważył napisanie skryptu, aby zamknąć usługę każdej nocy po uruchomieniu synchronizacji i ponownie wdrożyć go następnego dnia, ale to rozwiązanie będzie miało wysoki stopień ryzyka i złożoności.

Stosowanie podejścia i wyników

  • Zespół analizuje historię zadań i stwierdzi, że najdłuższa funkcja, jaką kiedykolwiek uruchamiała, była prawie dwie godziny. Porównują koszt dedykowanego planu z kosztami planu zużycia usługi Azure Functions w najgorszym scenariuszu i doszli do wniosku, że plan zużycia będzie mniej kosztowny.
  • Zespół uruchamia test wydajnościowy, aby upewnić się, że wydajność jest wystarczająca i zauważy niewielki wzrost czasu wykonywania, ale nadal mieści się w dopuszczalnych limitach.
  • Całkowity koszt obciążenia jest zmniejszany przy użyciu planu zużycia, ponieważ generują one koszty tylko wtedy, gdy zadanie jest wykonywane.

Optymalizowanie projektu wysokiej dostępności

Określanie priorytetów wdrożenia modeli aktywny-aktywny-aktywny lub aktywny tylko dla modeli aktywny-pasywny, w ramach planu odzyskiwania, jeśli już zapłaciłeś za zasoby.

Jeśli projekt domyślnie używa modeli aktywny-pasywny, mogą istnieć bezczynne zasoby, które w przeciwnym razie mogą być używane. Konwertowanie na aktywne-aktywne może umożliwić spełnienie wymagań dotyczących bilansowania obciążenia i skalowania zwiększania skali bez nadmiernego nakładu pracy. Jeśli cele odzyskiwania można spełnić za pomocą modelu tylko aktywnego, koszty tych zasobów można całkowicie usunąć.

Wyzwanie firmy Contoso

  • Aplikacja COTS używa usługi Azure Database for MySQL — elastyczny serwer skonfigurowany pod kątem wysokiej dostępności w tej samej strefie, która zapewnia serwer rezerwowy w tej samej strefie dostępności co serwer podstawowy. Włączono również automatyczne kopie zapasowe.
  • Cel punktu odzyskiwania obciążenia jest stosunkowo długi na 12 godzin, a cel czasu odzyskiwania wynosi trzy godziny w ciągu dnia szkolnego.
  • Na podstawie poprzednich testów odzyskiwania zespół wie, że może spełnić cele celu punktu odzyskiwania i celu punktu odzyskiwania przez automatyczne przejście w tryb failover na serwer rezerwowy. Przetestowali również odzyskiwanie bazy danych z kopii zapasowej i mogą spełnić cele w tym scenariuszu.

Stosowanie podejścia i wyników

  • Zespół ds. obciążeń ponownie zszacuje korzyść z projektu wysokiej dostępności, a koszt usługi jest dwa razy większy niż pojedyncze wystąpienie.
  • Zespół testuje tworzenie nowego wystąpienia i odzyskiwanie bazy danych z kopii zapasowej i są zadowoleni, że nadal będą zgodne z celami odzyskiwania, dlatego decydują się wyeliminować wystąpienie rezerwowe.
  • Zespół aktualizuje plan odzyskiwania po awarii, aby odzwierciedlić nową strategię odzyskiwania i zrealizować oszczędności kosztów dzięki nowej konfiguracji.

Zachowaj czyste środowisko chmury z nieużywanych zasobów i danych

Regularnie i rygorystycznie przeglądaj wdrożenia dla nieużywanych zasobów i danych oraz likwiduj je. W czasie zasoby i dane, które były wymagane do pewnego celu w przeszłości, ale nie są już używane, mogą utrzymywać się w środowiskach chmury i niepotrzebnie naliczać koszty. Bądź czujny na temat utrzymywania czystych środowisk, aby pomóc w optymalizacji pod kątem wydajności kosztów.

Zamykanie nieużywanych zasobów i usuwanie danych, gdy nie są już potrzebne, zmniejsza marnotrawstwo i zwalnia fundusze, aby móc inwestować je gdzie indziej.

Wyzwanie firmy Contoso

  • Uniwersytet historycznie podjął konserwatywne podejście do likwidacji rozwiązań, obawiając się, że może być konieczne przywrócenie wcześniejszej konfiguracji. Ta ostrożność doprowadziła do porzucenia usług uruchomionych w co najmniej jednym środowisku od miesięcy, które zostały zapomniane w niektórych przypadkach.
  • Po odnalezieniu porzuconych usług zwykle dochodzi do wypadku, ponieważ nie ma formalnego procesu przeglądania środowiska dla takich usług.

Stosowanie podejścia i wyników

  • Zespół dodaje likwidowanie usługi App Service do listy prac w ramach migracji z usługi App Service do hostingu użycia funkcji Durable. W ramach następnego przebiegu zostaną one zamknięte wdrożenia usługi App Service we wszystkich środowiskach.
  • Aby pomóc w proaktywnym wykrywaniu porzuconych zasobów, zespół konfiguruje alerty w usłudze Azure Advisor w celu powiadamiania ich o nieużywanych zasobach.
  • Zespół wdraża nowe zasady, które wymagają od zespołu comiesięcznych pełnych przeglądów środowisk przedprodukcyjnego i kwartalnych pełnych przeglądów środowiska produkcyjnego w celu zidentyfikowania porzuconych zasobów. Wszystkie porzucone zasoby zostaną dodane do listy prac w celu zlikwidowania.

Sprawdź swoją wiedzę

1.

Które z nich są dostępne dla niektórych usług obliczeniowych platformy Azure, aby zaoszczędzić pieniądze, płacąc tylko za używane zasoby obliczeniowe?

2.

Które z poniższych projektów wysokiej dostępności należy unikać pod kątem efektywności ekonomicznej, jeśli już zapłaciłeś za zasoby?

3.

Jaki jest jeden ze sposobów, w jaki zespół ds. obciążeń może zapewnić, że przechwytują porzucone zasoby, takie jak serwery MySQL, które nie są już używane?