QCon Hui. Mastering Chaos: ʻO ke alakaʻi Netflix i nā Microservices. Mahele 4

Ua kamaʻilio ʻo Josh Evans e pili ana i ka honua chaotic a me ka waihoʻoluʻu o Netflix microservices, e hoʻomaka ana me nā kumu kumu - ke anatomy o microservices, nā pilikia e pili ana i nā ʻōnaehana hoʻolaha, a me kā lākou mau pono. Ke kūkulu nei ʻo ia ma luna o kēia kumu, ʻimi ʻo ia i ka moʻomeheu moʻomeheu, hoʻolālā, a me nā hana hana e alakaʻi ai i ka microservice mastery.

QCon Hui. Mastering Chaos: ʻO ke alakaʻi Netflix i nā Microservices. Mahele 1
QCon Hui. Mastering Chaos: ʻO ke alakaʻi Netflix i nā Microservices. Mahele 2
QCon Hui. Mastering Chaos: ʻO ke alakaʻi Netflix i nā Microservices. Mahele 3

ʻAʻole like me ka drift hana, ʻo ka hoʻokomo ʻana i nā ʻōlelo hou no ka lawelawe internationalization a me nā ʻenehana hou e like me nā ipu he mau hoʻoholo noʻonoʻo e hoʻohui i ka paʻakikī hou i ke kaiapuni. Hoʻonohonoho ʻia kaʻu hui hana i ka ʻenehana ʻenehana ʻoi loa no Netflix, i kālua ʻia i loko o nā hana maikaʻi loa e pili ana iā Java a me EC2, akā i ka ulu ʻana o ka ʻoihana, hoʻomaka nā mea hoʻomohala e hoʻohui i nā mea hou e like me Python, Ruby, Node-JS, a me Docker.

QCon Hui. Mastering Chaos: ʻO ke alakaʻi Netflix i nā Microservices. Mahele 4

Haʻaheo loa wau ʻo mākou ka mea mua i kākoʻo i kā mākou huahana e hana maikaʻi me ke kali ʻole i nā hoʻopiʻi o nā mea kūʻai aku. Ua maʻalahi ka hoʻomaka ʻana - ua loaʻa iā mākou nā polokalamu hana ma Python a me kekahi mau noi back-office ma Ruby, akā ua ʻoi aku ka hoihoi o nā mea i ka wā i hoʻolaha ai kā mākou mea hoʻomohala pūnaewele e haʻalele lākou i ka JVM a e neʻe ana i ka pūnaewele. noi i ka papahana polokalamu Node js. Ma hope o ka hoʻokomo ʻana iā Docker, ua ʻoi aku ka paʻakikī o nā mea. Ua hahai mākou i ka loiloi a ua lilo nā ʻenehana i loaʻa iā mākou i ka wā i hoʻokō ai mākou iā lākou no nā mea kūʻai aku no ka mea ua hana nui lākou. E haʻi aku wau iā ʻoe i ke kumu o kēia.

Loaʻa i ka API Gateway ka hiki ke hoʻohui i nā palapala maikaʻi i hiki ke hana ma ke ʻano he hopena no nā mea hoʻomohala UI. Ua hoʻololi lākou i kēlā me kēia o kēia mau palapala ma ke ʻano ma hope o ka hoʻololi ʻana i hiki iā lākou ke kau iā lākou i ka hana a laila i nā mea hoʻohana, a ua hui pū ʻia kēia mau hoʻololi a pau me nā hopena i holo i ka puka API.

Eia nō naʻe, ua hana hou kēia i ka pilikia o ka hana ʻana i kahi monolith hou kahi i hoʻopiha ʻia ai ka lawelawe API me nā code i ke ʻano i hiki mai ai nā hiʻohiʻona like ʻole. No ka laʻana, ua hoʻoneʻe ʻia kekahi mau helu hope, a i ʻole nā ​​​​scripts i hana maʻamau i nā mana he nui o kahi mea i lawe ʻia e nā mana nā hoʻomanaʻo āpau o ka lawelawe API.

