Delta: Fa'asalalauga Fa'amaumauga ma Fa'atamaoaigaina Fa'avae

I le faʻamoemoe o le faʻalauiloaina o se tafe fou i le fua faatatau Inisinia Fa'amaumauga Ua matou saunia se faaliliuga o mea manaia.

Delta: Fa'asalalauga Fa'amaumauga ma Fa'atamaoaigaina Fa'avae

lagona

O le a matou talanoa e uiga i se faʻataʻitaʻiga sili ona lauiloa lea e faʻaogaina ai e talosaga le tele o faleoloa faʻamaumauga, lea e faʻaaogaina ai faleoloa taʻitasi mo ona lava faʻamoemoega, mo se faʻataʻitaʻiga, e teu ai le ituaiga faʻamaumauga o faʻamaumauga (MySQL, ma isi), tuʻuina atu gafatia suʻesuʻe (ElasticSearch, etc.) .), Caching (Memcached, etc.) ma isi. E masani lava, pe a faʻaaogaina le tele o faleoloa faʻamaumauga, o le tasi oi latou e fai ma faleoloa muamua ae o isi e avea ma faleoloa faʻatau. Pau lava le faʻafitauli o le faʻafefea ona faʻafetaui nei faleoloa faʻamaumauga.

Na matou vaʻavaʻai i le tele o faʻataʻitaʻiga eseese na taumafai e foia le faʻafitauli o le tuʻufaʻatasia o le tele o faleoloa, e pei o le faaluaina o tusitusiga, fefaʻatauaʻiga tufatufaina, ma isi. Ae ui i lea, o nei auala e iai ni tapulaʻa taua i tulaga o le faʻaaogaina moni, faʻamaoni, ma le tausiga. I le faaopoopo atu i faʻamaumauga faʻatasi, o nisi tusi talosaga e manaʻomia foʻi le faʻatamaoaigaina o faʻamaumauga e ala i le valaʻau i auaunaga i fafo.

Delta na atiina ae e foia nei faafitauli. Delta mulimuli ane maua ai se tulaga faifaipea, fa'aoso fa'atupu mea mo le fa'amaopoopoina o fa'amaumauga ma le fa'atamaoaigaina.

Fofo o loʻo iai nei

Fa'alua ulufale

Ina ia teu fa'atasi fa'amaumauga e lua, e mafai ona e fa'aoga tusi lua, e tusi i le tasi faleoloa ona tusi loa lea i le isi. E mafai ona toe fa'ata'ita'i le fa'amaumauga muamua ae mafai ona fa'amuta lona lua pe a le manuia le mea muamua pe a uma le numera o taumafaiga. Peita'i, e mafai ona le toe fa'aogaina fa'amaumauga e lua pe a le mafai ona tusi i le faleoloa lona lua. O lenei faʻafitauli e masani lava ona foia e ala i le fatuina o se faiga toe faʻaleleia e mafai ona toe faʻafeiloaʻi faʻamaumauga mai le teuina muamua i le lona lua, pe naʻo le faia pe afai e iloa ni eseesega i faʻamaumauga.

Fa'afitauli:

O le fa'atinoina o se faiga toe fa'aleleia ose galuega fa'apitoa e le mafai ona toe fa'aaogaina. E le gata i lea, o faʻamatalaga i le va o nofoaga e teu ai e tumau pea le le ogatasi seia oʻo ina faia le faiga toe faʻaleleia. O le fofo o le a sili atu ona lavelave pe afai e sili atu ma le lua faleoloa faʻamaumauga e faʻaaogaina. Mulimuli ane, o le faiga toe fa'afo'isia e mafai ona fa'aopoopo le uta i le fa'apogai o fa'amaumauga.

Suia le laulau ogalaau

A tupu suiga i se seti o laulau (e pei o le faʻaofiina, faʻafouina, ma le tapeina o se faʻamaumauga), o faʻamaumauga o suiga e faʻaopoopo i le laulau ogalaau o se vaega o le fefaʻatauaiga tutusa. O le isi filo poʻo le faʻagasologa e manaʻomia pea mea na tutupu mai le laulau ogalaau ma tusi i latou i se tasi pe sili atu faleoloa faʻamaumauga, pe a manaʻomia, aveese mea mai le laulau faʻamau pe a uma ona faʻamaonia faʻamaumauga e faleoloa uma.

