Awtomatikong pagsulay sa mga microservice sa Docker alang sa padayon nga panagsama

Sa mga proyekto nga naglambigit sa pagpalambo sa microservice architecture, ang CI/CD nagbalhin gikan sa usa ka nice-to-have nga feature ngadto sa usa ka hingpit nga kinahanglanon. Ang automated testing usa ka integral nga bahin sa padayon nga integrasyon, ug ang usa ka maayong pagkadisenyo nga pamaagi makahatag sa team og dili maihap nga makalipay nga mga gabii uban sa pamilya ug mga higala. Kung dili, ang proyekto nameligro nga dili mahuman.

Posible nga matabonan ang tibuok microservice code gamit ang mga unit test gamit ang mga mock object, apan kini dili hingpit nga makasulbad sa problema ug magbilin ug daghang mga pangutana ug hagit, labi na kung magsulay sa mga interaksyon sa datos. Sama sa naandan, ang labing hinungdanon mao ang pagsulay sa pagkaparehas sa datos sa usa ka relational database, pagsulay sa mga interaksyon sa cloud services, ug dili husto nga mga pangagpas kung magsulat og mga mock object.

Kining tanan ug daghan pa makab-ot pinaagi sa pagsulay sa tibuok microservice sa usa ka Docker container. Usa ka klaro nga bentaha sa pagsiguro sa test validity mao nga ang parehas nga mga imahe sa Docker nga gigamit sa produksiyon ang gisulayan.

Ang pag-automate niini nga pamaagi nagpresentar og daghang mga hagit, ang mga solusyon nga ihulagway sa ubos:

  • mga panagbangi sa parallel nga mga buluhaton sa usa ka Docker host;
  • mga panagbangi sa identifier sa database atol sa mga pag-ulit sa pagsulay;
  • naghulat nga maandam ang mga microservice;
  • paghiusa ug pag-output sa mga log ngadto sa mga external nga sistema;
  • pagsulay sa mga pagawas nga hangyo sa HTTP;
  • pagsulay sa mga web socket (gamit ang SignalR);
  • Pagsulay sa pag-authenticate ug awtorisasyon sa OAuth.

Kini nga artikulo gibase sa akong pakigpulong sa SECR 2019. Busa alang niadtong mga tapulan kaayo mobasa, Ania ang rekording sa pasundayag.

Awtomatikong pagsulay sa mga microservice sa Docker alang sa padayon nga panagsama

Niini nga artikulo, akong ipasabut kon unsaon paggamit ang script aron ilunsad ang serbisyo nga gisusi, ang database, ug ang mga serbisyo sa Amazon AWS sa Docker, dayon ipadagan ang mga pagsulay sa Postman, ug, kung makompleto na, ihunong ug papason ang gihimo nga mga container. Ang mga pagsulay gipadagan sa matag pagbag-o sa code. Gisiguro niini nga ang matag bersyon molihok sa husto sa database ug mga serbisyo sa AWS.

Ang parehas nga script gipadagan sa mga developer mismo sa ilang mga Windows desktop ug sa Gitlab CI server sa Linux.

Aron mahimong makatarunganon ang pagpatuman sa mga bag-ong pagsulay, dili na kinahanglan nga mag-instalar og dugang nga mga himan sa kompyuter sa developer o sa server diin gipadagan ang mga pagsulay kung mag-commit. Ang Docker ang makasulbad niini nga problema.

Ang pagsulay kinahanglan nga modagan sa usa ka lokal nga server tungod sa mosunod nga mga hinungdan:

  • Walay network nga hingpit nga kasaligan. Usa sa usa ka libo nga mga hangyo ang mahimong mapakyas;
    Sa kini nga kaso, ang awtomatikong pagsulay mapakyas, ang trabaho mohunong, ug kinahanglan nimo nga pangitaon ang hinungdan sa mga troso;
  • Ang kanunay nga mga hangyo dili gitugotan sa pipila ka mga serbisyo sa ikatulo nga partido.

Dugang pa, dili girekomenda nga gamiton ang stand tungod kay:

  • Ang usa ka stand mahimong madaot dili lamang sa dili maayong code nga nagdagan niini, apan lakip usab sa datos nga dili maproseso sa saktong code;
  • Bisan unsaon nato pagpaningkamot nga ibalik ang tanang kausaban nga gihimo sa usa ka pagsulay atol sa pagsulay mismo, adunay mahimong masayop (kay kon dili, unsa may punto sa pagsulay?).

