Microservices: unsa sila, ngano kini ug kanus-a kini ipatuman

Gusto kong magsulat og usa ka artikulo sa hilisgutan sa microservice nga arkitektura sa dugay nga panahon, apan duha ka mga butang ang nagpadayon sa paghunong kanako - sa dugang nga ako miunlod ngadto sa hilisgutan, mas ingon kanako nga ang akong nahibal-an klaro, ug unsa ang akong nahibal-an. t kahibalo kinahanglan tun-an ug tun-an. Sa laing bahin, sa akong hunahuna aduna nay butang nga hisgotan taliwala sa daghang mamiminaw. Busa gidawat ang mga alternatibong opinyon.

Ang Balaod ni Conway ug ang relasyon tali sa negosyo, organisasyon ug sistema sa impormasyon

Sa makausa pa tugotan ko ang akong kaugalingon sa pagkutlo:

"Bisan unsang organisasyon nga nagdesinyo sa usa ka sistema (sa halapad nga kahulugan) makadawat usa ka laraw kansang istruktura nagsundog sa istruktura sa mga koponan sa kana nga organisasyon."
β€” Melvyn Conway, 1967

Sa akong opinyon, kini nga balaod mas lagmit nga adunay kalabotan sa posibilidad sa pag-organisar sa usa ka negosyo, kaysa direkta sa sistema sa kasayuran. Tugoti ako sa pagpatin-aw uban sa usa ka pananglitan. Ingnon ta nga kita adunay usa ka lig-on nga oportunidad sa negosyo nga adunay usa ka siklo sa kinabuhi nga ingon ka taas nga makatarunganon ang pag-organisar sa usa ka negosyo (kini dili usa ka typo, apan ganahan kaayo ko niini nga termino nga akong gikawat). ang organisasyonal ug proseso nga katumbas niini nga negosyo.

Ang oryentasyon sa negosyo sa mga sistema sa impormasyon

Microservices: unsa sila, ngano kini ug kanus-a kini ipatuman

Tugoti ako sa pagpatin-aw uban sa usa ka pananglitan. Ingnon ta nga adunay kahigayonan sa negosyo sa pag-organisar og negosyo nga namaligya og pizza. Sa V1 nga bersyon (tawgon nato kini nga pre-information), ang kompanya usa ka pizzeria, usa ka cash register, ug usa ka serbisyo sa pagpadala. Kini nga bersyon dugay nang nabuhi sa mga kondisyon nga ubos ang pagkausab sa kinaiyahan. Unya ang bersyon 2 miabut aron ilisan kini - mas abante ug makahimo sa paggamit sa usa ka sistema sa impormasyon sa kinauyokan niini alang sa negosyo nga adunay monolithic nga arkitektura. Ug dinhi, sa akong opinyon, adunay usa ka makalilisang nga inhustisya kalabot sa mga monolith - ang giingong monolithic nga arkitektura dili katumbas sa modelo sa negosyo sa domain. Oo, kung mao kini, ang sistema dili gyud molihok - sukwahi sa parehas nga balaod ug sentido komon sa Conway. Dili, ang monolithic nga arkitektura hingpit nga nahiuyon sa modelo sa negosyo sa kini nga yugto sa pag-uswag sa negosyo - Ako, siyempre, nagpasabut sa yugto kung ang sistema nahimo na ug gipatuman. Kini usa ka hingpit nga katingad-an nga kamatuoran nga bisan unsa pa ang pamaagi sa arkitektura, pareho ang bersyon nga arkitektura nga nakabase sa serbisyo nga 3 ug ang bersyon sa arkitektura sa microservice N parehas nga molihok. Unsa ang kuha?

Ang tanan nag-agay, ang tanan nagbag-o, o ang mga microservice ba usa ka paagi aron mabuntog ang pagkakomplikado?

Sa dili pa kita magpadayon, atong tan-awon ang pipila ka sayop nga pagsabot bahin sa arkitektura sa microservice.

Ang mga tigpasiugda sa paggamit sa usa ka pamaagi sa microservice kasagaran makiglalis nga ang pagbungkag sa usa ka monolith ngadto sa mga microservice nagpayano sa pamaagi sa pagpalambo pinaagi sa pagkunhod sa code base sa indibidwal nga mga serbisyo. Sa akong opinyon, kini nga pahayag bug-os nga walay pulos. Seryoso, ang dayag nga interaksyon sa sulod sa usa ka monolith ug homogenous nga kodigo daw komplikado? Kung kini gyud ang kahimtang, ang tanan nga mga proyekto sa sinugdan matukod ingon mga microservice, samtang ang pagpraktis nagpakita nga ang paglalin gikan sa usa ka monolith hangtod sa mga microservice labi ka kasagaran. Ang pagkakomplikado dili mawala; kini naglihok lamang gikan sa indibidwal nga mga module ngadto sa mga interface (bisan ba kini nga mga data bus, RPC, API, ug uban pang mga protocol) ug mga sistema sa pag-orkestra. Ug kini lisud!

