Lista kontrolna przeglądu projektu pod kątem wydajności
Artykuł
Ta lista kontrolna przedstawia zestaw zaleceń dotyczących skalowania systemu, aby można go było zwiększać i spełniać wymagania dotyczące użycia obciążeń. Celem wydajności jest utrzymanie wydajności każdej interakcji ze zdrowym systemem w miarę wzrostu zapotrzebowania. Podczas projektowania i wdrażania pod kątem wydajności skoncentruj się na wydajności i skuteczności kosztów, złożoności, wspierania nowych wymagań, długu technicznego, raportowania i trudu.
Dla każdego systemu istnieje ograniczenie do tego, ile można skalować bez przeprojektowania, wprowadzenia obejścia lub włączenia zaangażowania człowieka. Jeśli nie uwzględnisz praktyk dotyczących wydajności i rozważysz kompromisy, projekt jest potencjalnie zagrożony. Należy dokładnie rozważyć wszystkie kwestie uwzględnione na liście kontrolnej, aby zaszczepić zaufanie do sukcesu systemu.
Definiowanie celów wydajności. Cele wydajności powinny być wartościami liczbowymi powiązanymi z wymaganiami dotyczącymi obciążenia. Należy zaimplementować cele wydajności dla wszystkich przepływów obciążeń.
Przeprowadzanie planowania pojemności. Planowanie pojemności należy wykonać przed przewidywanymi zmianami wzorców użycia, takimi jak odmiany sezonowe, aktualizacje produktów, kampanie marketingowe, wydarzenia specjalne lub zmiany regulacyjne.
Wybierz odpowiednie usługi. Wybrane usługi, infrastruktura i warstwy muszą obsługiwać możliwość osiągnięcia celów wydajności obciążenia i uwzględnienia oczekiwanych zmian pojemności. Wybór powinien również ważyć korzyści wynikające z używania funkcji platformy lub tworzenia niestandardowej implementacji.
Zbieranie danych dotyczących wydajności. Składniki i przepływy obciążenia powinny zapewniać automatyczne, ciągłe i znaczące metryki oraz dzienniki. Zbieraj dane na różnych poziomach obciążenia, takich jak aplikacja, platforma, dane i poziomy systemu operacyjnego.
Optymalizowanie skalowania i partycjonowania. Uwzględnij niezawodne i kontrolowane skalowanie i partycjonowanie. Projekt jednostki skalowania obciążenia jest podstawą strategii skalowania i partycjonowania.
Testowanie wydajności. Przeprowadzaj regularne testy w środowisku, które jest zgodne ze środowiskiem produkcyjnym. Porównaj wyniki z celami wydajności i testem porównawczym wydajności.
Optymalizowanie kodu i infrastruktury. Używaj kodu, który jest wydajny, i upewnij się, że odciąża obowiązki platformy. Używaj kodu i infrastruktury tylko do celów podstawowych i tylko wtedy, gdy jest to konieczne.
Optymalizowanie zadań operacyjnych. Monitorowanie i minimalizowanie wpływu cyklu życia tworzenia oprogramowania i innych rutynowych operacji na wydajność obciążenia. Te operacje obejmują skanowanie wirusów, rotacje wpisów tajnych, kopie zapasowe, ponowne indeksowanie baz danych i wdrożenia.
Reagowanie na problemy z wydajnością na żywo. Zaplanuj sposób rozwiązywania problemów z wydajnością, uwzględniając jasne linie komunikacji i obowiązków. Gdy wystąpi problematyczna sytuacja, skorzystaj z tego, czego nauczysz się identyfikować środki zapobiegawcze i uwzględniać je w obciążeniu. Zaimplementuj metody powrotu do normalnych operacji szybciej, gdy wystąpią podobne sytuacje.
Ciągła optymalizacja wydajności. Skoncentruj się na składnikach, które pokazują pogarszającą się wydajność w czasie, takie jak bazy danych i funkcje sieciowe.
Następne kroki
Zalecamy zapoznanie się z kompromisami w zakresie wydajności, aby zapoznać się z innymi pojęciami.
Dołącz do serii meetup, aby tworzyć skalowalne rozwiązania sztucznej inteligencji oparte na rzeczywistych przypadkach użycia z innymi deweloperami i ekspertami.
Dowiedz się, jak zoptymalizować obciążenie w celu spełnienia wymagań dotyczących wydajności podczas równoważenia kosztów, niezawodności i zabezpieczeń.