Testkirina otomatîkî ya mîkroxizmetên li Docker ji bo yekbûna domdar

Di projeyên ku bi pêşkeftina mîmariya mîkro-xizmetê ve girêdayî ne, CI/CD ji kategoriya derfetek dilxweş berbi kategoriya hewcedariya lezgîn ve diçe. Testkirina otomatîkî parçeyek yekbûyî ya yekbûna domdar e, nêzîkatiyek jêhatî ya ku dikare bi malbat û hevalên xwe re gelek êvarên xweş bide tîmê. Wekî din, proje xeternak e ku qet neqede.

Mimkun e ku meriv tevaya koda mîkroxizmetê bi ceribandinên yekîneyê bi tiştên hîlekar veşêre, lê ev tenê beşek pirsgirêkê çareser dike û gelek pirs û zehmetiyan dihêle, nemaze dema ceribandina xebata bi daneyê re. Mîna her gav, yên herî giran ceribandina hevrêziya daneyê di databasek pêwendiyê de, ceribandina xebata bi karûbarên cloudê re, û dema nivîsandina tiştên xapînok de texmînên nerast dikin.

Hemî ev û hinekî din jî dikare bi ceribandina tevahiya mîkroxizmetê di konteynerek Docker de were çareser kirin. Avantajek bê guman ji bo misogerkirina rastdariya ceribandinan ev e ku heman wêneyên Docker ên ku diçin hilberînê têne ceribandin.

Xweseriya vê nêzîkbûnê gelek pirsgirêkan pêşkêşî dike, çareseriya ku dê li jêr were vegotin:

  • nakokiyên peywirên paralel di heman mêvandarê dokerê de;
  • nakokiyên nasnameyê yên di databasê de di dema dubarekirina ceribandinê de;
  • li benda amadebûna mîkroservisan;
  • yekbûn û derxistina têketinên pergalên derve;
  • ceribandina daxwazên HTTP yên derketinê;
  • ceribandina soketa malperê (bikaranîna SignalR);
  • testkirina otantîk û destûrnameya OAuth.

Ev gotar li ser bingeha axaftina min li SECR 2019. Ji ber vê yekê ji bo kesên ku ji xwendinê pir tembel in, li vir qeyda axaftinê heye.

Testkirina otomatîkî ya mîkroxizmetên li Docker ji bo yekbûna domdar

Di vê gotarê de ez ê ji we re vebêjim ka meriv çawa skrîptek bikar tîne da ku karûbarê di bin ceribandinê de, databasek û karûbarên Amazon AWS-ê li Docker-ê bimeşîne, dûv re li ser Postman ceribandin û, piştî ku ew qediyan, konteynerên çêkirî rawestînin û jêbirin. Her gava ku kod diguhere ceribandin têne darve kirin. Bi vî rengî, em piştrast dikin ku her guhertoyek bi databas û karûbarên AWS re rast dixebite.

Heman skrîpt hem ji hêla pêşdebiran bixwe ve li ser sermaseyên xwe yên Windows-ê û hem jî ji hêla servera Gitlab CI ve di bin Linux de tê meşandin.

Ji bo ku were rastdar kirin, danasîna ceribandinên nû ne hewce ye ku amûrên zêde ne li ser komputera pêşdebir an jî li ser servera ku ceribandin li ser komîteyek tê meşandin were saz kirin. Docker vê pirsgirêkê çareser dike.

Pêdivî ye ku ceribandin ji ber sedemên jêrîn li ser serverek herêmî were xebitandin:

  • Tora qet bi tevahî pêbawer e. Ji hezar daxwazî ​​dibe ku yek têk biçe;
    Di vê rewşê de, ceribandina otomatîk dê nexebite, kar dê raweste, û hûn neçar in ku sedemê di têketinê de bigerin;
  • Daxwazên pir caran ji hêla hin karûbarên sêyemîn ve nayê destûr kirin.

Digel vê yekê, karanîna standê nexwestî ye ji ber ku:

  • Standek dikare ne tenê bi kodek xirab a ku li ser tê xebitandin, lê di heman demê de ji hêla daneyên ku koda rast nikaribe pêvajo bike jî têk bibe;
  • Her çi qas em hewl bidin ku hemî guheztinên ku ji hêla ceribandinê ve di dema ceribandinê de hatine çêkirin paşde vegerînin, dibe ku tiştek xelet derkeve (wek din, çima ceribandin?).

