Zachowaj prostotę
Unikaj nadmiernego projektowania architektury, kodu aplikacji i operacji. |
---|
Często jest to to, co usuwasz, a nie to, co dodajesz, prowadzi do najbardziej niezawodnych rozwiązań. Prostota zmniejsza obszar powierzchni do sterowania, minimalizując nieefektywność i potencjalne błędy konfiguracji lub nieoczekiwane interakcje. Z drugiej strony oversimplification może wprowadzić pojedyncze punkty awarii. Zachowaj zrównoważone podejście.
Przykładowy scenariusz
Firma Contoso Travel kupuje i integruje małą firmę startupową z popularną internetową aplikacją turystyczną. Popularność aplikacji wynika z modelu biznesowego negocjowania głębokich rabatów z sieciami hotelowymi i liniami lotniczymi, a także korzystanie z mediów społecznościowych do wykonywania intensywnych i wysoce ukierunkowanych kampanii marketingowych.
Istniejąca wersja produktu startowego została opracowana w środowisku nodejs i działa na maszynach wirtualnych hostowanych między lokalnym centrum danych i platformą AWS.
Minimalizowanie składników obciążenia
Dodaj składniki do architektury tylko wtedy, gdy ułatwiają one osiągnięcie docelowych wartości biznesowych. Zachowaj chylenie ścieżki krytycznej.
Projektowanie pod kątem wymagań biznesowych może prowadzić do prostego rozwiązania, które jest łatwe do zaimplementowania i zarządzania. Unikaj zbyt wielu składników krytycznych, ponieważ każdy z nich jest istotnym punktem awarii.
Wyzwanie firmy Contoso
- Jeden ze składników nowo nabytej aplikacji ułatwia zbieranie opinii od użytkowników bezpośrednio w witrynie internetowej po dokonaniu rezerwacji. Ta funkcja jest rzadko używana, ponieważ większość użytkowników po prostu je pomija. Istnieje silny mechanizm pętli sprzężenia zwrotnego od użytkowników, który działa za pośrednictwem kont mediów społecznościowych firmy, który jest mocno używany do interakcji z użytkownikami marketingu. Ten mechanizm jest używany znacznie częściej niż funkcja opinii witryny internetowej.
Stosowanie podejścia i wyników
- W ramach początkowej wersji aplikacji marki Contoso Travel zespół decyduje się usunąć składnik opinii witryny internetowej obciążenia.
- Mniejsza baza kodu obniża koszty konserwacji i operacji. W tym przypadku nie ma to wpływu na wymagania biznesowe.
Standaryzacja cyklu życia tworzenia oprogramowania
Ustanów standardy implementacji kodu, wdrażania i procesów oraz dokumentuj je. Identyfikowanie możliwości wymuszania tych standardów przy użyciu zautomatyzowanych walidacji.
Standardy zapewniają spójność i minimalizują błędy ludzkie. Metody, takie jak standardowe konwencje nazewnictwa i przewodniki dotyczące stylu kodu, mogą pomóc w utrzymaniu jakości i ułatwieniu identyfikacji zasobów podczas rozwiązywania problemów.
Wyzwanie firmy Contoso
- Zespół programistyczny od startupu nie ma zdefiniowanych wielu standardów tworzenia i przetwarzania. Istnieje wiele bibliotek używanych, które nakładają się na funkcje, style kodowania nie są wymuszane, a potoki wydań nie mają formalnych bram wydania korzystających z testów automatycznych.
- Zespół roboczy firmy Contoso zdaje sobie sprawę, że koszt konserwacji nowej bazy kodu jest zbyt wysoki ze względu na brak spójności w stylach oraz niespójne użycie bibliotek i wzorców projektowych.
- Często występują zdarzenia po głównych aktualizacjach w środowisku produkcyjnym, czasami wymagają wycofania aktualizacji lub poprawek na gorąco w połowie wdrożenia. Częstotliwość tych typów problemów z wdrażaniem wymusza, aby zespół korzystał z modelu pomocy technicznej typu "wszystko praktyczne" podczas wydawania aktualizacji do środowiska produkcyjnego. Co gorsza, częste problemy mają negatywny wpływ na reputację firmy Contoso dzięki słabemu środowisku użytkownika.
Stosowanie podejścia i wyników
- Zespół przejmuje obsługę nowej aplikacji, starając się osiągnąć większą spójność, wymuszając style kodowania, standaryzację wspólnego zestawu bibliotek i wzorców projektowych oraz sformalizowanie korzystania z bram wydań na podstawie testów automatycznych.
- Podczas wdrażania tych zmian zespół ds. obciążeń przestrzega standardowych wymagań dokumentacji. Wszystkie nowe narzędzia, wzorce projektowe i przyjęte style są dokładnie udokumentowane, dzięki czemu zespół może lepiej zrozumieć i utrzymać obciążenie w przyszłości. Zespół może teraz łatwiej zidentyfikować odchylenia w standardach podczas przeprowadzania przeglądów kodu.
Minimalizowanie obciążeń związanych z operacjami i programowaniem
Korzystaj z funkcji udostępnianych przez platformę i wstępnie utworzonych zasobów, które mogą pomóc w efektywnym spełnianiu celów biznesowych.
Takie podejście minimalizuje czas programowania. Umożliwia również poleganie na wypróbowanych i przetestowanych rozwiązaniach, które zostały użyte z podobnymi obciążeniami.
Wyzwanie firmy Contoso
- W przypadku początkowej wersji w ramach znakowania Contoso Travel rozwiązanie nodejs zostanie zmigrowane z maszyn wirtualnych do usługi App Services, aby skorzystać z wielu natywnych funkcji niezawodności oferowanych przez usługę.
- Wersja wdrożona na maszynach wirtualnych zawiera znaczną ilość niestandardowego kodu potrzebnego do instrumentacji.
Stosowanie podejścia i wyników
- Podczas początkowej migracji do usługi App Services zespół mógł usunąć cały niestandardowy kod instrumentacji, implementując autoinstrumentację usługi App Szczegółowe informacje w usługach App Services.
- Zespół może również korzystać z kilku innych natywnych funkcji usługi App Service, takich jak skalowanie automatyczne, integracja z usługą Key Vault i nadmiarowość strefowa.