Fa'afitauli:

O lenei mamanu e tatau ona faʻatinoina e avea o se faletusi, ma lelei e aunoa ma le suia o le code o le talosaga e faʻaaogaina. I se si'osi'omaga polyglot, o se fa'atinoga o sea faletusi e tatau ona iai i so'o se gagana talafeagai, ae fa'amautinoa le fa'atumauina o galuega ma amioga i gagana eseese e matua faigata lava.

O le isi faʻafitauli o loʻo taoto i le mauaina o suiga o fuafuaga i faiga e le lagolagoina ai suiga tau fefaʻatauaʻiga [1] [2], pei ole MySQL. O le mea lea, o le mamanu o le faia o se suiga (mo se faʻataʻitaʻiga, suiga o le polokalame) ma fefaʻatauaʻiga faʻamaumau i totonu o le laulau suiga o le a le aoga i taimi uma.

Fa'asoa Fa'asoa

E mafai ona fa'aogaina fefa'ataua'iga fa'asoa e vaelua ai se fefa'ataua'iga i le tele o faleoloa fa'amatalaga eseese ina ia fa'atino ai le ta'aloga i fa'amaumauga uma na fa'aaogaina, pe le tu'uina atu i so'o se tasi oi latou.

Fa'afitauli:

O fefaʻatauaiga faʻasalalau o se faʻafitauli tele mo faleoloa faʻamatalaga eseese. E tusa ai ma lo latou natura, e mafai ona latou faʻalagolago i le pito sili ona maualalo masani o faiga e aofia ai. Mo se faʻataʻitaʻiga, XA fefaʻatauaiga poloka le faʻatinoina pe a fai e le manuia le faagasologa o talosaga i le taimi o sauniuniga. E le gata i lea, e le maua e le XA se su'esu'ega fa'aletonu po'o le lagolagoina o fuafuaga fa'atonutonu fa'atasi. E le gata i lea, o nisi faiga e pei o ElasticSearch e le lagolagoina le XA poʻo soʻo se isi faʻataʻitaʻiga fefaʻatauaiga eseese. O le mea lea, o le faʻamautinoaina o le tusia o le atomicity i tekinolosi faʻamaumauga eseese o loʻo tumau pea o se galuega faigata tele mo talosaga [3].

Delta

O le Delta na mamanuina e faʻafesoʻotaʻi tapulaʻa o faʻamaumauga o faʻamaumauga o loʻo i ai nei ma mafai ai foi ona faʻatamaoaigaina faʻamatalaga i luga ole lele. O la matou fa'amoemoe o le fa'ate'aina o nei fa'alavelave uma mai le au atina'e talosaga ina ia mafai ona latou taula'i atoatoa i le fa'atinoina o galuega fa'apisinisi. O le isi o le a matou faʻamatalaina "Suʻesuʻega Ata", le faʻaoga moni mo le Netflix's Delta.

E fa'aaogaina lautele e Netflix se fa'ata'ita'iga microservice, ma e masani lava ona fa'aaogaina e ta'itasi microservice se ituaiga o fa'amaumauga. O faʻamatalaga autu e uiga i le ata o loʻo i totonu o se microservice e taʻua o le Movie Service, ma faʻamatalaga fesoʻotaʻi e pei o faʻamatalaga e uiga i tagata gaosi oloa, tagata fai ata, tagata faʻatau, ma isi mea o loʻo pulea e le tele o isi microservices (e taʻua o Deal Service, Talent Service ma Vendor Service).
O tagata fa'apisinisi i Netflix Studios e masani ona mana'omia le su'esu'e i tulaga eseese o ata tifaga, o le mea lea e taua tele ai mo i latou le mafai ona su'e i fa'amaumauga uma e feso'ota'i i ata.

A'o le'i o'o i le Delta, e mana'omia e le au su'esu'e ata e toso fa'amaumauga mai le tele o microservice a'o le'i fa'asinoina fa'amaumauga o ata tifaga. E le gata i lea, e tatau i le 'au ona atiaʻe se faiga e faʻafou ai i lea taimi ma lea taimi le faʻailoga suʻesuʻe e ala i le talosagaina o suiga mai isi microservices, e tusa lava pe leai ni suiga. O lenei faiga na vave ona lavelave ma faigata ona tausia.

Delta: Fa'asalalauga Fa'amaumauga ma Fa'atamaoaigaina Fa'avae
Ata 1. Faiga palota ile Delta
Ina ua uma ona faʻaaogaina Delta, na faʻafaigofieina le faiga i se faiga faʻavae e pei ona faʻaalia i le ata o loʻo i lalo. CDC (Suiga-Fa'amatalaga-Pu'e) mea tutupu e lafo i Keystone Kafka autu e fa'aoga Delta-Connector. O se talosaga Delta na fausia e faʻaaoga ai le Delta Stream Processing Framework (faʻavae i luga o le Flink) e maua ai mea e tutupu mai le CDC mai se autu, faʻatamaoaigaina i latou e ala i le valaʻau i isi microservices, ma mulimuli ane pasi atu faʻamatalaga faʻatamaoaigaina i se faʻamatalaga suʻesuʻe i Elasticsearch. O le faagasologa atoa e tupu toetoe lava i le taimi moni, o lona uiga, o le taimi lava e tuʻuina atu ai suiga i le faleteuoloa faʻamaumauga, e faʻafouina faʻamatalaga suʻesuʻe.

Delta: Fa'asalalauga Fa'amaumauga ma Fa'atamaoaigaina Fa'avae
Ata 2. Pipa fa'amaumauga e fa'aaoga ai Delta
I vaega o loʻo mulimuli mai, o le a matou faʻamatalaina le faʻaogaina o le Delta-Connector, lea e fesoʻotaʻi atu i le teuina ma faʻasalalau mea CDC i luga o le felauaiga o felauaiga, o se faʻamatalaga faʻamatalaga taimi moni e faʻatautaia mea CDC i mataupu Kafka. Ma i le faaiuga lava, o le a tatou talanoa e uiga i le Delta stream processing framework, lea e mafai ona faʻaogaina e le au atinaʻe talosaga mo le faʻaogaina o faʻamatalaga ma le faʻatamaoaigaina o manatu.

CDC (Suiga-Fa'amatalaga-Pueina)

Ua matou atia'e se auaunaga CDC e ta'ua o le Delta-Connector, lea e mafai ona pu'eina suiga fa'atino mai le faleoloa fa'amaumauga i le taimi moni ma tusi ai i se vaitafe. O suiga taimi moni e ave mai le faʻamaumauga o fefaʻatauaiga ma le teuina o mea. E fa'aogaina le fa'agata ona o fa'amaumauga o fefa'ataua'iga e masani ona le fa'aputuina le tala'aga atoa o suiga. O suiga e masani lava ona fa'asologa e pei o Delta mea tutupu, o lea e le tau popole ai le tagata e mauaina pe o fea e sau ai le suiga.

E lagolagoina e Delta-Connector le tele o vaega faʻaopoopo e pei o:

  • Malosiaga e tusi ai fa'amaumauga fa'ale-aganu'u i tua atu o Kafka.
  • Malosiaga e fa'agaoioi ai tusi fa'ata'oto i so'o se taimi mo laulau uma, se laulau fa'apitoa, po'o ni ki fa'apitoa.
  • Lafoa'i e mafai ona toe aumai i ni pusi, o lea e leai se mana'oga e toe amata uma pe a le manuia.
  • E le manaʻomia le tuʻuina o loka i luga o laulau, e taua tele e faʻamautinoa ai e le taofia lava e la matou auaunaga le faʻamaumauga tusitusia.
  • Avanoa maualuga ona o le tele o taimi i AWS Availability Sone.

Matou te lagolagoina nei MySQL ma Postgres, e aofia ai faʻapipiʻi i luga o AWS RDS ma Aurora. Matou te lagolagoina foi Cassandra (multi-master). E mafai ona e mauaina nisi faʻamatalaga e uiga i Delta-Connector iinei blog post.

Kafka ma le vaega felauaiga

E fausia le vaega fe'avea'i a Delta i luga o le tautua fe'au a le tulaga Maa 'Auʻau.

I le tala faasolopito, o le lafoina i luga o Netflix ua sili ona lelei mo le faʻaogaina nai lo le umi (vaʻai i lalo). mataupu muamua). O le fefa'ataua'iga o fa'amatalaga fa'atauva'a fa'aletonu i fa'amatalaga pito eseese. Faataitaiga, palota ta’ita’i le mama e nafa ma le tagata o lo'o mauaina e ono maua ni mea fa'alua pe leiloa.

Faatasi ai ma Delta, matou te manaʻomia ni faʻamautinoaga sili atu ona tumau e faʻamautinoa le tuʻuina atu o mea faʻapitoa a le CDC i faleoloa na maua mai. Mo lenei faʻamoemoe, matou te faʻatulagaina se faʻapipiʻi faʻapitoa Kafka e avea o se mea muamua-vasega. E mafai ona e vaʻavaʻai i nisi tulaga fai pisinisi i le laulau i lalo:

Delta: Fa'asalalauga Fa'amaumauga ma Fa'atamaoaigaina Fa'avae

I fuifui Keystone Kafka, palota ta’ita’i le mama e masani ona aofia ai ina ia mautinoa le avanoa o tagata tala'i. E ono i'u ai i le leiloa o fe'au pe a filifilia se fa'atusa e le'i fa'atasi e fai ma ta'ita'i. Mo se fou maualuga avanoa Kafka fuifui, le filifiliga palota ta’ita’i le mama tape e puipuia ai le leiloa o fe'au.

Sa matou faateleina foi mea e toe faia ai mai le 2 i le 3 ma la'ititi fa'atusa insync 1 i le 2. O tagata fa'asalalau e tusi atu i lenei fuifui e mana'omia ni acks mai isi uma, fa'amautinoa o le 2 mai le 3 fa'atusa o lo'o iai fe'au aupito lata mai na lafo mai e le tagata fa'asalalau.

A fa'amutaina se fa'ata'ita'iga fai pisinisi, e suitulaga e se fa'ata'ita'iga fou le mea tuai. Ae ui i lea, e manaʻomia e le tagata fai pisinisi fou le faʻaogaina o kopi e leʻi faʻaogaina, lea e ono alu ai ni nai itula. Ina ia faʻaitiitia le taimi toe faʻaleleia mo lenei faʻataʻitaʻiga, na amata ona matou faʻaogaina faʻamaumauga poloka poloka (Amazon Elastic Block Store) nai lo tisiki fai pisinisi i le lotoifale. A suia e se fa'ata'ita'iga fou se fa'ata'ita'iga fai pisinisi fa'amuta, e fa'apipi'i ai le voluma EBS lea na maua e le fa'ai'uga fa'amuta ma amata ona pu'e i fe'au fou. O lenei faiga e fa'aitiitia ai le taimi e fa'amama ai i tua mai itula i minute ona o le fa'ata'ita'iga fou e le toe mana'omia le toe fa'atusa mai se tulaga gaogao. Aotelega, tuueseese le teuina ma le tagata fa'atauoloa olaola e matua fa'aitiitia ai le a'afiaga o le fesuiaiga o tagata fai pisinisi.

Ina ia faʻateleina le faʻamaonia o le tuʻuina atu o faʻamatalaga, matou te faʻaaogaina faiga su'esu'e fe'au e iloa ai so'o se fe'au leiloa i lalo o tulaga ogaoga (mo se fa'ata'ita'iga, uati desynchronization i le ta'ita'i vaeluaga).

Auivi o Fa'agaioiga Vaitafe

O le faʻaogaina o le Delta o loʻo fausia i luga o le Netflix SPaaS platform, lea e tuʻuina atu ai le Apache Flink faʻatasi ma le Netflix ecosystem. O le fa'avae e tu'uina atu ai se fa'aoga fa'aoga e fa'atautaia ai le fa'atinoina o galuega a Flink ma le tu'ufa'atasiga o fuifui Flink i luga o le fa'atonuga o le fa'afoega o pusa Titus. O le atina'e fo'i e fa'afoeina fa'atonuga o galuega ma fa'ataga ai tagata fa'aoga e faia suiga fa'aopoopo ma le malosi e aunoa ma le toe fa'aopoopoina o galuega Flink.

Delta o loʻo tuʻuina atu se faʻaogaina o le vaitafe e faʻavae i luga o Flink ma SPaaS e faʻaaogaina fa'avae fa'amatalaga DSL (Domain Specific Language) i fa'amatalaga fa'apitoa fa'apitoa. Mo se faʻataʻitaʻiga, e faʻamalamalamaina le laasaga lea o le a faʻatamaoaigaina ai mea tutupu e ala i le valaʻau i auaunaga i fafo, e manaʻomia e tagata faʻaoga ona tusia le DSL o loʻo mulimuli mai, ma o le faʻavae o le a fatuina se faʻataʻitaʻiga e faʻavae i luga, lea o le a faʻatinoina e Flink.

Delta: Fa'asalalauga Fa'amaumauga ma Fa'atamaoaigaina Fa'avae
Ata 3. Fa'ata'ita'iga o le fa'atamaoaigaina ile DSL ile Delta

E le gata ina fa'aitiitia le fa'aa'oa'oga, ae fa'apea fo'i ona tu'uina atu uiga fa'agasolo masani e pei o le toesea, schematization, ma le fetu'una'i ma le maufetuuna'i e fo'ia ai fa'afitauli masani o galuega.

Delta Stream Processing Framework e aofia ai vaega autu e lua, le DSL & API module ma le Runtime module. O le DSL & API module e tuʻuina atu DSL ma UDF (User-Defined-Function) APIs ina ia mafai ai e tagata faʻaoga ona tusia a latou lava faʻatonuga (e pei o le faʻamamaina poʻo suiga). O le Runtime module o loʻo tuʻuina atu ai se faʻatinoga o se DSL parser e fausia ai se faʻataʻitaʻiga i totonu o laasaga o gaioiga i faʻataʻitaʻiga DAG. O le vaega o le Fa'atinoga e fa'amatalaina DAG fa'ata'ita'iga e fa'amataina ai fa'amatalaga moni a Flink ma mulimuli ane fa'atautaia le talosaga Flink. O le fausaga o le auivi o loʻo faʻaalia i le ata o loʻo i lalo.

Delta: Fa'asalalauga Fa'amaumauga ma Fa'atamaoaigaina Fa'avae
Ata 4. Delta Stream Processing Framework fausaga fausaga

O lenei faiga e tele ni tulaga lelei:

  • E mafai e tagata faʻaoga ona taulaʻi atu i la latou faʻamatalaga pisinisi e aunoa ma le suʻesuʻeina o faʻamatalaga o Flink poʻo le SPaaS fausaga.
  • E mafai ona faia le fa'alelei i se auala e manino i tagata fa'aoga, ma e mafai ona fa'aleleia mea sese e aunoa ma le mana'omia o so'o se suiga i le fa'aoga code (UDF).
  • O le Delta application experience e faʻafaigofieina mo tagata faʻaoga ona o le faʻavae e tuʻuina atu le fetuutuunai ma le faʻamalosi i fafo o le atigipusa ma aoina mai le tele o faʻamatalaga auʻiliʻili e mafai ona faʻaoga mo faʻasalalauga.

Fa'aaogāga gaosiga

O le Delta o loʻo i ai i le gaosiga mo le silia ma le tausaga ma o loʻo i ai sona sao taua i le tele o Netflix Studio talosaga. Sa ia fesoasoani i 'au e fa'atino tulaga fa'aoga e pei ole su'esu'ega fa'asinomaga, teuina o fa'amaumauga, ma fa'asologa o galuega. Lalo o se faʻamatalaga lautele o le fausaga maualuga o le Delta platform.

Delta: Fa'asalalauga Fa'amaumauga ma Fa'atamaoaigaina Fa'avae
Ata 5. Fa'ailoga maualuga a Delta.

Faʻafetai

Matou te fia faʻafetai atu i tagata nei o loʻo aʻafia i le fausiaina ma le atinaʻeina o Delta i Netflix: Allen Wang, Charles Zhao, Jaebin Yoon, Josh Snyder, Kasturi Chatterjee, Mark Cho, Olof Johansson, Piyush Goyal, Prashanth Ramdas, Raghuram Onti Srinivasan, Sandeep Gupta, Steven Wu, Tharanga Gamaethige, Yun Wang ma Zhenzhong Xu.

Punaoa

  1. dev.mysql.com/doc/refman/5.7/en/implicit-commit.html
  2. dev.mysql.com/doc/refman/5.7/en/cannot-roll-back.html
  3. Martin Kleppmann, Alastair R. Beresford, Boerge Svingen: Faʻasologa o mea faʻainitaneti. Commun. ACM 62(5): 43–49 (2019). DOI: doi.org/10.1145/3312527

Saini mo se webinar e leai se totogi: "Meafaigāluega Fausia Faʻamatalaga mo le Amazon Redshift Storage."

puna: www.habr.com

Faaopoopo i ai se faamatalaga