Li ser proje û rêxistina pêvajoyê

Pargîdaniya me serîlêdanek webê ya mîkroservisê ku li Docker-ê di ewrê Amazon AWS-ê de tê xebitandin pêşve xist. Testên yekîneyê jixwe li ser projeyê hatibûn bikar anîn, lê pir caran xeletî derketin ku ceribandinên yekîneyê nedîtin. Pêwîst bû ku tevî databas û karûbarên Amazon-ê tevahî mîkroxizmetek ceribandin.

Proje pêvajoyek întegrasyonê ya domdar a standard bikar tîne, ku bi her peywirê re ceribandina mîkroxizmetê vedihewîne. Piştî peywirdarkirina peywirê, pêşdebir di mîkroxizmetê de guheztinan dike, wê bi destan diceribîne û hemî ceribandinên xweser ên berdest dimeşîne. Ger hewce be, pêşdebir ceribandinan diguhezîne. Ger pirsgirêk nehatin dîtin, ji şaxê vê mijarê re tê kirin. Piştî her kombûnê, ceribandin bixweber li ser serverê têne meşandin. Yekbûna nav şaxek hevpar û destpêkirina ceribandinên otomatîkî yên li ser wê piştî vekolînek serfiraz pêk tê. Ger ceribandinên li ser şaxê parvekirî derbas bibin, karûbar bixweber di hawîrdora ceribandinê de li ser Karûbarê Konteynirê Elastic Amazon (nîşk) tê nûve kirin. Stand ji bo hemî pêşdebiran û ceribandinan hewce ye, û nayê şîret kirin ku ew bişkînin. Testers di vê hawîrdanê de bi pêkanîna ceribandinên destan rastek an taybetmendiyek nû kontrol dikin.

Mîmariya Projeyê

Testkirina otomatîkî ya mîkroxizmetên li Docker ji bo yekbûna domdar

Serlêdan ji deh karûbaran zêdetir pêk tê. Hin ji wan di .NET Core û hin jî di NodeJs de têne nivîsandin. Her karûbar di konteynirek Docker-ê de di Karûbarê Konteynirê Elastic Amazon de dimeşe. Her yek databasa xwe ya Postgres heye, û hinan jî Redis hene. Databasên hevpar tune. Ger çend karûbar hewceyê heman daneyê bin, wê hingê ev dane, dema ku ew diguhezîne, ji her yek ji van karûbaran re bi navgîniya SNS (Xizmeta Ragihandinê ya Hêsan) û SQS (Xizmeta Dorê ya Hêsan a Amazon) tê veguheztin, û karûbar wê di databasên xwe yên cihê de tomar dikin.

SQS û SNS

SQS destûrê dide te ku hûn bi protokola HTTPS peyaman bixin nav dorê û peyaman ji rêzê bixwînin.

Ger çend karûbar yek rêzek bixwînin, wê hingê her peyam tenê digihîje yek ji wan. Ev bikêr e dema ku çend nimûneyên heman karûbarê dimeşîne da ku bar di navbera wan de belav bike.

Ger hûn dixwazin her peyam ji gelek karûbaran re were radest kirin, divê her wergir xwedan rêza xwe be, û SNS hewce ye ku peyaman di çend rêzan de dubare bike.

Di SNS de hûn mijarek diafirînin û jê re dibin abone, mînakî, rêzek SQS. Hûn dikarin ji mijarê re peyaman bişînin. Di vê rewşê de, peyam ji her rêzika ku di vê mijarê de hatî qeyd kirin tê şandin. SNS ji bo xwendina peyaman rêbazek tune. Ger di dema debugkirin an ceribandinê de hewce bike ku hûn fêr bibin ka çi ji SNS re tê şandin, hûn dikarin rêzek SQS biafirînin, wê bibin aboneya mijara xwestinê û rêzê bixwînin.

Testkirina otomatîkî ya mîkroxizmetên li Docker ji bo yekbûna domdar

API Gateway

Pir karûbar rasterast ji Înternetê nayên gihîştin. Gihîştin bi API Gateway ve ye, ku mafên gihîştinê kontrol dike. Ev jî xizmeta me ye, û ji bo wê jî ceribandin hene.

Agahiyên rast-dem

Serlêdan bikar tîne SignalRda ku agahdariya rast-dem ji bikarhênerê re nîşan bide. Ev di karûbarê ragihandinê de tête bicîh kirin. Ew rasterast ji Înternetê tê gihîştin û bixwe bi OAuth re dixebite, ji ber ku ew nepraktîk bû ku piştgirî ji bo soketên Web-ê li Gateway were çêkirin, li gorî yekkirina OAuth û karûbarê ragihandinê.

