Een onzichtbare weg: Service mesh onverharde pad aan praktische

0
190

Scott Fulton III

Door james Fulton III

voor de Schaal

| 27 November 2019 — 18:00 GMT (18:00 GMT)

| Thema: Netwerken

Orkestratie krijgt haar eigen conferentie: Waarom KubeCon is nu een ding
Scott Fulton zegt duizenden IT-professionals neerdalen San Diego te zien frank discussies en live demo ‘ s. Is er een samenhangende strategie voor de gebruikers van, en bijdragen aan, Kubernetes de toekomst? Zijn wij klaar voor service mesh een deel van ons leven? Lees meer: https://zd.net/2s948pe

“De aanvragen gaat via een proefuitzending proces”, verklaarde Vijoy Pandey, Cisco ‘ s vice-president en CTO van cloud computing. “Je bent het nemen van een aanvraag, en het af te breken in kleinere stukken: microservices, containers. We gaan dunner en dunner.”

Het afbreken van applicaties op een server in afzonderlijke, gescheiden, container-functies en biedt een groot aantal voordelen. Het laat datacenters verspreiden microservices aan de verwerkers en-systemen het meest geschikt voor hen. Het maakt grootschalige diensten evolueren voortdurend en stap voor stap. Het verbetert de veiligheid door het afdwingen van het beleid dat is vastgelegd hoe deze functies te communiceren, en door het scheiden van databases en data-streams in die virtuele apparaten die worden bewaakt door de gateways.

Er wordt een afweging gemaakt, en het is minstens even groot: Het ontleedt systemen in kolossale petrischalen van de schijnbaar niet te onderscheiden micro-organismen.

Waarheid in zicht

191127-service-mesh-001.jpg

Onze ‘kaart’ voor deze editie van de Schaal is een echte netwerk-connectiviteit perceel van echte microservices ingezet op het in het VK gebaseerde e-bank Monzo.

“We hebben volledig omarmde het idee van microservices,” schreef Calvijn frans-Owen, mede-oprichter van gegevens en analyses infrastructuur provider Segment in 2015. De reden, Owen uitgelegd, was visibility: “Wanneer krijgen we opgeroepen om 3 uur op een dinsdag, het is een miljoen keer makkelijker om te zien dat een bepaalde werknemer is een back-up in vergelijking met het toevoegen van tracing via elke aanroep van een monolithische app.”

“In het begin 2017 bereikten we een omslagpunt met een kernpunt van het Segment van het product,” schreef Segment software engineer Alexandra Noonan, drie jaar later. De reden, Noonan uitgelegd, was de zichtbaarheid. “Het leek alsof we vallen van de microservices boom, het raken van elke tak op de weg naar beneden.

“In plaats van ons de mogelijkheid om sneller te gaan,” vervolgde ze, “het kleine team vond zichzelf verwikkeld in een exploderende complexiteit. De essentiële voordelen van deze architectuur werd lasten. Als onze snelheid gedaald, ons gebrek tarief ontplofte. Uiteindelijk, het team vond zichzelf niet in staat is om vooruitgang geboekt, met drie full-time ingenieurs het grootste deel van hun tijd aan het bijhouden van het systeem in leven. Er moest iets veranderen.”

Het was een whiplash-effect dat software engineers direct opgemerkt, met inbegrip van Microsoft.

191121-kubecon-009-brian-redmond-microsoft.jpg

“Sommige bedrijven zeker geven,” zei Microsoft product manager Brian Redmond, tijdens een sessie in KubeCon 2019 in San Diego. “Als je naar beneden gaat een pad van microservices, u bent waarschijnlijk gaan om verbetering van de procedures, en de dingen te doen automatisering om hen heen.”

In aanvulling op de geconsolideerde praktijken rond het testen en implementatie, Redmond suggereert een service mesh. Het belangrijkste voordeel, zoals hij beschreef het, het citeren van een lange blog post van William Morgan, de co-creator van een service mesh recht Linkerd (uitgesproken als “linker · dee”), is dat het ontkoppelt de functies die het maken van verbinding mogelijk in een microservices toepassing van de feitelijke taken die microservices worden afhankelijk op te voeren. De term “mesh” verwijst naar een netwerk topologie die heeft geen hiërarchische of symmetrische structuur dan ook, waar een knooppunt is theoretisch in staat is om verbinding met een andere node.