Mahitungod sa proyekto ug sa organisasyon sa proseso

Ang among kompanya nag-develop og microservice web application nga nagdagan sa Docker sa Amazon AWS cloud. Naa nay mga unit test sa proyekto, apan kanunay adunay mga sayop nga wala mamatikdi sa unit test. Kinahanglan namong sulayan ang tibuok microservice, lakip na ang database ug mga serbisyo sa Amazon.

Ang proyekto naggamit ug standard nga padayon nga proseso sa integrasyon, nga naglakip sa microservice testing sa matag commit. Human ma-assign ang usa ka buluhaton, ang developer mohimo ug mga pagbag-o sa microservice, sulayan kini nga mano-mano, ug ipadagan ang tanan nga kasamtangang automated tests. Gi-modify sa developer ang mga pagsulay kung kinahanglan. Kung walay makit-an nga mga isyu, usa ka commit ang himuon sa branch para sa buluhaton. Human sa matag commit, ang mga pagsulay awtomatikong ipadagan sa server. Ang paghiusa sa main branch ug pagpadagan sa automated tests niini mahitabo human sa usa ka malampuson nga pagrepaso. Kung ang mga pagsulay sa main branch makapasar, ang serbisyo awtomatikong i-update sa test environment sa Amazon Elastic Container Service (ang test rig). Ang rig hinungdanon para sa tanan nga mga developer ug tester, ug ang pagguba niini dili maayo. Gigamit sa mga tester kini nga environment aron mapamatud-an ang usa ka pag-ayo o bag-ong feature, nga nagpadagan sa manual nga mga pagsulay.

Arkitektura sa proyekto

Awtomatikong pagsulay sa mga microservice sa Docker alang sa padayon nga panagsama

Ang aplikasyon gilangkoban sa kapin sa napulo ka serbisyo. Ang uban gisulat sa .NET Core, ug ang uban sa NodeJS. Ang matag serbisyo nagdagan sa usa ka Docker container sa Amazon Elastic Container Service. Ang matag serbisyo adunay kaugalingon nga Postgres database, ug ang uban adunay usab Redis. Walay gipaambit nga mga database. Kung daghang serbisyo ang nanginahanglan sa parehas nga datos, ang datos ipadala sa matag usa niini nga mga serbisyo sa diha nga kini mausab pinaagi sa SNS (Simple Notification Service) ug SQS (Amazon Simple Queue Service), ug ang mga serbisyo nagtipig niini sa ilang kaugalingon nga gilain nga mga database.

SQS ug SNS

Ang SQS nagtugot kanimo sa pagbutang og mga mensahe sa usa ka pila ug pagbasa sa mga mensahe gikan sa usa ka pila gamit ang HTTPS protocol.

Kon daghang serbisyo ang mobasa sa samang pila, ang matag mensahe ipadala lang sa usa niini. Kini mapuslanon kon magpadagan og daghang mga higayon sa samang serbisyo aron maapod-apod ang load taliwala kanila.

Kon ang matag mensahe kinahanglan ipadala sa daghang serbisyo, ang matag tigdawat kinahanglan adunay kaugalingong pila, ug gikinahanglan ang SNS aron madoble ang mga mensahe sa daghang pila.

Sa SNS, maghimo ka og topiko ug mag-subscribe niini, pananglitan, usa ka SQS queue. Mahimo kang magpadala og mga mensahe ngadto sa usa ka topiko. Kung buhaton nimo kini, ang mensahe ipadala sa matag queue nga nag-subscribe sa maong topiko. Ang SNS walay pamaagi sa pagbasa sa mga mensahe. Kung kinahanglan nimo mahibal-an kung unsa ang gipadala sa SNS atol sa pag-debug o pagsulay, mahimo kang maghimo og SQS queue, mag-subscribe niini sa gitinguha nga topiko, ug basahon ang queue.

Awtomatikong pagsulay sa mga microservice sa Docker alang sa padayon nga panagsama

Gateway sa API

Kadaghanan sa mga serbisyo dili direktang ma-access gikan sa internet. Ang pag-access gihatag pinaagi sa API Gateway, nga nag-verify sa mga katungod sa pag-access. Kini usab ang among serbisyo, ug kami adunay mga pagsulay alang niini.

Mga pahibalo sa tinuod nga oras

