Msonkhano wa QCon. Mastering Chaos: The Netflix Guide to Microservices. Gawo 4

Josh Evans amalankhula za dziko lachisokonezo ndi lokongola la ma microservices a Netflix, kuyambira ndi zoyambira - mawonekedwe a microservices, zovuta zomwe zimagwirizanitsidwa ndi machitidwe ogawidwa, ndi ubwino wawo. Kumanga pa maziko awa, amafufuza zachikhalidwe, zomangamanga, ndi machitidwe omwe amatsogolera ku microservice mastery.

Msonkhano wa QCon. Mastering Chaos: The Netflix Guide to Microservices. Gawo 1
Msonkhano wa QCon. Mastering Chaos: The Netflix Guide to Microservices. Gawo 2
Msonkhano wa QCon. Mastering Chaos: The Netflix Guide to Microservices. Gawo 3

Mosiyana ndi kugwedezeka kwa magwiridwe antchito, kukhazikitsidwa kwa zilankhulo zatsopano zogwirira ntchito padziko lonse lapansi komanso matekinoloje atsopano monga makontena ndi zisankho zongowonjezera zovuta zachilengedwe. Gulu langa lantchito lidakhazikika panjira yabwino kwambiri yaukadaulo ya Netflix, yomwe idawotchera m'njira zabwino zomwe zidafotokozedweratu kutengera Java ndi EC2, koma pomwe bizinesi idakula, opanga adayamba kuwonjezera zida zatsopano monga Python, Ruby, Node-JS, ndi Docker.

Msonkhano wa QCon. Mastering Chaos: The Netflix Guide to Microservices. Gawo 4

Ndine wonyadira kwambiri kuti tinali oyamba kulimbikitsa kuti malonda athu azigwira ntchito bwino popanda kuyembekezera madandaulo a makasitomala. Zonse zidayamba mophweka - tinali ndi mapulogalamu ogwiritsira ntchito ku Python ndi mapulogalamu angapo akumbuyo ku Ruby, koma zinthu zinakhala zosangalatsa kwambiri pamene opanga mawebusayiti athu adalengeza kuti asiya JVM ndikusuntha intaneti. kugwiritsa ntchito pulogalamu ya Node.js. Pambuyo pa kukhazikitsidwa kwa Docker, zinthu zidakhala zovuta kwambiri. Tidatsata malingaliro ndipo matekinoloje omwe tidabwera nawo adakhala zenizeni pomwe tidawagwiritsa ntchito kwa makasitomala chifukwa adapanga zomveka. Ndikuuzani chifukwa chake zili choncho.

API Gateway imatha kuphatikizira zolemba zazikulu zomwe zimatha kukhala zomaliza kwa opanga UI. Iwo anatembenuza malemba onsewa m'njira yoti atatha kusintha kuti azitha kuwatumizira kuzinthu zopangira ndikugwiritsanso ntchito zipangizo, ndipo zosintha zonsezi zinagwirizanitsidwa ndi mapeto omwe ankayenda pachipata cha API.

Komabe, izi zidabwerezanso vuto lopanga monolith yatsopano pomwe ntchito ya API idadzaza ndi kachidindo kotero kuti zochitika zosiyanasiyana zolephera zidachitika. Mwachitsanzo, malekezero ena adachotsedwa, kapena zolemba zinangopanga masinthidwe ambiri azinthu zomwe zidatenga makumbukidwe onse a API.

Zinali zomveka kutenga zomalizazi ndikuzitulutsa mu ntchito ya API. Kuti tichite izi, tidapanga zida za Node.js zomwe zimagwira ntchito ngati zing'onozing'ono muzotengera za Docker. Izi zidatipangitsa kuti tisiyanitse zovuta zilizonse komanso kuwonongeka komwe kumachitika chifukwa cha ma node awa.

Mtengo wa zosinthazi ndi waukulu kwambiri ndipo uli ndi zinthu izi:

  • Zida zopangira. Kuwongolera matekinoloje atsopano kumafuna zida zatsopano chifukwa gulu la UI, pogwiritsa ntchito zolemba zabwino kwambiri kuti lipange chitsanzo chabwino, silinagwiritse ntchito nthawi yochuluka poyang'anira zowonongeka, zimangolemba zolemba ndikuyang'ana ntchito zawo.
    Mwayi Kuzindikira ndi Kusanja - Chitsanzo chachikulu ndi zida zatsopano zomwe zimafunikira kuti muvumbulutse zambiri zamadalaivala. Zinali zofunikira kudziwa kuchuluka kwa purosesa, momwe kukumbukira kumagwiritsidwira ntchito, ndikusonkhanitsa chidziwitsochi kumafuna zida zosiyanasiyana.
  • Kugawikana kwa zithunzi zoyambira - maziko osavuta AMI agawika kwambiri komanso apadera.
  • Kuwongolera ma node. Palibe zomanga pashelefu kapena ukadaulo womwe umakupatsani mwayi wowongolera ma node mumtambo, chifukwa chake tidapanga Titus, nsanja yoyang'anira chidebe yomwe imapereka kuyika kwa chidebe chokhazikika komanso chodalirika komanso kuphatikiza kwamtambo ndi Amazon AWS.
  • Kubwereza kwa laibulale kapena nsanja. Kupereka matekinoloje atsopano okhala ndi magwiridwe antchito ofanana papulatifomu kunafunikira kubwerezanso kukhala zida zopangira Node.js zamtambo.
  • Maphunziro opindika komanso zochitika zamakampani. Kukhazikitsidwa kwa matekinoloje atsopano kumabweretsa zovuta zatsopano zomwe ziyenera kuthetsedwa ndikuphunzirapo.

Motero, sitikanatha kungokhala ndi β€œmsewu woyala” umodzi ndipo tinkafunika kumangokhalira kupanga njira zatsopano zopititsira patsogolo ukadaulo wathu. Kuti tichepetse mtengo, tidachepetsa chithandizo chapakati ndikungoyang'ana ma JVM, ma node atsopano, ndi Docker. Tidayika patsogolo zotsatira zogwira mtima, magulu odziwitsa za mtengo wa zisankho zawo, ndikuwalimbikitsa kuti ayang'ane njira zogwiritsanso ntchito mayankho omwe adapanga kale. Tidagwiritsa ntchito njirayi pomasulira ntchitoyi m'zilankhulo zakunja kuti tipereke malonda kwa makasitomala apadziko lonse lapansi. Zitsanzo zimaphatikizapo malaibulale osavuta a kasitomala omwe amatha kupangidwa okha, kotero kuti ndizosavuta kupanga mtundu wa Python, mtundu wa Ruby, mtundu wa Java, ndi zina zambiri.

Nthawi zonse tinkafunafuna mipata yogwiritsira ntchito matekinoloje otsimikiziridwa omwe adadziwonetsera okha pamalo amodzi komanso muzochitika zina zofanana.

Tiyeni tikambirane za chinthu chomaliza - kusintha, kapena kusiyanasiyana. Onani momwe kugwiritsidwira ntchito kwazinthu zathu kumasiyanasiyana mosiyanasiyana ndi tsiku la sabata ndi ola tsiku lonse. Mutha kunena kuti 9 koloko ndi nthawi yovuta kwambiri kwa Netflix, pamene katundu pa dongosolo amafika pamlingo wake.

Msonkhano wa QCon. Mastering Chaos: The Netflix Guide to Microservices. Gawo 4

Kodi tingatani kuti tikwaniritse liwiro lalikulu la kukhazikitsidwa kwa mapulogalamu a mapulogalamu, ndiko kuti, nthawi zonse kusintha kwatsopano kwa dongosolo, popanda kusokoneza ntchito yopereka chithandizo komanso popanda kupanga zovuta kwa makasitomala athu? Netflix idakwaniritsa izi pogwiritsa ntchito Spinnaker, nsanja yatsopano yapadziko lonse lapansi yoyang'anira mitambo ndi kutumiza mosalekeza (CD).

Msonkhano wa QCon. Mastering Chaos: The Netflix Guide to Microservices. Gawo 4

Mwachidziwitso, Spinnaker idapangidwa kuti iphatikize machitidwe athu abwino kuti pamene tikugwiritsa ntchito zigawo pakupanga, titha kuphatikizira zotulukazo mwachindunji muukadaulo wathu woperekera media.

Msonkhano wa QCon. Mastering Chaos: The Netflix Guide to Microservices. Gawo 4

Tatha kuphatikizira matekinoloje awiri m'mapaipi athu operekera zinthu omwe timawakonda kwambiri: kusanthula kokhazikika kwa canary ndi kutumiza m'magawo. Kusanthula kwa Canary kumatanthauza kuti timawongolera kuchuluka kwa magalimoto pamasinthidwe atsopano a code, ndikudutsanso magalimoto onse opanga kudzera mumtundu wakale. Kenako timayang'ana momwe code yatsopanoyo imagwirira ntchito - zabwino kapena zoyipa kuposa zomwe zilipo.

Kutulutsa kwapang'onopang'ono kumatanthauza kuti ngati kutulutsidwa kudera lina kuli ndi zovuta, timasamukira kudera lina. Pachifukwa ichi, mndandanda womwe watchulidwa pamwambapa uyenera kuphatikizidwa muzitsulo zopangira. Ndikusungirani nthawi ndikukulimbikitsani kuti muyang'ane nkhani yanga yapitayi, Engineering Global Netflix Operations in the Cloud, ngati mukufuna kudumphira mozama pamutuwu. Kujambulira kanema wa mawuwo kumatha kuwonedwa potsatira ulalo womwe uli pansi pa slide.

Msonkhano wa QCon. Mastering Chaos: The Netflix Guide to Microservices. Gawo 4

Kumapeto kwa nkhaniyo, ndilankhula mwachidule za bungwe ndi zomangamanga za Netflix. Pachiyambi pomwe tinali ndi chiwembu chotchedwa Electronic Delivery, yomwe inali mtundu woyamba wa NRDP 1.x kutsatsira media. Mawu akuti "backstream" angagwiritsidwe ntchito pano chifukwa poyamba wogwiritsa ntchito amatha kutsitsa zomwe zidzaseweredwe pambuyo pake pa chipangizocho. Pulogalamu yoyamba yobweretsera digito ya Netflix, kumbuyoko mu 2009, idawoneka motere.

Msonkhano wa QCon. Mastering Chaos: The Netflix Guide to Microservices. Gawo 4

Chipangizo chogwiritsira ntchito chinali ndi pulogalamu ya Netflix, yomwe inali ndi mawonekedwe a UI, ma modules otetezera, kutsegula ntchito ndi kusewera, kutengera nsanja ya NRDP - Netflix Ready Device Platform.

Panthawiyo mawonekedwe ogwiritsira ntchito anali ophweka kwambiri. Inali ndi zomwe zimatchedwa Queque Reader, ndipo wogwiritsa ntchito amatha kupita kumalo kuti awonjezere chinachake ku Queque ndikuwona zomwe zawonjezeredwa pa chipangizo chawo. Chosangalatsa chinali chakuti gulu lakutsogolo ndi gulu lakumbuyo linali la bungwe lomwelo la Electronic Delivery ndipo linali ndi mgwirizano wapamtima. Malipiro adapangidwa kutengera XML. Panthawi imodzimodziyo, Netflix API ya bizinesi ya DVD inapangidwa, yomwe inalimbikitsa mapulogalamu a chipani chachitatu kuti atsogolere magalimoto kuntchito yathu.

Komabe, Netflix API inali yokonzekera bwino kuti itithandize ndi mawonekedwe atsopano ogwiritsira ntchito, omwe ali ndi ma metadata azinthu zonse, zokhudzana ndi mafilimu omwe analipo, zomwe zinapanga luso lopanga mindandanda yowonera. Inali ndi generic REST API yochokera pa JSON schema, HTTP Response Code, yomweyi yomwe imagwiritsidwa ntchito m'mamangidwe amakono, ndi chitsanzo cha chitetezo cha OAuth, chomwe chinali chofunikira panthawiyo kuti agwiritse ntchito kutsogolo. Izi zidapangitsa kuti zitheke kusamuka kuchoka pagulu la anthu otumizirana zinthu zina kupita pagulu lachinsinsi.

Msonkhano wa QCon. Mastering Chaos: The Netflix Guide to Microservices. Gawo 4

Vuto ndi kusintha kunali kugawikana, popeza tsopano dongosolo lathu limagwira ntchito ziwiri zozikidwa pa mfundo zosiyana kwambiri za ntchito - imodzi pa Mpumulo, JSON ndi OAuth, ina pa RPC, XML ndi makina ogwiritsira ntchito chitetezo chochokera ku dongosolo la zizindikiro za NTBA. Aka kanali koyamba kamangidwe ka haibridi.

