Upimaji wa Microservices - Mwongozo wa Kompyuta

Upimaji wa Microservices unazidi kuwa muhimu na muhimu zaidi kwani programu nyingi mpya zinajengwa kwa kutumia usanifu wa Microservices.

Kabla ya kuweza kuona jinsi ya kupima microservices, kwanza tunahitaji kuelewa ni nini.



Je! Microservices ni Nini?

Microservice inafafanuliwa kama mtindo wa usanifu, njia ya kukuza programu moja kama huduma ya huduma. Kila huduma hufafanuliwa na sifa zake ambazo zingine ni:


  • Mbio katika mchakato wake.
  • Kuwasiliana na utaratibu mwepesi mara nyingi na API ya rasilimali ya HTTP.
  • Inatumiwa kwa uhuru na mashine iliyotekelezwa kikamilifu.
  • Kutumia lugha tofauti za teknolojia / teknolojia / DB.
  • Inatumia teknolojia tofauti za kuhifadhi data.

Mtindo wa usanifu wa microservice unajumuisha kuunda programu moja ambazo zinaweza kufanya kazi pamoja kama sehemu ya huduma ndogo, kila moja inaendesha mchakato wake wa kibinafsi na inawasiliana na mifumo nyepesi kama API ya rasilimali ya HTTP. Huduma hizi zinahitaji usimamizi wa katikati ulio wazi, tumia teknolojia tofauti za kuhifadhi data, na zinaweza kuandikwa katika lugha tofauti za programu. Huduma hizi, zilizojengwa karibu na uwezo wa biashara, zinaweza pia kupelekwa kwa uhuru na mashine zinazounga mkono kupelekwa kiotomatiki.

Tabia za Microservices:


  • Iliyoundwa karibu na uwezo wa biashara,
  • Kupelekwa kiotomatiki,
  • Akili katika nyakati za mwisho badala ya basi ya huduma,
  • Udhibiti wa lugha na data.


Je! Microservices ni tofauti gani kwa SOA

  • Usanifu unaozingatia huduma (SOA): muundo wa usanifu katika muundo wa programu ya kompyuta ambayo vifaa vya programu hutoa huduma kwa vifaa vingine kupitia itifaki ya mawasiliano, kawaida juu ya mtandao.
  • Huduma ndogo ndogo : Mtindo wa usanifu wa programu ambayo matumizi magumu yanajumuishwa na michakato ndogo, huru inayowasiliana na kila mmoja kwa kutumia APIs za lugha isiyojua

Mfano:

Ikiwa Uber ilijengwa na SOA, huduma zao zinaweza kuwa:

  • Pata MalipoAndDriverInformationAndMappingDataAPI
  • Watumiaji wa KuthibitishaAndDriversAPI

Ikiwa Uber ingejengwa na microservices, API zao zinaweza kuwa kama:

  • Kuwasilisha Malipo ya Huduma
  • Huduma ya GetDriverInfoService
  • Huduma ya GetMappingData
  • Huduma ya Uthibitishaji
  • Huduma ya AuthenticateDriverService

API zaidi, seti ndogo za majukumu.




Jinsi ya kupima Microservices

Vipimo vya Kitengo

Vipimo vya kitengo hufanya mazoezi ya vipande vidogo vya programu kama kazi katika programu ili kubaini ikiwa wanatoa pato linalotakiwa likiwa na seti ya pembejeo zinazojulikana.

Ni muhimu kuzingatia kwamba upimaji wa kitengo peke yake hautoi dhamana juu ya tabia ya mfumo. Tunahitaji aina zingine za upimaji wa microservices.

Vipimo vya vifaa

Mara tu tutakapofanya upimaji wa kitengo cha kazi zote ndani ya huduma ndogo, basi tunahitaji kupima huduma ndogo kwa kutengwa.

Kwa kawaida, programu inaweza kutungwa na idadi ndogo ya huduma ndogo, kwa hivyo ili kujaribu kwa kutengwa, tunahitaji kubeza microservices zingine.


