Huihuinga QCon. Te Maamaa Hurorirori: Ko te Aratohu Netflix ki Microservices. Wāhanga 4

E korero ana a Josh Evans mo te ao hurorirori me te ao karakara o Netflix microservices, timata mai i nga mea tino taketake - te anatomy o nga ratonga miihini, nga wero e pa ana ki nga punaha tohatoha, me o raatau painga. Ko te hanga i runga i tenei turanga, ka tirotirohia e ia nga tikanga ahurea, hangahanga, me nga mahi whakahaere e arahi ana ki te mohiotanga moroiti.

Huihuinga QCon. Te Maamaa Hurorirori: Ko te Aratohu Netflix ki Microservices. Wāhanga 1
Huihuinga QCon. Te Maamaa Hurorirori: Ko te Aratohu Netflix ki Microservices. Wāhanga 2
Huihuinga QCon. Te Maamaa Hurorirori: Ko te Aratohu Netflix ki Microservices. Wāhanga 3

Kaore i rite ki te rere o nga mahi, ko te whakaurunga o nga reo hou mo te ratonga ao me nga hangarau hou penei i nga ipu he whakatau mohio ki te taapiri i nga uaua hou ki te taiao. I whakatauhia e taku roopu whakahaere te mahere huarahi hangarau pai rawa atu mo Netflix, i tunua ki nga tikanga pai kua tautuhia i mua i runga i te Java me te EC2, engari i te tipu haere o te pakihi, ka timata nga kaihanga ki te taapiri i nga waahanga hou penei i a Python, Ruby, Node-JS, me Docker.

Huihuinga QCon. Te Maamaa Hurorirori: Ko te Aratohu Netflix ki Microservices. Wāhanga 4

Kei te tino whakahīhī ahau ko mātou te tuatahi ki te tohe kia pai te mahi a a matou hua me te kore e tatari mo nga amuamu a nga kaihoko. He maamaa noa te tiimata - he kaupapa whakahaere a matou i roto i te Python me etahi tono tari-muri i Ruby, engari i tino pai ake nga mea i te panuitanga a o maatau kaiwhakawhanake paetukutuku ka whakakorehia e ratou te JVM ka neke te ipurangi. tono ki te papa rorohiko Node.js. Whai muri i te whakaurunga o Docker, ka tino uaua nga mea. I whai matou i te arorau me nga hangarau i puta mai i a maatau i te wa i whakatinanahia e matou mo nga kaihoko na te mea he tino mohio. Ka korerotia e ahau he aha i penei ai.

Ko te API Gateway he kaha ki te whakauru i nga tuhinga tino pai ka taea te mahi hei tohu mutunga mo nga kaihanga UI. I hurihia e ratou ia o enei tuhinga kia rite ki muri i te whakarereketanga ka taea e ratou te tuku ki te whakaputa me nga taputapu kaiwhakamahi, a ko enei huringa katoa i tukutahi me nga tohu mutunga i rere ki te kuaha API.

Heoi, na tenei i whakahoki ano te raru o te hanga i tetahi monolith hou i utaina ai te ratonga API ki te waehere na te mea i puta nga ahuatanga koretake. Hei tauira, i tangohia etahi pito mutunga, i hangaia matapōkeretia ranei e nga tuhinga te maha o nga putanga o tetahi mea i tangohia e nga putanga nga maharatanga katoa o te ratonga API.

He mea tika ki te tango i enei tohu ka toia mai i te ratonga API. Hei mahi i tenei, i hangaia e matou nga waahanga Node.js i rere hei tono iti i roto i nga ipu Docker. Na tenei ka taea e matou te wehe i nga raru me nga tukinga na enei tono node.