He mea kūpono ke lawe i kēia mau hopena a huki iā lākou mai ka lawelawe API. No ka hana ʻana i kēia, hana mākou i nā ʻāpana Node.js i holo ma ke ʻano he mau noi liʻiliʻi i nā pahu Docker. Ua ʻae kēia iā mākou e hoʻokaʻawale i nā pilikia a me nā pōʻino i hana ʻia e kēia mau noi node.

ʻO ke kumukūʻai o kēia mau hoʻololi he nui loa a aia nā kumu penei:

  • Nā mea hana huahana. Pono ka hoʻokele ʻana i nā ʻenehana hou i nā mea hana hou no ka mea ʻo ka hui UI, me ka hoʻohana ʻana i nā palapala maikaʻi loa e hana i kahi kumu hoʻohālike kūpono, ʻaʻole pono lākou e hoʻolilo i ka manawa nui i ka hoʻokele ʻana i ka ʻoihana, pono lākou e kākau i nā palapala a nānā i kā lākou hana.
    Opportunity Insight and Sorting - ʻO kahi laʻana koʻikoʻi nā mea hana hou e pono ai e wehe i ka ʻike hoʻokele hana. Pono e ʻike i ka nui o ka mea hana, pehea e hoʻohana ʻia ai ka hoʻomanaʻo, a ʻo ka ʻohi ʻana i kēia ʻike e pono ai nā mea hana like ʻole.
  • ʻO ka ʻāpana o nā kiʻi kumu - ua lilo ka AMI kumu maʻalahi i ʻāpana a me ka loea.
  • Hoʻoponopono node. ʻAʻohe hale hoʻolālā a i ʻole ʻenehana i loaʻa e hiki ai iā ʻoe ke hoʻokele i nā node i ke ao, no laila ua kūkulu mākou iā Titus, kahi kahua hoʻokele pahu e hāʻawi ana i ka hoʻolaha ʻana o ka pahu a me ka hoʻohui ʻana i ke ao me Amazon AWS.
  • Hoʻopili hou i kahi waihona a i ʻole ke kahua. ʻO ka hāʻawi ʻana i nā ʻenehana hou me nā hana koʻikoʻi like o ka paepae e pono ai ke kope kope ʻana iā ia i nā mea hoʻomohala Node.js i hoʻokumu ʻia i ke ao.
  • Ke aʻo ʻana a me ka ʻike ʻoihana. ʻO ka hoʻokomo ʻana i nā ʻenehana hou e hoʻokumu i nā pilikia hou e pono e lanakila a aʻo ʻia.

No laila, ʻaʻole hiki iā mākou ke kaupalena iā mākou iho i hoʻokahi "alanui paved" a pono mākou e kūkulu mau i nā ala hou e holomua ai kā mākou ʻenehana. No ka hoʻohaʻahaʻa ʻana i nā kumukūʻai, ua kaupalena mākou i ke kākoʻo kikowaena a kālele i ka JVM, nā nodes hou, a me Docker. Hoʻomaka mua mākou i ka hopena maikaʻi, hoʻomaopopo i nā hui e pili ana i ke kumukūʻai o kā lākou hoʻoholo, a paipai iā lākou e ʻimi i nā ala e hoʻohana hou ai i nā hopena hopena kiʻekiʻe a lākou i kūkulu ai. Ua hoʻohana mākou i kēia ala i ka unuhi ʻana i ka lawelawe i nā ʻōlelo haole e hāʻawi i ka huahana i nā mea kūʻai aku honua. Loaʻa i nā laʻana nā hale waihona puke mea kūʻai maʻalahi hiki ke hana maʻalahi, i maʻalahi ka hana ʻana i kahi mana Python, kahi mana Ruby, kahi mana Java, etc.

