QCon Konferenz. Mastering Chaos: The Netflix Guide to Microservices. Deel 4

De Josh Evans schwätzt iwwer déi chaotesch a faarweg Welt vun Netflix Mikroservicer, ugefaange mat de ganz Basics - d'Anatomie vu Mikroservicer, d'Erausfuerderunge verbonne mat verdeelte Systemer, an hir Virdeeler. Baut op dëser Fondatioun, entdeckt hien déi kulturell, architektonesch an operationell Praktiken, déi zu Mikroservicer Meeschterschaft féieren.

QCon Konferenz. Mastering Chaos: The Netflix Guide to Microservices. Deel 1
QCon Konferenz. Mastering Chaos: The Netflix Guide to Microservices. Deel 2
QCon Konferenz. Mastering Chaos: The Netflix Guide to Microservices. Deel 3

Am Géigesaz zum operationellen Drift, d'Aféierung vun neie Sprooche fir d'Internationaliséierung vum Service an nei Technologien wéi Container si bewosst Entscheedungen fir nei Komplexitéit an d'Ëmwelt ze addéieren. Meng Operatiounsteam huet op déi bescht Technologie Fahrplang fir Netflix standardiséiert, déi a virdefinéiert Best Practices baséiert op Java an EC2 gebak gouf, awer wéi d'Geschäft gewuess ass, hunn d'Entwéckler ugefaang nei Komponenten ze addéieren wéi Python, Ruby, Node-JS, an Docker.

QCon Konferenz. Mastering Chaos: The Netflix Guide to Microservices. Deel 4

Ech si ganz houfreg datt mir déi éischt waren, déi eis dofir asetzen, datt eise Produkt super funktionnéiert ouni op Cliente Reklamatiounen ze waarden. Et huet alles einfach genuch ugefaang - mir haten Operatiounsprogrammer am Python an e puer Back-Office Uwendungen am Ruby, awer d'Saache goufe vill méi interessant wann eis Webentwéckler ugekënnegt hunn datt se de JVM géifen ofginn an de Web géifen plënneren Applikatioun op d'Node Software Plattform. js. No der Aféierung vum Docker sinn d'Saache vill méi komplex ginn. Mir hunn d'Logik gefollegt an d'Technologien, mat deenen mir entstane sinn, goufen Realitéit wéi mir se fir Clienten ëmgesat hunn, well se vill Sënn gemaach hunn. Ech soen Iech firwat dat esou ass.

API Gateway huet tatsächlech d'Fäegkeet fir super Scripten z'integréieren déi als Endpunkte fir UI Entwéckler kënnen handelen. Si hunn all eenzel vun dëse Skripte sou konvertéiert datt se nodeems se Ännerunge gemaach hunn, se an d'Produktioun an dann op Benotzergeräter ofsetzen konnten, an all dës Ännerungen goufen synchroniséiert mat Endpunkte, déi an der API Paart lafen.

Wéi och ëmmer, dëst huet de Problem widderholl fir en neie Monolith ze kreéieren wou den API Service mat Code iwwerlaascht gouf sou datt verschidde Feeler Szenarie geschitt sinn. Zum Beispill goufen e puer Endpunkte geläscht, oder Skripte generéiert zoufälleg sou vill Versioune vun eppes datt d'Versioune all verfügbar Erënnerung vum API Service opgeholl hunn.

Et war logesch dës Endpunkter ze huelen an se aus dem API Service ze zéien. Fir dëst ze maachen, hu mir Node.js Komponenten erstallt déi als kleng Applikatiounen an Docker Container lafen. Dëst huet eis erlaabt all Probleemer a Crashen ze isoléieren, déi vun dësen Node Uwendungen verursaacht ginn.