Panali zozimitsa moto pakati pa magulu athu awiri chifukwa poyambirira API sinali bwino ndi NCCP ndipo izi zidadzetsa mkangano pakati pamaguluwo. Kusiyanaku kunali mu mautumiki, ma protocol, mabwalo, ma module achitetezo, ndi otukula nthawi zambiri amayenera kusinthana pakati pamitundu yosiyana.

Msonkhano wa QCon. Mastering Chaos: The Netflix Guide to Microservices. Gawo 4

Pankhani imeneyi, ndinacheza ndi mmodzi wa akatswiri okonza makina a kampaniyo, amene ndinamufunsa funso lakuti: β€œKodi zomanga za nthawi yaitali ziyenera kukhala zotani?” ndipo anafunsa funso loti: β€œMwina mukukhudzidwa kwambiri. za zotsatira za gulu - chimachitika ndi chiyani ngati tiphatikiza zinthu izi, ndikuphwanya zomwe taphunzira kuchita bwino? Njira imeneyi ndi yogwirizana kwambiri ndi Lamulo la Conway: "Mabungwe omwe amapanga machitidwe amaletsedwa ndi mapangidwe omwe amafanana ndi njira yolumikizirana ya bungwelo." Ili ndi tanthauzo losamveka, choncho ndimakonda lachindunji: "Pulogalamu iliyonse imawonetsa dongosolo lomwe lidapanga." Nawa mawu omwe ndimawakonda kwambiri ochokera kwa Eric Raymond: "Ngati muli ndi magulu anayi a omanga omwe akugwira ntchito yophatikizira, mudzakhala ndi compiler yamapasi anayi." Chabwino, Netflix ili ndi compiler-pass compiler, ndi momwe timagwirira ntchito.

Tinganene kuti pamenepa mchira ukugwedeza galu. Cholinga chathu choyamba si yankho, koma bungwe; ndi bungwe lomwe limayendetsa zomangamanga zomwe tili nazo. Pang'onopang'ono, kuchokera ku hodgepodge ya mautumiki, tinasamukira ku zomangamanga zomwe timatcha Blade Runner, chifukwa apa tikukamba za mautumiki apamphepete ndi kuthekera kwa NCCP kuti apatulidwe ndikuphatikizidwa mwachindunji mu proxy Zuul, API pachipata, ndi ntchito yofananira. "zidutswa" zasinthidwa kukhala ma microservice atsopano okhala ndi chitetezo chapamwamba kwambiri, kubwezeretsanso, kusanja deta, ndi zina zotero.

Choncho, tinganene kuti mapangidwe a dipatimenti ndi kayendetsedwe ka makampani amagwira ntchito yofunika kwambiri pakupanga mapangidwe a dongosolo ndipo ndi chinthu chomwe chimalimbikitsa kapena kulepheretsa kusintha. Zomangamanga za Microservices ndizovuta komanso zachilengedwe, ndipo thanzi lake limakhazikika pakulanga ndikuyambitsa chisokonezo.

Kutsatsa pang'ono

Zikomo chifukwa chokhala nafe. Kodi mumakonda zolemba zathu? Mukufuna kuwona zambiri zosangalatsa? Tithandizeni potipatsa oda kapena kulimbikitsa anzathu, mtambo VPS kwa opanga kuchokera ku $ 4.99, ma analogi apadera a ma seva olowera, omwe adakupangirani inu: Chowonadi chonse chokhudza VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps kuchokera $19 kapena momwe mungagawire seva? (ikupezeka ndi RAID1 ndi RAID10, mpaka 24 cores mpaka 40GB DDR4).

Dell R730xd 2x yotsika mtengo ku Equinix Tier IV data center ku Amsterdam? Pokhapokha 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV kuchokera $199 ku Netherlands! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - kuchokera $99! Werengani za Momwe mungamangire Infrastructure Corp. kalasi pogwiritsa ntchito ma seva a Dell R730xd E5-2650 v4 ofunika ma euro 9000 pa khobiri?

Source: www.habr.com

Kuwonjezera ndemanga