Ke ʻimi mau nei mākou i nā manawa e hoʻohana ai i nā ʻenehana hōʻoia i hōʻoia iā lākou iho ma kahi hoʻokahi a ma nā kūlana like ʻole.

E kamaʻilio e pili ana i ka mea hope - nā hoʻololi, a i ʻole nā ​​ʻano like ʻole. E nānā i ke ʻano like ʻole o ka hoʻohana ʻana i kā mākou huahana i ka lā o ka pule a me ka hola a puni ka lā. Hiki iā ʻoe ke ʻōlelo ʻo 9 a.m. ka manawa paʻakikī loa no Netflix, ke piʻi ka ukana ma ka ʻōnaehana i kona kiʻekiʻe.

QCon Hui. Mastering Chaos: ʻO ke alakaʻi Netflix i nā Microservices. Mahele 4

Pehea e hiki ai iā mākou ke hoʻokō i ka wikiwiki kiʻekiʻe o ka hoʻokō ʻana i nā polokalamu hou, ʻo ia hoʻi, e hana mau i nā hoʻololi hou i ka ʻōnaehana, me ka ʻole o ka hoʻopau ʻana i ka lawelawe ʻana a me ka hana ʻole ʻana i nā mea kūʻai aku? Ua hoʻokō ʻo Netflix i kēia ma o ka hoʻohana ʻana iā Spinnaker, kahi hoʻokele honua honua hou a me ka hoʻouna mau ʻana (CD).

QCon Hui. Mastering Chaos: ʻO ke alakaʻi Netflix i nā Microservices. Mahele 4

ʻO ka mea koʻikoʻi, ua hoʻolālā ʻia ʻo Spinnaker e hoʻohui i kā mākou mau hana maikaʻi loa i hiki iā mākou ke hoʻokomo i nā ʻāpana i loko o ka hana, hiki iā mākou ke hoʻohui pololei i ka huahana i kā mākou ʻenehana hoʻolaha media.

QCon Hui. Mastering Chaos: ʻO ke alakaʻi Netflix i nā Microservices. Mahele 4

Ua hiki iā mākou ke hoʻokomo i nā ʻenehana ʻelua i loko o kā mākou pipeline hoʻopuka a mākou e manaʻo nui ai: ka nānā ʻana i nā canary automated a me ka hoʻonohonoho ʻana. ʻO ka loiloi Canary ʻo ia ka mea e alakaʻi mākou i kahi kahe o ke kaʻa i ka mana hou o ke code, a hāʻawi i ke koena o ke kaʻa hana ma o ka mana kahiko. A laila nānā mākou pehea e hoʻokō ai ke code hou i ka hana - ʻoi aku ka maikaʻi a i ʻole ka hewa ma mua o ka mea i loaʻa.

ʻO ka hoʻokuʻu ʻia ʻana, ʻo ia hoʻi, inā pilikia ka ʻōwili ma kekahi ʻāina, neʻe mākou i kahi ʻōwili ma kahi ʻāina ʻē aʻe. I kēia hihia, pono e hoʻokomo ʻia ka papa inoa i ʻōlelo ʻia ma luna o ka pipeline hana. E mālama au iā ʻoe i kekahi manawa a paipai iā ʻoe e nānā i kaʻu kamaʻilio mua, ʻo Engineering Global Netflix Operations in the Cloud, inā makemake ʻoe e luʻu hohonu i kēia kumuhana. Hiki ke ʻike ʻia ka paʻi wikiō o ka haʻiʻōlelo ma ka hahai ʻana i ka loulou ma lalo o ka paheʻe.

QCon Hui. Mastering Chaos: ʻO ke alakaʻi Netflix i nā Microservices. Mahele 4

