Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial Internet of Things >> Cloud computing

Wat is een servicemesh? Wat zijn de beschikbare open-source servicenetwerken?

Bij het ontwikkelen in een microservice-architectuur zijn er veel individuele componenten die het DevOps-team moet configureren. Om microservices samen te laten werken, hebben ze gevestigde communicatiekanalen nodig voor het delen van informatie en gegevensoverdracht.

Een manier om de communicatie tussen services te beheren en te bewaken, is door een servicemesh te gebruiken.

Wat is een servicemesh?

Een servicenetwerk is een speciale infrastructuurlaag die is toegevoegd aan de microservice-architectuur. Haar belangrijkste rol is het zorgen voor snelle en veilige service-to-service-communicatie. Deze tool met lage latentie beheert en bewaakt de communicatie tussen diensten en het delen van gegevens.

Het bestaat uit een controlevlak van waaruit ontwikkelaars specifieke regels en beleid implementeren op de netwerklaag. Het besturingsvlak werkt rechtstreeks met het datavlak, een verzameling zijspan-proxy's die naast de services lopen. Deze proxy's zijn verantwoordelijk voor alle communicatie tussen de service. Bovendien bewaken en bieden ze waardevol inzicht in de algehele applicatieprestaties en helpen ze potentiële problemen op te sporen en downtime te voorkomen.

De proxy's bieden waardevolle mogelijkheden, waaronder:

  • Dynamische servicedetectie
  • Belastingsverdeling
  • Gezondheidscontroles
  • Encryptie
  • Waarneembaarheid
  • Stroomonderbrekers
  • Gefaseerde implementaties met op percentages gebaseerde verkeersverdeling
  • Verificatie
  • Uitgebreide statistieken
  • Autorisatie

De opkomst van service mesh-architectuur

Om volledig te begrijpen hoe een servicemesh werkt, moeten we onderzoeken waarom zo'n tool is ontwikkeld. De opkomst van service mesh-architectuur kwam naar voren als een oplossing voor een aantal problemen met betrekking tot microservices.

Veel ontwikkelteams hebben de overstap gemaakt van het ontwikkelen van monolithische applicaties naar microservice-architectuur . Dit verdeelde een applicatie van een monolithische eenheid naar een systeem van individuele diensten die samenwerken. De applicatie bestaat uit meerdere autonome diensten met hun individuele functionaliteiten.

De moeilijkheid bij het ontwikkelen van een dergelijke applicatie is het configureren van de beste manier waarop deze services met elkaar kunnen praten. De prestaties van de applicatie zijn afhankelijk van de samenwerking tussen de services en het delen van gegevens om de beste gebruikerservaring te bieden. Een webwinkel kan bijvoorbeeld bestaan ​​uit een inlogservice die communiceert met een koopservice waarvoor informatie nodig is uit een inventarisdatabase enzovoort.

Omdat microservices communiceren via API's, vinden we de beste oplossing voor het oplossen van ontdekking en routering belangrijk geweest. Bovendien moesten ontwikkelaars ervoor zorgen dat de communicatie binnen het systeem veilig . was . Terwijl firewalls de app beschermden tegen aanvallen van buitenaf, was er een plat, open netwerk binnen de microservice-architectuur.

Vóór de mesh-servicearchitectuur werd deze taak afgehandeld door load balancers . Het was echter geen praktische oplossing, vooral niet op grotere schaal, vanwege implementatie- en kostenproblemen. De service mesh is ontwikkeld als ultieme oplossing voor alle bovengenoemde problemen. Het presenteerde een netwerklaag met een gecentraliseerd register (controlevlak) dat alle services beheerde met zijn zijspanproxy's. Ze zijn veel gemakkelijker te configureren en te schalen in vergelijking met load balancers. Ontwikkelaars kunnen de proxy's naar behoefte op en neer schalen en routeringsregels wijzigen zonder de services aan te passen.

Service Mesh-voordelen