Nêzîkatiya Testkirina Baş-naskirî

Testên yekîneyê tiştên mîna databasê bi tiştên hîle re diguhezînin. Heke mîkroxizmetek, wek nimûne, hewl bide ku di tabloyek bi mifteyek biyanî de tomarek biafirîne, û qeyda ku ji hêla wê miftê ve hatî referanskirin tune be, wê hingê daxwaz nikare were bicîh kirin. Testên yekîneyê nikarin vê yekê tespît bikin.

В gotara ji Microsoft Tête pêşniyar kirin ku databasek nav-bîrê bikar bînin û tiştên hîlekar bicîh bînin.

Databasa nav-bîrê yek ji DBMS-yên ku ji hêla Entity Framework ve têne piştgirî kirin e. Ew bi taybetî ji bo ceribandinê hate afirandin. Daneyên di databasek wusa de tenê heya ku pêvajoya ku wê bikar tîne biqede tê hilanîn. Ew hewce nake ku tabloyan biafirîne û yekbûna daneyê kontrol nake.

Tiştên qelp çîna ku ew li şûna xwe digirin model dikin tenê bi qasî ku pêşdebirê ceribandinê fam dike ka ew çawa dixebite.

Meriv çawa dikare Postgres bixweber dest pê bike û gava ku hûn ceribandinek dimeşînin, di gotara Microsoft-ê de nehatiye destnîşankirin. Çareseriya min vê yekê dike û, ji bilî vê, ti kodek taybetî ji bo ceribandinan li mîkroxizmeta xwe zêde nake.

Werin em derbasî çareseriyê bibin

Di pêvajoya pêşkeftinê de, eşkere bû ku ceribandinên yekîneyê ne bes in ku hemî pirsgirêkan di wextê xwe de bibînin, ji ber vê yekê biryar hate girtin ku ji aliyek cûda ve nêzikî vê mijarê bibe.

Sazkirina hawîrdora testê

Karê yekem ev e ku meriv jîngehek ceribandinê bicîh bike. Gavên ku ji bo xebitandina mîkroxizmetek hewce ne:

  • Karûbarê di bin ceribandinê de ji bo hawîrdora herêmî mîheng bikin, hûrguliyên ji bo girêdana databasê û AWS-ê di guhêrbarên jîngehê de diyar bikin;
  • Postgres dest pê bikin û bi rêvekirina Liquibase ve koçkirinê pêk bînin.
    Di DBMS-ên peywendîdar de, berî ku daneyan di databasê de binivîsin, hûn hewce ne ku şemek daneyê, bi gotinek din, tabloyan biafirînin. Dema ku serîlêdanek nûve dike, pêdivî ye ku tablo bi forma ku ji hêla guhertoya nû ve hatî bikar anîn were birin, û, bi tercîh, bêyî windakirina daneyan. Ji vê re koçberî tê gotin. Afirandina tabloyan di databasek destpêkê ya vala de rewşek taybetî ya koçberiyê ye. Koçberî dikare di serîlêdanê bixwe de were çêkirin. Hem .NET û hem jî NodeJS çarçoveyên koçberiyê hene. Di rewşa me de, ji ber sedemên ewlehiyê, mîkroxizmet ji mafê guheztina nexşeya daneyê bêpar in, û koçberî bi karanîna Liquibase ve tête kirin.
  • Amazon LocalStack dest pê bikin. Ev pêkanîna karûbarên AWS-ê ye ku li malê dimeşîne. Li ser Docker Hub ji bo LocalStack wêneyek amadekirî heye.
  • Skrîptê bimeşînin da ku di LocalStack de hebûnên pêwîst biafirînin. Skrîptên Shell AWS CLI bikar tînin.

Ji bo ceribandina li ser projeyê tê bikar anîn Postevan. Ew berê hebû, lê ew bi destan hate destpêkirin û serîlêdanek ku berê li standê hatî bicîh kirin ceribandin. Ev amûr dihêle hûn daxwazên HTTP(S) yên keyfî bikin û kontrol bikin ka bersiv bi hêviyên xwe re li hev dikin. Lêpirsîn di berhevokekê de têne berhev kirin, û tevahiya berhevokê dikare were xebitandin.