I ka pau ʻana o ke kamaʻilio, e kamaʻilio pōkole wau e pili ana i ka hoʻonohonoho a me ka hoʻolālā ʻana o Netflix. I ka hoʻomaka ʻana ua loaʻa iā mākou kahi papahana i kapa ʻia ʻo Electronic Delivery, ʻo ia ka mana mua o NRDP 1.x media streaming. Hiki ke hoʻohana ʻia ka huaʻōlelo "backstream" ma ʻaneʻi no ka mea hiki i ka mea hoʻohana ke hoʻoiho wale i ka ʻike no ka pāʻani hope ma ka hāmeʻa. ʻO ke kahua hoʻopuka kikohoʻe mua loa o Netflix, i ka makahiki 2009, ua like me kēia.

QCon Hui. Mastering Chaos: ʻO ke alakaʻi Netflix i nā Microservices. Mahele 4

Aia i loko o ka mea hoʻohana ka polokalamu Netflix, kahi i loaʻa i kahi interface UI, nā modules palekana, ka hoʻoulu ʻana i ka lawelawe a me ka pāʻani, e pili ana i ka NRDP platform - Netflix Ready Device Platform.

I kēlā manawa ua maʻalahi ka mea hoʻohana. Loaʻa iā ia ka mea i kapa ʻia ʻo Queque Reader, a hele ka mea hoʻohana i ka pūnaewele e hoʻohui i kekahi mea iā Queque a laila e nānā i ka ʻike i hoʻohui ʻia ma kā lākou hāmeʻa. ʻO ka mea maikaʻi, ʻo ka hui mua a me ka hui hope no ka hui Electronic Delivery hoʻokahi a he pilina pili pili. Ua hana ʻia ka uku ma muli o XML. I ka manawa like, ua hoʻokumu ʻia ka Netflix API no ka ʻoihana DVD, ka mea i paipai i nā noi ʻaoʻao ʻekolu e kuhikuhi i ke kaʻa i kā mākou lawelawe.

Eia naʻe, ua mākaukau maikaʻi ka Netflix API e kōkua iā mākou me kahi mea hoʻohana hou, i loaʻa ka metadata o nā ʻike āpau, ka ʻike e pili ana i nā kiʻiʻoniʻoni i loaʻa, i hana i ka hiki ke hana i nā papa kiaʻi. Loaʻa iā ia kahi API REST maʻamau e pili ana i ka schema JSON, HTTP Response Code, ka mea like i hoʻohana ʻia i ka hoʻolālā o kēia wā, a me kahi kumu hoʻohālike OAuth, ʻo ia ka mea i koi ʻia i ka manawa no kahi noi mua. ʻO kēia ka mea i hiki ai ke neʻe mai kahi hiʻohiʻona lehulehu o ka hāʻawi ʻana i ka ʻike i kahi pilikino.

QCon Hui. Mastering Chaos: ʻO ke alakaʻi Netflix i nā Microservices. Mahele 4

ʻO ka pilikia me ka hoʻololi ʻana he ʻāpana, ʻoiai i kēia manawa ua hoʻohana kā mākou ʻōnaehana i ʻelua mau lawelawe e pili ana i nā loina like ʻole o ka hana - hoʻokahi ma Rest, JSON a me OAuth, ʻo kekahi ma RPC, XML a me kahi mīkini palekana mea hoʻohana e pili ana i ka ʻōnaehana hōʻailona NTBA. ʻO kēia ka papa hana hybrid mua.

Aia nō he pā ahi ma waena o kā mākou mau hui ʻelua no ka mea ʻaʻole maikaʻi loa ka API i ka NCCP a ua alakaʻi kēia i ka hakakā ma waena o nā hui. Aia nā ʻokoʻa i nā lawelawe, protocols, circuits, security modules, a me nā mea hoʻomohala pinepine e hoʻololi i waena o nā ʻano ʻokoʻa like ʻole.

QCon Hui. Mastering Chaos: ʻO ke alakaʻi Netflix i nā Microservices. Mahele 4

