Komperensya sa Qcon. Pag-master sa Chaos: Usa ka Giya sa Netflix sa Microservices. Bahin 4

Gihisgutan ni Josh Evans ang gubot ug mabulukon nga kalibutan sa mga microservice sa Netflix, sugod sa mga sukaranan - ang anatomy sa mga microservice, ang mga hagit nga may kalabotan sa mga gipang-apod-apod nga sistema, ug ang mga benepisyo niini. Pagtukod sa kini nga pundasyon, iyang gisusi ang kultura, arkitektura, ug mga pamaagi sa operasyon nga nagdala sa pagkahanas sa microservice.

Komperensya sa Qcon. Pag-master sa Chaos: Usa ka Giya sa Netflix sa Microservices. Bahin 1
Komperensya sa Qcon. Pag-master sa Chaos: Usa ka Giya sa Netflix sa Microservices. Bahin 2
Komperensya sa Qcon. Pag-master sa Chaos: Usa ka Giya sa Netflix sa Microservices. Bahin 3

Dili sama sa operational drift, ang pagpaila sa bag-ong mga pinulongan alang sa serbisyo sa internasyonalisasyon ug mga bag-ong teknolohiya sama sa mga sudlanan maoy mga desisyon nga makadugang sa bag-ong pagkakomplikado sa palibot. Ang akong operations team nag-standardize sa pinakamaayo nga roadmap sa teknolohiya para sa Netflix, nga giluto ngadto sa predefined best practices base sa Java ug EC2, apan samtang ang negosyo mitubo, ang mga developers nagsugod sa pagdugang og bag-ong mga component sama sa Python, Ruby, Node-JS, ug Docker.

Komperensya sa Qcon. Pag-master sa Chaos: Usa ka Giya sa Netflix sa Microservices. Bahin 4

Mapasigarbuhon kaayo ko nga kami ang una nga nagpasiugda alang sa among produkto nga molihok nga maayo nga wala maghulat sa mga reklamo sa kustomer. Ang tanan nagsugod sa yano nga igo - kami adunay mga programa sa pag-operate sa Python ug pipila ka mga back-office nga aplikasyon sa Ruby, apan ang mga butang nahimong mas makapaikag sa dihang ang among mga web developers mipahibalo nga ilang biyaan ang JVM ug ibalhin ang web aplikasyon sa Node software platform.js. Pagkahuman sa pagpaila sa Docker, ang mga butang nahimong labi ka komplikado. Gisunod namo ang lohika ug ang mga teknolohiya nga among nahimo nahimo nga kamatuoran sa dihang among gipatuman kini alang sa mga kustomer tungod kay kini nakahimo og daghang kahulugan. Sultihan ko ikaw kung nganong ingon niini.

Ang API Gateway sa tinuud adunay katakus sa pag-integrate sa maayo nga mga script nga mahimo’g molihok ingon mga endpoint alang sa mga nag-develop sa UI. Gibag-o nila ang matag usa niini nga mga script sa paagi nga pagkahuman sa paghimo og mga pagbag-o mahimo nilang i-deploy kini sa produksiyon ug dayon sa mga aparato sa tiggamit, ug kining tanan nga mga pagbag-o gi-synchronize sa mga endpoint nga nagdagan sa gateway sa API.

Bisan pa, gisubli niini ang problema sa paghimo og bag-ong monolith diin ang serbisyo sa API napuno sa code sa paagi nga nahitabo ang lainlaing mga senaryo sa kapakyasan. Pananglitan, ang pipila ka mga endpoint gitangtang, o ang mga script random nga nakamugna og daghang mga bersyon sa usa ka butang nga gikuha sa mga bersyon ang tanan nga magamit nga memorya sa serbisyo sa API.

Makataronganon nga kuhaon kini nga mga endpoint ug ibira kini gikan sa serbisyo sa API. Aron mahimo kini, naghimo kami og mga sangkap sa Node.js nga nagdagan isip gagmay nga mga aplikasyon sa mga sudlanan sa Docker. Gitugotan kami niini nga ihimulag ang bisan unsang mga problema ug pagkahagsa tungod sa kini nga mga aplikasyon sa node.

