- Mikrotjänster låter dig utveckla modulära och skalbara applikationer genom att dela upp funktioner i oberoende tjänster.
- De erbjuder flexibilitet och snabbhet i utvecklingen, vilket underlättar införandet av förändringar.
- Dess införande förbättrar systemets motståndskraft, eftersom ett fel i en tjänst inte påverkar andra.
- De använder heterogena tekniker, vilket gör det möjligt för team att välja det bästa verktyget för varje specifik uppgift.
Varför är mikrotjänster viktiga?
En kort historik över mikrotjänster
Vad är mikrotjänster?
1. Definition av mikrotjänster
2. Viktiga egenskaper hos mikrotjänster
- Frikoppling:Varje mikrotjänst är oberoende och kan utvecklas, distribueras och skalas autonomt, utan att påverka andra tjänster.
- Ett enda ansvar: Varje mikrotjänst ansvarar för en specifik uppgift eller funktion, enligt principen om ett enda ansvar.
- Heterogena teknologier: Mikrotjänster kan utvecklas i olika programmeringsspråk och teknologier, så att du kan välja det bästa verktyget för varje uppgift.
- elasticitet: Eftersom de är frikopplade påverkar ett fel i en mikrotjänst inte hela systemet, vilket förbättrar den övergripande motståndskraften.
- Skalbarhet: Mikrotjänster kan skalas oberoende efter behov, vilket optimerar resursanvändningen.
Länk till Wikipedia om mikrotjänster
Mikrotjänster arkitektur
1. Komponenter i mikrotjänsters arkitektur
- Mikrotjänster: Huvudkomponenterna i arkitekturen, var och en ansvarig för en specifik uppgift eller funktionalitet.
- API-gateway: En centraliserad ingångspunkt som dirigerar förfrågningar till lämpliga mikrotjänster och hanterar säkerhet, autentisering och routing.
- Serviceprotokoll: En komponent som upprätthåller ett uppdaterat register över alla tillgängliga mikrotjänster och deras platser.
- Övervakning och registrering: Verktyg för att övervaka mikrotjänsters prestanda, hälsa och loggar.
- Kommunikation mellan tjänster: Mekanismer för mikrotjänster att kommunicera säkert och effektivt, till exempel HTTP/REST, meddelanden eller händelseströmning.
2. Kommunikationsmönster mellan mikrotjänster
- Begäran/Svar: En mikrotjänst gör en begäran till en annan och väntar på ett svar, vanligtvis med hjälp av HTTP/REST.
- Asynkrona meddelandenMikrotjänster kommunicerar genom ett meddelandesystem, till exempel meddelandeköer eller händelseströmningssystem. I detta tillvägagångssätt skickar en mikrotjänst meddelanden till en kö eller ett ämne, och andra mikrotjänster konsumerar dessa meddelanden asynkront. Detta mönster möjliggör större frikoppling och skalbarhet.
- Händelseströmning: Mikrotjänster publicerar och konsumerar kontinuerliga strömmar av händelser i realtid med hjälp av strömningssystem för händelser som Apache Kafka eller Amazon Kinesis. Detta tillvägagångssätt är lämpligt för användningsfall som kräver databehandling i realtid och hög skalbarhet.
- Koreografi av händelser: Istället för direkt kommunikation mellan mikrotjänster används en centraliserad händelsebuss där mikrotjänster publicerar och lyssnar efter relevanta händelser. Varje mikrotjänst reagerar på händelser oberoende, vilket främjar större frikoppling.
- Remote Procedure Calls (RPC)Mikrotjänster kan kommunicera via RPC-protokoll, såsom gRPC, som ger effektivare, binärt orienterad kommunikation jämfört med HTTP/REST.
- Delade databasfrågorI vissa fall kan mikrotjänster komma åt och fråga delade databaser efter relevant data, även om detta tillvägagångssätt kan introducera ökad koppling och bör hanteras varsamt.
Fördelar med mikrotjänster
1. Smidighet och utvecklingshastighet
2. Skalbarhet och motståndskraft
3. Lätt underhåll
4. Antagande av ny teknik
5. Utmaningar med mikrotjänster
6. Ledningskomplexitet
7. Distribuerad övervakning och loggning
8. Testning och driftsättning
9. Säkerhet och efterlevnad
Microservices vs. Monolitisk arkitektur
Jämförelse av tillvägagångssätt
- Monolitisk arkitektur: En applikation är byggd som en enda enhet, där alla komponenter är tätt kopplade och distribueras som ett enda paket.
- Mikrotjänster arkitektur: Applikationen är uppdelad i mindre, oberoende tjänster, var och en fokuserad på en specifik uppgift eller funktionalitet och distribueras individuellt.
När ska man välja mikrotjänster?
Användningsfall för mikrotjänster
1. Elektronisk handel
2. Finansiella tjänster
3. Sjukvård
4. Underhållning och media
Populära verktyg och ramverk
1. Behållarhantering (Docker, Kubernetes)
2. Serviceorkestrering
3. API-gateways
4. Övervakning och inspelning
Bästa metoder för implementering av mikrotjänster
1. Sammanhållen tjänstedesign
2. Infrastrukturautomation
3. Proaktiv övervakning
4. Distribuerad datahantering
Framtiden för mikrotjänster
Trender och framsteg inom mikrotjänster
- Händelsestyrda mikrotjänsterHändelsedrivna kommunikationsmönster som händelseströmning och asynkron meddelandehantering förväntas bli mer populär i mikrotjänsters arkitekturer.
- Serverlösa tjänster: Kombinationen av mikrotjänster och serverlösa tjänster vinner mark, vilket möjliggör större skalbarhet och effektivitet i resursanvändningen.
- Artificiell intelligens och maskininlärning: Att integrera AI- och maskininlärningsfunktioner i mikrotjänster kan möjliggöra smartare, mer anpassningsbara applikationer.
- Service MeshTjänstenät, som Istio och Linkerd, gör det enkelt att hantera och övervaka mikrotjänster i komplexa miljöer, och tillhandahåller funktioner som intelligent routing, trafikhantering och resiliens.