Ang bentaha sa paggamit sa usa ka heterogeneous stack usab kuwestiyonable. Dili ko makiglalis nga kini mahimo usab, apan sa tinuud panagsa ra kini mahitabo (Pagtan-aw sa unahan - kini kinahanglan nga mahitabo - apan ingon usa ka sangputanan kaysa usa ka bentaha).

Siklo sa kinabuhi sa produkto ug siklo sa kinabuhi sa serbisyo

Tan-awa usab ang dayagram sa ibabaw. Dili sulagma nga akong namatikdan ang pagkunhod sa siklo sa kinabuhi sa usa ka lahi nga bersyon sa usa ka negosyo - sa modernong mga kahimtang, kini ang pagpadali sa pagbalhin sa usa ka negosyo tali sa mga bersyon nga mahukmanon alang sa kalampusan niini. Ang kalampusan sa usa ka produkto gitino sa katulin sa pagsulay sa mga hypotheses sa negosyo niini. Ug dinhi, sa akong opinyon, nahimutang ang hinungdanon nga bentaha sa arkitektura sa microservice. Apan lakaw ta sa han-ay.

Mopadayon kita sa sunod nga yugto sa ebolusyon sa mga sistema sa impormasyon - sa arkitektura nga nakabase sa serbisyo sa SOA. Busa, sa usa ka piho nga punto among gipasiugda sa among produkto taas nga kinabuhi nga serbisyo - dugay nga nabuhi sa diwa nga kung magbalhinbalhin tali sa mga bersyon sa usa ka produkto, adunay higayon nga ang siklo sa kinabuhi sa serbisyo mas taas kaysa sa siklo sa kinabuhi sa sunod nga bersyon sa produkto. Makataronganon nga dili kini usbon - kami Ang hinungdanon mao ang katulin sa pagbalhin sa sunod nga bersyon. Apan alaot, napugos kami sa paghimo kanunay nga mga pagbag-o sa mga serbisyo - ug dinhi ang tanan nagtrabaho alang kanamo, mga gawi sa DevOps, containerization, ug uban pa - ang tanan nga naa sa hunahuna. Apan dili gihapon kini mga microservice!

Ang mga microservice ingon usa ka paagi aron mabuntog ang pagkakomplikado ... pagdumala sa pag-configure

Ug dinhi kita sa katapusan makapadayon sa pagtino nga papel sa mga microservice - kini usa ka pamaagi nga nagpasimple sa pagdumala sa pagsumpo sa produkto. Sa mas detalyado, ang function sa matag microservice naghulagway sa tukma nga negosyo function sa sulod sa produkto sumala sa domain model - ug kini mao ang mga butang nga nagpuyo dili sa usa ka mubo nga kinabuhi nga bersyon, apan sa usa ka taas nga kinabuhi nga oportunidad sa negosyo. Ug ang transisyon ngadto sa sunod nga bersyon sa produkto mahitabo sa literal nga wala mamatikdi - ikaw nag-ilis/nagdugang og usa ka microservice, ug tingali ang laraw lamang sa ilang interaksyon, ug sa kalit imong makita ang imong kaugalingon sa umaabot, gibiyaan ang naghilak nga mga kakompetensya nga nagpadayon sa paglukso tali sa mga bersyon sa ilang mga monolith. Karon hunahunaa nga adunay usa ka medyo dako nga gidaghanon sa mga microservice nga adunay gitakda nang daan nga mga interface ug mga kapabilidad sa negosyo. Ug mianhi ka ug nagtukod sa istruktura sa imong produkto gikan sa andam nga mga microservice - pinaagi lamang sa pagdrowing og diagram, pananglitan. Pahalipay - ikaw adunay usa ka plataporma - ug karon mahimo nimong madani ang negosyo alang sa imong kaugalingon. Damgo Damgo.

kaplag

  • Ang arkitektura sa sistema kinahanglan nga matino pinaagi sa siklo sa kinabuhi sa mga sangkap niini. Kung ang usa ka sangkap nagpuyo sa sulod sa usa ka bersyon sa produkto, wala’y punto sa pagdugang sa pagkakomplikado sa sistema pinaagi sa paggamit sa usa ka pamaagi sa microservice.
  • Ang arkitektura sa microservice kinahanglan nga ibase sa modelo sa domain - tungod kay ang oportunidad sa negosyo mao ang labing kadugay nga domain
  • Ang mga gawi sa paghatud (mga gawi sa DevOps) ug orkestra mao ang usa sa labing hinungdanon alang sa arkitektura sa microservice - tungod sa hinungdan nga ang pagtaas sa rate sa pagbag-o sa mga sangkap nagbutang sa dugang nga panginahanglan sa katulin ug kalidad sa paghatud

Source: www.habr.com

Idugang sa usa ka comment