Projektowanie pod kątem optymalizacji użycia
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 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.