Begrijpen waarom dit bizar klinkende instrument is ineens zo vitaal nodig is verplicht ons te bellen onszelf terug in tijd meer dan een halve eeuw.

De subroutine vernieuwt

In de jaren 1960, een computer programma was een genummerde reeks instructies. De eerste herbruikbare code in een dergelijk programma werd een instructie cluster die werd gebeld door het nummer van de eerste lijn, zoals GOSUB 900, en die eindigde met de dead-end-instructie TERUG. Herbruikbare code is een noodzaak in elke toepassing. Het was een manier van het maken van algoritmen — functies, die zoeken hun oplossingen met behulp van herhaling — haalbaar is. Een andere was een herhalende lus-component, aangeduid op de top met VOOR – en de onderkant, met de VOLGENDE, maar zelfs hier, subroutines werden vaak genoemd door de code in-tussen.

191127-service-mesh-002.jpg

Als programmeertalen ontwikkeld, grote blokken van herbruikbare code werden gestapeld in bibliotheken. Op het eerste, deze bibliotheken werden samengesteld direct in de object code, het maken van uitvoerbare bestanden meer en omvangrijker. Later, in de eerste “gedistribueerd programmeren” – systemen (de zin betekent iets heel anders vandaag), aparte bibliotheek bestanden kunnen worden dynamisch met elkaar verbonden. Dit maakte multitasking haalbaar zijn in Microsoft Windows. De meest voorkomende linking methode werd genoemd de remote procedure call (RPC).

Maar zelfs die vroegste modellen gebruikt op de binding platforms, zoals een besturingssysteem, of een gedeelde stuk van de infrastructuur. In de huidige genetwerkte omgevingen, verdeeld functies niet meer delen, maar een protocol om contact met elkaar — een common interface. Dus de methoden voor het draadsnijden verdeeld functies en microservices samen, om een uitdrukking te lenen dat kan een speciale betekenis hebben voor de lezers van ZDNet Schaal, is alles over de kaart.

“Als we gaan dunner en dunner, de connectiviteit tussen deze stukken van een enkelvoudige toepassing, wordt steeds erger en erger,” zei Cisco ‘ s Pandey, spreken met ZDNet. “De dingen die zijn bibliotheek gesprekken binnen een monolithische app nu RPC-aanroepen over de hele wereld mogelijk. En de ontwikkelaar niet schelen.”

Het is niet zo dat de ontwikkelaar van de software niet de zorg over de kwaliteit van de dienst-dat is niet wat Pandey impliceert hier. Hij uitlegt dat de lijm bindt functies samen in een bijzondere toepassing, is vervangen door de jaren heen in de evolutionaire pieken: te beginnen met de collectieve binding van de source code, met meerdere sets van dynamisch gekoppelde functies, dan met Web services benaderd met een REST API-aanroepen, en nu met iets heel anders: het netwerk overlay. In deze zeer gedistribueerd model, waarin elk onderdeel is een virtuele appliance met een netwerk adres, de verschillen tussen netwerk-functies kunnen worden onmeetbaar klein, of ze kan de grootte van de planeet.

Geen van de activiteit die ervoor zorgt dat deze functies samen als een hechte eenheid, is de zorg van een van de software ontwikkelaars die verantwoordelijk zijn voor deze niet-gekoppelde functies. In de meeste gevallen, zij aanroepen van functies met een beetje meer zorg dan ze hadden toen ze schreef GOSUB 900.

191120-kubecon-010-vijoy-pandey-cisco.jpg

“Voor de ontwikkelaar. . . het is gewoon het doen van een enkele functionele bellen en het retourneren van een waarde, of iets retour zendt. Dus het is echt te dun,” Pandey ging op, “en het is het proberen om verbinding te maken met een andere functie, die kan overal zijn, het zou ook worden op-prem, het kan in een andere [wolk] regio, kan het in een GCP [Google Cloud Platform] BigQuery — het kan van alles zijn! En terecht, de ontwikkelaar zegt, ‘Waarom moet ik de zorg? Ik bouw deze aanvraag zo snel mogelijk, omdat uw business, mijn business is hiervan afhankelijk. Waarom zou ik me zorgen over de infrastructuur?'”

Service herontdekking

