Seboka sa QCon. Mastering Chaos: Tataiso ea Netflix ea Microservices. Karolo ea 4

Josh Evans o bua ka lefats'e le ferekaneng le le mebala-bala la li-microservices tsa Netflix, ho qala ka lintho tsa motheo - anatomy ea microservices, mathata a amanang le litsamaiso tse ajoang, le melemo ea tsona. Ha a haha ​​​​motheong ona, o hlahloba mekhoa ea setso, ea meralo le ea ts'ebetso e lebisang ho microservice mastery.

Seboka sa QCon. Mastering Chaos: Tataiso ea Netflix ea Microservices. Karolo ea 1
Seboka sa QCon. Mastering Chaos: Tataiso ea Netflix ea Microservices. Karolo ea 2
Seboka sa QCon. Mastering Chaos: Tataiso ea Netflix ea Microservices. Karolo ea 3

Ho fapana le ts'ebetso ea ts'ebetso, ho hlahisoa ha lipuo tse ncha bakeng sa ts'ebeletso ea machaba le mahlale a macha a joalo ka lijana ke liqeto tse hlokolosi tsa ho eketsa mathata a macha tikolohong. Sehlopha sa ka sa ts'ebetso se ile sa ikamahanya le 'mapa o motle ka ho fetisisa oa theknoloji bakeng sa Netflix, e neng e entsoe ka mekhoa e metle e boletsoeng esale pele e thehiloeng ho Java le EC2, empa ha khoebo e ntse e hola, bahlahisi ba ile ba qala ho eketsa likarolo tse ncha tse kang Python, Ruby, Node-JS le Docker.

Seboka sa QCon. Mastering Chaos: Tataiso ea Netflix ea Microservices. Karolo ea 4

Ke motlotlo haholo hore ebe re bile ba pele ba ho buella hore sehlahisoa sa rona se sebetse hantle ntle le ho emela litletlebo tsa bareki. E qalile e le bonolo ho lekana - re ne re e-na le mananeo a ts'ebetso ho Python le likopo tse 'maloa tsa morao-rao ho Ruby, empa lintho li ile tsa thahasellisa haholo ha baetsi ba rona ba marang-rang ba phatlalatsa hore ba tlo lahla JVM mme ba tlo tsamaisa marang-rang. kopo ho sethaleng sa software sa Node.js. Kamora ho hlahisoa ha Docker, lintho li ile tsa rarahana le ho feta. Re ile ra latela logic 'me litheknoloji tseo re li entseng e ile ea e-ba ntho ea sebele ha re li kenya ts'ebetsong bakeng sa bareki hobane li ne li utloahala haholo. Ke tla o bolella hore na hobaneng ho le jwalo.

API Gateway e hlile e na le bokhoni ba ho kopanya mangolo a maholo a ka sebetsang e le li-endpoints bakeng sa baetsi ba UI. Ba ile ba fetola e 'ngoe le e' ngoe ea mangolo ana ka tsela eo ka mor'a ho etsa liphetoho ba ka e fetisetsang tlhahiso le lisebelisoa tsa basebelisi, 'me liphetoho tsena kaofela li ne li lumellana le li-endpoints tse mathang hekeng ea API.

Leha ho le joalo, sena se ile sa pheta bothata ba ho theha monolith e ncha moo tšebeletso ea API e neng e tletse khoutu ka tsela eo ho ileng ha etsahala maemo a sa tšoaneng a ho hlōleha. Ka mohlala, lintlha tse ling li ile tsa tlosoa, kapa mangolo a ile a hlahisa mefuta e mengata ea ntho e itseng hoo liphetolelo li ileng tsa nka mohopolo o teng oa tšebeletso ea API.

E ne e le ntho e utloahalang ho nka lintlha tsena le ho li ntša tšebeletsong ea API. Ho etsa sena, re thehile likarolo tsa Node.js tse neng li sebetsa joalo ka lits'ebetso tse nyane ka har'a lijana tsa Docker. Sena se re lumelletse ho arola mathata leha e le afe le ho senyeha ho bakoang ke lisebelisoa tsena tsa node.

