Teko ea othomathike ea li-microservices ho Docker bakeng sa kopanyo e tsoelang pele

Mererong e amanang le nts'etsopele ea meralo ea microservice, CI/CD e tloha sehlopheng sa monyetla o monate ho ea sehlopheng sa tlhokahalo e potlakileng. Teko ea othomathike ke karolo ea bohlokoa ea kopanyo e tsoelang pele, mokhoa o nang le bokhoni o ka fang sehlopha mantsiboea a mangata a monate le ba lelapa le metsoalle. Ho seng joalo, kotsi ea morero e ke ke ea phethoa.

Hoa khoneha ho koahela khoutu eohle ea microservice ka liteko tsa yuniti ka lintho tse somang, empa sena se rarolla bothata hanyane mme se siea lipotso le mathata a mangata, haholo ha ho lekoa mosebetsi ka data. Joalo ka mehla, tse hatellang ka ho fetesisa ke ho leka ho tsitsa ha data sebakeng sa polokelo ea likamano, mosebetsi oa liteko ka lits'ebeletso tsa maru, le ho etsa menahano e fosahetseng ha u ngola lintho tse somang.

Tsena tsohle le tse ling tse nyane li ka rarolloa ka ho leka microservice eohle ka sejaneng sa Docker. Monyetla o sa tsitsang oa ho netefatsa bonnete ba liteko ke hore litšoantšo tse tšoanang tsa Docker tse kenang tlhahiso lia lekoa.

Automation ea mokhoa ona e hlahisa mathata a 'maloa, tharollo ea eona e tla hlalosoa ka tlase:

  • likhohlano tsa mesebetsi e tšoanang sebakeng se le seng sa docker;
  • likhohlano tsa li-identifier sebakeng sa polokelo ea litaba nakong ea tlhahlobo ea liteko;
  • ho emela hore li-microservices li be li lokile;
  • ho kopanya le ho hlahisa lits'ebetso ho litsamaiso tsa kantle;
  • leka likopo tse tsoang ho HTTP;
  • tlhahlobo ea socket ea webo (ho sebelisa SignalR);
  • leka netefatso ea OAuth le tumello.

Sengoliloeng sena se thehiloe ho puo ya ka ho SECR 2019. Kahoo bakeng sa ba botsoa haholo ho bala, ke ena puo e rekotiloeng.

Teko ea othomathike ea li-microservices ho Docker bakeng sa kopanyo e tsoelang pele

Sehloohong sena ke tla u bolella mokhoa oa ho sebelisa script ho tsamaisa tšebeletso tlas'a teko, database le Amazon AWS lits'ebeletso tsa Docker, ebe liteko ho Postman 'me, ka mor'a hore li phethoe, emisa le ho hlakola lijana tse entsoeng. Liteko li etsoa nako le nako ha khoutu e fetoha. Ka tsela ena, re etsa bonnete ba hore mofuta o mong le o mong o sebetsa ka nepo le database le lits'ebeletso tsa AWS.

Sengoloa se tšoanang se tsamaisoa ke bahlahisi ka bobona ho li-desktops tsa bona tsa Windows le ke seva sa Gitlab CI tlasa Linux.

E le hore ho be le mabaka, ho hlahisa liteko tse ncha ha hoa lokela ho hloka hore ho kenngoe lisebelisoa tse eketsehileng khomphuteng ea moqapi kapa ho seva moo liteko li etsoang ka boitlamo. Docker e rarolla bothata bona.

Teko e tlameha ho sebetsa ho seva ea lehae ka mabaka a latelang:

  • Marang-rang ha ho mohla e ka tšeptjoang ka ho feletseng. Har’a tse sekete tse kōpileng, e le ’ngoe e ka ’na ea hlōleha;
    Tabeng ena, tlhahlobo ea othomathike e ke ke ea sebetsa, mosebetsi o tla emisa, 'me u tla tlameha ho batla lebaka ho li-logs;
  • Likopo tse ngata haholo ha li lumelloe ke litšebeletso tsa batho ba bang.

