Fitsapana automatique ny microservices ao amin'ny Docker ho an'ny fampidirana mitohy

Amin'ny tetikasa mifandraika amin'ny fampivoarana ny maritrano microservice, ny CI/CD dia miala amin'ny sokajy fahafahana mahafinaritra mankany amin'ny sokajy ilaina maika. Ny fitiliana mandeha ho azy dia ampahany manan-danja amin'ny fampidirana mitohy, fomba fiasa mahay izay afaka manome ny ekipa hariva mahafinaritra miaraka amin'ny fianakaviana sy ny namana. Raha tsy izany dia mety tsy ho vita mihitsy ny tetikasa.

Azo atao ny manarona ny kaody microservice manontolo miaraka amin'ny fitsapana unit miaraka amin'ny zavatra maneso, saingy amin'ny ampahany ihany no mamaha ny olana ary mamela fanontaniana sy fahasahiranana maro, indrindra rehefa miasa amin'ny angon-drakitra. Toy ny mahazatra, ny tena manindry indrindra dia ny fitiliana ny fifanarahan'ny angon-drakitra ao anaty angon-drakitra mifandraika, ny fitiliana ny asa amin'ny serivisy rahona, ary ny fanaovana eritreritra diso rehefa manoratra zavatra maneso.

Izany rehetra izany sy ny zavatra hafa dia azo vahana amin'ny fitsapana ny microservice manontolo ao anaty container Docker. Ny tombony tsy isalasalana amin'ny fiantohana ny maha-ara-dalΓ na ny fitsapana dia ny andrana ireo sary Docker izay miditra amin'ny famokarana.

Ny automatique an'io fomba fiasa io dia miteraka olana maromaro, ny vahaolana dia holazaina eto ambany:

  • fifandirana amin'ny asa mitovy amin'ny mpampiantrano docker iray ihany;
  • fifandirana famantarana ao amin'ny angon-drakitra mandritra ny famerimberenana fitsapana;
  • miandry ny microservices ho vonona;
  • fampifangaroana sy famoahana logs amin'ny rafitra ivelany;
  • fitiliana ny fangatahana HTTP mivoaka;
  • fitiliana faladia tranonkala (mampiasa SignalR);
  • fitiliana ny fanamarinana sy fanomezan-dΓ lana OAuth.

Ity lahatsoratra ity dia mifototra amin'ny ny teniko ao amin'ny SECR 2019. Koa ho an'izay kamo mamaky teny, indro misy firaketana ny lahateny.

Fitsapana automatique ny microservices ao amin'ny Docker ho an'ny fampidirana mitohy

Ato amin'ity lahatsoratra ity dia hilaza aminao ny fomba fampiasana script aho mba hampandehanana ny serivisy amin'ny fitsapana, ny angon-drakitra ary ny serivisy Amazon AWS ao Docker, avy eo ny fitsapana amin'ny Postman ary, rehefa vita izy ireo, atsaharo sy mamafa ireo kaontenera noforonina. Ny fitsapana dia tanterahina isaky ny miova ny kaody. Amin'izany fomba izany, ataontsika antoka fa ny dikan-teny tsirairay dia miasa tsara amin'ny angon-drakitra sy serivisy AWS.

Io script io ihany dia samy ataon'ny mpamorona ao amin'ny biraon'ny Windows sy ny mpizara Gitlab CI amin'ny Linux.

Mba hamarinina, ny fampidirana fitsapana vaovao dia tsy tokony hitaky ny fametrahana fitaovana fanampiny na amin'ny solosain'ny mpamorona na amin'ny lohamilina izay anaovana ny andrana amin'ny commit.

Ny fitsapana dia tsy maintsy mandeha amin'ny mpizara eo an-toerana noho ireto antony manaraka ireto:

  • Ny tambajotra dia tsy azo antoka tanteraka. Amin'ny fangatahana arivo dia mety tsy ho tanteraka ny iray;
    Amin'ity tranga ity, tsy mandeha ny fitsapana mandeha ho azy, hijanona ny asa, ary tsy maintsy mitady ny antony ao amin'ny logs ianao;
  • Ny fangatahana matetika loatra dia tsy avelan'ny serivisy antoko fahatelo.