Ang aplikasyon naggamit SignalRaron ipakita ang mga real-time nga notipikasyon sa tiggamit. Kini gipatuman sa serbisyo sa notipikasyon. Kini ma-access direkta gikan sa internet ug mogana uban sa OAuth mismo, tungod kay ang pag-integrate sa suporta sa web socket ngadto sa Gateway napamatud-an nga dili praktikal kon itandi sa pag-integrate sa OAuth ug sa serbisyo sa notipikasyon.

Usa ka nailhan nga pamaagi sa pagsulay

Ang mga unit test mopuli sa mga butang sama sa database og mga mock object. Pananglitan, kon ang usa ka microservice mosulay sa paghimo og record sa usa ka table nga adunay foreign key, apan ang record nga gi-reference sa maong key wala maglungtad, ang request dili mapatuman. Dili kini ma-detect sa mga unit test.

В artikulo gikan sa Microsoft Gisugyot nga mogamit og in-memory database ug mopatuman og mga mock object.

Ang in-memory database usa sa mga DBMS nga gisuportahan sa Entity Framework. Kini gidisenyo ilabi na alang sa pagsulay. Ang datos sa ingon nga database gitipigan lamang hangtod matapos ang proseso nga naggamit niini. Dili kinahanglan nga maghimo og mga lamesa, ug ang integridad sa datos dili susihon.

Ang mga mock object mo-modelo sa klase nga ilang gipulihan kutob lang sa pagsabot sa test developer kon unsaon kini pagtrabaho.

Wala gipasabot sa artikulo sa Microsoft kon unsaon awtomatikong paglansad sa Postgres ug pagpadagan sa mga migrasyon kon magpadagan og pagsulay. Ang akong solusyon mao kini ang nagbuhat niini, ug dugang pa, walay code nga espesipiko alang sa pagsulay nga gidugang sa microservice mismo.

Padayon ta sa solusyon

Atol sa pag-uswag, nahimong klaro nga ang mga unit test dili igo aron masulbad ang tanang problema sa tukmang panahon, busa nakahukom nga atubangon ang isyu gikan sa laing anggulo.

Pag-set up og test environment

Ang unang buluhaton mao ang pag-deploy og test environment. Ang mga lakang nga gikinahanglan aron malunsad ang usa ka microservice mao ang:

  • I-configure ang serbisyo nga gisulayan sa lokal nga palibot; ang mga variable sa palibot nagtino sa mga detalye para sa pagkonektar sa database ug AWS;
  • Sugdi ang Postgres ug padagana ang migration pinaagi sa pagpadagan sa Liquibase.
    Sa mga relational DBMS, sa dili pa magsulat og data sa database, kinahanglan ka maghimo og data schema—o, sa mas simple nga paagi, mga table. Kung mag-upgrade sa usa ka aplikasyon, ang mga table kinahanglan nga i-convert sa format nga gigamit sa bag-ong bersyon, mas maayo kung walay mawala nga data. Gitawag kini nga migration. Ang paghimo og mga table sa usa ka database nga wala’y sulod kaniadto usa ka espesyal nga kaso sa migration. Ang migration mahimong i-built sa aplikasyon mismo. Ang .NET ug NodeJS parehong adunay mga migration framework. Sa among kaso, tungod sa mga hinungdan sa seguridad, ang mga microservice gidili sa pag-usab sa data schema, ug ang migration gihimo gamit ang Liquibase.
  • Ilunsad ang Amazon LocalStack. Kini usa ka implementasyon sa mga serbisyo sa AWS para sa pagpadagan sa imong kaugalingon. Adunay andam nang LocalStack nga imahe sa Docker Hub.
  • Pagpadagan og script aron mahimo ang gikinahanglan nga mga entity sa LocalStack. Ang mga script sa Shell naggamit sa AWS CLI.

Para sa pagsulay sa proyekto gigamit PostmanNaglungtad na kini kaniadto, apan kini gilunsad nga mano-mano ug gigamit sa pagsulay sa usa ka aplikasyon nga na-deploy na sa testbed. Kini nga himan nagtugot kanimo sa paghimo og arbitraryong mga hangyo sa HTTP(S) ug pagsusi kung ang mga tubag nakab-ot ba ang mga gilauman. Ang mga hangyo gihiusa ngadto sa usa ka koleksyon, ug ang tibuok koleksyon mahimong padaganon.

Awtomatikong pagsulay sa mga microservice sa Docker alang sa padayon nga panagsama

Giunsa paglihok ang usa ka awtomatik nga pagsulay?