Ko te utu mo enei huringa he tino nui, a ko nga mea e whai ake nei:

  • Nga taputapu hua. Ko te whakahaere i nga hangarau hou e hiahia ana ki nga taputapu hou na te mea ko te roopu UI, e whakamahi ana i nga tuhinga tino pai ki te hanga i tetahi tauira pai, kaore i nui te wa ki te whakahaere i nga hanganga, me tuhi noa nga tuhinga me te tirotiro i o raatau mahi.
    Te Maramatanga me te Whakaraupapa - Ko te tauira matua ko nga taputapu hou e hiahiatia ana hei hura i nga korero taraiwa mahi. He mea tika kia mohio ki te nui o te mahi o te tukatuka, me pehea te whakamahi mahara, me te kohikohi i enei korero e hiahiatia ana nga taputapu rereke.
  • Te wehewehenga o nga whakaahua taketake - ko te AMI turanga ngawari kua pakaru ake, kua tino motuhake.
  • Whakahaere node. Karekau he hoahoanga o waho o te papa, he hangarau ranei e taea ai e koe te whakahaere i nga kopuku i roto i te kapua, na reira i hanga e matou a Titus, he papa whakahaere ipu e whakarato ana i te whakatakotoranga ipu e taea ana, me te whakaurunga kapua ki te Amazon AWS.
  • Te tāruarua o te whare pukapuka, te papaaho ranei. Ko te whakarato i nga hangarau hou he rite tonu te mahinga matua o te papaapapa e tika ana kia kape ki nga taputapu kaiwhakawhanake Node.js-kapua.
  • Anau ako me te wheako ahumahi. Ko te whakaurunga o nga hangarau hou e kore e kore ka puta he wero hou me hinga me te ako mai.

No reira, kare e taea e matou te whakawhāiti i a matou ki tetahi "ara para" me te hanga i nga huarahi hou ki te ahu whakamua i o maatau hangarau. Hei whakaiti i nga utu, i whakawhäitihia e mätou te tautoko matua me te arotahi ki te JVM, nga waahanga hou, me te Docker. I whakaraupapahia e matou nga paanga whai hua, i whakamohio ki nga roopu mo te utu mo o raatau whakatau, me te akiaki i a raatau ki te rapu huarahi ki te whakamahi ano i nga otinga tino kaha kua oti kee i a raatau. I whakamahia e matou tenei huarahi i te wa e whakamaoritia ana te ratonga ki nga reo ke ki te tuku hua ki nga kaihoko o te ao. Ko nga tauira ko nga whare pukapuka a nga kiritaki ngawari ka taea te hanga aunoa, kia tino ngawari te hanga i tetahi putanga Python, he putanga Ruby, he putanga Java, etc.

I rapu tonu matou i nga waahi ki te whakamahi i nga hangarau kua whakamatauria i a raatau ano ki tetahi waahi me etahi atu ahuatanga rite.

Me korero mo te waahanga whakamutunga - nga huringa, nga rereke ranei. Tirohia te rereketanga o te kohi o a maatau hua i ia ra o te wiki me ia haora puta noa i te ra. Ka taea e koe te kii ko te 9 karaka te waa tino uaua mo Netflix, ka eke te kawenga ki runga i te punaha ki tona teitei.

Huihuinga QCon. Te Maamaa Hurorirori: Ko te Aratohu Netflix ki Microservices. Wāhanga 4

Me pehea e taea ai e tatou te tere tere o te whakatinanatanga o nga kaupapa hou, ara, te whakarereke i nga punaha hou, me te kore e aukati i te tuku ratonga me te kore e raru ki o taatau kaihoko? I tutuki tenei e Netflix na roto i te whakamahi a Spinnaker, he whakahaere hou i runga i te kapua o te ao me te papaa tuku tonu (CD).

Huihuinga QCon. Te Maamaa Hurorirori: Ko te Aratohu Netflix ki Microservices. Wāhanga 4

Ma te arohaehae, i hangaia a Spinnaker ki te whakauru i o maatau mahi pai kia rite ki te tohatoha i nga waahanga ki roto i nga mahi whakaputa, ka taea e taatau te whakauru tika i te putanga ki o maatau hangarau tuku korero.

Huihuinga QCon. Te Maamaa Hurorirori: Ko te Aratohu Netflix ki Microservices. Wāhanga 4