Litsenyehelo tsa liphetoho tsena li kholo haholo 'me li na le lintlha tse latelang:

  • Lisebelisoa tsa tlhahiso. Ho laola mahlale a macha ho ne ho hloka lisebelisoa tse ncha hobane sehlopha sa UI, se sebelisa lingoloa tse ntle haholo ho etsa mohlala o sebetsang hantle, se ne se sa tlameha ho qeta nako e ngata se laola meaho, se ne se tlameha feela ho ngola mangolo le ho hlahloba ts'ebetso ea sona.
    Opportunity Insight le Hlophisa - Mohlala oa bohlokoa ke lisebelisoa tse ncha tse hlokahalang ho sibolla lintlha tsa mokhanni oa ts'ebetso. Ho ne ho hlokahala ho tseba hore na processor e ne e tšoaretsoe bokae, memori e ne e sebelisoa joang, le ho bokella tlhahisoleseling ena ho hloka lisebelisoa tse fapaneng.
  • Karohano ea litšoantšo tsa motheo - motheo o bonolo oa AMI o fetohile o arohaneng le o ikhethang.
  • Tsamaiso ea li-node. Ha ho na meaho e kantle ho sethala kapa thekenoloji e fumanehang e u lumellang hore u tsamaise li-node marung, ka hona re hahile Titus, sethala sa taolo ea setshelo se fanang ka phepelo ea lijana tse scalable le tse tšepahalang le khokahano ea leru le Amazon AWS.
  • Phetiso ea laebrari kapa sethala. Ho fana ka mahlale a macha a nang le ts'ebetso e ts'oanang ea sethala ho ne ho hloka hore e e kopitse ho lisebelisoa tsa nts'etsopele ea Node.js tse thehiloeng marung.
  • Boiphihlelo ba ho ithuta le boiphihlelo ba indasteri. Kenyelletso ea mahlale a macha e hlahisa mathata a macha a tlamehang ho hlōloa le ho ithutoa ho ona.

Kahoo, re ne re ke ke ra khona ho fella ka “tsela e katiloeng” feela ’me ra tlameha ho lula re haha ​​litsela tse ncha tsa ho ntšetsa pele theknoloji ea rōna. Ho fokotsa litšenyehelo, re ile ra fokotsa tšehetso e bohareng mme ra tsepamisa maikutlo ho JVM, li-node tse ncha, le Docker. Re ile ra etelletsa pele tšusumetso e sebetsang, lihlopha tse tsebang ka litšenyehelo tsa liqeto tsa tsona, 'me ra li khothalletsa ho batla litsela tsa ho sebelisa hape litharollo tse nang le tšusumetso e phahameng tseo ba seng ba li hlahisitse. Re sebelisitse mokhoa ona ha re fetolela ts'ebeletso lipuong tsa kantle ho naha ho isa sehlahisoa ho bareki ba machabeng. Mehlala e kenyelletsa lilaebrari tse bonolo tsa bareki tse ka hlahisoang ka bo eona, e le hore ho be bonolo ho theha mofuta oa Python, mofuta oa Ruby, mofuta oa Java, jj.

Re ne re lula re batla menyetla ea ho sebelisa mahlale a netefalitsoeng a ipakileng sebakeng se le seng le maemong a mang a tšoanang.

Ha re bue ka ntlha ea ho qetela - liphetoho, kapa liphapang. Sheba hore na tšebeliso ea sehlahisoa sa rona e fapana joang ka letsatsi la beke le hora letsatsi lohle. U ka re 9 hoseng ke nako e thata ka ho fetisisa bakeng sa Netflix, ha mojaro o tsamaisong o fihla boholo ba oona.

Seboka sa QCon. Mastering Chaos: Tataiso ea Netflix ea Microservices. Karolo ea 4

Re ka finyella lebelo le phahameng la ts'ebetsong ea lisebelisoa tsa software, ke hore, kamehla re etsa liphetoho tse ncha tsamaisong, ntle le ho baka litšitiso ho fana ka litšebeletso le ntle le ho baka tšitiso ho bareki ba rona? Netflix e fihletse sena ka ts'ebeliso ea Spinnaker, sethala se secha sa taolo ea leru lefatšeng ka bophara le sethala sa phepelo e tsoelang pele (CD).

Seboka sa QCon. Mastering Chaos: Tataiso ea Netflix ea Microservices. Karolo ea 4

Ha e le hantle, Spinnaker e ne e etselitsoe ho kopanya mekhoa ea rona e metle e le hore ha re ntse re kenya likarolo ho hlahisa, re ka kopanya tlhahiso ka ho toba ho theknoloji ea rona ea ho fana ka mecha ea litaba.

Seboka sa QCon. Mastering Chaos: Tataiso ea Netflix ea Microservices. Karolo ea 4

