Håll det enkelt
Undvik att överengineera arkitekturdesign, programkod och åtgärder. |
---|
Det är ofta det du tar bort i stället för det du lägger till som leder till de mest tillförlitliga lösningarna. Enkelhet minskar ytan för kontroll, vilket minimerar ineffektivitet och potentiella felkonfigurationer eller oväntade interaktioner. Å andra sidan kan översimplifiering införa enskilda felpunkter. Upprätthålla en balanserad metod.
Exempelscenario
Contoso Travel köper och integrerar ett litet startup-företag med en populär webbaserad reseapp. Appens popularitet beror på dess affärsmodell att förhandla om djupa rabatter med hotellkedjor och flygbolag, och användningen av sociala medier för att göra intensiva och mycket riktade marknadsföringskampanjer.
Den befintliga versionen av startprodukten utvecklades i nodejs och körs på virtuella datorer som finns mellan det lokala datacentret och AWS.
Minimera arbetsbelastningskomponenterna
Lägg bara till komponenter i din arkitektur om de hjälper dig att uppnå affärsvärden. Håll den kritiska vägen mager.
Design för affärskrav kan leda till en enkel lösning som är enkel att implementera och hantera. Undvik att ha för många kritiska komponenter eftersom var och en är en viktig felpunkt.
Contosos utmaning
- En av komponenterna i det nyligen förvärvade programmet underlättar insamling av feedback från användarna direkt på webbplatsen efter att de har gjort en reservation. Funktionen används sällan eftersom de flesta användare bara hoppar över den. Det finns en stark mekanism för feedbackslinga från användare som arbetar via företagets konton för sociala medier, som används starkt för marknadsföring av användarinteraktion. Den här mekanismen används betydligt oftare än webbplatsens feedbackfunktion.
Tillämpa metoden och resultaten
- Som en del av den första versionen av den Contoso Travel-märkta versionen av appen bestämmer sig teamet för att ta bort webbplatsens feedbackkomponent i arbetsbelastningen.
- En mindre kodbas sänker kostnaderna för underhåll och åtgärder. Och i det här fallet påverkas inte affärskraven.
Standardisera livscykeln för programvaruutveckling
Upprätta standarder i kodimplementering, distribution och processer och dokumentera dem. Identifiera möjligheter att tillämpa dessa standarder med hjälp av automatiserade valideringar.
Standarder ger konsekvens och minimerar mänskliga fel. Metoder som standardnamngivningskonventioner och kodformatguider kan hjälpa dig att upprätthålla kvalitet och göra tillgångar enkla att identifiera under felsökningen.
Contosos utmaning
- Utvecklingsteamet från starten har inte definierat många utvecklings- och processstandarder. Det finns ett antal bibliotek som används som överlappar i funktioner, kodningsformat tillämpas inte och versionspipelines saknar formella versionsgrindar som använder automatiserad testning.
- Contosos arbetsbelastningsteam inser att kostnaden för underhåll av den nya kodbasen är för hög på grund av bristen på konsekvens i format och inkonsekventa användningsbibliotek och designmönster.
- Det finns ofta förekommande incidenter efter större uppdateringar i produktionen, som ibland kräver återställningar av uppdateringarna eller snabbkorrigeringar i mitten av distributionen. Frekvensen för dessa typer av distributionsproblem tvingar teamet att använda en all-hands-on-deck-supportmodell när de släpper uppdateringar till produktion. För att göra saken värre påverkar de vanliga problemen Contosos rykte negativt genom en dålig användarupplevelse.
Tillämpa metoden och resultaten
- Teamet som tar över stödet för den nya appen gör ett försök att uppnå större konsekvens genom att framtvinga kodningsformat, standardisera på en gemensam uppsättning bibliotek och designmönster och formalisera användningen av versionsgrindar baserat på automatiserade tester.
- Medan dessa ändringar implementeras följer arbetsbelastningsteamet sina standarddokumentationskrav. Alla nya verktyg, designmönster och format som används dokumenteras noggrant, vilket gör det möjligt för teamet att förstå och underhålla arbetsbelastningen mer effektivt framöver. Teamet kan nu enklare identifiera avvikelser i standarderna när de utför kodgranskningar.
Minimera driften och utvecklingsbördan
Dra nytta av funktioner som tillhandahålls av plattformen och fördefinierade tillgångar som kan hjälpa dig att effektivt uppfylla affärsmålen.
Den här metoden minimerar utvecklingstiden. Du kan också förlita dig på beprövade metoder som har använts med liknande arbetsbelastningar.
Contosos utmaning
- För den första versionen under Contoso Travel-varumärkesanpassningen migreras nodejs-lösningen från virtuella datorer till App Services för att dra nytta av de många inbyggda tillförlitlighetsfunktioner som tjänsten tillhandahåller.
- Den version som distribueras på virtuella datorer innehåller en betydande mängd anpassad kod som behövs för instrumentation.
Tillämpa metoden och resultaten
- Under den första migreringen till App Services kunde teamet ta bort all anpassad instrumentationskod genom att implementera Automatisk instrumentering av App Insights i App Services.
- Teamet kan också dra nytta av flera andra inbyggda App Service-funktioner som autoskalning, Key Vault-integrering och zonredundans.