Ang gasto niini nga mga pagbag-o dako kaayo ug naglangkob sa mosunod nga mga hinungdan:

  • Mga galamiton sa pagka-produktibo. Ang pagdumala sa mga bag-ong teknolohiya nanginahanglan bag-ong mga himan tungod kay ang UI team, nga naggamit sa maayo kaayo nga mga script aron makahimo usa ka episyente nga modelo, dili kinahanglan nga mogugol ug daghang oras sa pagdumala sa imprastraktura, kinahanglan ra nila nga magsulat mga script ug susihon ang ilang pagpaandar.
    Pagsabut sa Oportunidad ug Pagsunud - Usa ka hinungdanon nga pananglitan mao ang bag-ong mga himan nga gikinahanglan aron mahibal-an ang kasayuran sa drayber sa pasundayag. Kinahanglan nga mahibal-an kung unsa ka daghan ang gi-okupar sa processor, kung giunsa gigamit ang memorya, ug ang pagkolekta niini nga kasayuran nanginahanglan lainlaing mga himan.
  • Fragmentation sa base nga mga hulagway - ang yano nga base AMI nahimong mas tipik ug espesyal.
  • Pagdumala sa node. Walay arkitektura o teknolohiya sa gawas sa estante nga magamit nga nagtugot kanimo sa pagdumala sa mga node sa panganod, mao nga among gitukod ang Titus, usa ka plataporma sa pagdumala sa sudlanan nga naghatag og scalable ug kasaligan nga pag-deploy sa sudlanan ug panagsama sa panganod sa Amazon AWS.
  • Pagdoble sa usa ka librarya o plataporma. Ang paghatag ug mga bag-ong teknolohiya nga adunay parehas nga kinauyokan nga gamit sa plataporma nanginahanglan pagdoble niini ngadto sa cloud-based Node.js developer tools.
  • Kurba sa pagkat-on ug kasinatian sa industriya. Ang pagpaila sa bag-ong mga teknolohiya dili kalikayan nga nagmugna og bag-ong mga hagit nga kinahanglang buntogon ug makat-onan.

Busa, dili namo limitahan ang among kaugalingon sa usa ka β€œsementadong dalan” ug kinahanglang maghimo kanunay ug bag-ong mga paagi aron mapauswag ang among mga teknolohiya. Aron maminusan ang gasto, gilimitahan namon ang sentralisadong suporta ug naka-focus sa JVM, bag-ong mga node, ug Docker. Giuna namo ang epektibong epekto, gipahibalo ang mga team bahin sa gasto sa ilang mga desisyon, ug gidasig sila sa pagpangita og mga paagi aron magamit pag-usab ang mga solusyon nga adunay taas nga epekto nga ilang nahimo na. Gigamit namon kini nga pamaagi sa paghubad sa serbisyo sa langyaw nga mga sinultian aron ihatud ang produkto sa internasyonal nga mga kliyente. Ang mga pananglitan naglakip sa medyo yano nga mga librarya sa kliyente nga mahimong awtomatik nga mamugna, aron kini sayon ​​​​nga paghimo sa usa ka bersyon sa Python, usa ka bersyon sa Ruby, usa ka bersyon sa Java, ug uban pa.

Kanunay kaming nangita og mga oportunidad sa paggamit sa napamatud-an nga mga teknolohiya nga nagpamatuod sa ilang kaugalingon sa usa ka dapit ug sa ubang susama nga mga sitwasyon.

Atong hisgotan ang katapusang elemento - mga pagbag-o, o mga kalainan. Tan-awa kung giunsa ang pagkonsumo sa among produkto dili parehas sa adlaw sa semana ug oras sa tibuok adlaw. Mahimo nimong isulti nga ang 9 a.m. mao ang pinakalisud nga oras alang sa Netflix, kung ang load sa sistema moabot sa labing taas.

Komperensya sa Qcon. Pag-master sa Chaos: Usa ka Giya sa Netflix sa Microservices. Bahin 4

Giunsa naton makab-ot ang taas nga tulin sa pagpatuman sa mga inobasyon sa software, nga mao, kanunay nga paghimo og bag-ong mga pagbag-o sa sistema, nga wala’y hinungdan sa mga pagkabalda sa paghatud sa serbisyo ug wala’y paghimog kahasol sa among mga kostumer? Nakab-ot kini sa Netflix pinaagi sa paggamit sa Spinnaker, usa ka bag-ong global cloud-based nga pagdumala ug padayon nga pagpadala (CD) nga plataporma.

Komperensya sa Qcon. Pag-master sa Chaos: Usa ka Giya sa Netflix sa Microservices. Bahin 4

Sa kritikal nga paagi, gidesinyo ang Spinnaker aron i-integrate ang among labing kaayo nga mga gawi aron samtang kami mag-deploy sa mga sangkap sa produksiyon, mahimo namon nga i-integrate ang output direkta sa among teknolohiya sa paghatud sa media.

