Facebook Twitter
alltechbites.com

Skalbarhetstest: 7 Steg Mot Framgång

Publicerat på Juli 5, 2022 av Grant Tafreshi

System som fungerar mycket bra under utvecklingen, distribuerade i en liten skala, kan försumma att uppfylla prestationsmålen när utplaceringen skalas runt stöd för verkliga grader av användning.

Ett appositerat exemploriskt fall av detta härstammar från ett betydande blått chipföretag som nyligen outsourcade utvecklingen av en framåt tänkande högteknologiplattform. Även om utvecklingen låg bakom schemat anses detta vara acceptabelt. Maskinen passerade gradvis genom funktionella komponenter i en individuell godkännandeprovning och slutligen verkade det som om ett distributionsdatum eventuellt kunde ställas in. Men leverantören startade lasttestning och skalbarhetstest. Därefter följde en utökad och kostsam mängd arkitektoniska förändringar och förändringar i maskinkraven. Leverantören kämpade heroiskt för att leverera ett tillfredsställande system, tills projektet slutligen var mal.

Detta är inte ett isolerat fall. Det folklore finns i överflöd med liknande berättelser. Från ambulansdispisningssystem till webbplatser för elektronisk inlämnande av beskattningsförklaringar misslyckas system eftersom de skalar och upplever toppkrav. Alla dessa projekt verkar aldrig ha identifierat och beställt de stora riskerna de stod inför. Detta kan vara ett grundläggande stadium av riskbaserad testning och gäller lika för skalbarhetstestning eller belastningstestning eftersom det gör för funktionalitetstestning eller kontinuitetstestning. Utan riskbedömning erkände de inte att skalningen var mellan de största riskerna, mycket mer för att leverera all funktionalitet

Nya trender mot serviceorienterad arkitektur (SOA) försöker ta itu med problemet med skalbarhet men introducerar dessutom nya problem. Att integrera externt tillhandahållna tjänster i din nuvarande lösning innebär att din förmåga att skala nu är beroende av att dessa externa system fungerar under belastning. Att säkerställa att detta kan vara en krävande uppgift och tyvärr är töjningstestning och stresstestning här ofta förbises.

Bättre praxis skulle vara att starta utvecklingen av ett stort programvarusystem med hjälp av dess prestanda tydligt i hjärtat, särskilt skalbarhetstest, volymtestning och lasttestning. För att generera detta prestationstestfokus:

  • Forskning och kvantifiera informationsvolymer och transaktionsvolymer som marknadsmarknaden innebär. Några av dessa siffror kan vara ögonöppnare och hjälpa affärsföretagens användare att förverkliga hela maskinens skala. Enbart detta kan resultera i omprövning av prioriteringen av flera funktioner.
  • Bestäm hur funktioner eventuellt kan presenteras för användare och maskinen strukturerad för att underlätta skalningen av maskinen. Försök vanligtvis inte att ha exakt samma funktionalitet som du har för en enskild användarens skrivbordslösning erbjuder ett lämpligt skalbart alternativ.
  • Erkänna ett inneboende område i utvecklingsprocessen är lasttestning i representativ skala på varje inkrementell mjukvaruutgåva. Det är kontinuerligt tester som koncentrerar sig på den största risken för projektet: möjligheten att arbeta i full skala.
  • Se till att lasttestning är tillräcklig både inom omfattning och rigoritet. Lasttestning handlar inte bara om att mäta responstider med ett prestandatest. Stamtestningsprogrammet måste innehålla andra stilar av belastningstest inklusive stresstest, tillförlitlighetstest och uthållighetstest.
  • Glöm inte att misslyckanden kommer att inträffa. Stora system inkluderar i allmänhet serverkluster med misslyckande beteende. Misslyckande testning, testning av fel och återhämtning som slutförts på representativa skalesystem som arbetar under belastning borde inkluderas.
  • Glöm inte att katastrofalt fel kan uppstå. För stora problem med stora skala bör katastroftestning och testning av katastrofåterhämtning slutföras i representativ skala och belastningar. Dessa aktiviteter kan ses som de tekniska skikten av testning av företagskontinuitet.
  • Känna igen externa tjänster om du använder dem. Vad din plats antar en SOA -strategi och så påverkas du av externa tjänster bör du vara säker på att genomströmningen och vändtiden på dessa tjänster kommer att förbli acceptabelt när ens kroppsskalor och dess egna krav ökar. En bra systemarkitektur inkluderar ett graciöst svar och nedgångsoperation om det externa serviceteendet försämras eller misslyckas.
  • .