Re khonne ho kenyelletsa mekhoa e 'meli ea thekenoloji eo re e nkang e le ea bohlokoa haholo: tlhahlobo e ikemetseng ea canary le ho tsamaisoa ka mekhahlelo. Tlhahlobo ea Canary e bolela hore re lebisa mokhoa o fokolang oa sephethephethe ho mofuta o mocha oa khoutu, 'me re fetise sephethephethe sa tlhahiso ka mokhoa oa khale. Ebe re sheba hore na khoutu e ncha e sebetsana joang le mosebetsi - e betere kapa e mpe ho feta e teng.

Ho phatlalatsoa ka mokhoa o makatsang ho bolela hore haeba ho phatlalatsoa sebakeng se seng ho na le mathata, re fallela sebakeng se seng. Tabeng ena, lethathamo le boletsoeng ka holimo le tlameha ho kenyeletsoa lipeiping tsa tlhahiso. Ke tla u bolokela nako 'me ke u khothalletsa hore u hlahlobe puo ea ka e fetileng, Engineering Global Netflix Operations in the Cloud, haeba u thahasella ho teba ka taba ena. Rekoto ea video ea puo e ka bonoa ka ho latela sehokelo se tlase ho selaete.

Seboka sa QCon. Mastering Chaos: Tataiso ea Netflix ea Microservices. Karolo ea 4

Qetellong ea puo, ke tla bua ka bokhutšoanyane ka mokhatlo le meralo ea Netflix. Qalong haholo re ne re e-na le leano le bitsoang Electronic Delivery, eo e neng e le phetolelo ea pele ea NRDP 1.x media streaming. Lentsoe "backstream" le ka sebelisoa mona hobane qalong mosebelisi o ne a ka khoasolla litaba hore a li bapale hamorao sesebelisoa. Sethala sa pele sa ho fana ka dijithale sa Netflix, morao koana ka 2009, se ne se shebahala tjena.

Seboka sa QCon. Mastering Chaos: Tataiso ea Netflix ea Microservices. Karolo ea 4

Sesebelisoa sa mosebelisi se ne se e-na le sesebelisoa sa Netflix, se neng se e-na le sebopeho sa UI, li-module tsa ts'ireletso, ts'ebetso ea ts'ebeletso le ho bapala hape, ho ipapisitse le sethala sa NRDP - Netflix Ready Device Platform.

Ka nako eo sebopeho sa mosebelisi se ne se le bonolo haholo. E ne e e-na le se neng se bitsoa Queque Reader, 'me mosebedisi o ne a tla ea sebakeng sa marang-rang ho eketsa ho hong ho Queque ebe o sheba litaba tse ekelitsoeng sesebelisoa sa bona. Ntho e ntle e ne e le hore sehlopha se ka pele le sehlopha sa morao e ne e le sa mokhatlo o le mong oa Electronic Delivery mme o na le kamano e haufi ea ho sebetsa. Lekhetho le entsoe ho ipapisitsoe le XML. Ka nako e ts'oanang, Netflix API bakeng sa khoebo ea DVD e ile ea bōptjoa, e ileng ea khothalletsa likopo tsa batho ba boraro ho tsamaisa sephethephethe tšebeletsong ea rona.

Leha ho le joalo, Netflix API e ne e itokiselitse hantle ho re thusa ka sebopeho se secha sa mosebedisi, se nang le metadata ea litaba tsohle, tlhahisoleseding e mabapi le hore na lifilimi li ne li le teng, tse entseng bokhoni ba ho hlahisa manane a ho shebella. E ne e e-na le REST API e tloaelehileng e thehiloeng ho schema ea JSON, Khoutu ea Karabelo ea HTTP, e tšoanang e sebelisoang meahong ea sejoale-joale, le mohlala oa ts'ireletso oa OAuth, e leng sona se neng se hlokahala ka nako eo bakeng sa kopo ea pele. Sena se entse hore ho khonehe ho tloha mokhoeng oa sechaba oa phano ea litaba ho ea ho o mong.

Seboka sa QCon. Mastering Chaos: Tataiso ea Netflix ea Microservices. Karolo ea 4

Bothata ba phetoho e ne e le karohano, kaha joale tsamaiso ea rona e ne e sebetsa litšebeletso tse peli tse thehiloeng ho melao-motheo e fapaneng ka ho feletseng ea ts'ebetso - e 'ngoe ho Phomolo, JSON le OAuth, e' ngoe ho RPC, XML le mochine oa ts'ireletso ea mosebedisi o thehiloeng tsamaisong ea token ea NTBA. Ena e ne e le mohaho oa pele oa lebasetere.