De belangrijkste voordelen van service mesh zijn:

  • Verbeterde beveiliging – Het implementeren van een service mesh in een microservice-architectuur verbetert de algehele beveiliging. Deze netwerklaag introduceert automatische autorisatieauthenticatieencryptie , en beleidshandhaving . Het maakt gebruik van mutual Transport Layer Security (mTLS) om ervoor te zorgen dat alle service-naar-service-communicatie veilig is. Services identificeren zich met hun TLS-certificaten om een ​​verbinding tot stand te brengen. Zodra ze hun identiteit hebben gevalideerd, zetten ze een versleuteld kanaal op voor het delen van gegevens.
  • Verkeerscontrole en zichtbaarheid – Een van de primaire functies van een servicemesh is het bieden van verkeerscontrole. Het beheert oost-west verkeer, evenals het verkeer tussen diensten. Alle communicatie verloopt via de zijspan-proxy's, die worden beheerd door het controlevliegtuig. Het verkeer wordt transparant gerouteerd, waardoor ontwikkelaars beter zicht hebben op alle gegevensuitwisseling. Met een duidelijker inzicht in de applicatieprestaties, is het gemakkelijker om potentiële problemen binnen het systeem te herkennen.
  • Waarneembaarheid – Omdat het platform al het verkeer beheert, verzamelt het waardevolle inzichten over verkeersgedrag en gebruikersinteractie. Met zulke grote hoeveelheden gegevens kunnen bedrijfsanalisten een strategie uitstippelen om de applicatie te verbeteren.
  • Ontwikkelaars die zich richten op app-ontwikkeling in plaats van netwerken – In plaats van dat het ontwikkelteam de hele netwerklaag opzet en beheert, kunnen ze service mesh in de architectuur implementeren. Hoewel het platform een ​​initiële configuratie vereist, automatiseert het tijdrovende taken met betrekking tot netwerkbeheer. Hierdoor kunnen ontwikkelaars zich concentreren op microservices. Als u de service mesh verlaat om service-to-service-interacties te beheren, bespaart u tijd en geld en verbetert u tegelijkertijd de productiviteit.
  • Veerkracht – Een servicemesh biedt functies die helpen bij het maken van veerkrachtige microservicetoepassingen. Eén zo'n functie is het stroomonderbrekerpatroon dat helpt bij het detecteren van storingen en latentiepieken. Bovendien maakt een servicemesh gebruik van taakverdeling voor het ontdekken van services en het routeren van verkeer over het microservicenetwerk. Andere functies die bijdragen aan de veerkracht zijn onder meer nieuwe pogingen, time-outs en deadlines.
  • Sneller test- en implementatiecycli - Het gebruik van sidecar-proxy's voor pod-naar-pod-communicatie is veel eenvoudiger en sneller in te stellen. In plaats van redundante functies in elke service te coderen, implementeren ze proxy's en verbinden ze deze met de service. Dit versnelt de algehele ontwikkelings- en testcycli.

Lijst met open source-servicenetwerken

Er zijn een aantal open source service meshes beschikbaar. Istio, Linkerd en Consul worden het meest gebruikt.

Hieronder vindt u meer details over elk platform.

Istio

Istio is een open source-infrastructuur ontworpen door Google, IBM en Lyft. Het is een van de eerste service mesh-platforms. Het gebruikt Istiod , een besturingsvlak bestaande uit meerdere componenten (PilotCitadel , en Mixer ) voor het bedienen en configureren van de service mesh. Het datavlak bestaat uit Envoy proxy's, ontwikkeld in C++ . HTTP/TCP-verbindingen worden beheerd door de Gateway , Istio's load balancer. De VirtualService en Bestemmingsregels definieer routeringsregels en -beleid.

Linkerd

Linkerd is een lichtgewicht open source service mesh, ontwikkeld door het Cloud Native Computing Foundation (CNCF) project. Het is eenvoudig te installeren in een Kubernetes-cluster bovenop elk platform, zonder extra configuratie. Het hebben van geen configuratie is gunstig bij het werken met kleinere clusters. Voor grootschalige projecten is echter de mogelijkheid van configuratie vereist om alle services in het cluster succesvol te beheren.

