Arkitekturmönster och kommunikationsmönster
Utveckla applikationer på AWS
Ricardo Sueiras
Principal Technologist
Din instruktör
Vad är arkitekturmönster?
Återanvändbar lösning på ett vanligt problem.
Mönster visar hur AWS-tjänster passar ihop.
Arkitekturen avgör hur bra appen fungerar under belastning.
Flera arkitekturmönster är viktiga att känna till.
Monoliter
En enda, tätt kopplad enhet.
En kodbas, en driftsättning.
Enkel att utveckla inledningsvis.
Svår att skala: allt skalas tillsammans.
Mikrotjänster
Små, fristående tjänster – var och en ansvarar för en affärsfunktion.
Driftsätt, skala och uppdatera varje tjänst oberoende.
Avvägning: ökad driftskomplexitet och tjänst-till-tjänst-kommunikation att hantera.
Serverlöst
Ingen infrastruktur att hantera – bara kod och konfiguration.
Bygg genom att kombinera hanterade AWS-tjänster.
AWS sköter provisionering, skalning och underhåll.
Avvägning: tidsgränser för körning, kalla starter, inlåsning till leverantör.
Nästan noll driftsoverhead och automatisk skalning.
Händelsedriven arkitektur (EDA)
Komponenter kommunicerar via händelser, inte direktanrop.
En händelse registrerar något som inträffat (order lagd, betalning mottagen, vara skickad).
Producenter sänder ut händelser.
Konsumenter prenumererar på de händelser de bryr sig om.
Tätt och löst kopplade system
Moderna molnapplikationer består av flera tjänster.
Tjänsterna måste kommunicera och samordna sig för att slutföra arbete.
Synkron kommunikation är tätt kopplad.
Asynkron kommunikation är löst kopplad.
Synkron kommunikation
En tjänst skickar en förfrågan och väntar på svar.
Anroparen blockeras tills svar ges eller timeout inträffar.
Enkel att implementera och förstå.
Tät koppling: långsamhet eller fel nedströms kan sprida sig.
Mildra med timeouts, försök igen och kretsbrytare.
Mönster: förfrågan/svar
Ryggraden i de flesta applikationsgränssnitt.
Förutsägbart beteende.
Omedelbar återkoppling till användare.
Asynkron kommunikation
Avsändaren väntar inte på svar.
Skickar ett meddelande eller en händelse och fortsätter sedan.
Mottagaren behandlar meddelandet oberoende.
Löst kopplad: bättre skalbarhet och feltolerans.
Hanterar trafiktoppar och partiella avbrott smidigt.
Utmaningar: dubbletter, ordning och slutlig konsekvens.
Mönster: köbaserad frikoppling
Producenten skickar meddelanden till en kö.
Konsumenten hämtar och behandlar meddelanden oberoende.
Förhindrar att fel sprider sig.
Producent och konsument skalas oberoende.
Mönster: worker-kö
Flera workers hämtar meddelanden från en gemensam kö.
Meddelanden behandlas parallellt.
Möjliggör horisontell skalning och högre genomströmning.
Meddelandeordning garanteras inte.
Mönster: publicera/prenumerera
Utgivare skickar meddelanden till ett SNS-ämne.
Flera prenumeranter tar emot samma meddelande.
Realtidssändning till många konsumenter.
Mönster: fan-out
Ett meddelande levereras till flera konsumenter samtidigt.
Vanligt förekommande i händelsedrivna arkitekturer.
Användbart när flera tjänster måste reagera på samma händelse.
Meddelandeordning
Vissa arbetsbelastningar måste behandla meddelanden i rätt ordning.
Amazon SQS FIFO och Kinesis stöder ordnad bearbetning.
Strikt ordning minskar genomströmningen.
Balansera korrekthet mot skalbarhet.
Nu kör vi en övning!
Utveckla applikationer på AWS
Preparing Video For Download...