Testkirina otomatîkî ya mîkroxizmetên li Docker ji bo yekbûna domdar

Testa otomatîkî çawa dixebite?

Di dema ceribandinê de, her tişt di Docker de dixebite: karûbarê di bin ceribandinê de, Postgres, amûra koçberiyê, û Postman, an jî guhertoya wê ya konsolê - Newman.

Docker çend pirsgirêkan çareser dike:

  • Serxwebûna ji veavakirina mêvandar;
  • Sazkirina girêdanan: Docker wêneyan ji Docker Hub dakêşîne;
  • Vegerandina pergalê li rewşa wê ya orjînal: bi tenê rakirina konteyneran.

Docker-compose konteyneran di nav tora virtual, ku ji Înternetê veqetandî ye, yek dike, ku tê de konteynir bi navên domainê hevûdu dibînin.

Test ji hêla skrîptek şêlê ve tê kontrol kirin. Ji bo ceribandina li ser Windows-ê em git-bash bikar tînin. Ji ber vê yekê, yek skrîpt ji bo Windows û Linux-ê jî bes e. Git û Docker ji hêla hemî pêşdebiran ve li ser projeyê têne saz kirin. Dema ku Git li ser Windows-ê saz dike, git-bash tê saz kirin, ji ber vê yekê her kes wê jî heye.

Skrîpt gavên jêrîn pêk tîne:

  • Avakirina wêneyên docker
    docker-compose build
  • Destpêkirina database û LocalStack
    docker-compose up -d <контейнер>
  • Koçkirina databasê û amadekirina LocalStack
    docker-compose run <контейнер>
  • Destpêkirina karûbarê di bin ceribandinê de
    docker-compose up -d <сервис>
  • Testê meşandin (Newman)
  • Rawestandina hemî konteyneran
    docker-compose down
  • Encamên şandin li Slack
    Me sohbetek heye ku peyamên bi nîşanek kesk an xaça sor û girêdanek têketinê diçin.

Wêneyên Docker yên jêrîn di van gavan de beşdar dibin:

  • Karûbarê ku tê ceribandin heman wêneyê ji bo hilberînê ye. Veavakirina testê bi guhêrbarên jîngehê ve ye.
  • Ji bo Postgres, Redis û LocalStack, wêneyên amadekirî yên ji Docker Hub têne bikar anîn. Ji bo Liquibase û Newman jî wêneyên amade hene. Em yên xwe li ser îskeleta wan ava dikin, dosyayên xwe li wir zêde dikin.
  • Ji bo amadekirina LocalStack, hûn wêneyek amadekirî ya AWS CLI bikar tînin û wêneyek ku li ser bingeha wê skrîptek heye diafirînin.

Bikaranîn qumarê, hûn ne hewce ne ku hûn wêneyek Docker ava bikin ku tenê pelan li konteynerê zêde bikin. Lêbelê, cild ji bo hawîrdora me ne guncan in ji ber ku karên Gitlab CI bixwe di konteyneran de dimeşin. Hûn dikarin Docker-ê ji konteynirek wusa kontrol bikin, lê cild tenê peldankan ji pergala mêvandar, û ne ji konteynirek din, lê dikin.

Pirsgirêkên ku hûn dikarin rûbirû bibin

Li benda amadebûnê ne

Dema ku konteynirek bi karûbar dimeşe, ev nayê vê wateyê ku ew amade ye ku pêwendiyan qebûl bike. Divê hûn li benda berdewamkirina girêdanê bisekinin.

Ev pirsgirêk carinan bi karanîna skrîptê tê çareser kirin bisekine.ş, ku li benda fersendek e ku pêwendiyek TCP saz bike. Lêbelê, LocalStack dibe ku xeletiyek 502 Bad Gateway bavêje. Wekî din, ew ji gelek karûbaran pêk tê, û heke yek ji wan amade be, ev yek li ser yên din tiştek nabêje.

biryar: Skrîptên dabînkirina LocalStack ku li benda bersivek 200 ji SQS û SNS-ê ne.

Pevçûnên Peywirên Parallel

Pir ceribandin dikarin bi hevdemî li ser heman mêvandarê Docker-ê bimeşînin, ji ber vê yekê navên konteynir û torê divê yekta bin. Digel vê yekê, ceribandinên ji şaxên cihêreng ên heman karûbarê jî dikarin bi hevdemî bimeşînin, ji ber vê yekê ne bes e ku meriv navên wan di her pelê berhevokê de binivîsîne.

