Design för drift
Designa ett program så att driftsteamet har de verktyg som behövs
Molnet har dramatiskt ändrat driftsteamets roll. Det ansvarar inte längre för hanteringen av maskinvara och infrastruktur som är värd för programmet. Men med detta sagt är driften fortfarande en kritisk del av att köra ett lyckat molnprogram. Några viktiga funktioner för driftsteamet är:
- Distribution
- Övervakning
- Eskalering
- Incidenthantering
- Säkerhetsgranskning
Robust loggning och spårning är särskilt viktigt i molnprogram. Involvera driftteamet i design och planering för att säkerställa att programmet ger dem de data och insikter de behöver för att lyckas.
Rekommendationer
Gör allt observerbart. När en lösning distribueras och körs ger loggar och spårningar de huvudsakliga inblickarna i systemet. Spårning registrerar en väg genom systemet och kan användas till att identifiera flaskhalsar, prestandaproblem och felpunkter. Loggning registrerar enskilda händelser som tillståndsändringar, fel och undantag i programmet. Logga i produktionen, annars förlorar du information just då du behöver den som mest.
Instrument för övervakning. Övervakning ger information om hur bra (eller dåligt) ett program fungerar, när det gäller tillgänglighet, prestanda och systemstatus. Till exempel berättar övervakningen om du uppfyller serviceavtalet. Övervakning sker vid normal drift av systemet. Den ska vara så nära realtid som möjligt, så att driftspersonalen kan reagera snabbt på problem. Övervakningen bör kunna hjälpa till att avstyra problem innan de leder till ett kritiskt fel. Mer information finns i Övervakning och diagnostik.
Instrument för rotorsaksanalys. Rotorsaksanalys är processen att hitta den underliggande orsaken till fel. Den sker när ett fel redan har hänt.
Använd distribuerad spårning. Använd ett distribuerat spårningssystem som är utformat för samtidighet, asynkroni och molnskala. Spårningar ska ta med ett korrelations-ID som flödar över tjänstens gränser. En enskild åtgärd kan inbegripa anrop till flera programtjänster. Om en åtgärd misslyckas hjälper korrelations-ID:t att registrera orsaken till felet.
Standardisera loggar och mått. Driftsteamet behöver sammanställa loggar från de olika tjänsterna i din lösning. Om varje tjänst använder ett eget loggningsformat blir det svårt eller omöjligt att få användbar information från dem. Definiera ett gemensamt schema som innehåller fält som korrelations-ID, händelsenamn, avsändarens IP-adress och så vidare. Enskilda tjänster kan härleda anpassade scheman som ärver basschemat och innehåller ytterligare fält.
Automatisera hanteringsuppgifter, till exempel etablering, distribution och övervakning. Automatisering av en uppgift gör den upprepningsbar och mindre känslig för mänskliga fel.
Hantera konfiguration som kod. Kontrollera konfigurationsfiler i ett versionskontrollsystem, så att du kan spåra och versionshantera dina ändringar, och återställa om det behövs.