Zoals “Web services” in 1999, “service mesh” is nog te algemeen worden begrepen, zelfs door mensen die met behulp van het goed op dit moment. Enterprise netwerken software-gedefinieerd. Zij maken gebruik van een tweede set van adressen (overlay) die niet worden toegewezen aan apparaten, switches of routers, maar de gateways van toepassingen en diensten. Nu, de meeste van deze overlays maken met het Internet-stijl opzoeken van de DNS (Domain Name Service), voor een Web-doorgestuurd verzoek tot het zoeken van de juiste bestemming.

Een service mesh zou kunnen adressen worden toegewezen aan functies meer rechtstreeks, dus een vereenvoudiging van het adresseringsschema. Service discovery (het vinden van de juiste locatie voor een aangevraagde functie) kan worden bereikt door een aantal van de meer logische, meer programmeerbare methoden, waarbij DNS of vervangen van het geheel. Deze methoden kunnen worden beheerst door het beleid, wat ze veel beter te beveiligen. Wat meer is, in een netwerk met behulp van microservices waar functies zijn verspreid over en verspreid volgens de onvoorspelbare uitspraken van de orchestrator (in dit geval zeer waarschijnlijk Kubernetes), service mesh kan het nodig zijn om het oplossen van de aanvragen tot mercurially het wijzigen van adressen.

Op het ene niveau, het is een netwerk techniek. Nog dienst gaas kan worden van de telefooncentrale voor de volgende versie van de cloud. Als Kubernetes blijft blazing trails voor distributed computing systemen en de hervorming van de manier waarop cloud-infrastructuur wordt opgebouwd, dan is service mesh zal volgen in zijn kielzog.

Wat moet nog worden bepaald, zijn de volgende: Welke dienst mesh zal het worden? Die zullen onvermijdelijk verantwoordelijk voor? En hoe snel zal de brede implementatie van deze technologie in een data center infrastructuur verandering in de manier waarop functies en diensten worden gebruikt in elke netwerk, overal?

191118-kubecon-013-brian-redbeard.jpg

“We hebben geleerd door middel van de evolutie van OpenStack en Kubernetes dat er een goed mechanisme van de behandeling van het ontwerp van een gedistribueerd systeem,” aldus Brian “Barbarossa” Harrington, Red Hat ‘ s zeer nauwkeurig de bijnaam principal product manager voor zijn bedrijf Service Mesh-platform, gebaseerd op Istio. “Dat is te zeggen, er is een controle van het vliegtuig en is er een data-vlak.”

Software-defined networking (SDN) brachten de architectonische principe van het scheiden van het verkeer in verband met de aanvraag van de gebruiker van het verkeer, waarbij de controle en het beheer van het systeem, in twee vliegtuigen als Barbarossa beschreven. Oorspronkelijk was dit ter bescherming van de controle van de functies van het netwerk wordt verstoord door foutieve of zelfs schadelijke functionaliteit in de gebruikersruimte. Maar in een gedistribueerd netwerk waar de applicaties zijn van containers (met behulp van de uiterst draagbare virtualisatie systeem voor het eerst populair gemaakt door Docker), waarvan de connectiviteit is verbeterd met een service mesh, dit vliegtuig scheiding maakt het haalbaar is een nieuw concept: een container-functie die niet nodig een kaart van het netwerk dat het bewoond is, of zelfs query iets anders voor informatie van een kaart, om zich te gedragen als een onderdeel van het netwerk.

“Historisch gezien met service mesh, een onderdeel van het doel was om de lijm van de intercommunications tussen de diensten samen,” vervolgt Red Hat ‘s Barbarossa,’ omgaan met de ontdekking en de omleiding van het verkeer. Met Istio, zijn wij in staat om dat te bereiken hetzelfde doel.”

control-plane.png

Service mesh-architectuur diagram voor de Linkerd. [Met dank servicemesh.io]

