Kuchagua mtindo wa usanifu (sehemu ya 3)

Habari, Habr. Leo ninaendelea na mfululizo wa machapisho ambayo niliandika mahsusi kwa ajili ya kuanza kwa mkondo mpya wa kozi hiyo. "Msanifu wa programu".

Utangulizi

Uchaguzi wa mtindo wa usanifu ni mojawapo ya maamuzi ya msingi ya kiufundi wakati wa kujenga mfumo wa habari. Katika mfululizo huu wa makala, napendekeza kuchambua mitindo maarufu ya usanifu kwa ajili ya maombi ya ujenzi na kujibu swali la ni wakati gani mtindo wa usanifu unapendekezwa zaidi. Katika mchakato wa uwasilishaji, nitajaribu kuteka mlolongo wa mantiki unaoelezea maendeleo ya mitindo ya usanifu kutoka kwa monoliths hadi microservices.

Mara ya mwisho tulizungumza juu ya aina tofauti za monoliths na matumizi ya vipengele vya kuzijenga, vipengele vyote vya kujenga na vipengele vya kupeleka. Tunaelewa usanifu unaolenga huduma.

Sasa hatimaye tutafafanua sifa kuu za usanifu wa microservice.

Uhusiano wa usanifu

Ni muhimu kuelewa kwamba kulingana na ufafanuzi uliotolewa katika makala zilizopita, huduma yoyote ni sehemu, lakini si kila huduma ni microservice.

Tabia za Usanifu wa Microservice

Tabia kuu za usanifu wa microservice ni:

  • Imeandaliwa kulingana na Uwezo wa Biashara
  • Bidhaa sio Miradi
  • Miisho mahiri na bomba bubu
  • Utawala wa Madaraka
  • Usimamizi wa Data Uliogatuliwa
  • Miundombinu Automation
  • Kubuni kwa kushindwa
  • Usanifu na maendeleo ya mageuzi (Muundo wa Mageuzi)

Hatua ya 1 inatoka kwa usanifu unaolenga huduma kwa sababu huduma ndogo ni kesi maalum ya huduma. Mambo mengine yanastahili kuzingatiwa tofauti.

Imeandaliwa kulingana na Uwezo wa Biashara

Sasa ni muhimu kukumbuka sheria ya Conway: mashirika ambayo huunda mifumo hupanga usanifu wake, kuiga muundo wa mwingiliano ndani ya mashirika haya. Kama mfano, tunaweza kukumbuka kisa cha kuunda mkusanyaji: timu ya watu saba ilitengeneza mkusanyaji wa pasi saba, na timu ya watu watano ilitengeneza mkusanyaji wa pasi tano.

Ikiwa tunazungumzia kuhusu monoliths na microservices, basi ikiwa maendeleo yanapangwa na idara za kazi (backend, frontend, wasimamizi wa database), basi tunapata monolith ya classic.

Ili kupata huduma ndogo, timu lazima zipangwa na uwezo wa biashara (maagizo, usafirishaji, timu ya katalogi). Shirika hili litaruhusu timu kuzingatia kujenga sehemu maalum za programu.

Bidhaa sio Miradi

Mbinu ya mradi ambayo timu huhamisha utendaji ulioendelezwa kwa timu zingine haifai kabisa katika kesi ya usanifu wa huduma ndogo. Timu lazima iunge mkono mfumo katika mzunguko wake wa maisha. Amazon, mmoja wa viongozi katika utekelezaji wa huduma ndogo, alisema: "unaunda, unaiendesha." Mbinu ya bidhaa inaruhusu timu kuhisi mahitaji ya biashara.

Miisho mahiri na bomba bubu

Usanifu wa SOA ulizingatia sana njia za mawasiliano, haswa Basi la Huduma ya Biashara. Ambayo mara nyingi husababisha Sanduku la Spaghetti lenye makosa, ambayo ni, ugumu wa monolith hugeuka kuwa ugumu wa uhusiano kati ya huduma. Usanifu wa Microservice hutumia njia rahisi tu za mawasiliano.

Utawala wa Madaraka

Maamuzi muhimu kuhusu huduma ndogo yanapaswa kufanywa na watu ambao wanatengeneza huduma ndogo. Hapa, maamuzi muhimu yanamaanisha uchaguzi
lugha za programu, mbinu ya kupeleka, mikataba ya kiolesura cha umma, n.k.

Usimamizi wa Data Uliogatuliwa

Mbinu ya kawaida, ambayo maombi inategemea database moja, haiwezi kuzingatia maalum ya kila huduma maalum. MSA inahusisha usimamizi wa data uliogatuliwa, ikiwa ni pamoja na matumizi ya teknolojia mbalimbali.

Miundombinu Automation

MSA inasaidia michakato endelevu ya kupeleka na utoaji. Hii inaweza kupatikana tu kwa michakato ya kiotomatiki. Wakati huo huo, kupeleka idadi kubwa ya huduma haionekani kama kitu cha kutisha. Mchakato wa kupeleka unapaswa kuwa wa kuchosha. Kipengele cha pili kinahusiana na usimamizi wa huduma katika mazingira ya bidhaa. Bila otomatiki, kudhibiti michakato inayoendeshwa katika mazingira tofauti ya uendeshaji inakuwa haiwezekani.

Kubuni kwa kushindwa

Huduma nyingi za MSA zinakabiliwa na kushindwa. Wakati huo huo, kushughulikia makosa katika mfumo uliosambazwa sio kazi ndogo. Usanifu wa maombi lazima ustahimili mapungufu kama haya. Rebecca Parsons anafikiri ni muhimu sana kwamba tusitumie tena mawasiliano ya ndani ya mchakato kati ya huduma; badala yake, tunakimbilia HTTP kwa mawasiliano, ambayo si ya kutegemewa.

Usanifu na maendeleo ya mageuzi (Muundo wa Mageuzi)

Usanifu wa mfumo wa MSA unapaswa kuendeleza mageuzi. Inashauriwa kupunguza mabadiliko muhimu kwa mipaka ya huduma moja. Athari kwa huduma zingine lazima pia zizingatiwe. Mbinu ya kitamaduni ni kujaribu kusuluhisha shida hii na uchapishaji, lakini MSA inapendekeza kutumia toleo la ndani
kama njia ya mwisho.

Hitimisho

Baada ya yote hapo juu, tunaweza kuunda microservices ni nini. Usanifu wa Microservice ni mbinu ya kuunda programu moja kama mkusanyiko wa huduma ndogo, kila moja inaendeshwa kwa mchakato wake na kuingiliana kupitia njia nyepesi, mara nyingi API ya rasilimali ya HTTP. Huduma hizi zimejengwa juu ya uwezo wa biashara na zinaweza kutumwa kwa kujitegemea kwa kutumia kikamilifu
utaratibu wa uwekaji wa kiotomatiki. Kuna kiwango cha chini cha usimamizi wa kati wa huduma hizi, ambazo zinaweza kuandikwa katika lugha tofauti za programu na kutumia teknolojia tofauti za kuhifadhi data.

Kuchagua mtindo wa usanifu (sehemu ya 3)

Soma sehemu ya 2

Chanzo: mapenzi.com

Kuongeza maoni