Utforma programvara för en cloud native-miljö
Koppla ihop upprepningsbar infrastruktur, utbytbara processer, beständigt tillstånd och observerbart beteende. Bedöm cloud native-design bortom containerpaketering.
Publicerad av TaigaSå skriver vi
Det här lär du dig
- Skilj containerpaketering från cloud native-beteende.
- Identifiera risker för tillstånd, nya försök och utbyte i en genererad tjänst.
- Definiera ett plattformskontrakt som agenter och människor kan verifiera.
Definiera beteendet du behöver
Cloud native-metoder stöder upprepningsbar utveckling och drift i offentliga, privata och hybrida miljöer. CNCF betonar system som förblir hanterbara, observerbara och motståndskraftiga när de förändras. Containrar och orkestrering kan stödja detta. De fastställer inte alla egenskaper på egen hand.
Börja med en fiktiv rapporttjänst. Ett AI-verktyg skapar en endpoint, en worker och en containeravbildning. En demonstration skapar rätt PDF. Före produktion måste teamet besvara en annan fråga: vad händer när plattformen ersätter workern under ett jobb?
Det är en applikationsdesignfråga och en infrastrukturfråga. En omstart kan återställa processen men förlora dess ofärdiga arbete.
Skilj process från beständigt tillstånd
Prototypen sparar köade jobb och färdiga rapporter på containerns disk. Utbyte av containern kan ta bort båda. Fler workers kan också ge olika svar beroende på vem som tar emot förfrågan.
Den nya designen använder beständig jobblagring och godkänd objektlagring. En förfrågan registrerar en jobbidentitet. En worker reserverar jobbet, skapar resultatet och registrerar resultatets plats. Åtkomstkontroller gäller fortfarande när användaren laddar ned rapporten.
| Fråga | Fråga för rapporttjänsten |
|---|---|
| Tillstånd | Vilka poster måste överleva ett processbyte? |
| Konfiguration | Hur körs samma artefakt i varje miljö? |
| Identitet | Vilken tjänsteidentitet får läsa jobbet och skriva resultatet? |
| Hälsa | Kan workern ta emot arbete och slutföra det? |
| Avstängning | Vad händer med ett reserverat jobb när workern stannar? |
| Kapacitet | Vilken gräns nås först: workers, databas, lagring eller annan tjänst? |
Håll hemligheter utanför avbildningen. Tillför dem genom det godkända hemlighetssystemet. Dokumentera vilka konfigurationsändringar som kräver ny release eller processomstart.
Utforma nya försök innan du lägger till workers
Anta att workern sparar en PDF och sedan stannar före jobbekräftelsen. Kön levererar jobbet igen. Ett andra försök får inte skapa en andra kunddebitering eller skicka motstridiga färdigmeddelanden.
Använd en idempotent operation där det passar. Upprepning av samma logiska förfrågan ska bevara avsedd effekt. Definiera en stabil förfrågningsidentitet, lagra resultatet beständigt och kontrollera varje möjlig felpunkt. AWS beskriver tekniken i sin guide till säkra nya försök.
Nya försök behöver också gränser. Använd tidsgräns, försöksgräns och en fördröjning som undviker samtidiga upprepade förfrågningar. Bevara misslyckat arbete för granskning i stället för att försöka för alltid.
Gör önskat tillstånd granskningsbart
En deklarativ konfiguration anger avsedd driftsättning. En controller arbetar för att upprätthålla tillståndet. En Kubernetes Deployment hanterar exempelvis applikationsrepliker och kontrollerade uppdateringar. Applikationen måste fortfarande hantera utbyte korrekt.
Versionshantera infrastruktur och applikationskonfiguration. Granska ändringar genom ordinarie leveransprocess. Observera faktiskt slutförda jobb, köålder, fel och beroendebegränsningar. En körande process kan fortfarande vara oförmögen att skapa en rapport.
Välj en plattform som teamet kan drifta
Cloud native kräver inte att varje app blir mikrotjänster. En modulär applikation på en hanterad körmiljö kan uppfylla kraven. Fler tjänster tillför gränssnitt, driftsättningsbeslut och driftarbete.
Ge utvecklingsagenten det faktiska plattformskontraktet: stödd körmiljö, identitetsmetod, datatjänster, driftsättningsregler och nödvändigt underlag. Testa avbrott och utbyte tillsammans med lyckade förfrågningar. Fortsätt med tillgänglighet och felgränser.
Gör övningen
En fiktiv rapporttjänst lagrar jobb och färdiga filer på containerns disk. Rita flödet genom förfrågan, jobb, fil och nedladdning. Markera beständigt tillstånd. Definiera vad som händer om workern stannar efter filskrivning men före jobbekräftelse.
Ladda ned övningsblad (Markdown)Kontrollera din förståelse
Källor och vidare läsning
- CNCF: Cloud Native Definition v1.1 ↗
- Kubernetes: Deployments ↗
- AWS Builders’ Library: Making retries safe with idempotent APIs ↗
Relaterad läsning från Taiga
Om du avmarkerar valet raderas alla framsteg som sparats i den här webbläsaren.
Framstegen stannar i webbläsaren. Inget konto, ingen spårning.