Elk exemplaar van een dienst in deze gedistribueerde netwerk kan worden uitgerust met een soort van proxy genoemd een zijspan, dat dient als verbinding agent op de gegevens van het vliegtuig, het afhandelen van inkomende en uitgaande verzoeken. Voor Linkerd, dit zijspan is gezien de naam zonder veel drama uitgevoerd linkerd-proxy, en is afgebeeld die woonachtig zijn in de gegevens vliegtuig in de diagram hierboven; voor Istio, waarvan de architectuur eigenlijk verschilt weinig, de secundaire proxy wordt geleverd door een CNCF project met de naam Gezant. In dit diagram elk een blauwe rechthoek vertegenwoordigt een Kubernetes pod; elk grijs kader binnen is het een container. Binnen een pod, de containers alle delen van middelen, zodat de toepassing in de data-abonnement heeft toegang tot de linkerd-proxy, maar hoeft niet te weten of iets schelen in de controller pod — te lenen Vijoy Pandey zin, de ontwikkelaar niet schelen. Alle netwerk-en service configuratie functies, samen met controle en zichtbaarheid, worden behandeld door containers gestationeerd op de controle van het vliegtuig, terwijl de zijspan reizen met de toepassing via het systeem.

Zoals de meeste alles in de container ecosysteem,” een complete service mesh is een assemblage van meerdere onderdelen, waarvan sommige zelfs afkomstig zijn van andere open-source projecten.

191118-kubecon-012-brian-redbeard.jpg

“Voor observability met Istio, en specifiek in de context van OpenShift Service Mesh,” vervolgt Barbarossa, “bedoelen we twee dingen: de idee van het traceren van onze toepassingen, in het algemeen door het gebruik van Jaeger, maar ook het verzamelen en het schrapen van de gegevens van de werkelijke proxy componenten met Prometheus. . . De gedistribueerde tracing stuk verwijst naar een verzoek over een gesprek keten, wanneer u de vertraging tussen alle mensen, en zelfs het vastleggen van een header-informatie van de aanvragen in een bemonsterd manier.”

De bemonstering is de sleutel tot het toezicht op de zeer complexe systemen, in het bijzonder wanneer gebeurtenissen samengestelde elkaar te maken een effectieve logging systeem onmogelijk. Plaats van opname van elke transactie in een grootboek waarvan de omvang al snel zou span melkwegstelsels, met een sampling-systeem verzamelt voldoende informatie over het gedrag van elke component in het netwerk voor een monitoring systeem om na te gaan of een deel van dat gedrag is de moeite waard een strengere controle.

red-hat-kiali.jpg

Een service-entiteit grafiek in Kiali, onderdeel van OpenShift Service Mesh.

[Met Dank Red Hat]

Red Hat heeft ertoe geleid dat de ontwikkeling van OpenShift eigen onderdeel voor dit doel, de zogenaamde Kiali [zie foto boven]. Dit is misschien wel de functionaliteit van dat Segment zou hebben gebruikt drie jaar eerder. “We hebben vastgelijmd een aantal van deze componenten samen,” Barbarossa, voort, “dat wij denken dat een exploitant of beheerder is nodig, om een goed lopende dienst van gaas, en gecoördineerd via de [Red Hat] Operator Kader.”

Cisco biedt een alternatieve, of misschien meer, aanpak voor wat zij noemt netwerkdienst Mesh (NSM, niet te verwarren met Cisco Network Services Manager, Cisco Netwerk Segmentatie Manager, Cisco Network Security Monitoring [PDF]). Als Vijoy Pandey herinnerde ons, network services in de klassieke OSI-model is in compartimenten in zeven lagen, met applicatie verkeer bewonen het hoogste Niveau 7. De levensvatbaarheid van dienst netten zoals Linkerd en Istio, vertelde hij ZDNet, gaan ervan uit dat het onderliggende netwerk lagen — bijzonder Laag 2 (data link), Layer 3 (netwerk map), en Laag 4 (transport) — zijn al volledig opgelost. Hij maakte het geval dat een service gaas kan oplossen door het aansluiten van een enkele Kubernetes pod naar het onderliggende netwerk, maar niet zozeer een pod naar een andere pod. Cisco ‘ s NSM inspanning, zei hij, heeft gezelschap gekregen van Red Hat en VMware.

191120-kubecon-011-vijoy-pandey-cisco.jpg

“NSM in principe lost dit op Layer 2, Layer 3 Layer 4 probleem,” zei Pandey, “over een multi-cloud domein, op een manier die vriendelijk is voor de ontwikkelaar.

191126-cisco-nsm-diagram.jpg

Cisco ‘ s gewenste eind-staat voor een Netwerk Service Mesh omgeving voor Kubernetes.

[Met Dank Cisco]