No kēia mea, ua kamaʻilio wau me kekahi o nā ʻenekini kiʻekiʻe o ka ʻoihana, a ua nīnau au iā ia i ka nīnau: "He aha ka mea e pono ai ka hoʻolālā lōʻihi?" a nīnau ʻo ia i ka nīnau counter: "Ua hopohopo paha ʻoe e pili ana i nā hopena hoʻonohonoho - he aha ka hopena inā hoʻohui mākou i kēia mau mea, a haki lākou i ka mea a mākou i aʻo ai e hana maikaʻi? Pili loa kēia ʻano i ke Kānāwai o Conway: "ʻO nā hui e hoʻopaʻa ʻia nā ʻōnaehana hoʻolālā e kahi hoʻolālā e hoʻopili hou ana i ke ʻano kamaʻilio o kēlā hui." He wehewehe kikoʻī loa kēia, no laila makemake au i kahi kikoʻī hou aʻe: "Ke hōʻike nei kēlā me kēia ʻāpana polokalamu i ka ʻōnaehana hoʻonohonoho i hana ai." Eia kaʻu ʻōlelo punahele mai Eric Raymond: "Inā loaʻa iā ʻoe nā hui ʻehā o nā mea hoʻomohala e hana ana i kahi mea hoʻopili, e hoʻopau ʻoe i kahi mea hoʻopili ʻehā-pass." ʻAe, loaʻa iā Netflix kahi compiler ʻehā-pass, a pēlā mākou e hana ai.

Hiki iā mākou ke ʻōlelo i kēia hihia ke wili nei ka huelo i ka ʻīlio. ʻO kā mākou mea mua, ʻaʻole ia ka hoʻonā, akā ʻo ka hui; ʻo ia ka hui e hoʻokele i ka hale hana i loaʻa iā mākou. Me ka liʻiliʻi, mai kahi hodgepodge o nā lawelawe, neʻe mākou i kahi hoʻolālā i kapa ʻia ʻo Blade Runner, no ka mea, eia mākou e kamaʻilio nei e pili ana i nā lawelawe ʻaoʻao a me ka hiki ke hoʻokaʻawale ʻia a hoʻohui pū ʻia ka NCCP i ka Zuul proxy, API gateway, a me ka hana kūpono. Ua hoʻololi ʻia nā "'āpana" i microservices hou me nā hiʻohiʻona ʻoi aku ka palekana, replay, data sorting, etc.

No laila, hiki ke ʻōlelo ʻia he kuleana koʻikoʻi nā hale ʻoihana a me nā ʻoihana ʻoihana i ka hoʻolālā ʻana i ka hoʻolālā ʻōnaehana a he kumu ia e hoʻoikaika ai a keakea paha i ka loli. ʻO ka hoʻolālā Microservices he paʻakikī a kūlohelohe, a ua hoʻokumu ʻia kona olakino ma luna o ka hoʻopaʻi a me nā haunaele.

He hoʻolaha liʻiliʻi

Mahalo no kou noho pū ʻana me mākou. Makemake ʻoe i kā mākou ʻatikala? Makemake ʻoe e ʻike i nā mea hoihoi hou aʻe? E kākoʻo iā mākou ma ke kau ʻana i kahi kauoha a i ʻole ka ʻōlelo ʻana i nā hoaaloha, cloud VPS no nā mea hoʻomohala mai $4.99, he analogue kū hoʻokahi o nā kikowaena hoʻokomo-level, i hana ʻia e mākou no ʻoe: ʻO ka ʻoiaʻiʻo holoʻokoʻa e pili ana iā VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps mai $ 19 a pehea e kaʻana like ai i kahi kikowaena? (loaʻa me RAID1 a me RAID10, a hiki i 24 cores a hiki i 40GB DDR4).

ʻO Dell R730xd 2 mau manawa maʻalahi ma Equinix Tier IV kikowaena data ma Amsterdam? Eia wale nō 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV mai $199 ma Netherlands! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - mai $99! Heluhelu e pili ana Pehea e kūkulu ai i ka ʻoihana ʻoihana. papa me ka hoʻohana 'ana o Dell R730xd E5-2650 v4 kikowaena waiwai 9000 euros no ka peni?

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka