The data dichotomy: ịtụgharị uche mmekọrịta dị n'etiti data na ọrụ

Ndewo, unu niile! Anyị nwere ozi ọma, OTUS na-amalite usoro ahụ ọzọ na June "Software Architect", na njikọ nke anyị na omenala na-ekere òkè bara uru na gị.

The data dichotomy: ịtụgharị uche mmekọrịta dị n'etiti data na ọrụ

Ọ bụrụ n’ịhụtala ihe niile microservices na-enweghị ihe ọ bụla, a ga-agbaghara gị maka iche na ọ dị ntakịrị. Kewaa ngwa n'ime iberibe netwọk jikọtara pụtara ịgbakwụnye ụdị nnabata mmejọ dị mgbagwoju anya na sistemụ ekesara.

Ọ bụ ezie na ụzọ a gụnyere imebi ya n'ime ọtụtụ ọrụ ndị nọọrọ onwe ha, ihe mgbaru ọsọ njedebe karịrị nnọọ inwe ọrụ ndị ahụ na-arụ ọrụ na igwe dị iche iche. Anyị na-ekwu okwu ebe a banyere mmekọrịta ya na ụwa dị n'èzí, nke a na-ekesakwa na isi ya. Ọ bụghị n'echiche teknụzụ, kama n'echiche nke gburugburu ebe obibi nke nwere ọtụtụ mmadụ, otu, mmemme na akụkụ nke ọ bụla n'ime akụkụ ndị a kwesịrị ịrụ ọrụ ya.

Dịka ọmụmaatụ, ụlọ ọrụ bụ nchịkọta nke usoro kesara nke na-enye aka n'otu aka iji nweta ihe mgbaru ọsọ ụfọdụ. Anyị elegharala eziokwu a anya ruo ọtụtụ iri afọ, na-agbalị iji nweta ịdị n'otu site na faịlụ FTPing ma ọ bụ iji ngwaọrụ ntinye ụlọ ọrụ ka anyị na-elekwasị anya na ebumnuche anyị dịpụrụ adịpụ. Ma na ọbịbịa nke ọrụ, ihe niile gbanwere. Ọrụ enyerela anyị aka ile anya n'ofe mbara igwe wee hụ ụwa nke mmemme na-adabere na ya na-arụkọ ọrụ ọnụ. Otú ọ dị, iji rụọ ọrụ nke ọma, ọ dị mkpa ịghọta na chepụta ụwa abụọ dị iche iche dị iche iche: ụwa dị n'èzí, ebe anyị bi na gburugburu ebe obibi nke ọtụtụ ọrụ ndị ọzọ, na nke onwe anyị, n'ime ụwa, ebe anyị na-achị naanị.

The data dichotomy: ịtụgharị uche mmekọrịta dị n'etiti data na ọrụ

Ụwa a e kesara ekesa dị iche na nke anyị tolitere na nke maara ahụ́ ahụ́. Ụkpụrụ nke iwu ụlọ monolithic omenala anaghị akwado nkatọ. Yabụ ị nweta sistemu ndị a nke ọma bụ ihe karịrị imepụta eserese bọọdụ mara mma ma ọ bụ ihe akaebe mara mma nke echiche. Isi ihe bụ iji hụ na usoro dị otú ahụ na-arụ ọrụ nke ọma ruo ogologo oge. Ọ dabara nke ọma, ọrụ a adịla nso ruo oge ụfọdụ, n'agbanyeghị na ha dị iche. Ihe nkuzi SOA ka dị mkpa, ọbụlagodi na Docker, Kubernetes na ajị agba hipster dị ntakịrị.

Yabụ taa, anyị ga-eleba anya etu iwu siri gbanwee, ihe kpatara anyị ji kwesị ịtụgharị uche n'ụzọ anyị si aga ọrụ na data ha na-enyefe ibe anyị, yana ihe kpatara na anyị ga-achọ ngwaọrụ dị iche iche iji mee ya.

Encapsulation agaghị abụ enyi gị mgbe niile