D'Käschte vun dësen Ännerungen sinn zimlech grouss a besteet aus de folgende Faktoren:

  • Produktivitéit Tools. D'Gestioun vun neien Technologien erfuerdert nei Tools, well d'UI Team, déi ganz gutt Scripte benotzt fir en effiziente Modell ze kreéieren, net vill Zäit ze verbréngen fir d'Infrastruktur ze managen, si hu just Scripte geschriwwen an hir Funktionalitéit iwwerpréift.
    Opportunity Insight and Sorting - E Schlësselbeispill ass déi nei Tools déi néideg sinn fir Performance Chaufferinformatioun z'entdecken. Et war néideg ze wëssen wéi vill de Prozessor besat ass, wéi d'Erënnerung benotzt gouf, an dës Informatioun ze sammelen erfuerdert verschidden Tools.
  • Fragmentatioun vu Basisbiller - déi einfach Basis AMI ass méi fragmentéiert a spezialiséiert ginn.
  • Node Gestioun. Et gëtt keng off-the-shelf Architektur oder Technologie verfügbar, déi Iech erlaabt Noden an der Wollek ze managen, also hu mir Titus gebaut, eng Containermanagementplattform déi skalierbar an zouverléisseg Container-Deployment a Cloud Integratioun mat Amazon AWS ubitt.
  • Duplikatioun vun enger Bibliothéik oder Plattform. Nei Technologien mat der selwechter Kärfunktionalitéit vun der Plattform ubidden, erfuerdert d'Duplizéieren an d'Cloud-baséiert Node.js Entwéckler Tools.
  • Léierkurve an industriell Erfahrung. D'Aféierung vun neien Technologien schaaft zwangsleefeg nei Erausfuerderungen, déi musse iwwerwonne ginn a geléiert ginn.

Mir konnten eis also net op eng "geplatzt Strooss" beschränken an hu misste permanent nei Weeër bauen fir eis Technologien ze förderen. Fir Käschten erof ze halen, hu mir zentraliséiert Ënnerstëtzung limitéiert a fokusséiert op de JVM, nei Noden, an Docker. Mir hunn effektiven Impakt prioritär gemaach, Teams iwwer d'Käschte vun hiren Entscheedungen informéiert, an encouragéiert se no Weeër ze sichen fir d'High-Impact Léisungen ze benotzen déi se scho entwéckelt hunn. Mir hunn dës Approche benotzt wann Dir de Service an Friemsproochen iwwersetzt fir de Produit un international Clienten ze liwweren. Beispiller enthalen relativ einfache Clientbibliothéiken déi automatesch generéiert kënne ginn, sou datt et zimlech einfach ass eng Python Versioun, eng Ruby Versioun, eng Java Versioun, etc.

Mir ware permanent no Méiglechkeete gesicht fir bewisen Technologien ze benotzen déi sech op enger Plaz an an aneren ähnlechen Situatiounen bewisen hunn.

Loosst eis iwwer dat lescht Element schwätzen - Ännerungen oder Variatiounen. Kuckt wéi de Konsum vun eisem Produkt ongläich variéiert vum Dag vun der Woch an duerch Stonn am ganzen Dag. Dir kënnt soen datt 9 Auer déi schwéierst Zäit fir Netflix ass, wann d'Laascht op de System säi Maximum erreecht.

QCon Konferenz. Mastering Chaos: The Netflix Guide to Microservices. Deel 4

Wéi kënne mir eng héich Geschwindegkeet vun der Ëmsetzung vu Softwareinnovatiounen erreechen, dat ass, dauernd nei Ännerunge vum System ze maachen, ouni Ënnerbriechungen an der Serviceliwwerung ze verursaachen an ouni Onbequemlechkeet fir eise Clienten ze kreéieren? Netflix huet dëst erreecht duerch d'Benotzung vu Spinnaker, eng nei global Cloud-baséiert Gestioun a kontinuéierlech Liwwerung (CD) Plattform.

QCon Konferenz. Mastering Chaos: The Netflix Guide to Microservices. Deel 4

Kritesch ass Spinnaker entworf fir eis bescht Praktiken z'integréieren, sou datt wéi Komponenten an d'Produktioun ofgesat ginn, mir hir Output direkt an d'Medie Liwwerungstechnologie integréieren.