biryar: Skrîpta guhêrbara COMPOSE_PROJECT_NAME li ser nirxek yekta destnîşan dike.

Taybetmendiyên Windows

Gelek tişt hene ku ez dixwazim dema ku Docker-ê li ser Windows-ê bikar tîne destnîşan bikim, ji ber ku van ezmûnan girîng in ku fêm bikin ka çima xeletî çêdibin.

  1. Skrîptên Shell di konteynir de divê dawiya rêza Linux-ê hebe.
    Sembola shell CR xeletiyek hevoksaziyê ye. Zehmet e ku meriv ji peyama xeletiyê bêje ku ev rewş e. Dema ku nivîsarên weha li ser Windows-ê biguherînin, hûn hewceyê edîtorek nivîsê ya rast e. Digel vê yekê, pergala kontrola guhertoyê divê bi rêkûpêk were mîheng kirin.

Bi vî rengî git tête mîheng kirin:

git config core.autocrlf input

  1. Git-bash peldankên standard ên Linux-ê dişoxilîne û, dema gazî pelek exe dike (tevî docker.exe), riyên Linux-ê yên bêkêmasî bi riyên Windows-ê diguhezîne. Lêbelê, ev ji bo rêyên ne li ser makîneya herêmî (an rêyên di konteynerê de) ne watedar e. Ev tevger nikare bête asteng kirin.

biryar: Di destpêka rêyê de qertafeke din lê zêde bike: //bin li şûna /bin. Linux riyên weha fam dike; ji bo wê, çend şikestî wekî yek in. Lê git-bash riyên wiha nas nake û hewla veguherandina wan nade.

Derketina têketinê

Dema ku ceribandinan dimeşîne, ez dixwazim têketinên hem ji Newman û hem jî ji karûbarê ku têne ceribandin bibînim. Ji ber ku bûyerên van têketin bi hev ve girêdayî ne, berhevkirina wan di yek konsolê de ji du pelên cihê pir hêsantir e. Newman bi rêya dest pê dike docker-compose run, û ji ber vê yekê derketina wê di konsolê de diqede. Tiştê ku dimîne ev e ku meriv pê ewle bibe ku hilberîna karûbarê jî diçe wir.

Çareseriya orîjînal kirin bû docker-compose up ala tune -d, lê bi karanîna kapasîteyên şêlê, vê pêvajoyê bişînin paşnavê:

docker-compose up <service> &

Vê yekê xebitî heya ku hewce bû ku têketinên ji Docker ji karûbarek sêyemîn re bişînin. docker-compose up derxistina têketinên konsolê rawestand. Lêbelê, tîm xebitî docker attach.

biryar:

docker attach --no-stdin ${COMPOSE_PROJECT_NAME}_<сервис>_1 &

Nakokiya nasnameyê di dema dubarekirina ceribandinê de

Test di çend dubareyan de têne rêve kirin. Database nayê paqij kirin. Qeydên di databasê de nasnameyên yekta hene. Ger em nasnameyên taybetî di daxwazan de binivîsin, em ê di dubarekirina duyemîn de nakokî bistînin.

Ji bo ku jê dûr bikevin, divê an nasname yekta bin, an jî hemî tiştên ku ji hêla ceribandinê ve hatine afirandin werin jêbirin. Hin tişt ji ber hewcedariyên nayên jêbirin.

biryar: GUID-an bi karanîna tîpên Postman biafirînin.

var uuid = require('uuid');
var myid = uuid.v4();
pm.environment.set('myUUID', myid);

Dûv re di pirsê de sembolê bikar bînin {{myUUID}}, ku dê bi nirxa guherbarê veguherîne.

Hevkarî bi rêya LocalStack

Ger karûbarê ku tê ceribandin ji rêzek SQS re dixwîne an dinivîse, wê hingê ji bo verastkirina vê yekê, ceribandin bixwe jî divê bi vê dorê re bixebite.

biryar: Daxwazên ji Postman bo LocalStack.

Karûbarên AWS API-ya belgekirî ye, ku dihêle ku pirs bêyî SDK-ê bêne çêkirin.

Ger karûbarek li dorê dinivîse, wê hingê em wê dixwînin û naveroka peyamê kontrol dikin.

Ger karûbar ji SNS-ê re peyaman dişîne, di qonaxa amadekariyê de LocalStack jî rêzek çêdike û beşdarî vê mijara SNS dibe. Dûv re her tişt tê ser ya ku li jor hatî diyar kirin.