Ntle le moo, ha ho ratehe ho sebelisa sethala hobane:

  • Boemo bo ka robeha eseng feela ka khoutu e mpe e sebetsang ho eona, empa hape le ka data eo khoutu e nepahetseng e ke keng ea e sebetsa;
  • Ho sa tsotellehe hore na re leka ka matla hakae ho khutlisetsa morao liphetoho tsohle tse entsoeng ke teko nakong ea teko ka boeona, ho na le ntho e ka senyehang (ho seng joalo, ke hobane'ng ha teko?).

Mabapi le morero le mokhatlo oa ts'ebetso

Khamphani ea rona e thehile sesebelisoa sa webo sa microservice se sebetsang ho Docker ka leru la Amazon AWS. Liteko tsa yuniti li ne li se li sebelisitsoe morerong, empa liphoso hangata li ne li etsahala tseo liteko tsa yuniti li sa kang tsa li lemoha. Ho ne ho hlokahala ho leka microservice kaofela hammoho le database le lits'ebeletso tsa Amazon.

Morero o sebelisa mokhoa o tsoelang pele oa ho kopanya, o kenyelletsang ho leka microservice ka boitlamo bo bong le bo bong. Kamora ho fana ka mosebetsi, mohlahlami o etsa liphetoho ho microservice, o e leka ka letsoho mme o etsa liteko tsohle tse fumanehang tsa othomathike. Haeba ho hlokahala, moqapi o fetola liteko. Haeba ho se na mathata a fumanoeng, boitlamo bo etsoa lekaleng la taba ena. Kamora boitlamo bo bong le bo bong, liteko li tsamaisoa ka bo eona ho seva. Ho kopanya lekaleng le tloaelehileng le ho qala liteko tse ikemetseng ho lona ho etsahala ka mor'a tlhahlobo e atlehileng. Haeba liteko tse lekaleng le arolelanoang li feta, ts'ebeletso e ntlafatsoa ka bo eona tikolohong ea liteko ho Amazon Elastic Container Service (bencheng). Ho ema hoa hlokahala ho bohle ba ntlafatsang le bahlahlobi, 'me ha ho bohlale ho e senya. Bahlahlobi ba tikolohong ena ba hlahloba ho lokisa kapa tšobotsi e ncha ka ho etsa liteko tsa matsoho.

Mehaho ea morero

Teko ea othomathike ea li-microservices ho Docker bakeng sa kopanyo e tsoelang pele

Kopo e na le litšebeletso tse fetang leshome. Tse ling tsa tsona li ngotsoe ka .NET Core le tse ling ho NodeJs. Ts'ebeletso e 'ngoe le e' ngoe e sebetsa ka sejaneng sa Docker ho Amazon Elastic Container Service. E 'ngoe le e' ngoe e na le database ea eona ea Postgres, 'me ba bang ba boetse ba na le Redis. Ha ho na li-database tse tloaelehileng. Haeba lits'ebeletso tse 'maloa li hloka data e ts'oanang, joale data ena, ha e fetoha, e fetisetsoa ho e' ngoe le e 'ngoe ea lits'ebeletso tsena ka SNS (Simple Notification Service) le SQS (Amazon Simple Queue Service), mme lits'ebeletso li li boloka litsing tsa bona tse fapaneng.

SQS le SNS

SQS e u lumella ho kenya melaetsa moleng le ho bala melaetsa e tsoang moleng o sebelisa protocol ea HTTPS.

Haeba litšebeletso tse ngata li bala letoto le le leng, molaetsa o mong le o mong o fihla ho o mong oa bona. Sena se na le thuso ha o tsamaisa maemo a 'maloa a ts'ebeletso e le' ngoe ho aba mojaro pakeng tsa bona.

Haeba u batla hore molaetsa o mong le o mong o tlisoe litšebeletsong tse ngata, moamoheli e mong le e mong o tlameha ho ba le mokoloko oa hae, 'me SNS ea hlokahala ho qopitsa melaetsa meleng e mengata.

Ho SNS u theha sehlooho ebe u ingolisa ho sona, mohlala, mokoloko oa SQS. O ka romela melaetsa ho sehlooho. Tabeng ena, molaetsa o romelloa moleng o mong le o mong o ngolisitsoeng ho sehlooho sena. SNS ha e na mokhoa oa ho bala melaetsa. Haeba nakong ea ho lokisa liphoso kapa liteko u hloka ho fumana hore na ho romelloa eng ho SNS, u ka etsa letoto la SQS, u le ngolise ho sehlooho se lakatsehang 'me u bale queue.

Teko ea othomathike ea li-microservices ho Docker bakeng sa kopanyo e tsoelang pele

API Gateway

Litšebeletso tse ngata ha li fumanehe ka kotloloho ho tsoa Marang-rang. Ho fihlella ke ka API Gateway, e hlahlobang litokelo tsa phihlello. Hona hape ke ts'ebeletso ea rona, 'me ho na le liteko bakeng sa eona.

Litsebiso tsa nako ea sebele

Sesebelisoa se sebetsa SignalRho bonts'a litemoso tsa nako ea nnete ho mosebelisi. Sena se kenngwa tshebetsong tshebeletsong ya tsebiso. E fumaneha ka kotloloho ho tsoa Marang-rang mme ka boeona e sebetsa le OAuth, hobane ho ile ha bonahala ho sa sebetse ho aha tšehetso ea li-sockets tsa Web Gateway, ha ho bapisoa le ho kopanya OAuth le ts'ebeletso ea tsebiso.

Mokhoa o Tsebahalang oa Teko

Liteko tsa yuniti li nkela lintho tse kang polokelong sebaka ka lintho tse somang. Haeba microservice, ka mohlala, e leka ho etsa rekoto tafoleng e nang le senotlolo sa kantle ho naha, 'me tlaleho e boletsoeng ke senotlolo seo ha e eo, joale kopo e ke ke ea etsoa. Liteko tsa yuniti ha li khone ho lemoha sena.

В sengoloa ho tsoa ho Microsoft Ho khothaletsoa ho sebelisa polokelong ea polokelo ea memori le ho kenya tšebetsong lintho tse somang.

Database ea memori ke e 'ngoe ea li-DBMS tse tšehelitsoeng ke Moralo oa Mokhatlo. E entsoe ka ho khetheha bakeng sa tlhahlobo. Lintlha tse ka har'a database tse joalo li bolokoa feela ho fihlela ts'ebetso ea ho e sebelisa e fela. Ha e hloke ho theha litafole ebile ha e hlahlobe botšepehi ba data.

Lintho tse somang li etsa mohlala oa sehlopha seo ba se fetolang feela ho isa tekanyong eo moetsi oa liteko a utloisisang hore na e sebetsa joang.

Mokhoa oa ho etsa hore Postgres e qale ka bo eona le ho falla ha u etsa tlhahlobo ha e hlalosoe sengolong sa Microsoft. Tharollo ea ka e etsa sena mme, ho feta moo, ha e kenye khoutu efe kapa efe ka ho khetheha bakeng sa liteko ho microservice ka boeona.

Ha re feteleng ka tharollo

Nakong ea ts'ebetso ea nts'etsopele, ho ile ha hlaka hore liteko tsa li-unit li ne li sa lekana ho fumana mathata ohle ka nako e loketseng, kahoo ho ile ha etsoa qeto ea ho atamela taba ena ka tsela e fapaneng.

Ho theha tikoloho ea liteko

Mosebetsi oa pele ke ho tsamaisa tikoloho ea liteko. Mehato e hlokahalang ho tsamaisa microservice:

  • Hlophisa tšebeletso tlas'a teko bakeng sa tikoloho ea lehae, hlalosa lintlha tsa ho hokela polokelong ea boitsebiso le AWS ka har'a mefuta-futa ea tikoloho;
  • Qala Postgres 'me u etse phalliso ka ho matha Liquibase.
    Ho li-DBMS tse amanang, pele u ngola data ho database, u hloka ho theha schema ea data, ka mantsoe a mang, litafole. Ha u nchafatsa kopo, litafole li tlameha ho tlisoa foromong e sebelisoang ke mofuta o mocha, 'me, ka ho khetheha, ntle le ho lahleheloa ke data. Sena se bitsoa ho falla. Ho theha litafole sebakeng sa polokelo ea litaba se se nang letho qalong ke taba e khethehileng ea ho falla. Ho falla ho ka etsoa ka har'a kopo ka boeona. Ka bobeli .NET le NodeJS li na le mekhoa ea ho falla. Tabeng ea rona, ka mabaka a ts'ireletso, li-microservices li amohuoa tokelo ea ho fetola schema ea data, 'me ho falla ho etsoa ho sebelisoa Liquibase.
  • Qala Amazon LocalStack. Ena ke ts'ebetsong ea litšebeletso tsa AWS tse lokelang ho etsoa lapeng. Ho na le setšoantšo se lokiselitsoeng ho LocalStack ho Docker Hub.
  • Matha sengoloa ho theha litsi tse hlokahalang ho LocalStack. Lingoliloeng tsa Shell li sebelisa AWS CLI.

E sebelisetsoa ho etsa liteko morerong Motho oa poso. E ne e le teng pele, empa e ile ea hlahisoa ka letsoho mme ea lekoa sesebelisoa se seng se kentsoe setsing. Sesebelisoa sena se u lumella ho etsa likopo tse sa reroang tsa HTTP(S) 'me u hlahlobe hore na likarabo li lebeletsoe. Lipotso li kopanngoa hore e be pokello, 'me pokello eohle e ka tsamaisoa.

Teko ea othomathike ea li-microservices ho Docker bakeng sa kopanyo e tsoelang pele

Teko ea othomathike e sebetsa joang?

Nakong ea tlhahlobo, ntho e 'ngoe le e' ngoe e sebetsa ho Docker: ts'ebeletso e tlas'a teko, Postgres, sesebelisoa sa ho falla, le Postman, kapa ho e-na le phetolelo ea eona ea console - Newman.

Docker e rarolla mathata a 'maloa:

  • Ho ikemela ho tsoa ho tlhophiso ea moamoheli;
  • Ho kenya litšepe: Docker e khoasolla litšoantšo ho tsoa ho Docker Hub;
  • Ho khutlisetsa sistimi boemong ba eona ba pele: ho tlosa lijana feela.

Docker-compose e kopanya lijana ho netweke ea sebele, e arohaneng le Marang-rang, moo lijana li fumanangna ka mabitso a marang-rang.

Teko e laoloa ke script ea khetla. Ho etsa tlhahlobo ho Windows re sebelisa git-bash. Kahoo, script e le 'ngoe e lekane bakeng sa Windows le Linux. Git le Docker li kentsoe ke bahlahisi bohle morerong ona. Ha o kenya Git ho Windows, git-bash e kentsoe, kahoo bohle ba na le eona.

Script e etsa mehato e latelang:

  • Ho haha ​​litšoantšo tsa docker
    docker-compose build
  • Ho qala database le LocalStack
    docker-compose up -d <контейнер>
  • Ho falla ha database le ho lokisoa ha LocalStack
    docker-compose run <контейнер>
  • Ho qala tšebeletso tlas'a teko
    docker-compose up -d <сервис>
  • Ho matha tlhahlobo (Newman)
  • Ho emisa lijana tsohle
    docker-compose down
  • E beha liphetho ho Slack
    Re na le moqoqo moo melaetsa e nang le lets'oao le letala kapa sefapano se sefubelu le sehokelo sa log e eang.

Litšoantšo tse latelang tsa Docker li ameha mehatong ena:

  • Tšebeletso e ntseng e lekoa ke setšoantšo se ts'oanang le sa tlhahiso. Litlhophiso tsa tlhahlobo li sebelisa maemo a fapaneng a tikoloho.
  • Bakeng sa Postgres, Redis le LocalStack, litšoantšo tse lokiselitsoeng ho tloha Docker Hub li sebelisoa. Ho boetse ho na le litšoantšo tse lokiselitsoeng bakeng sa Liquibase le Newman. Re haha ​​ea rona holim'a skeleton ea bona, re eketsa lifaele tsa rona moo.
  • Ho lokisa LocalStack, o sebelisa setšoantšo se seng se entsoe sa AWS CLI mme o etsa setšoantšo se nang le mongolo o thehiloeng ho sona.

Ho sebelisa maqhubu, ha ua tlameha ho theha setšoantšo sa Docker hore feela u kenye lifaele ka har'a setshelo. Leha ho le joalo, li-volume ha li tšoanele tikoloho ea rona hobane mesebetsi ea Gitlab CI ka botsona e sebetsa ka lijaneng. O ka laola Docker ho tsoa ka sejaneng se joalo, empa meqolo e beha feela lifoldara ho tsoa ho sistimi e amohelang, eseng ho tsoa sejaneng se seng.

Mathata ao o ka kopanang le ona

Ho emela ho itokisetsa

Ha setshelo se nang le tshebeletso se ntse se sebetsa, sena ha se bolele hore se se se loketse ho amohela dikgokelo. U tlameha ho emela hore khokahano e tsoele pele.

Ka linako tse ling bothata bona bo rarolloa ka ho sebelisa mongolo emelang.sh, e emelang monyetla oa ho theha khokahanyo ea TCP. Leha ho le joalo, LocalStack e ka lahlela phoso ea 502 Bad Gateway. Ho phaella moo, e na le litšebeletso tse ngata, 'me haeba e' ngoe ea tsona e se e loketse, sena ha se bolele letho ka ba bang.

u etsa qeto ea: Lingoliloeng tsa ho fana ka LocalStack tse emelang karabo ea 200 ho tsoa ho SQS le SNS ka bobeli.

Likhohlano tsa Mosebetsi o Tšoanang

Liteko tse ngata li ka sebetsa ka nako e le 'ngoe ho moamoheli a le mong oa Docker, kahoo mabitso a setshelo le marang-rang a tlameha ho ikhetha. Ho feta moo, liteko tse tsoang makaleng a fapaneng a ts'ebeletso e le 'ngoe li ka boela tsa sebetsa ka nako e le' ngoe, kahoo ha hoa lekana ho ngola mabitso a bona faeleng e 'ngoe le e' ngoe ea ho qapa.

u etsa qeto ea: Mongolo o beha COMPOSE_PROJECT_NAME phapang ho boleng bo ikhethang.

Windows Features

Ho na le lintho tse 'maloa tseo ke batlang ho li supa ha u sebelisa Docker ho Windows, kaha liphihlelo tsena li bohlokoa ho utloisisa hore na ke hobane'ng ha liphoso li etsahala.

  1. Lingoliloeng tsa Shell ka har'a sets'oants'o li tlameha ho ba le liphetho tsa mela ea Linux.
    Letšoao la shell CR ke phoso ea syntax. Ho thata ho bolela molaetsa oa phoso hore ho joalo. Ha u hlophisa lingoloa tse joalo ho Windows, u hloka mohlophisi oa mongolo o nepahetseng. Ntle le moo, sistimi ea taolo ea mofuta o tlameha ho hlophisoa hantle.

Ena ke tsela eo git e hlophisitsoeng ka eona:

git config core.autocrlf input

  1. Git-bash e etsisa li-folders tse tloaelehileng tsa Linux mme, ha o bitsa faele ea exe (ho kenyeletsoa le docker.exe), e nkela litsela tsa Linux sebaka ka litsela tsa Windows. Leha ho le joalo, sena ha se utloahale bakeng sa litsela tse seng mochining oa lehae (kapa litselana tse ka har'a setshelo). Boitšoaro bona bo ke ke ba emisoa.

u etsa qeto ea: eketsa slash e eketsehileng qalong ea tsela: //bin sebakeng sa /bin. Linux e utloisisa litsela tse joalo; bakeng sa eona, likheo tse 'maloa li tšoana le e le' ngoe. Empa git-bash ha e hlokomele litsela tse joalo ebile ha e leke ho li fetola.

Sephetho sa log

Ha ke etsa liteko, ke kopa ho bona lintlha tse tsoang ho Newman le ts'ebeletso e ntse e lekoa. Kaha liketsahalo tsa lits'oants'o tsena li hokahane, ho li kopanya ho khomphutha e le 'ngoe ho bonolo haholo ho feta lifaele tse peli tse arohaneng. Newman e qala ka docker-compose run, 'me kahoo tlhahiso ea eona e fella ka console. Ho setseng ke ho etsa bonnete ba hore tlhahiso ea ts'ebeletso le eona e ea moo.

Tharollo ea pele e ne e le ho etsa docker-kopanya ha ho folakha -d, empa u sebelisa bokhoni ba khetla, romella ts'ebetso ena ka morao:

docker-compose up <service> &

Sena se ile sa sebetsa ho fihlela ho hlokahala ho romela lits'oants'o ho tloha Docker ho ea ts'ebeletso ea mokha oa boraro. docker-kopanya e emisitse ho hlahisa likutu ho khomphutha. Leha ho le joalo, sehlopha se ile sa sebetsa docker ea hokela.

u etsa qeto ea:

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

Khohlano ea li-identifier nakong ea tlhahlobo ea liteko

Liteko li etsoa ka makhetlo a 'maloa. Sebaka sa polokelo ea boitsebiso ha sea hlakisoa. Litlaleho tsa polokelo ea boitsebiso li na le li-ID tse ikhethang. Haeba re ngola li-ID tse itseng likopong, re tla fumana khohlano lekhetlo la bobeli.

Ho e qoba, li-ID li tlameha ho ikhetha, kapa lintho tsohle tse entsoeng ke tlhahlobo li tlameha ho hlakoloa. Lintho tse ling li ke ke tsa hlakoloa ka lebaka la litlhoko.

u etsa qeto ea: hlahisa li-GUID ka ho sebelisa mangolo a Postman.

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

Ebe u sebelisa letšoao potsong {{myUUID}}, e tla nkeloa sebaka ke boleng ba phetoho.

Tšebelisano ka LocalStack

Haeba ts'ebeletso e ntseng e lekoa e bala kapa e ngolla mokoloko oa SQS, joale ho netefatsa sena, tlhahlobo ka boeona e tlameha ho sebetsa le queue ena.

u etsa qeto ea: likopo tse tsoang ho Postman ho LocalStack.

API ea litšebeletso tsa AWS e ngotsoe, e lumella lipotso ho etsoa ntle le SDK.

Haeba tšebeletso e ngolla queue, joale rea e bala ebe re hlahloba litaba tsa molaetsa.

Haeba ts'ebeletso e romella melaetsa ho SNS, sethaleng sa ho itokisa LocalStack e boetse e theha mokoloko mme e ingolisa ho sehlooho sena sa SNS. Ebe tsohle li theohela ho se hlalositsoeng ka holimo.

Haeba tšebeletso e hloka ho bala molaetsa o tsoang moleng, joale mohatong o fetileng oa teko re ngola molaetsa ona ho ea mokolokong.

Ho etsa liteko tsa likopo tsa HTTP tse tsoang ho microservice tlas'a teko

Litšebeletso tse ling li sebetsa holim'a HTTP ka ho hong ntle le AWS, 'me likarolo tse ling tsa AWS ha li sebelisoe ho LocalStack.

u etsa qeto ea: maemong ana e ka thusa MockServer, e nang le setšoantšo se entsoeng hantle ka Sebaka sa Docker. Likopo tse lebelletsoeng le likarabo ho tsona li lokisoa ke kopo ea HTTP. API e ngotsoe, kahoo re etsa likopo ho tsoa ho Postman.

Ho Lekola netefatso ea OAuth le tumello

Re sebelisa OAuth le JSON Web Tokens (JWT). Teko e hloka mofani oa OAuth eo re ka e sebelisang sebakeng sa heno.

Litšebelisano tsohle lipakeng tsa litšebeletso le mofani oa OAuth li tla ho likopo tse peli: ea pele, tlhophiso e kopuoa. /.well-known/openid-configuration, ebe ho kopuoa senotlolo sa sechaba (JWKS) atereseng ho tsoa ho tlhophiso. Tsena tsohle ke litaba tse sa fetoheng.

u etsa qeto ea: Mofani oa rona oa liteko oa OAuth ke seva sa litaba tse tsitsitseng le lifaele tse peli ho eona. Letšoao le hlahisoa hang mme le ikemiselitse ho Git.

Likarolo tsa tlhahlobo ea SignalR

Motho oa poso ha a sebetse le li-websockets. Ho entsoe sesebelisoa se ikhethileng ho leka SignalR.

Moreki oa SignalR e ka ba sebatli feela. Ho na le laebrari ea bareki bakeng sa eona tlas'a .NET Core. Moreki, e ngotsoeng ho .NET Core, e theha khokahano, e netefalitsoe, 'me e emetse tatellano e itseng ea melaetsa. Haeba molaetsa o sa lebelloang o amohetsoe kapa khokahano e lahlehile, moreki o tsoa ka khoutu ea 1. Haeba molaetsa oa ho qetela o lebelletsoeng o amoheloa, moreki o tsoa ka khoutu ea 0.

Newman o sebetsa ka nako e le 'ngoe le moreki. Bareki ba 'maloa ba qalisoa ho hlahloba hore na melaetsa e fetisetsoa ho bohle ba e hlokang.

Teko ea othomathike ea li-microservices ho Docker bakeng sa kopanyo e tsoelang pele

Ho tsamaisa bareki ba bangata sebelisa khetho -- tekanyo moleng oa taelo oa docker-compose.

Pele o sebetsa, mongolo oa Postman o emela hore bareki bohle ba thehe likhokahano.
Re se re kopane le bothata ba ho emela khokahano. Empa ho ne ho e-na le li-server, 'me mofani ke enoa. Ho hlokahala mokhoa o fapaneng.

u etsa qeto ea: moreki ka har'a setshelo o sebelisa mochini HealthCheckho tsebisa sengolwa ho moamohedi mabapi le boemo ba sona. Moreki o etsa faele ka tsela e itseng, e re / healthcheck, hang ha khokahano e thehoa. Sengoloa sa HealthCheck faeleng ea docker se shebahala tjena:

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

sehlopha hlahloba docker E bonts'a boemo bo tloaelehileng, boemo ba bophelo bo botle le khoutu ea ho tsoa bakeng sa setshelo.

Kamora hore Newman a phethe, sengoloa se hlahloba hore lijana tsohle tse nang le moreki li felile, ka khoutu 0.

Happinnes e teng

Ka mor'a hore re hlōle mathata a hlalositsoeng ka holimo, re ile ra ba le sehlopha sa liteko tse tsitsitseng tsa ho matha. Litekong, tšebeletso e 'ngoe le e' ngoe e sebetsa e le yuniti e le 'ngoe, e sebelisanang le database le Amazon LocalStack.

Liteko tsena li sireletsa sehlopha sa baetsi ba 30+ liphosong tsa ts'ebeliso e nang le tšebelisano e rarahaneng ea li-microservices tse 10+ tse tsamaisoang khafetsa.

Source: www.habr.com

Eketsa ka tlhaloso