Ankoatra izany, dia tsy ilaina ny mampiasa ny stand satria:

  • Ny fijoroana dia mety ho tapaka tsy amin'ny fehezan-dalΓ na ratsy mandeha eo aminy, fa amin'ny angon-drakitra izay tsy azon'ny kaody marina atao;
  • Na manao ahoana na manao ahoana ny fiezahantsika hamerina ny fiovana rehetra nataon'ny fitsapana nandritra ny fitsapana, dia mety hisy zavatra tsy mety (raha tsy izany, nahoana no mitsapa?).

Momba ny tetikasa sy ny fizotry ny fandaminana

Ny orinasanay dia namolavola rindranasa tranonkala microservice mandeha ao Docker ao amin'ny rahona Amazon AWS. Efa nampiasaina tamin'ny tetikasa ny andrana andrana, saingy matetika misy lesoka izay tsy hitan'ny andrana. Ilaina ny nanandrana microservice iray manontolo miaraka amin'ny angon-drakitra sy serivisy Amazon.

Ny tetikasa dia mampiasa dingana fampidirana mitohy manara-penitra, izay ahitana ny fitsapana ny microservice amin'ny fanoloran-tena rehetra. Aorian'ny fanendrena asa iray dia manao fanovana amin'ny microservice ny mpamorona, manao fitiliana azy amin'ny tanana ary manao fitiliana mandeha ho azy rehetra. Raha ilaina, dia manova ny fitsapana ny developer. Raha tsy misy ny olana dia misy ny fanoloran-tena ho an'ny sampana amin'ity olana ity. Aorian'ny fanoloran-tena tsirairay dia mandeha ho azy eo amin'ny mpizara ny fitsapana. Ny fampifangaroana amin'ny sampana iraisana ary ny fandefasana fitsapana mandeha ho azy dia mitranga aorian'ny famerenana mahomby. Raha mandalo ny fitsapana amin'ny sampana iombonana, dia havaozina ho azy ny serivisy ao amin'ny tontolo fitsapana ao amin'ny Amazon Elastic Container Service (bench). Ny fijoroana dia ilaina ho an'ny mpamorona sy mpanandrana rehetra, ary tsy mety ny manapaka azy. Ireo mpanandrana amin'ity tontolo ity dia manamarina fanamboarana na endri-javatra vaovao amin'ny alΓ lan'ny fanaovana fitiliana amin'ny tanana.

Architecture tetik'asa

Fitsapana automatique ny microservices ao amin'ny Docker ho an'ny fampidirana mitohy

Ny fampiharana dia misy serivisy folo mahery. Ny sasany amin'izy ireo dia voasoratra ao amin'ny .NET Core ary ny sasany ao amin'ny NodeJs. Ny serivisy tsirairay dia mandeha ao anaty container Docker ao amin'ny Amazon Elastic Container Service. Samy manana ny tahiry Postgres azy manokana, ary ny sasany koa dia manana Redis. Tsy misy angon-drakitra mahazatra. Raha mila angon-drakitra mitovy amin'izany ny serivisy maromaro, dia ampitaina amin'ny tsirairay amin'ireo serivisy ireo ity data ity, rehefa miova, amin'ny alΓ lan'ny SNS (Service Fampandrenesana Tsotra) sy SQS (Service Simple Queue Amazon), ary ny serivisy dia mitahiry izany ao amin'ny angon-drakitra manokana.

SQS sy SNS

SQS dia ahafahanao mametraka hafatra ao anaty filaharana ary mamaky hafatra avy amin'ny filaharana amin'ny alΓ lan'ny protocol HTTPS.

Raha mamaky filaharana iray ny serivisy maromaro, dia tonga amin'ny iray amin'izy ireo ihany ny hafatra tsirairay. Tena ilaina izany rehefa manao ohatra maromaro amin'ny serivisy mitovy mba hizarana ny entana eo anelanelan'izy ireo.