Microservices nwere ike ịrụ ọrụ n'adabereghị onwe ya. Ọ bụ ihe onwunwe a na-enye ha uru kasịnụ. Otu ihe onwunwe a na-enye ohere ka ọrụ dị elu ma too. Ọ bụghị nke ukwuu n'echiche nke scaling na quadrillions nke ndị ọrụ ma ọ bụ petabytes nke data (ọ bụ ezie na ndị ahụ nwekwara ike inyere aka n'ebe ahụ), ma n'echiche nke scaling na okwu nke ndị mmadụ dị ka otu na òtù na-eto eto na-aga n'ihu.

The data dichotomy: ịtụgharị uche mmekọrịta dị n'etiti data na ọrụ

Otú ọ dị, nnwere onwe bụ mma agha ihu abụọ. Ya bụ, ọrụ n'onwe ya nwere ike na-agba ọsọ ngwa ngwa na ndammana. Ma ọ bụrụ na arụ ọrụ na-arụ ọrụ n'ime ọrụ nke chọrọ iji ọrụ ọzọ, mgbe ahụ, anyị na-ejedebe ime mgbanwe na ọrụ abụọ ahụ ihe fọrọ nke nta ka ọ bụrụ n'otu oge. Na monolith nke a dị mfe ime, naanị ị na-eme mgbanwe ma ziga ya ka ahapụ ya, mana n'ihe gbasara ịmekọrịta ọrụ onwe ya, a ga-enwekwu nsogbu. Nchikota n'etiti otu na usoro ntọhapụ na-emebi ike.

The data dichotomy: ịtụgharị uche mmekọrịta dị n'etiti data na ọrụ

Dịka akụkụ nke usoro ọkọlọtọ, ha na-anwa ịzenarị mgbanwe njedebe na njedebe iwe, na-ekewa ọrụ n'ụzọ doro anya n'etiti ọrụ. Otu nbanye nwere ike ịbụ ezigbo ihe atụ ebe a. Ọ nwere ọrụ akọwapụtara nke ọma nke na-eme ka ọ dị iche na ọrụ ndị ọzọ. Nkewa a doro anya pụtara na n'ime ụwa nke ihe na-agbanwe ngwa ngwa maka ọrụ ndị gbara ya gburugburu, otu ọrụ ntinye aka agaghị agbanwe. Ọ dị n'ime ọnọdụ nwere oke oke.

The data dichotomy: ịtụgharị uche mmekọrịta dị n'etiti data na ọrụ

Nsogbu bụ na n'ime ụwa n'ezie, ọrụ azụmahịa enweghị ike ịnọgide na-enwe otu nkewa dị ọcha nke ọrụ mgbe niile. Dịka ọmụmaatụ, otu ọrụ azụmahịa ahụ na-arụ ọrụ nke ukwuu na data sitere na ọrụ ndị ọzọ yiri ya. Ọ bụrụ na ị na-etinye aka na azụmaahịa n'ịntanetị, mgbe ahụ nhazi usoro iwu, katalọgụ ngwaahịa ma ọ bụ ozi onye ọrụ ga-abụ ihe achọrọ maka ọtụtụ ọrụ gị. Ọrụ ọ bụla ga-achọ ịnweta data a iji rụọ ọrụ.

The data dichotomy: ịtụgharị uche mmekọrịta dị n'etiti data na ọrụ
Ọtụtụ ọrụ azụmaahịa na-ekerịta otu iyi data, yabụ ọrụ ha na-ejikọ ọnụ mgbe niile.

Ya mere, anyị rutere n'otu isi ihe dị mkpa kwesịrị ikwu maka ya. Ọ bụ ezie na ọrụ na-arụ ọrụ nke ọma maka akụrụngwa akụrụngwa na-arụ ọrụ nke ukwuu na iche, ọtụtụ ọrụ azụmaahịa na-ejikọta ọnụ karịa.

Data dichotomy

Ụzọ dabere na ọrụ nwere ike ịdị adị, mana ha enweghị nghọta maka otu esi ekekọrịta nnukwu data n'etiti ọrụ.

Isi nsogbu bụ na data na ọrụ enweghị ikewa. N'otu aka ahụ, encapsulation na-agba anyị ume ka anyị zoo data ka ọrụ wee nwee ike kewapụ onwe ha ma mee ka ọganihu ha dịkwuo elu na mgbanwe ndị ọzọ. N'aka nke ọzọ, anyị kwesịrị inwe ike kewaa ma merie data nkekọrịtara n'efu, dịka data ọ bụla ọzọ. Isi ihe bụ inwe ike ịmalite ịrụ ọrụ ozugbo, dịka ọ dị na sistemụ ozi ọ bụla ọzọ.

Otú ọ dị, usoro ozi enweghị ihe jikọrọ ya na encapsulation. N'ezie, ọ bụ nnọọ iche. Ebe nchekwa data na-eme ihe niile ha nwere ike ime iji nye ohere ịnweta data ha na-echekwa. Ha na-eji interface nkwupụta dị ike na-enye gị ohere ịgbanwe data dịka ịchọrọ. Ọrụ dị otú ahụ dị mkpa n'oge nyocha mbụ, mana ọ bụghị maka ijikwa mgbagwoju anya na-eto eto nke ọrụ na-agbanwe mgbe niile.

The data dichotomy: ịtụgharị uche mmekọrịta dị n'etiti data na ọrụ

Na ebe a, nsogbu na-ebilite. Esemokwu. Dichotomy. A sị ka e kwuwe, usoro ozi bụ maka ịnye data, ọrụ na-ezokwa ezo.

Ike abụọ a bụ isi. Ha na-akwado ọtụtụ ọrụ anyị, na-alụ ọgụ mgbe niile maka ịdị mma na sistemụ anyị na-ewu.

Ka sistemụ ọrụ na-eto ma na-etolite, anyị na-ahụ nsonaazụ nke dichotomy data n'ọtụtụ ụzọ. Ma ọ bụ interface ọrụ ahụ ga-eto eto, na-enye ọrụ ọrụ na-abawanye ụba ma malite ịdị ka nchekwa data ụlọ mara mma, ma ọ bụ anyị ga-enwe nkụda mmụọ ma mejuputa ụzọ ụfọdụ iji weghachite ma ọ bụ kwaga n'ọtụtụ data site na ọrụ gaa na ọrụ.

The data dichotomy: ịtụgharị uche mmekọrịta dị n'etiti data na ọrụ

N'aka nke ya, ịmepụta ihe dị ka ebe nchekwa data ụlọ mara mma ga-eduga n'ọtụtụ nsogbu. Anyị agaghị akọwa ihe mere o ji dị ize ndụ òkè nchekwa data, ka anyị kwuo na ọ na-anọchi anya injinia dị oke ọnụ ahịa na ịrụ ọrụ ihe isi ike maka ụlọ ọrụ na-agbalị iji ya.

Nke ka njọ bụ na mpịakọta data na-ebuli nsogbu oke ọrụ. Ka data nkekọrịtara na-adị n'ime ọrụ, ka interface ahụ ga-adịwanye mgbagwoju anya na ọ ga-esikwu ike ijikọta nhazi data sitere na ọrụ dị iche iche.

Ụzọ ọzọ nke ịwepụta na ịkwaga usoro data niile nwekwara nsogbu ya. Ụzọ a na-ahụkarị maka ajụjụ a dị ka naanị iweghachite na ichekwa ihe ndekọ data niile, wee chekwaa ya na mpaghara na ọrụ ọ bụla na-eri.

The data dichotomy: ịtụgharị uche mmekọrịta dị n'etiti data na ọrụ

Nsogbu bụ na ọrụ dị iche iche na-akọwa data ha na-eri n'ụzọ dị iche. Data a na-adị mgbe niile. A na-agbanwe ma hazie ha na mpaghara. Ngwa ngwa ha kwụsịrị inwe ihe ọ bụla jikọrọ ya na data dị na isi mmalite.

The data dichotomy: ịtụgharị uche mmekọrịta dị n'etiti data na ọrụ
Ka mbipụta ndị na-agbanwe agbanwe, ka data ahụ ga-adịgasị iche ka oge na-aga.

Iji mee ka ihe ka njọ, data dị otú ahụ siri ike idozi na azụ azụ (MDM Nke a bụ ebe ọ nwere ike ịbịa napụta n'ezie). N'ezie, ụfọdụ nsogbu teknụzụ na-adịghị agwụ agwụ nke ụlọ ọrụ azụmahịa na-eche ihu na-esite na data dị iche iche na-amụba site na ngwa gaa na ngwa.

Iji chọta ngwọta maka nsogbu a, anyị kwesịrị iche echiche dị iche iche banyere òkè data. Ha ga-abụrịrị ihe klas mbụ n'ime ụlọ ndị anyị na-ewu. Pat Helland na-akpọ data dị otú ahụ "mpụga", na nke a bụ akụkụ dị oke mkpa. Anyị chọrọ encapsulation ka anyị ghara ikpughe ọrụ dị n'ime nke ọrụ, mana anyị kwesịrị ime ka ọ dịrị ndị ọrụ mfe ịnweta data ekekọrịtara ka ha wee rụọ ọrụ ha nke ọma.

The data dichotomy: ịtụgharị uche mmekọrịta dị n'etiti data na ọrụ

Nsogbu bụ na ọ dịghị ụzọ ọ bụla dị mkpa taa, ebe ọ bụ na ọ bụghị interfaces ọrụ, ma ọ bụ ozi, ma ọ bụ Database Shared na-enye ezigbo ngwọta maka ịrụ ọrụ na data mpụga. Oghere ọrụ adịghị mma maka mgbanwe data n'ogo ọ bụla. Izi ozi na-akpali data mana ọ naghị echekwa akụkọ ya, yabụ data na-emebi ka oge na-aga. Ebe nchekwa data ekekọrịtara na-elekwasị anya nke ukwuu na otu isi ihe, nke na-egbochi ọganihu. Anyị na-aghaghị ịrapagidesi ike n'ime usoro ọdịda data:

The data dichotomy: ịtụgharị uche mmekọrịta dị n'etiti data na ọrụ
Usoro ọdịda data

Streams: a decentralized obibia data na ọrụ

Dị ka o kwesịrị, anyị kwesịrị ịgbanwe ụzọ ọrụ si arụ ọrụ na data ekekọrịtara. N'oge a, ụzọ ọ bụla ga-eche ihu dichotomy ahụ e kwuru n'elu, ebe ọ bụ na ọ dịghị uzuzu anwansi nke a pụrụ fesa na ya iji mee ka ọ pụọ. Agbanyeghị, anyị nwere ike chegharịa nsogbu ahụ ma nweta nkwekọrịta.

Nkwekọrịta a gụnyere ụfọdụ ogo nke centralization. Anyị nwere ike iji usoro log na-ekesa n'ihi na ọ na-enye iyi ndị a pụrụ ịdabere na ya, nke nwere ike ịgbatị. Anyị chọrọ ugbu a ka ọrụ nwee ike isonye ma rụọ ọrụ na eri ndị a na-ekekọrịta, mana anyị chọrọ izere ọrụ Chineke dị mgbagwoju anya na-eme nhazi a. Ya mere, nhọrọ kachasị mma bụ ịmepụta nhazi iyi n'ime ọrụ ndị ahịa ọ bụla. N'ụzọ dị otú a, ọrụ ga-enwe ike ijikọta data data sitere na isi mmalite dị iche iche na-arụ ọrụ na ha otú ha chọrọ.

Otu ụzọ ị ga-esi nweta usoro a bụ site n'iji usoro nkwanye ugwu. Enwere ọtụtụ nhọrọ, mana taa, anyị ga-eleba anya na Kafka, ebe ọ bụ na ojiji nke Stateful Stream Processing na-enye anyị ohere idozi nsogbu a gosipụtara nke ọma.

The data dichotomy: ịtụgharị uche mmekọrịta dị n'etiti data na ọrụ

Iji usoro osisi na-ekesa ekesa na-enye anyị ohere ịgbaso ụzọ a zọsiri ike nke ọma ma jiri ozi na-arụ ọrụ ihe omume chụpụrụ ije. A na-ewere usoro a ka ọ na-enye nhazi na nkewa ka mma karịa usoro nzaghachi arịrịọ n'ihi na ọ na-enye njikwa nke eruba na onye nnata karịa onye na-ezipụ ya. Otú ọ dị, maka ihe ọ bụla na ndụ a, ị ga-akwụ ụgwọ, ma ebe a ị chọrọ onye na-ere ahịa. Ma maka nnukwu usoro, ịzụ ahịa ahịa bara uru (nke nwere ike ọ gaghị abụ ikpe maka nkezi ngwa weebụ gị).

Ọ bụrụ na onye na-ere ahịa na-ahụ maka igbu osisi na-ekesa karịa usoro izi ozi ọdịnala, ịnwere ike iji njirimara ndị ọzọ. Ụgbọ njem ahụ nwere ike ịgbasa n'ahịrị ọ fọrọ nke nta ka ọ bụrụ usoro faịlụ ekesa. Enwere ike ịchekwa data na ndekọ ogologo oge, yabụ anyị na-enweta ọ bụghị naanị mgbanwe ozi, kamakwa nchekwa ozi. Nchekwa na-enweghị atụ na-enweghị egwu nke ọnọdụ nkekọrịta nwere ike ịgbanwe.

Ị nwere ike iji nhazi iyi dị mma iji gbakwunye ngwaọrụ nchekwa data na-eri ọrụ. Nke a bụ echiche dị oke mkpa. Ọ bụ ezie na echekwara data ahụ na iyi na-ekekọrịta nke ọrụ niile nwere ike ịnweta, nchịkọta na nhazi nke ọrụ ahụ bụ nke nzuzo. Ha na-ahụ onwe ha ndị nọpụrụ iche n'ime ọnọdụ nwere oke oke.

The data dichotomy: ịtụgharị uche mmekọrịta dị n'etiti data na ọrụ
Wepu dichotomy data site na ikewa iyi steeti na-enweghị mgbanwe. Wee tinye ọrụ a na ọrụ ọ bụla site na iji Stateful Stream Processing.

Ya mere, ọ bụrụ na ọrụ gị kwesịrị ịrụ ọrụ na iwu, katalọgụ ngwaahịa, ụlọ nkwakọba ihe, ọ ga-enwe ohere zuru ezu: naanị ị ga-ekpebi ihe data ị ga-ejikọta, ebe ị ga-edozi ya na otu esi agbanwe oge. N'agbanyeghị eziokwu na data na-akọrọ,-arụ ọrụ na ya kpamkpam decentralized. A na-emepụta ya n'ime ọrụ ọ bụla, na ụwa ebe ihe niile na-aga dịka iwu gị si dị.

The data dichotomy: ịtụgharị uche mmekọrịta dị n'etiti data na ọrụ
Kekọrịta data na-emebighị iguzosi ike n'ezi ihe ya. Tinyegharịa ọrụ ahụ, ọ bụghị isi iyi, na ọrụ ọ bụla chọrọ ya.

Ọ na-eme na data kwesịrị ịkwaga na oke. Mgbe ụfọdụ, ọrụ na-achọ ihe ndekọ akụkọ ihe mere eme mpaghara na injin nchekwa data ahọpụtara. Aghụghọ a bụ na ị nwere ike ikwe nkwa na, ọ bụrụ na ọ dị mkpa, enwere ike iweghachi otu akwụkwọ site na isi iyi site na ịnweta usoro osisi nkesa ekesara. Njikọ ndị dị na Kafka na-arụ ọrụ dị ukwuu na nke a.

Yabụ, usoro a tụlere taa nwere ọtụtụ uru:

  • A na-eji data eme ihe n'ụdị iyi ndị a na-ahụkarị, nke nwere ike ịchekwa na ndekọ ogologo oge, na usoro maka ịrụ ọrụ na data nkịtị na-arụ ọrụ siri ike na onye ọ bụla, nke na-enye ohere ka ọrụ rụọ ọrụ ngwa ngwa na ngwa ngwa. N'ụzọ dị otú a, dichotomy nke data nwere ike itule.
  • Enwere ike ijikọ data sitere na ọrụ dị iche iche n'ụzọ dị mfe na nhazi. Nke a na-eme ka mmekọrịta dị mfe na data ekekọrịtara ma wepụ mkpa ọ dị idobe datasets mpaghara na nchekwa data.
  • Nhazi Streamful Stateful naanị na-echekwa data, na isi iyi nke eziokwu na-anọgide na ndekọ n'ozuzu ya, ya mere nsogbu nke nrụrụ data n'ime oge adịghị oke njọ.
  • Na isi ha, a na-ebute ọrụ data, nke pụtara na n'agbanyeghị ọnụọgụ data na-arịwanye elu, ọrụ ka nwere ike ịzaghachi ngwa ngwa na ihe omume azụmahịa.
  • Okwu scalability na-adakwasị onye na-ere ahịa, ọ bụghị ọrụ. Nke a na-ebelata oke mgbagwoju anya nke ọrụ ide ihe, ebe ọ bụ na ọ dịghị mkpa iche echiche banyere scalability.
  • Ịgbakwunye ọrụ ọhụrụ anaghị achọ ịgbanwe ndị ochie, yabụ ijikọ ọrụ ọhụrụ na-adị mfe.

Dị ka ị pụrụ ịhụ, nke a karịrị nnọọ REST. Anyị enwetala otu ngwaọrụ nke na-enye gị ohere iji data ekekọrịtara rụọ ọrụ n'ụzọ enweghị isi.

Ọ bụghị akụkụ niile ka edechara n'isiokwu taa. Anyị ka kwesịrị ịchọpụta ka anyị ga-esi guzozie n'etiti usoro nzaghachi arịrịọ na usoro ihe omume mere. Mana anyị ga-ahụ maka nke a oge ọzọ. Enwere isiokwu ndị ị ga-achọ ịmatakwu nke ọma, dịka ọmụmaatụ, ihe kpatara nhazi nhazi nke Stateful Stream ji dị mma. Anyị ga-ekwu banyere nke a n’isiokwu nke atọ. Ma e nwere ihe ndị ọzọ dị ike anyị nwere ike iji mee ihe ma ọ bụrụ na anyị ejiri ha mee ihe, dịka ọmụmaatụ. Kpọmkwem Ozugbo Nhazi. Ọ bụ ihe na-agbanwe egwuregwu maka sistemu azụmaahịa kesara ekesa n'ihi na ọ na-enye nkwa azụmahịa maka XA n'ụdị scalable. A ga-atụle nke a n’isiokwu nke anọ. N'ikpeazụ, anyị ga-achọ ịgafe nkọwa mmejuputa iwu nke ụkpụrụ ndị a.

The data dichotomy: ịtụgharị uche mmekọrịta dị n'etiti data na ọrụ

Mana ugbu a, cheta nke a: dichotomy data bụ ike anyị na-eche ihu mgbe anyị na-ewu ọrụ azụmahịa. Anyị ga-echetakwa nke a. Aghụghọ a bụ ịgbanye ihe niile n'isi wee malite ịgwọ data ekekọrịtara dị ka ihe nke mbụ. Stateful Stream Processing na-enye nkwekọrịta pụrụ iche maka nke a. Ọ na-ezere “Ihe ndị Chineke” gbakọrọ agbakọ na-egbochi ọganihu. Ọzọkwa, ọ na-eme ka ike, scalability na resiliency nke pipeline gụgharia data ma tinye ha na ọrụ ọ bụla. Ya mere, anyị nwere ike ilekwasị anya n'ozuzu iyi nke nsụhọ nke ọ bụla ọrụ nwere ike jikọọ na-arụ ọrụ na ya data. Nke a na-eme ka ọrụ dịkwuo oke, mgbanwe na nke kwụụrụ onwe ya. Yabụ na ọ bụghị naanị na ha ga-adị mma na bọọdụ ọcha na ule hypothesis, mana ha ga-arụkwa ọrụ wee gbanwee ruo ọtụtụ iri afọ.

Mụtakwuo maka nkuzi ahụ.

isi: www.habr.com

Tinye a comment