QCon Konferenz. Mastering Chaos: The Netflix Guide to Microservices. Deel 4

Mir konnten zwou Technologien an eiser Liwwerpipeline integréieren déi mir héich schätzen: automatiséiert Kanaresch Analyse an inszenéiert Deployment. Kanaresch Analyse heescht, datt mir e trickle vun Verkéier op déi nei Versioun vum Code direkt, a Passe de Rescht vun der Produktioun Verkéier duerch déi al Versioun. Da kontrolléiere mir wéi den neie Code mat der Aufgab këmmert - besser oder méi schlëmm wéi déi bestehend.

Eng gesteppte Rollout bedeit datt wann e Rollout an enger Regioun Problemer huet, mir réckelen op eng Rollout an enger anerer Regioun. An dësem Fall muss déi uewe genannte Checklëscht an der Produktiounspipeline abegraff sinn. Ech spueren Iech e bëssen Zäit a recommandéieren Iech meng viregt Diskussioun ze kucken, Engineering Global Netflix Operations in the Cloud, wann Dir interesséiert sidd fir méi déif an dëst Thema ze tauchen. D'Videoopnam vun der Ried kann gekuckt ginn andeems Dir de Link um Enn vum Rutsch befollegt.

QCon Konferenz. Mastering Chaos: The Netflix Guide to Microservices. Deel 4

Um Enn vum Gespréich wäert ech kuerz iwwer d'Organisatioun an d'Architektur vun Netflix schwätzen. Am Ufank hu mir e Schema genannt Electronic Delivery, dat war déi éischt Versioun vum NRDP 1.x Media Streaming. De Begrëff "Backstream" kann hei benotzt ginn, well de Benotzer am Ufank nëmmen Inhalt fir spéider Playback um Apparat eroflueden konnt. Dem Netflix seng alleréischt digital Liwwerungsplattform, am Joer 2009, huet sou ausgesinn.

QCon Konferenz. Mastering Chaos: The Netflix Guide to Microservices. Deel 4

De Benotzergerät enthält d'Netflix Applikatioun, déi aus engem UI Interface, Sécherheetsmoduler, Serviceaktivéierung a Playback bestoung, baséiert op der NRDP Plattform - Netflix Ready Device Platform.

Deemools war d'Benotzerinterface ganz einfach. Et enthält wat e Queque Reader genannt gouf, an de Benotzer géif op de Site goen fir eppes op Queque ze addéieren an dann den addéierten Inhalt op hirem Apparat ze gesinn. Déi positiv war datt d'Front-End-Team an d'Back-End-Team zu der selwechter Electronic Delivery Organisatioun gehéiert hunn an eng enk Zesummenaarbecht haten. D'Notzlaascht gouf op XML erstallt. Zur selwechter Zäit gouf d'Netflix API fir den DVD-Geschäft erstallt, wat Drëtt-Partei-Applikatiounen encouragéiert huet fir den Traffic op eise Service ze dirigéieren.

Wéi och ëmmer, d'Netflix API war gutt virbereet fir eis mat enger innovativer User-Interface ze hëllefen, déi Metadaten vun all Inhalt enthält, Informatiounen iwwer wéi eng Filmer verfügbar waren, déi d'Fäegkeet erstallt hunn Iwwerwaachungslëschten ze generéieren. Et hat e generesche REST API baséiert op dem JSON Schema, HTTP Response Code, deeselwechten deen an der moderner Architektur benotzt gëtt, an en OAuth Sécherheetsmodell, wat war wat zu där Zäit fir eng Front-End Applikatioun erfuerderlech war. Dëst huet et méiglech gemaach vun engem ëffentleche Modell vun der Streaming Inhalt Liwwerung op e privaten ze plënneren.

QCon Konferenz. Mastering Chaos: The Netflix Guide to Microservices. Deel 4

De Problem mam Iwwergank war Fragmentéierung, well elo eise System zwee Servicer operéiert baséiert op komplett verschidde Prinzipien vun der Operatioun - een op Rest, JSON an OAuth, deen aneren op RPC, XML an e Benotzer Sécherheetsmechanismus baséiert op dem NTBA Token System. Dëst war déi éischt Hybridarchitektur.