Vipimo vya sehemu pia vitajaribu mwingiliano wa microservice na tegemezi zake kama hifadhidata, zote kama sehemu moja.

Majaribio ya ujumuishaji

Baada ya kuthibitisha utendaji wa kila microservice, basi tunahitaji kupima mawasiliano kati ya huduma. Jaribio la ujumuishaji linathibitisha njia za mawasiliano na mwingiliano kati ya vifaa kugundua kasoro za kiolesura

Simu za huduma lazima zipigwe pamoja na ujumuishaji wa huduma za nje, ambazo zinapaswa kujumuisha kesi za hitilafu na mafanikio, kwa hivyo, upimaji wa ujumuishaji unathibitisha kuwa mfumo unafanya kazi pamoja bila mshono na kwamba utegemezi kati ya huduma upo kama inavyotarajiwa.

Uchunguzi wa Mkataba

Uchunguzi wa mkataba unathibitisha mwingiliano kwenye mpaka wa huduma ya nje ikisisitiza kuwa inakidhi mkataba unaotarajiwa na huduma inayotumia.


Aina hii ya upimaji inapaswa kuchukua kila huduma kama sanduku nyeusi na huduma zote lazima ziitwe kwa uhuru na majibu yao lazima yahakikishwe.

'Mkataba' ni jinsi simu ya huduma (ambapo matokeo maalum au pato linatarajiwa kwa pembejeo fulani) inajulikana na upimaji wa mkataba wa watumiaji. Kila mtumiaji lazima apate matokeo sawa kutoka kwa huduma kwa muda, hata huduma ikibadilika. Lazima kuwe na ubadilishaji wa kuongeza utendaji zaidi kama inavyohitajika kwa Majibu baadaye. Walakini, nyongeza hizi hazipaswi kuvunja utendaji wa huduma.

Vipimo vya Mwisho-Mwisho

Jukumu la vipimo vya mwisho-mwisho ni kuhakikisha kuwa kila kitu kinaungana pamoja na hakuna kutokuelewana kwa kiwango cha juu kati ya huduma ndogo.

Vipimo vya mwisho hadi mwisho vinathibitisha kuwa mfumo unakidhi mahitaji ya nje na hufikia malengo yake, kujaribu mfumo mzima, kutoka mwisho hadi mwisho.


Vipimo pia vinathibitisha kuwa mchakato mzima na mtiririko wa mtumiaji hufanya kazi kwa usahihi, pamoja na huduma zote na ujumuishaji wa DB. Upimaji kamili wa shughuli zinazoathiri huduma nyingi huhakikisha kuwa mfumo unafanya kazi kwa pamoja na unatimiza mahitaji yote.



Mfano wa Microservices ya Upimaji

Wacha tuchukue huduma ndogo KWA hiyo inategemea huduma zingine mbili B & C . Unahitaji kuanzisha mazingira yaliyotengwa ambapo jimbo la KWA , B na C inaelezewa vizuri na inaweza kusanidiwa mara kwa mara.

Kwa mfano, hali / uhifadhi wa B na C inapaswa kuanzishwa mapema. Baada ya hapo, unaendesha tu seti ya majaribio ya kupima APIs ya microservice KWA kutumia seti ya kawaida ya REST / WebService ya zana za majaribio, n.k. Sabuni au Chakram au njia rahisi ya xUnit kwa lugha yako ya programu.

Dhihaki huduma zozote za rika ambazo API inategemea kutumia restito. Njia zingine ni pamoja na dereva wa kupumzika, WireMock, na Mochito.

Changamoto iliyo dhahiri ni API za kejeli / za uwongo wakati wa kufanya upimaji wa ujumuishaji wa microservices. Unaweza kutumia zana zozote za kejeli zilizotajwa hapo juu, fanya tu kejeli kama sehemu ya vifaa vya majaribio na hakikisha umesasisha matoleo mapya ya API.