Raha tianao ny handefasana ny hafatra tsirairay amin'ny serivisy maro, ny mpandray tsirairay dia tsy maintsy manana filaharana manokana, ary ilaina ny SNS handikana hafatra amin'ny filaharana maromaro.

Ao amin'ny SNS dia mamorona lohahevitra ianao ary misoratra anarana amin'izany, ohatra, filaharana SQS. Afaka mandefa hafatra amin'ny lohahevitra ianao. Amin'ity tranga ity, ny hafatra dia alefa any amin'ny filaharana tsirairay misoratra anarana amin'ity lohahevitra ity. Tsy manana fomba famakiana hafatra ny SNS. Raha mandritra ny debugging na fitsapana ianao dia mila mamantatra izay alefa amin'ny SNS, azonao atao ny mamorona filaharana SQS, misoratra anarana amin'ny lohahevitra tiana ary mamaky ny filaharana.

Fitsapana automatique ny microservices ao amin'ny Docker ho an'ny fampidirana mitohy

API Gateway

Ny ankamaroan'ny serivisy dia tsy azo idirana mivantana amin'ny Internet. Ny fidirana dia amin'ny alΓ lan'ny API Gateway, izay manamarina ny zo fidirana. Ity ihany koa ny serivisy ataonay, ary misy fitsapana ho azy koa.

Fampandrenesana amin'ny fotoana tena izy

Ny fampiharana dia mampiasa SignalRhanehoana fampandrenesana amin'ny fotoana tena izy amin'ny mpampiasa. Izany dia ampiharina amin'ny serivisy fampahafantarana. Azo idirana mivantana avy amin'ny Internet izy io ary miara-miasa amin'ny OAuth izy io, satria hita fa tsy azo atao ny manangana fanohanan'ny tranonkala ho an'ny Gateway, raha ampitahaina amin'ny fampidirana ny OAuth sy ny serivisy fampahafantarana.

Fomba fitiliana fanta-daza

Ny andrana unit dia manolo zavatra toy ny angon-drakitra amin'ny zavatra maneso. Raha misy microservice, ohatra, manandrana mamorona rakitsoratra ao anaty latabatra misy fanalahidin'ny vahiny, ary tsy misy ny rakitra resahin'io fanalahidy io, dia tsy ho vita ny fangatahana. Tsy hitan'ny andrana unit izany.

Π’ lahatsoratra avy amin'ny Microsoft Soso-kevitra ny hampiasa angon-drakitra ao anaty fitadidiana ary hampihatra zavatra maneso.

Ny angon-drakitra ao anaty fitadidiana dia iray amin'ireo DBMS tohanan'ny Entity Framework. Izy io dia noforonina manokana ho an'ny fitiliana. Ny angona ao amin'ny angon-drakitra toy izany dia voatahiry mandra-pahatapitry ny dingana mampiasa azy. Tsy mitaky famoronana latabatra ary tsy manamarina ny fahamarinan'ny angona.

Ny zavatra maneso dia modely amin'ny kilasy solony raha tsy azon'ny mpamorona andrana ny fomba fiasany.

Ny fomba hahatonga ny Postgres hanomboka ho azy sy hanao fifindra-monina rehefa manao fitsapana ianao dia tsy voalaza ao amin'ny lahatsoratra Microsoft. Ny vahaolana nataoko dia manao izany ary, ankoatra izany, dia tsy manampy kaody manokana ho an'ny fitsapana amin'ny microservice mihitsy.

Andao hiroso amin’ny vahaolana

Nandritra ny dingan'ny fampandrosoana dia nazava fa tsy ampy ny fitsapana vondrona hahitana ny olana rehetra ara-potoana, ka nanapa-kevitra ny hanatona ity olana ity amin'ny lafiny hafa.

Fametrahana tontolo iainana fitsapana