Et war wesentlech eng Firewall tëscht eisen zwou Équipen well am Ufank huet d'API net ganz gutt mat NCCP skaléiert an dëst huet zu Reibung tëscht den Équipen gefouert. D'Ënnerscheeder waren a Servicer, Protokoller, Circuiten, Sécherheetsmoduler, an d'Entwéckler hunn dacks missen tëscht komplett verschiddene Kontexter wiesselen.

QCon Konferenz. Mastering Chaos: The Netflix Guide to Microservices. Deel 4

An deem Sënn hat ech e Gespréich mat engem vun de Senior Ingenieuren vun der Firma, un deen ech d'Fro gestallt hunn: "Wat soll déi richteg laangfristeg Architektur sinn?" an hien huet d'Konterfro gestallt: "Dir sidd wahrscheinlech méi besuergt. iwwer déi organisatoresch Konsequenzen - wat geschitt wa mir dës Saachen integréieren, a si briechen wat mir geléiert hunn gutt ze maachen? Dës Approche ass ganz relevant fir Conway d'Gesetz: "Organisatiounen datt Design Systemer sinn duerch en Design limitéiert datt d'Kommunikatioun Struktur vun dëser Organisatioun replizéiert." Dëst ass eng ganz abstrakt Definitioun, also ech léiwer eng méi spezifesch: "All Stéck Software reflektéiert déi organisatoresch Struktur déi et erstallt huet." Hei ass mäi Liiblingszitat vum Eric Raymond: "Wann Dir véier Teams vun Entwéckler hutt, déi un engem Compiler schaffen, da sidd Dir mat engem Véier-Pass Compiler." Gutt, Netflix huet e Véier-Pass Compiler, an dat ass wéi mir schaffen.

Mir kënne soen datt an dësem Fall de Schwanz den Hond wackelt. Eis éischt Prioritéit ass net d'Léisung, mee d'Organisatioun; et ass d'Organisatioun déi d'Architektur dréit déi mir hunn. Lues a lues, vun engem Hodgepodge vu Servicer, si mir op eng Architektur geplënnert déi mir Blade Runner genannt hunn, well hei schwätze mir iwwer Randservicer an d'Fäegkeet vum NCCP fir direkt an den Zuul Proxy, API Gateway, an déi entspriechend funktionell ze trennen an integréiert ze ginn. "Stécker" goufen an nei Mikroservicer mat méi fortgeschratt Sécherheet, Replay, Datesortéierung, etc.

Also kann et gesot ginn datt Departementstrukturen a Firmendynamik eng wichteg Roll bei der Gestaltung vum Systemdesign spillen an e Faktor sinn deen d'Verännerung fördert oder behënnert. Microservices Architektur ass komplex an organesch, a seng Gesondheet baséiert op Disziplin an agefouert Chaos.

E bësse Reklamm

Merci datt Dir bei eis bleift. Hutt Dir eis Artikelen gär? Wëllt Dir méi interessant Inhalt gesinn? Ënnerstëtzt eis andeems Dir eng Bestellung maacht oder Frënn empfeelt, Cloud VPS fir Entwéckler vun $ 4.99, en eenzegaartegen Analog vun Entry-Level Serveren, dee vun eis fir Iech erfonnt gouf: Déi ganz Wourecht iwwer VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps vun $19 oder wéi een e Server deelt? (verfügbar mat RAID1 an RAID10, bis zu 24 Kären a bis zu 40GB DDR4).

Dell R730xd 2 Mol méi bëlleg an Equinix Tier IV Daten Zentrum zu Amsterdam? Nëmmen hei 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV vun $199 an Holland! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - vun $99! Liest iwwer Wéi bauen ech Infrastructure Corp. Klass mat der Benotzung vun Dell R730xd E5-2650 v4 Serveren Wäert 9000 Euro fir e Penny?

Source: will.com

Setzt e Commentaire