Atol sa usa ka pagsulay, ang tanan molihok sa Docker: ang serbisyo nga gisulayan, ang Postgres, ang himan sa pag-migrate, ug ang Postman, o mas tukma ang bersyon sa console niini, ang Newman.

Ang Docker nagsulbad sa daghang mga problema:

  • Kagawasan gikan sa pag-configure sa host;
  • Pag-instalar sa mga dependency: Ang Docker nag-download sa mga imahe gikan sa Docker Hub;
  • Pag-reset sa sistema ngadto sa orihinal nga estado niini: papasa lang ang mga sudlanan.

Docker-compose naghiusa sa mga container ngadto sa usa ka virtual network nga nahimulag gikan sa Internet, diin ang mga container magkitaay pinaagi sa mga domain name.

Ang pagsulay gidumala sa usa ka shell script. Aron mapadagan ang pagsulay sa Windows, among gigamit ang git-bash. Kini nagpasabot nga usa ra ka script ang igo na para sa Windows ug Linux. Ang tanang developers sa proyekto adunay naka-install nga Git ug Docker. Ang pag-install sa Git sa Windows nag-install usab sa git-bash, busa ang tanan adunay niini.

Ang script naghimo sa mosunod nga mga lakang:

  • Mga imahe sa Docker sa Pagtukod
    docker-compose build
  • Paglunsad sa DB ug LocalStack
    docker-compose up -d <контейнер>
  • Pagbalhin sa database ug pag-andam sa LocalStack
    docker-compose run <контейнер>
  • Paglunsad sa serbisyo nga gisulayan
    docker-compose up -d <сервис>
  • Pagpadagan sa pagsulay (Newman)
  • Paghunong sa tanang sudlanan
    docker-compose down
  • Pag-post sa mga resulta sa Slack
    Naa mi chat diin ipadala ang mga mensahe nga adunay berde nga tsek o pula nga krus ug usa ka link sa log.

Kini nga mga lakang naglakip sa mosunod nga mga imahe sa Docker:

  • Ang serbisyo nga gisulayan parehas ra sa imahe sa produksiyon. Ang konpigurasyon para sa pagsulay gihatag pinaagi sa mga variable sa palibot.
  • Para sa Postgres, Redis, ug LocalStack, mogamit mig mga andam nang gamiton nga mga imahe gikan sa Docker Hub. Ang Liquibase ug Newman naa pud mga andam nang gamiton nga mga imahe. Maghimo mig among kaugalingon base sa ilang pundasyon, nga magdugang sa among kaugalingong mga file.
  • Aron ma-provision ang LocalStack, usa ka pre-built nga AWS CLI image ang gigamit, ug usa ka imahe nga adunay script ang gihimo gikan niini.

Paggamit mga volume, dili kinahanglan nga maghimo ka og Docker image aron lang makadugang og mga file sa usa ka container. Bisan pa, ang mga volume dili angay para sa atong palibot tungod kay ang mga buluhaton sa Gitlab CI mismo modagan sa mga container. Ang Docker mahimong madumala gikan sa ingon nga container, apan ang mga volume nag-mount lamang sa mga folder gikan sa host system, dili gikan sa laing container.

Mga problema nga mahimo nimong masugatan

Naghulat alang sa kaandam

Dili tungod kay nagdagan ang usa ka service container, andam na kini modawat og mga koneksyon. Kinahanglan ka maghulat nga magpadayon ang koneksyon.

Kini nga problema usahay masulbad pinaagi sa tabang sa usa ka script. hulata-kini.sh, nga naghulat sa higayon nga makahimo og koneksyon sa TCP. Apan, ang LocalStack mahimong mobalik og 502 Bad Gateway error. Dugang pa, kini gilangkoban sa daghang mga serbisyo, ug kon ang usa andam na, wala kini magpasabot og bisan unsa bahin sa uban.

desisyonMga script sa pag-andam sa LocalStack nga naghulat sa 200 nga tubag gikan sa SQS ug SNS.

Mga panagbangi tali sa mga parallel nga buluhaton

Daghang mga pagsulay ang mahimong modagan sa samang higayon sa usa ka Docker host, busa ang mga ngalan sa container ug network kinahanglan nga talagsaon. Dugang pa, ang mga pagsulay gikan sa lainlaing mga sanga sa parehas nga serbisyo mahimo usab nga modagan sa samang higayon, busa ang pagtino sa managlahing mga ngalan sa matag compose file dili igo.