Kua taea e matou te whakauru i nga hangarau e rua ki roto i a maatau paipa tuku e tino whakanuia ana e matou: te tātari kanari aunoa me te whakatakotoranga kua whakaritea. Ko te tikanga o te tātaritanga o Canary ka tukuna e matou he rerenga waka ki te putanga hou o te waehere, ka tukuna atu te toenga o nga hokohoko ki te putanga tawhito. Katahi ka tirohia me pehea te mahi a te waehere hou ki te mahi - he pai ake, he kino atu ranei i te waa.

Ko te tikanga o te whakaputanga kua takahurihia, ki te raru te whakaputanga i tetahi rohe, ka neke tatou ki te whakaputanga ki tetahi atu rohe. I tenei keehi, ko te rarangi arowhai kua whakahuahia ake nei me whakauru ki roto i te paipa whakaputa. Ka whakaora ahau i a koe mo etahi wa ka tūtohu kia tirohia e koe taku korero o mua, Engineering Global Netflix Operations in the Cloud, mena kei te pirangi koe ki te ruku hohonu atu ki tenei kaupapa. Ka taea te tiro i te riipene ataata o te whaikorero ma te whai i te hono kei raro o te kiriata.

Huihuinga QCon. Te Maamaa Hurorirori: Ko te Aratohu Netflix ki Microservices. Wāhanga 4

I te mutunga o te korero, ka korero poto ahau mo te whakahaere me te hoahoanga o Netflix. I te timatanga he kaupapa e kiia nei ko te Tukunga Hiko, koinei te putanga tuatahi o te NRDP 1.x roma pāpāho. Ka taea te whakamahi i te kupu "backstream" i konei na te mea i te tuatahi ka taea e te kaiwhakamahi te tango ihirangi mo te purei ano i muri mai i runga i te taputapu. Ko te turanga tuku mamati tuatahi a Netflix, i te tau 2009, he penei te ahua.

Huihuinga QCon. Te Maamaa Hurorirori: Ko te Aratohu Netflix ki Microservices. Wāhanga 4

Kei roto i te taputapu kaiwhakamahi te tono Netflix, kei roto ko te atanga UI, nga waahanga haumaru, te whakahohe ratonga me te purei, i runga i te papaaho NRDP - Netflix Ready Device Platform.

I taua wa he tino ngawari te atanga kaiwhakamahi. Kei roto ko te mea i kiia ko te Queque Reader, a ka haere te kaiwhakamahi ki te pae ki te taapiri i tetahi mea ki a Queque katahi ka tiro i nga mea taapiri i runga i o raatau taputapu. Ko te mea pai ko te roopu o mua me te roopu o muri no te whakahaere Tuku Hiko kotahi, he hononga tata te mahi. I hangaia te utu utu i runga i te XML. I te wa ano, i hangaia te Netflix API mo te pakihi DVD, i whakatenatena i nga tono tuatoru ki te arahi i nga waka ki ta maatau ratonga.

Heoi, i tino rite te Netflix API ki te awhina ia matou ki te atanga kaiwhakamahi auaha, kei roto nga metadata o nga ihirangi katoa, nga korero mo nga kiriata e waatea ana, i hanga ai te kaha ki te whakaputa i nga rarangi mataara. He API REST whanui i runga i te kaupapa JSON, Waehere Whakautu HTTP, te mea ano i whakamahia i roto i te hoahoanga hou, me te tauira haumarutanga OAuth, ko te mea i hiahiatia i tera wa mo te tono o mua. Na tenei i taea ai te neke mai i te tauira a te iwi mo te tuku ihirangi whakawhiti ki tetahi mea motuhake.

Huihuinga QCon. Te Maamaa Hurorirori: Ko te Aratohu Netflix ki Microservices. Wāhanga 4

Ko te raruraru o te whakawhitinga he wehewehenga, i te mea i tenei wa ka whakahaerehia e to maatau punaha nga ratonga e rua i runga i nga kaupapa rereke rereke o te mahi - tetahi i runga i te okiokinga, JSON me OAuth, tetahi i runga i te RPC, XML me tetahi tikanga haumarutanga kaiwhakamahi i runga i te punaha tohu NTBA. Koinei te hanganga ranu tuatahi.