“Laten we het af te breken in twee solide verticalen,” vervolgde hij. “Een verticale, heeft alles te maken met containers en Kubernetes, maar dat zuiverste soort omgeving is alleen in onze dromen. De andere verticaal is waar er zijn containers en Kubernetes, samen met bare-metal, mainframes, vm ‘ s, en alles wat onder de zon-de brownfield puinhoop dat al onze klanten omgaan. In de Kubernetes/containers/serverloze omgeving, wij zorgen ervoor dat de NSM gaat om open-source ‘tot de koeien thuiskomen. Wij zorgen dat probleem, voor een Kubernetes container implementatie, is het altijd gaat om open source en gratis. In dat perspectief NSM gaat om een eerste-rangs burger met een Kubernetes implementatie.”

Op het moment van het interview, zei hij, NSM was binnen twee productie-implementaties voldoen aan de minimale criteria (drie) dat Kubernetes onderhouder CNCF mandaten om in aanmerking te komen voor “incubatie” — volledig onderhouden door CNCF, zoals Kubernetes zelf was in zijn eerste jaren. Volgend jaar, Cisco hoopt vijf onafhankelijke gebruikers voor het NSM. Op dat punt, hij hoopt, NSM, kan een deel van elke CNCF-gecertificeerd Kubernetes implementatie. In andere woorden, in deze hoopvolle en mooie toekomst, als je de implementatie van Kubernetes, je de implementatie van NSM.

Wat zou dit betekenen dat, als alles goed blijkt als Cisco heeft gepland, is dat de klasse van Layer 2-en Layer 3-infrastructuur die de telecomproviders zeggen dat ze nodig heeft om gevirtualiseerde netwerk functies (VNF) in de veilige isolatie, kan worden gerealiseerd met behulp van container-netwerk functies (CNF) plaats. NSM zou weven een toegewijd netwerk van adressen ondersteunen van de orchestrator en andere systemen die zorgdragen voor de werkbelasting. Vervolgens een Laag 7 service mesh, zoals Istio of Linkerd, zou nog steeds weven een netwerk overlay voor het aansluiten van die taken, maar deze keer met de zekerheid van de onderliggende verbinding, zelfs als de knooppunten waarop deze workloads worden onderhouden bevinden zich op verschillende cloud-platforms.

191127-service-mesh-003.jpg

Het zou een heel ander Internet dan degene die wij vertrouwen op vandaag, die minder afhankelijk zijn van DNS voor het oplossen van vaste adressen — sommigen hebben gespeculeerd kan worden, onafhankelijk van DNS. De definitie van domeinen zou kunnen veranderen, en dus domeinnamen zoals we nu weten ze. Het zou kunnen maken van applicaties en services beschikbaar zijn voor gebruikers op een per-use basis, misschien is onafhankelijk van de cloud of telco die host is voor hen.

Maar dit is geen voorspelling. We zijn op dit kruispunt voor, alleen om te keren, of om je in vast te draaien in het verkeer kringen. Reimagining de gang van zaken moet worden in onze datacenters, heeft inmiddels een industrie op zichzelf. Toch is deze tijd, is er een onderliggende zekerheid: Er zijn veel organisaties die, net als Segment, hebben geen tijd meer te verspillen. Realiteit vraagt om een permanente oplossing.

190714-scale-logo.jpg

Lees meer — Van de CBS-Interactief Netwerk

Service mesh: Wat het is en waarom het van belang is zo veel nu door Scott M. Fulton, IIIRed Hat lanceert OpenShift Service Mesh voor hybride cloud-ontwikkelaars door Steven J. Vaughan-NicholsTop 5 dingen om te weten over service mesh door Tom Merritt, TechRepublic

Elders

Primer: De Wie, Wat en Waarom van Service Mesh door Emily Omier, De Nieuwe StapelDe Service Mesh: Wat Elke Software Engineer Moet Weten over ‘ s werelds Meest Over-Gehypte Technologie door William Morgan, DrijfvermogenWat Service Mazen Zijn, en Waarom Istio Leidt het peloton door Christine Hall, Data Center Knowledge

Verwante Onderwerpen:

Virtualisatie

Cloud

Het Internet van Dingen

Veiligheid

Datacenters

Scott Fulton III

Door james Fulton III

voor de Schaal

| 27 November 2019 — 18:00 GMT (18:00 GMT)

| Thema: Netwerken