Ger hewce bike ku karûbar peyamek ji rêzê bixwîne, wê hingê di gava ceribandina berê de em vê peyamê li dorê dinivîsin.

Daxwazên HTTP yên ku ji mîkroxizmeta di bin ceribandinê de têne ceribandin

Hin karûbar li ser HTTP bi tiştek din ji bilî AWS dixebitin, û hin taybetmendiyên AWS di LocalStack de nayên bicîh kirin.

biryar: di van rewşan de dikare bibe alîkar MockServer, ku tê de wêneyek amade heye Navenda docker. Daxwaz û bersivên hêvîkirî ji wan re ji hêla daxwazek HTTP ve têne mîheng kirin. API belgekirî ye, ji ber vê yekê em ji Postman daxwazan dikin.

Testkirina Nasname û Destûra OAuth

Em OAuth û bikar tînin JSON Web Tokens (JWT). Ji bo ceribandinê pêşkêşvanek OAuth hewce dike ku em dikarin herêmî bimeşînin.

Hemî danûstendina di navbera karûbar û pêşkêşvanê OAuth de bi du daxwazan tê: yekem, veavakirin tê xwestin /.baş-naskirî/openid-configuration, û paşê mifteya giştî (JWKS) li navnîşana ji veavakirinê tê xwestin. Ev hemî naveroka statîk e.

biryar: Pêşkêşkarê meya ceribandina OAuth serverek naverokek statîk e û du pelên li ser wê ye. Nîşan carekê tê hilberandin û bi Git ve girêdayî ye.

Taybetmendiyên ceribandina SignalR

Postman bi websocketan re naxebite. Ji bo ceribandina SignalR amûrek taybetî hate afirandin.

Xerîdarek SignalR dikare ji gerokek bêtir be. Ji bo wê di bin .NET Core de pirtûkxaneyek xerîdar heye. Xerîdar, di .NET Core de hatî nivîsandin, têkiliyek saz dike, tê pejirandin, û li benda rêzek taybetî ya peyaman dimîne. Heke peyamek neçaverêkirî were wergirtin an girêdan winda bibe, xerîdar bi kodek 1 derdikeve. Heke peyama paşîn a hêvîkirî were wergirtin, xerîdar bi kodek 0 derdikeve.

Newman bi xerîdar re hevdem dixebite. Gelek xerîdar têne destpêkirin da ku kontrol bikin ka peyam ji her kesê ku hewcedariya wan bi wan re heye têne şandin.

Testkirina otomatîkî ya mîkroxizmetên li Docker ji bo yekbûna domdar

Ji bo xebitandina gelek xerîdar vebijarkê bikar bînin -- pîvan li ser xeta fermana docker-compose.

Berî xebitandinê, skrîpta Postman li bendê ye ku hemî xerîdar pêwendiyan saz bikin.
Em berê jî rastî pirsgirêka benda girêdanê hatin. Lê server hebûn, û li vir xerîdar e. Nêzîkatiyeke cuda pêwîst e.

biryar: xerîdar di konteynerê de mekanîzmayê bikar tîne HealthCheckji bo ku skrîptê li ser mêvandarê li ser rewşa xwe agahdar bike. Xerîdar pelek li ser rêyek taybetî diafirîne, bêje /healthcheck, gava ku têkiliyek were saz kirin. Nivîsara HealthCheck di pelê docker de wiha xuya dike:

HEALTHCHECK --interval=3s CMD if [ ! -e /healthcheck ]; then false; fi

tîma docker teftîş kirin Rewşa normal, rewşa tenduristî û koda derketinê ya konteynerê nîşan dide.

Piştî ku Newman qediya, skrîptê kontrol dike ku hemî konteynerên bi xerîdar re, bi koda 0, bidawî bûne.

Happinnes heye

Piştî ku me zehmetiyên ku li jor hatine destnîşan kirin derbas kirin, me komek ceribandinên xebitandinê yên domdar hebûn. Di ceribandinan de, her karûbar wekî yekînek yekane dixebite, bi databasê û Amazon LocalStack re têkilî dike.

Van ceribandinan tîmek ji 30+ pêşdebiran ji xeletiyên di serîlêdanê de bi danûstendina tevlihev a 10+ mîkroxizmetên bi birêkûpêkkirina pir caran diparêzin.

Source: www.habr.com

Add a comment