De zijspan-proxy's zijn geschreven in Rust . Linkerd gebruikt de Controller voor het besturingsvlak en de webimplementatie voor het dashboard. Daarnaast gebruikte het Prometheus voor het verkennen en opslaan van statistieken en de Grafana voor het weergeven en weergeven van dashboards.

Consul Connect

Consul was eerst ontworpen als een tool voor het ontdekken van services en evolueerde later naar een servicemesh. In tegenstelling tot Linkerd omvat Consul Connect veel configuratie, waardoor u meer controle heeft over de netwerkomgeving. Dienovereenkomstig is het moeilijker te gebruiken dan Linkerd. Deze open source service mesh is platformonafhankelijk, wat betekent dat er geen Kubernetes of Nomad voor nodig is. Toch, Nomade vereenvoudigt het proces van het beheren van microservicecommunicatie via Consul.

Microsoft's Open Service Mesh

Open Service Mesh (OSM) is een CNCF Envoy-project die een service mesh-interface implementeert om dynamische microservice-applicaties te beheren en te beveiligen. Het maakt gebruik van Envoy xDS als zijspancontainers. De belangrijkste functies zijn onder meer traffic shifting, certificaatbeheer, mTLS inschakelen, automatische sidecar-injectie en toegangscontrolebeleid.

Kuma

Kuma is een open source-besturingsvlak voor Kubernetes en VM's die binnen een servicemesh worden uitgevoerd. Het heeft L4+L7-beleidsarchitectuur die functies implementeert zoals servicedetectie, routering, zero-trust beveiliging en observeerbaarheid. Het platform is zeer schaalbaar en eenvoudig in te stellen.

OpenShift Service Mesh Red Hat

Red Hat ontwikkelde zijn OpenShift Service Mesh voor het beheren van microservice-applicaties. Het biedt meerdere interfaces voor netwerken en verbeterde beveiliging met Security Context Constraint . Het meet de prestaties met Jager en observeert interacties tussen services met Kiali . Daarnaast bevat OpenShift de Red Hat 3scale Istio Mixer Adapter voor betere API-beveiliging.

AWS-app-mesh

Amazon heeft App Mesh ontwikkeld, een gratis service mesh-software die al je services beheert binnen een microservice-architectuur. Het biedt hoge beschikbaarheid en end-to-end zichtbaarheid voor uw microservicetoepassing. AWS App Mesh integreert met AWS FargateAmazon ECSAmazon EC2Amazon EKSKubernetes , en AWS-buitenposten . Met zijn monitoringtools exporteert het automatisch monitoringgegevens.

Netwerkservicemesh

Network Service Mesh is een open source CNCF Sandbox-project . Het is een hybride/multi-cloud IP-servicemesh die een eenvoudige set API's gebruikt om connectiviteit te vergemakkelijken. Het brengt een verbinding tot stand tussen services die in containers worden uitgevoerd en met externe eindpunten. Wanneer het is geïmplementeerd, zijn er minimale wijzigingen in Kubernetes nodig.

Tot slot

Een service mesh vereenvoudigt het beheer en onderhoud van een applicatie die is ontwikkeld met behulp van de microservice-architectuur. Het verbetert de algehele beveiliging binnen de microservice-architectuur en zorgt voor zichtbaarheid en waarneembaarheid van de verkeersstroom. Over het algemeen verbeteren de service mesh-functies de prestaties en versnellen ze de ontwikkelingscyclus. Met een grote verscheidenheid aan open source-oplossingen die beschikbaar zijn, vindt u er een die het beste past bij de behoeften van uw toepassingen.


Cloud computing

  1. Wat zijn de beste Cloud Computing-cursussen?
  2. Wat zijn de voordelen van waterstraalsnijden?
  3. Wat zijn de voordelen van zandstralen?
  4. Wat zijn de belangrijkste eigenschappen van grafiet?
  5. Wat zijn de voordelen van waterstraalsnijden?
  6. Wat zijn de 7 soorten technologie?
  7. Wat zijn de verschillende soorten prototypes?
  8. Wat zijn de 4 soorten fabricageprocessen?
  9. Wat zijn de 5 assen van bewerking?
  10. Wat zijn de soorten lagers?
  11. Wat heb je? Robots in de dienstensector