Ny asa voalohany dia ny fametrahana tontolo fitsapana. Dingana ilaina mba hampandehanana microservice:

  • Ampifanaraho ny serivisy andrana ho an'ny tontolo iainana eo an-toerana, mamaritra ny antsipirian'ny fifandraisana amin'ny angon-drakitra sy ny AWS amin'ny fari-piainan'ny tontolo iainana;
  • Atombohy ny Postgres ary tanteraho ny fifindra-monina amin'ny alΓ lan'ny fampandehanana Liquibase.
    Ao amin'ny DBMS mifandraika, alohan'ny hanoratana ny angona ao amin'ny angon-drakitra dia mila mamorona schema data ianao, amin'ny teny hafa, tabilao. Rehefa manavao ny fampiharana dia tsy maintsy entina amin'ny endrika ampiasain'ny dikan-teny vaovao ny latabatra, ary raha tsy misy very data. Izany no atao hoe fifindra-monina. Tranga manokana momba ny fifindra-monina ny famoronana tabilao ao anaty angon-drakitra tsy misy na inona na inona. Ny fifindra-monina dia azo amboarina ao amin'ny fampiharana mihitsy. Samy manana rafitra fifindra-monina avokoa ny .NET sy ny NodeJS. Amin'ity tranga ity, noho ny antony fiarovana, ny microservices dia nesorina tamin'ny zo hanova ny schema data, ary ny fifindra-monina dia atao amin'ny fampiasana Liquibase.
  • Sokafy ny Amazon LocalStack. Ity dia fampiharana ny serivisy AWS ho an'ny trano. Misy sary efa vita ho an'ny LocalStack amin'ny Docker Hub.
  • Ampandehano ny script mba hamoronana ireo singa ilaina ao amin'ny LocalStack. Ny script shell dia mampiasa ny AWS CLI.

Ampiasaina amin'ny fitsapana amin'ny tetikasa Postman. Efa nisy izy io, saingy natomboka tamin'ny tanana ary nanandrana fampiharana efa napetraka teo amin'ny toerana. Ity fitaovana ity dia ahafahanao manao fangatahana HTTP(S) tsy misy dikany ary manamarina raha mifanaraka amin'ny antenaina ny valiny. Atambatra ao anaty fanangonana ny fanontaniana, ary azo atao ny manangona manontolo.

Fitsapana automatique ny microservices ao amin'ny Docker ho an'ny fampidirana mitohy

Ahoana no fiasan'ny fitsapana mandeha ho azy?

Mandritra ny fitsapana dia miasa ao amin'ny Docker ny zava-drehetra: ny serivisy andrana, Postgres, ny fitaovana fifindra-monina, ary ny Postman, na ny dikan-teny console - Newman.

Docker dia mamaha olana maromaro:

  • Fahaleovantena avy amin'ny fanamafisana mpampiantrano;
  • Fametrahana fiankinan-doha: Docker misintona sary avy amin'ny Docker Hub;
  • Mamerina ny rafitra amin'ny endriny voalohany: esory fotsiny ireo fitoeran-javatra.

Docker-compose mampiray ny kaontenera ho tambajotra virtoaly, mitoka-monina amin'ny Internet, izay ahitana ny kaontenera mifanandrify amin'ny anaran-tsehatra.

Ny andrana dia fehezin'ny script shell. Mba hampandehanana ny fitsapana amin'ny Windows dia mampiasa git-bash izahay. Noho izany, script iray dia ampy ho an'ny Windows sy Linux. Git sy Docker dia napetraky ny mpamorona rehetra amin'ny tetikasa. Rehefa mametraka Git amin'ny Windows dia apetraka ny git-bash, ka manana izany koa ny rehetra.

Ny script dia manao ireto dingana manaraka ireto:

  • Manorina sary docker
    docker-compose build
  • Famoahana ny angon-drakitra sy LocalStack
    docker-compose up -d <ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€>
  • Fifindra-monina sy fanomanana ny LocalStack
    docker-compose run <ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€>
  • Famoahana ny serivisy amin'ny fitsapana
    docker-compose up -d <сСрвис>
  • Mihazakazaka ny fitsapana (Newman)
  • Atsaharo ny kaontenera rehetra
    docker-compose down
  • Mandefa valiny ao amin'ny Slack
    Manana chat izahay izay misy hafatra misy marika maitso na lakroa mena ary rohy mankany amin'ny log.