desisyon: ang script nagtakda og talagsaon nga bili para sa variable nga COMPOSE_PROJECT_NAME.

Mga Feature sa Windows

Kon mogamit og Docker sa Windows, adunay pipila ka mga butang nga gusto nakong ipunting, tungod kay kini nga kasinatian importante aron masabtan ang mga hinungdan sa mga sayop.

  1. Ang mga shell script sa usa ka container kinahanglan adunay mga katapusan sa linya sa Linux.
    Ang CR character para sa shell kay usa ka syntax error. Lisod mailhan gikan sa error message nga mao kini ang problema. Kung mag-edit sa ingon nga mga script sa Windows, kinahanglan nimo ang usa ka husto nga text editor. Dugang pa, ang imong version control system kinahanglan nga ma-configure sa husto.

Mao kini ang pag-configure sa git:

git config core.autocrlf input

  1. Ang Git-bash mosundog sa mga standard nga Linux folder ug, kung motawag sa usa ka .exe file (lakip ang docker.exe), mopuli sa absolute Linux paths sa Windows paths. Apan, dili kini mogana para sa mga path nga wala sa local machine (o mga path sa usa ka container). Kini nga kinaiya dili ma-disable.

desisyon: pagdugang og dugang nga slash sa sinugdanan sa agianan: //bin imbes nga /bin. Nasabtan sa Linux ang ingon nga mga agianan; alang niini, ang daghang mga slash parehas ra sa usa. Bisan pa, ang git-bash wala makaila sa ingon nga mga agianan ug wala mosulay sa pag-convert niini.

Output sa log

Kon magpadagan og mga pagsulay, gusto nakong makita ang mga log gikan sa Newman ug sa serbisyo nga gisulayan. Tungod kay ang mga panghitabo niining mga log adunay kalabutan sa usag usa, ang paghiusa niini sa usa ka console mas sayon ​​​​kaysa sa duha ka managlahing file. Ang Newman gilunsad pinaagi sa pagdagan sa docker-compose, ug busa ang output niini moadto sa console. Ang nahabilin na lang mao ang pagsiguro nga ang output sa serbisyo moadto usab didto.

Ang unang desisyon mao ang pagbuhat docker-compose up walay bandila -d, apan gamit ang mga kapabilidad sa shell, ipadala kini nga proseso ngadto sa background:

docker-compose up <service> &

Nagtrabaho kini hangtod nga kinahanglan na nga magpadala og mga log gikan sa Docker ngadto sa usa ka serbisyo sa ikatulo nga partido. docker-compose up mihunong sa pag-output sa mga log ngadto sa console. Apan, ang sugo nagtrabaho. pantalan nga gilakip.

desisyon:

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

Panagbangi sa identifier atol sa mga pag-ulit sa pagsulay

Ang mga pagsulay gipadagan sa daghang mga iterasyon. Ang database wala malimpyohan. Ang mga rekord sa database adunay talagsaon nga mga ID. Kung ang piho nga mga ID gilakip sa mga pangutana, usa ka panagbangi ang mahitabo sa ikaduhang iterasyon.

Aron malikayan kini, ang mga ID kinahanglan nga talagsaon o ang tanan nga mga butang nga gihimo sa pagsulay kinahanglan nga papason. Ang ubang mga butang dili mapapas, sumala sa mga kinahanglanon.

desisyon: paghimo og mga GUID gamit ang mga script sa Postman.

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

Dayon gamita ang simbolo sa imong pangutana {{myUUID}}, nga pulihan sa bili sa variable.

Interaksyon pinaagi sa LocalStack

Kon ang serbisyo nga gisusi mobasa gikan o mosulat ngadto sa usa ka SQS queue, ang pagsulay mismo kinahanglan usab nga mogana uban niana nga queue aron mapamatud-an kini.

desisyon: mga hangyo gikan sa Postman ngadto sa LocalStack.

Ang mga serbisyo sa AWS adunay mga dokumentadong API, nga nagtugot kanimo sa paghimo og mga hangyo nga wala’y SDK.

Kon ang serbisyo mosulat sa pila, among basahon kini ug susihon ang mga sulod sa mensahe.

Kon ang usa ka serbisyo magpadala og mga mensahe ngadto sa SNS, ang LocalStack mohimo usab og pila ug mo-subscribe niini nga topiko sa SNS atol sa hugna sa pag-setup. Gikan didto, ang tanan mosunod sa samang sumbanan sama sa gihulagway sa ibabaw.