Komperensya sa Qcon. Pag-master sa Chaos: Usa ka Giya sa Netflix sa Microservices. Bahin 4

Nahimo namon nga ilakip ang duha ka mga teknolohiya sa among pipeline sa pagpadala nga among gipabilhan pag-ayo: awtomatiko nga pagtuki sa canary ug giplano nga pag-deploy. Ang pag-analisa sa kanaryo nagpasabot nga atong idirekta ang usa ka pag-agas sa trapiko sa bag-ong bersyon sa code, ug ipasa ang nahabilin nga trapiko sa produksiyon sa daan nga bersyon. Dayon among susihon kung giunsa pagsagubang sa bag-ong code ang buluhaton - mas maayo o mas grabe pa kay sa naa na.

Ang usa ka staggered rollout nagpasabot nga kung ang usa ka rollout sa usa ka rehiyon adunay mga problema, kita mobalhin ngadto sa usa ka rollout sa laing rehiyon. Sa kini nga kaso, ang nahisgutan nga checklist kinahanglan iapil sa pipeline sa produksiyon. Makadaginot ko nimo ug pipila ka oras ug irekomendar nimo nga susihon ang akong miaging pakigpulong, Engineering Global Netflix Operations sa Cloud, kung interesado ka sa pag-dive sa mas lawom niini nga hilisgutan. Ang pagrekord sa video sa pakigpulong mahimong tan-awon pinaagi sa pagsunod sa link sa ubos sa slide.

Komperensya sa Qcon. Pag-master sa Chaos: Usa ka Giya sa Netflix sa Microservices. Bahin 4

Sa pagtapos sa pakigpulong, hisgotan nako ang bahin sa organisasyon ug arkitektura sa Netflix. Sa sinugdanan pa lang aduna kami usa ka laraw nga gitawag og Electronic Delivery, nga mao ang unang bersyon sa NRDP 1.x media streaming. Ang termino nga "backstream" mahimong gamiton dinhi tungod kay sa sinugdanan ang user mahimo lamang nga mag-download sa sulod alang sa ulahi nga playback sa device. Ang una nga platform sa paghatud sa digital sa Netflix, kaniadtong 2009, ingon niini.

Komperensya sa Qcon. Pag-master sa Chaos: Usa ka Giya sa Netflix sa Microservices. Bahin 4

Ang user device adunay sulod nga Netflix application, nga naglangkob sa UI interface, security modules, service activation ug playback, base sa NRDP platform - Netflix Ready Device Platform.

Niadtong panahona ang user interface kay simple ra kaayo. Naglangkob kini sa gitawag nga Queque Reader, ug ang tiggamit moadto sa site aron idugang ang usa ka butang sa Queque ug dayon tan-awon ang gidugang nga sulud sa ilang aparato. Ang positibo mao nga ang front end team ug ang back end team sakop sa samang Electronic Delivery nga organisasyon ug adunay suod nga relasyon sa pagtrabaho. Ang payload gihimo base sa XML. Sa samang higayon, ang Netflix API alang sa negosyo sa DVD gimugna, nga nagdasig sa mga third-party nga aplikasyon sa pagdirekta sa trapiko sa among serbisyo.

Bisan pa, ang Netflix API andam kaayo sa pagtabang kanamo sa usa ka bag-ong interface sa gumagamit, nga adunay sulud nga metadata sa tanan nga sulud, kasayuran bahin sa kung unsang mga salida ang magamit, nga nagmugna sa katakus sa pagmugna og mga lista sa relo. Kini adunay usa ka generic nga REST API nga gibase sa JSON schema, HTTP Response Code, ang parehas nga gigamit sa modernong arkitektura, ug usa ka modelo sa seguridad sa OAuth, nga mao ang gikinahanglan sa panahon alang sa usa ka front-end nga aplikasyon. Gihimo niini nga posible ang pagbalhin gikan sa usa ka publiko nga modelo sa paghatud sa sulud sa streaming ngadto sa usa ka pribado.

Komperensya sa Qcon. Pag-master sa Chaos: Usa ka Giya sa Netflix sa Microservices. Bahin 4

Ang problema sa transisyon mao ang fragmentation, tungod kay karon ang among sistema naglihok sa duha ka serbisyo base sa hingpit nga lahi nga mga prinsipyo sa operasyon - usa sa Rest, JSON ug OAuth, ang usa sa RPC, XML ug usa ka mekanismo sa seguridad sa user base sa NTBA token system. Kini ang una nga hybrid nga arkitektura.