Ireto sary Docker manaraka ireto dia tafiditra amin'ireto dingana ireto:

  • Ny serivisy andrana dia mitovy sary amin'ny famokarana. Ny fandrindrana ny fitsapana dia amin'ny alΓ lan'ny fari-piainan'ny tontolo iainana.
  • Ho an'ny Postgres, Redis ary LocalStack dia ampiasaina ny sary efa vita avy amin'ny Docker Hub. Misy ihany koa ny sary efa vita ho an'ny Liquibase sy Newman. Manangana ny anay amin'ny taolam-paty izahay, manampy ny rakitray ao.
  • Mba hanomanana ny LocalStack dia mampiasa sary AWS CLI efa vita ianao ary mamorona sary misy script mifototra amin'izany.

mampiasa boky, tsy mila manangana sary Docker ianao raha te hampiditra rakitra ao anaty container. Na izany aza, tsy mety amin'ny tontolo iainantsika ny boky satria ny asan'ny Gitlab CI dia mandeha ao anaty kaontenera. Azonao atao ny mifehy an'i Docker amin'ny container toy izany, fa ny volume dia mametraka lahatahiry avy amin'ny rafitra mpampiantrano, fa tsy avy amin'ny container hafa.

Olana mety sendra anao

Miandry ny fahavononana

Rehefa misy kaontenera misy serivisy mandeha dia tsy midika izany fa vonona ny hanaiky fifandraisana. Tsy maintsy miandry ny fitohizan'ny fifandraisana ianao.

Indraindray io olana io dia voavaha amin'ny fampiasana script wait-for-it.sh, izay miandry fotoana hametrahana fifandraisana TCP. Na izany aza, ny LocalStack dia mety hanipy fahadisoana 502 Bad Gateway. Ankoatra izany, dia misy serivisy maro, ary raha vonona ny iray amin'izy ireo, dia tsy milaza na inona na inona momba ny hafa izany.

fanapahan-kevitra: LocalStack provisions scripts izay miandry valiny 200 avy amin'ny SQS sy SNS.

Mifanohitra amin'ny asa mifanitsy

Ny fitsapana marobe dia afaka mandeha miaraka amin'ny mpampiantrano Docker iray ihany, noho izany dia tsy maintsy miavaka ny anaran'ny container sy ny tambajotra. Ankoatr'izay, ny fitsapana avy amin'ny sampana samihafa amin'ny serivisy mitovy dia afaka mandeha miaraka ihany koa, noho izany dia tsy ampy ny manoratra ny anarany amin'ny rakitra tsirairay.

fanapahan-kevitra: Ny script dia mametraka ny fari-piadidiana COMPOSE_PROJECT_NAME ho sanda tokana.

Windows Features

Misy zavatra maromaro tiako hasongadina rehefa mampiasa Docker amin'ny Windows, satria zava-dehibe ireo traikefa ireo mba hahatakarana ny antony mahatonga ny fahadisoana.

  1. Ny script shell ao anaty container dia tsy maintsy manana fiafaran'ny tsipika Linux.
    Ny marika CR shell dia hadisoana syntax. Sarotra ny milaza amin'ny hafatra diso fa izany no izy. Rehefa manova script toy izany amin'ny Windows ianao dia mila tonian-dahatsoratra mety. Ankoatr'izay, ny rafitra fanaraha-maso ny dikan-teny dia tsy maintsy amboarina tsara.

Toy izao ny fanamboarana ny git:

