Utforska shift-right-tester

Slutförd

Som vi förklarade tidigare i kursen är testning i programlivscykelhantering avgörande för att maximera kodkvaliteten och minimera driftrisken i samband med distribution och uppdatering av programvara. Detta är anledningen till att tillämpa shift-left-metoden som introducerar testaktiviteter så tidigt som möjligt i utvecklingsfasen. Det finns dock vissa aspekter av testning, som inte är effektiva när de utförs på det här sättet. För att fullt ut tjäna sitt syfte måste de i stället utföras i produktionsmiljön. Detta kallas för skift-höger-metoden . Organisationen i vårt exempelscenario skulle behöva använda detta för att korrekt utvärdera systemens tillförlitlighet i kombination med felinmatning. I den här lektionen ska du undersöka detta och andra kriterier där skifträttstestning är motiverat.

Vilka är orsakerna till skift-höger-testning?

Även om skift-vänster-testningen är idealisk för enhets- och röktestning utförs den under förhållanden som vanligtvis skiljer sig avsevärt från de som gäller för avsedda leveransmål. Även kvalitetssäkrings- och mellanlagringsmiljöer återspeglar sällan helt komplexiteten hos deras produktionsmotsvarigheter. I själva verket är det bästa sättet att helt undersöka beteendet för en arbetsbelastning efter distributionen att testa den vid den tidpunkten.

Testning i produktion ger följande fördelar:

  • Återspeglar de faktiska arbetsförhållandena, inklusive extra belastning som är associerad med hantering av slutanvändarbegäranden.
  • Tar hänsyn till faktorer som skulle vara svåra att simulera, till exempel anslutning till externa system.
  • Återspeglar ändringar i arbetsbelastningsefterfrågan över tid.

Vad är typiska scenarier för skift-höger-testning?

Även om skift-höger-testmetoden kan motiveras i många scenarier, finns det få i vilka den är lämplig. Dessa scenarier omfattar:

  • Distributioner av mikrotjänster: Mikrotjänstarkitekturen består vanligtvis av ett stort antal oberoende utvecklade komponenter. Ett stort antal kombinationer av dessa tjänster kan motivera skifträttstestningen för att fokusera på de scenarier som är mest relevanta i den faktiska produktionsmiljön (beroende på deras verkliga användning).

  • Utvärdera effekten av nätverksbandbredd och svarstidsvillkor: Nätverksförhållanden tenderar att vara svåra att simulera, så om en arbetsbelastnings prestanda är mycket latens eller bandbreddsberoende kan skift-höger-testning vara det lämpligaste alternativet.

  • Testning av användargodkännande: den faktiska användarens feedback kan vara nödvändig för att verifiera arbetsbelastningens prestanda och användbarhet.

  • Validering av felöveförfaranden i redundanta konfigurationer: Felinmatning och haveriberedskapstestning är avsedda att utvärdera motståndskraften hos produktionsbelastningar. Felinmatning innebär att avsiktligt införa fel i enskilda komponenter i en arbetsbelastning under körningen för att identifiera eventuella svagheter och minimera dem, vilket ökar den övergripande tillförlitligheten.

    Anmärkning

    Chaos Engineering är ett annat begrepp inom devops-tillförlitlighetstestning. Precis som med felinmatning innebär det att simulera fel (i det här fallet för att skapa ett kontrollerat kaos i systemet som testas). Dess omfång är dock vanligtvis bredare och riktar sig till hela systemet, snarare än bara dess enskilda komponenter, och dess testscenarier tenderar att vara mer omfattande. I själva verket är kaosteknik vanligtvis begränsad till kanariemiljöer som har mycket begränsad eller ingen produktionspåverkan.

    Anmärkning

    Du kan använda Azure Chaos Studio för att implementera kaostekniska experiment som riktar sig till lösningar som finns i Microsoft Azure. Du går igenom ett exempel på sådana experiment i labbet i den här modulen.