Kon ang serbisyo kinahanglan nga mobasa og mensahe gikan sa pila, nan sa miaging lakang sa pagsulay atong isulat kini nga mensahe ngadto sa pila.

Pagsulay sa mga hangyo sa HTTP gikan sa microservice nga gisulayan

Ang ubang mga serbisyo nakigkomunikar pinaagi sa HTTP sa usa ka butang gawas sa AWS, ug ang ubang mga bahin sa AWS wala gipatuman sa LocalStack.

desisyon: sa kini nga mga kaso makatabang kini MockServer, nga adunay andam nang gihimo nga imahe sa Hub sa pantalanAng gipaabot nga mga hangyo ug mga tubag gi-configure pinaagi sa HTTP request. Ang API dokumentado, busa naghimo kami og mga hangyo gikan sa Postman.

Pagsulay sa OAuth authentication ug awtorisasyon

Gigamit namo ang OAuth ug JSON Web Tokens (JWT)Para sa pagsulay, kinahanglan nato ang usa ka OAuth provider nga atong mapadagan sa lokal nga lugar.

Ang tanang interaksyon tali sa serbisyo ug sa OAuth provider moresulta sa duha ka hangyo: una, ang configuration gihangyo. /.ilado/openid-configuration, ug dayon ang public key (JWKS) gihangyo gamit ang address sa configuration. Kining tanan kay static content.

desisyonAng among test OAuth provider usa ka static content server nga adunay duha ka file. Ang token gihimo kausa ra ug gi-commit sa Git.

Mga Feature sa Pagsulay sa SignalR

Dili mogana ang Postman sa mga web socket. Usa ka espesyal nga himan ang gihimo para sa pagsulay sa SignalR.

Ang SignalR client mahimong bisan unsa gikan sa usa ka browser ngadto sa usa ka .NET Core client library. Ang .NET Core client magtukod og koneksyon, mo-authenticate, ug maghulat sa usa ka piho nga han-ay sa mga mensahe. Kung makadawat og wala damha nga mensahe o mawala ang koneksyon, ang kliyente matapos gamit ang code 1. Kung madawat na ang katapusang gipaabot nga mensahe, matapos kini gamit ang code 0.

Si Newman dungan nga modagan uban sa kliyente. Daghang kliyente ang gilunsad aron masiguro nga ang mga mensahe mahatud sa tanan.

Awtomatikong pagsulay sa mga microservice sa Docker alang sa padayon nga panagsama

Para modagan og daghang kliyente, gamita ang opsyon — timbangan sa linya sa mando sa docker-compose.

Sa dili pa magsugod ang Postman, ang script maghulat nga ang tanan nga kliyente makahimo og koneksyon.
Nakasugat na mi og problema sa connection waiting kaniadto. Pero mga server to, ug client ni. Lahi nga pamaagi ang kinahanglan.

desisyon: ang kliyente sa sudlanan naggamit sa mekanismo PanglawasCheckaron ipahibalo sa host script ang status niini. Ang kliyente mohimo og file sa usa ka piho nga path, pananglitan /healthcheck, kung ang koneksyon natukod na. Ang HealthCheck script sa Docker file ingon niini:

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

team Pag-inspeksyon sa Docker Nagpakita sa normal nga status, health status, ug exit code para sa container.

Human makompleto ni Newman, susihon sa script nga ang tanang container sa kliyente nahuman na, gamit ang code nga 0.

Anaa ang kalipay

Human mabuntog ang mga hagit nga gihulagway sa ibabaw, aduna kami'y hugpong sa mga lig-on nga pagsulay. Sa mga pagsulay, ang matag serbisyo naglihok isip usa ka yunit, nga nakig-uban sa database ug sa Amazon LocalStack.

Kini nga mga pagsulay manalipod sa usa ka team nga gilangkoban og kapin sa 30 ka mga developer gikan sa mga sayop sa usa ka aplikasyon nga adunay komplikado nga mga interaksyon tali sa kapin sa 10 ka mga microservice atol sa kanunay nga pag-deploy.

Source: www.habr.com

Pagpalit kasaligan nga pag-host alang sa mga site nga adunay proteksyon sa DDoS, mga server sa VPS VDS 🔥 Pagpalit og kasaligang website hosting nga adunay proteksyon sa DDoS, VPS VDS servers | ProHoster