git config core.autocrlf input

  1. Git-bash dia maka tahaka ny lahatahiry Linux mahazatra ary, rehefa miantso rakitra exe (anisan'izany ny docker.exe), dia manolo ny lalana Linux tanteraka amin'ny lalan'ny Windows. Na izany aza, tsy mitombina izany ho an'ny lalana tsy amin'ny milina eo an-toerana (na lalana ao anaty fitoeran-javatra). Tsy azo esorina io fihetsika io.

fanapahan-kevitra: manampy slash fanampiny amin'ny fiandohan'ny lalana: //bin fa tsy / bin. Linux dia mahatakatra ny lalana toy izany; noho izany dia misy tsipika maromaro mitovy amin'ny iray. Saingy tsy fantatry ny git-bash ny lalana toy izany ary tsy manandrana manova azy ireo.

Log Output

Rehefa manao fitsapana aho dia te-hahita logs avy amin'ny Newman sy ny serivisy andrana. Satria mifamatotra ny zava-mitranga amin'ireo diary ireo, ny fampifangaroana azy ireo amin'ny console iray dia mety kokoa noho ny rakitra roa misaraka. Newman dia manomboka amin'ny docker-compose run, ary dia miafara any amin'ny console ny fivoahany. Ny hany sisa tavela dia ny hahazoana antoka fa mandeha any koa ny vokatra avy amin'ny serivisy.

Ny vahaolana tany am-boalohany dia ny atao Docker manoratra tsy misy saina -d, fa amin'ny fampiasana ny fahaizan'ny akorandriaka, alefaso any ambadika ity dingana ity:

docker-compose up <service> &

Niasa izany mandra-pahatongan'ny fotoana nilana ny fandefasana logs avy amin'ny Docker mankany amin'ny serivisy antoko fahatelo. Docker manoratra natsahatra ny famoahana logs ho an'ny console. Na izany aza, niasa ny ekipa docker attach.

fanapahan-kevitra:

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

Fifandirana famantarana mandritra ny famerimberenana fitsapana

Ny fitsapana dia atao amin'ny famerimberenana maromaro. Tsy voafafa ny angon-drakitra. Ny rakitra ao amin'ny tahiry dia manana ID tokana. Raha manoratra ID manokana amin'ny fangatahana isika dia hahazo fifandirana amin'ny famerenana faharoa.

Mba hialana amin'izany, na ny ID dia tsy maintsy tokana, na ny zavatra rehetra noforonin'ny fitsapana dia tsy maintsy voafafa. Tsy azo fafana ny zavatra sasany noho ny fepetra takiana.

fanapahan-kevitra: mamorona GUID mampiasa script Postman.

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

Ampiasao avy eo ny marika amin'ny fangatahana {{myUUID}}, izay hosoloina ny sandan'ny fari-piainana.

Fiaraha-miasa amin'ny alΓ lan'ny LocalStack

Raha mamaky na manoratra amin'ny filaharana SQS ny serivisy andrana, dia tsy maintsy miasa miaraka amin'ity filaharana ity ihany koa ny fitsapana.

fanapahan-kevitra: fangatahana avy amin'ny Postman mankany LocalStack.

Ny API serivisy AWS dia voarakitra an-tsoratra, mamela ny fametrahana fanontaniana tsy misy SDK.

Raha misy serivisy manoratra amin'ny filaharana, dia mamaky azy io isika ary manamarina ny votoatin'ny hafatra.

Raha mandefa hafatra amin'ny SNS ny serivisy, amin'ny dingana fanomanana dia mamorona filaharana ihany koa ny LocalStack ary misoratra anarana amin'ity lohahevitra SNS ity. Avy eo dia tonga amin'ny voalaza etsy ambony.

Raha mila mamaky hafatra avy amin'ny filaharana ny serivisy, dia amin'ny dingana fitsapana teo aloha dia manoratra ity hafatra ity amin'ny filaharana.

Fitsapana ny fangatahana HTTP avy amin'ny microservice andrana

Ny serivisy sasany dia miasa amin'ny HTTP miaraka amin'ny zavatra hafa ankoatry ny AWS, ary ny endri-javatra AWS sasany dia tsy ampiharina amin'ny LocalStack.

fanapahan-kevitra: Amin'ireo tranga ireo dia afaka manampy izany MockServer, izay misy sary efa vita ao Hub docker. Ny fangatahana andrasana sy ny valin-kafatra amin'izy ireo dia namboarina tamin'ny fangatahana HTTP. Voarakitra an-tsoratra ny API, ka manao fangatahana amin'ny Postman izahay.

Fanandramana OAuth Authentication and Authorization

Mampiasa OAuth sy JSON Web Tokens (JWT). Ny fitsapana dia mitaky mpamatsy OAuth izay azontsika atao eo an-toerana.

Ny fifandraisana rehetra eo amin'ny serivisy sy ny mpanome OAuth dia tonga amin'ny fangatahana roa: voalohany, angatahana ny fanamafisana /.well-known/openid-configuration, ary avy eo ny fanalahidin'ny daholobe (JWKS) dia angatahina amin'ny adiresy avy amin'ny fanitsiana. Izany rehetra izany dia votoaty static.

fanapahan-kevitra: Ny mpamatsy OAuth fitsapana anay dia mpizara votoaty static ary rakitra roa eo aminy. Ny famantarana dia natsangana indray mandeha ary natokana ho an'ny Git.

Toetran'ny fitsapana SignalR

Tsy miasa amin'ny sockets ny Postman. Nisy fitaovana manokana natao hizaha toetra ny SignalR.

Ny mpanjifa SignalR dia mety ho mihoatra noho ny navigateur fotsiny. Misy tranomboky mpanjifa ho azy eo ambanin'ny .NET Core. Ny mpanjifa, voasoratra ao amin'ny .NET Core, dia mametraka fifandraisana, voamarina, ary miandry ny filaharan'ny hafatra manokana. Raha misy hafatra tsy nampoizina voaray na very ny fifandraisana dia mivoaka miaraka amin'ny kaody 1 ny mpanjifa.

Miara-miasa amin'ny mpanjifa i Newman. Mpanjifa maromaro no natomboka mba hanamarina fa alefa any amin'izay rehetra mila azy ireo hafatra.

Fitsapana automatique ny microservices ao amin'ny Docker ho an'ny fampidirana mitohy

Mba hampandehanana mpanjifa maro dia ampiasao ny safidy --scale amin'ny docker-compose command line.

Alohan'ny handehanana, ny script Postman dia miandry ny mpanjifa rehetra hametraka fifandraisana.
Efa tojo olana amin'ny fiandrasana fifandraisana. Saingy nisy mpizara, ary indro ny mpanjifa. Fomba hafa no ilaina.

fanapahan-kevitra: Ny mpanjifa ao amin'ny kaontenera dia mampiasa ny mekanika HealthCheckmba hampahafantarana ny script amin'ny mpampiantrano momba ny satany. Ny mpanjifa dia mamorona rakitra amin'ny lalana manokana, lazao /healthcheck, raha vao tafaorina ny fifandraisana. Ny script HealthCheck ao amin'ny rakitra docker dia toa izao:

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

ekipa Docker inspect Mampiseho ny sata ara-dalΓ na, ny toe-pahasalamana ary ny kaody fivoahana ho an'ny kaontenera.

Rehefa vita ny Newman, ny script dia manamarina fa efa tapitra ny kaontenera rehetra miaraka amin'ny mpanjifa, miaraka amin'ny code 0.

Happinnes dia misy

Taorian'ny nandresenay ireo fahasahiranana voalaza etsy ambony, dia nanana andiana fitsapana mihazakazaka azo antoka izahay. Amin'ny fitsapana, ny serivisy tsirairay dia miasa toy ny singa tokana, mifandray amin'ny angon-drakitra sy Amazon LocalStack.

Ireo fitsapana ireo dia miaro ekipa iray misy mpamorona 30+ amin'ny hadisoana amin'ny rindranasa iray misy fifaneraserana saro-pady amin'ny serivisy mikrΓ΄ 10+ miaraka amin'ny fametrahana matetika.

Source: www.habr.com

Add a comment