Adunay usa ka firewall tali sa among duha ka mga team tungod kay sa sinugdan ang API dili kaayo maayo sa NCCP ug kini misangpot sa panagbingkil tali sa mga team. Ang mga kalainan anaa sa mga serbisyo, mga protocol, mga sirkito, mga module sa seguridad, ug ang mga developer kasagaran kinahanglan nga magbalhin tali sa hingpit nga lain-laing mga konteksto.

Komperensya sa Qcon. Pag-master sa Chaos: Usa ka Giya sa Netflix sa Microservices. Bahin 4

Niining bahina, nakigsulti ako sa usa sa mga senior nga inhenyero sa kompanya, nga akong gipangutana ang pangutana: "Unsa ang angay nga tama nga dugay nga arkitektura?" Ug gipangutana niya ang tubag nga pangutana: "Tingali mas nabalaka ka. mahitungod sa mga sangputanan sa organisasyon - unsa ang mahitabo kon atong i-integrate kining mga butanga, ug kini makaguba sa unsay atong nakat-unan sa pagbuhat sa maayo? Kini nga pamaagi may kalabutan kaayo sa Balaod ni Conway: "Ang mga organisasyon nga nagdesinyo sa mga sistema gipugngan sa usa ka disenyo nga nagsundog sa istruktura sa komunikasyon sa maong organisasyon." Kini usa ka abstract nga kahulugan, mao nga gusto nako ang usa nga mas espesipiko: "Bisan unsang piraso sa software nagpakita sa istruktura sa organisasyon nga nagmugna niini." Ania ang akong paborito nga kinutlo gikan kang Eric Raymond: "Kung ikaw adunay upat ka mga grupo sa mga developer nga nagtrabaho sa usa ka compiler, ikaw adunay usa ka four-pass compiler." Aw, ang Netflix adunay usa ka four-pass compiler, ug mao kana ang among pagtrabaho.

Makaingon kita nga sa kini nga kaso ang ikog nagwarawara sa iro. Ang among una nga prayoridad dili ang solusyon, apan ang organisasyon; kini ang organisasyon nga nagmaneho sa arkitektura nga naa kanamo. Sa hinay-hinay, gikan sa usa ka hodgepodge sa mga serbisyo, mibalhin kami sa usa ka arkitektura nga gitawag namon nga Blade Runner, tungod kay dinhi naghisgot kami bahin sa mga serbisyo sa sulud ug ang katakus sa NCCP nga mabulag ug mahiusa direkta sa proxy sa Zuul, gateway sa API, ug ang katugbang nga gamit. Ang "mga piraso" nahimo nga bag-ong mga microservice nga adunay mas advanced nga seguridad, replay, paghan-ay sa datos, ug uban pa nga mga bahin.

Sa ingon, maingon nga ang mga istruktura sa departamento ug dinamika sa kompanya adunay hinungdanon nga papel sa paghulma sa disenyo sa sistema ug usa ka hinungdan nga nagpasiugda o nagpugong sa pagbag-o. Ang arkitektura sa Microservices komplikado ug organiko, ug ang kahimsog niini gibase sa disiplina ug gipaila nga kagubot.

Usa ka gamay nga advertising

Salamat sa pagpabilin kanamo. Ganahan ka ba sa among mga artikulo? Gusto nga makakita og mas makapaikag nga sulod? Suportahi kami pinaagi sa pag-order o pagrekomenda sa mga higala, cloud VPS alang sa mga developers gikan sa $4.99, usa ka talagsaon nga analogue sa mga entry-level server, nga giimbento namo alang kanimo: Ang tibuok kamatuoran bahin sa VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps gikan sa $19 o unsaon pagpaambit sa usa ka server? (anaa sa RAID1 ug RAID10, hangtod sa 24 ka mga core ug hangtod sa 40GB DDR4).

Dell R730xd 2 ka beses nga mas barato sa Equinix Tier IV data center sa Amsterdam? Dinhi lang 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV gikan sa $199 sa Netherlands! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - gikan sa $99! Basaha ang mahitungod sa Unsaon pagtukod sa infrastructure corp. klase sa paggamit sa Dell R730xd E5-2650 v4 server nga nagkantidad ug 9000 euros sa usa ka sentimos?

Source: www.habr.com

Idugang sa usa ka comment