He papaahi i waenganui i a maatau roopu e rua na te mea i te tuatahi kare te API i tino pai ki te NCCP, na konei i taupatupatu ai nga roopu. Ko nga rereketanga i roto i nga ratonga, nga kawa, nga ara iahiko, nga waahanga haumaru, me nga kaiwhakawhanake i te nuinga o te waa ki te huri i waenga i nga horopaki rereke.

Huihuinga QCon. Te Maamaa Hurorirori: Ko te Aratohu Netflix ki Microservices. Wāhanga 4

I runga i tenei kaupapa, i korero ahau ki tetahi o nga miihini matua o te kamupene, i patai atu ahau ki a ia: "He aha te ahua o te hoahoanga mo te wa roa?" ka patai ia ki te patai: "Kei te awangawanga koe. e pa ana ki nga hua o te whakahaere - ka aha mena ka whakakotahi tatou i enei mea, ka pakaru nga mea i akohia e tatou kia pai ai? He tino whaitake tenei huarahi ki te Ture a Conway: "Ko nga whakahaere e herea ana nga punaha hoahoa e tetahi hoahoa e whakahoki ana i te hanganga korero o taua whakahaere." He whakamāramatanga tino rawe tenei, no reira ka pai ake ahau ki tetahi mea motuhake ake: "Ko tetahi waahanga rorohiko e whakaatu ana i te hanganga whakahaere nana i hanga." Anei taku korero tino pai mai i a Eric Raymond: "Mena e wha nga roopu kaiwhakawhanake e mahi ana i runga i te whakahiato, ka mutu koe ki te whakahiato wha-pass." Ana, kei a Netflix he kaikoipi e wha-paahi, a koira te mahi.

Ka taea e tatou te kii i tenei keehi kei te wiri te hiku i te kuri. Ko ta matou kaupapa tuatahi ehara i te otinga, engari ko te whakahaere; ko te whakahaere e akiaki ana i te hoahoanga kei a matou. Ka haere, mai i te maha o nga ratonga, ka neke matou ki tetahi hoahoanga i kiia e matou ko Blade Runner, no te mea kei konei e korero ana matou mo nga ratonga taha me te kaha o te NCCP ki te wehe me te whakauru tika ki te takawaenga Zuul, te tomokanga API, me nga mahi e rite ana. Ko nga "waahanga" kua huri hei ratonga moroiti hou me nga ahuatanga o te haumarutanga, te whakaari, te tohatoha raraunga, me etahi atu.

No reira, ka taea te kii ko nga hanganga tari me nga hihiri o te kamupene he mahi nui ki te hanga i te hoahoa o te punaha me te mea he mea whakatairanga, hei aukati ranei i te huringa. He uaua, he rauropi hoki te hoahoanga Microservices, a, ko tona hauora kei runga i te ako me te hepohepo kua whakauruhia.

He panui iti

Mauruuru koe mo te noho ki a matou. He pai ki a koe a maatau tuhinga? Kei te hiahia koe ki te kite i etahi atu mea whakamere? Tautokohia matou ma te tuku ota me te tuku korero ki o hoa, kapua VPS mo nga kaihanga mai i te $4.99, he tairitenga ahurei o nga kaitoro taumata-urunga, na matou i hanga mo koe: Ko te pono katoa mo VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps mai i te $19 me pehea ranei te tiri i tetahi tūmau? (e waatea ana me te RAID1 me te RAID10, tae atu ki te 24 matua me te 40GB DDR4).

Dell R730xd 2x iti ake i te pokapū raraunga Equinix Tier IV i Amsterdam? Anei i konei 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV mai i te $199 i roto i te Netherlands! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - mai i te $99! Pānuihia mo Me pehea te hanga hanganga corp. akomanga ki te whakamahi o Dell R730xd E5-2650 v4 tūmau utu 9000 euros mo te pene?

Source: will.com

Tāpiri i te kōrero