Ha e le hantle ho ne ho na le firewall lipakeng tsa lihlopha tsa rona tse peli hobane qalong API e ne e sa tsamaee hantle le NCCP mme sena se ile sa baka likhohlano lipakeng tsa lihlopha. Phapano e ne e le lits'ebeletso, liprothokholo, lipotoloho, li-module tsa ts'ireletso, le bahlahisi hangata ba ne ba tlameha ho fetoha lipakeng tsa maemo a fapaneng ka ho felletseng.

Seboka sa QCon. Mastering Chaos: Tataiso ea Netflix ea Microservices. Karolo ea 4

Tabeng ena, ke ile ka buisana le e mong oa lienjiniere tse phahameng tsa k’hamphani eo, eo ke ileng ka mo botsa potso e reng: “Mohaho o nepahetseng oa nako e telele e lokela ho ba ofe?” ’me o ile a botsa k’haontareng: “Mohlomong u amehile haholoanyane. mabapi le liphello tsa mokhatlo - ho etsahala'ng ha re kopanya lintho tsee, 'me li senya seo re ithutileng sona ho se etsa hantle? Mokhoa ona o amana haholo le Molao oa Conway: "Mekhatlo e etsang litsamaiso tsa meralo e hatelloa ke moralo o phetang sebopeho sa puisano sa mokhatlo oo." Ena ke tlhaloso e sa utloahaleng haholo, kahoo ke khetha e tobileng haholoanyane: "Sehlopha sefe kapa sefe sa software se bonts'a sebopeho sa mokhatlo se se thehileng." Mona ke mantsoe ao ke a ratang ka ho fetisisa a tsoang ho Eric Raymond: "Haeba u na le lihlopha tse 'nè tsa batho ba ntlafatsang ba sebetsang ka moqapi, u tla qetella u e-na le moqapi oa li-pass tse 'nè." Che, Netflix e na le pokello ea li-pass tse nne, 'me ke kamoo re sebetsang kateng.

Re ka re tabeng ena mohatla o tsokotsa ntja. Taba ea pele ea rona ha se tharollo, empa ke mokhatlo; ke mokhatlo o tsamaisang meralo eo re nang le eona. Butle-butle, ho tloha ho hodgepodge ea lits'ebeletso, re ile ra fallela mohahong oo re o bitsitseng Blade Runner, hobane mona re bua ka litšebeletso tsa bohale le bokhoni ba NCCP ea ho aroloa le ho kopanngoa ka ho toba ho proxy ea Zuul, heke ea API, le ts'ebetso e lumellanang le eona. "likotoana" li fetotsoe li-microservices tse ncha tse nang le ts'ireletso e tsoetseng pele, replay, ho hlophisa lintlha, joalo-joalo.

Kahoo, ho ka boleloa hore libopeho tsa lefapha le matla a khampani li phetha karolo ea bohlokoa ho bopeng moralo oa tsamaiso 'me ke ntho e khothalletsang kapa e sitisang phetoho. Mehaho ea Microservices e rarahane ebile e bōpiloe, 'me bophelo bo botle ba eona bo itšetlehile ka taeo le merusu e hlahisitsoeng.

Papatso e nyane

Kea leboha ka ho lula le rona. Na u rata lingoliloeng tsa rona? U batla ho bona litaba tse ling tse khahlisang? Re tšehetse ka ho etsa odara kapa ho khothaletsa metsoalle, cloud VPS bakeng sa batho ba ntlafatsang ho tloha ho $ 4.99, analogue e ikhethang ea li-server tsa boemo ba ho kena, e iqapetsoeng ke rona bakeng sa hau: 'Nete eohle ka VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps ho tloha $19 kapa mokhoa oa ho arolelana seva? (e fumaneha ka RAID1 le RAID10, ho fihla ho li-cores tse 24 le ho fihla ho 40GB DDR4).

Dell R730xd makhetlo a 2 a theko e tlase sebakeng sa data sa Equinix Tier IV se Amsterdam? Ke mona feela 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV ho tloha $199 naheng ea Netherlands! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - ho tloha $99! Bala ka Mokhoa oa ho haha ​​​​infrastructure Corp. sehlopha ka tšebeliso ea li-server tsa Dell R730xd E5-2650 v4 tse jang li-euro tse 9000 bakeng sa penny?

Source: www.habr.com

Eketsa ka tlhaloso