Kumaphrojekthi ahilela ukuthuthukiswa kwezakhiwo ze-microservice, i-CI/CD isuka esicini esihle sokuba nayo iye esidingweni esiphelele. Ukuhlola okuzenzakalelayo kuyingxenye ebalulekile yokuhlanganiswa okuqhubekayo, futhi indlela eklanywe kahle inganikeza iqembu ubusuku obumnandi obungenakubalwa nomndeni nabangane. Uma kungenjalo, iphrojekthi isengozini yokungaqedwa.
Kuyenzeka ukumboza yonke ikhodi ye-microservice ngokuhlolwa kweyunithi usebenzisa izinto mbumbulu, kodwa lokhu kuyixazulula kancane inkinga futhi kushiya imibuzo eminingi nezinselele, ikakhulukazi lapho kuhlolwa ukusebenzisana kwedatha. Njengokuvamile, okucindezela kakhulu ukuhlola ukuvumelana kwedatha kusizindalwazi esihlobene, ukuhlola ukusebenzelana nezinsizakalo zamafu, nokuqagela okungalungile lapho kubhalwa izinto mbumbulu.
Konke lokhu nokunye kungafezwa ngokuhlola yonke i-microservice esitsheni se-Docker. Inzuzo ecacile yokuqinisekisa ukufaneleka kokuhlolwa ukuthi izithombe ze-Docker ezifanayo ezisetshenziswa ekukhiqizeni ziyahlolwa.
Ukuzenzakalela le ndlela kuveza izinselelo eziningi, izixazululo ezizochazwa ngezansi:
- izingxabano zemisebenzi efanayo kumsingathi oyedwa we-Docker;
- izihlonzi ezishayisanayo kusizindalwazi ngesikhathi sokuphindaphinda ukuhlolwa;
- ukulinda ama-microservices ukuthi alungele;
- ukuhlanganisa kanye nokukhipha izingodo ezinhlelweni zangaphandle;
- ukuhlola izicelo ze-HTTP eziphumayo;
- ukuhlola amasokhethi ewebhu (usebenzisa iSignalR);
- Ukuqinisekisa kwe-OAuth nokuhlolwa kokugunyazwa.
Lesi sihloko sisekelwe ku ku-SECR 2019. Ngakho-ke kulabo abavilapha kakhulu ukufunda, .

Kulesi sihloko, ngizochaza indlela yokusebenzisa iskripthi ukuqalisa insiza ngaphansi kokuhlolwa, isizindalwazi, kanye nezinsizakalo ze-Amazon AWS ku-Docker, bese uqhuba izivivinyo ku-Postman, futhi, uma usuqedile, ume futhi ususe iziqukathi ezidaliwe. Ukuhlolwa kwenziwa ngakho konke ukushintshwa kwekhodi. Lokhu kuqinisekisa ukuthi inguqulo ngayinye isebenza kahle nesizindalwazi kanye nezinsiza ze-AWS.
Umbhalo ofanayo uqhutshwa yibo bobabili abathuthukisi ngokwabo kumadeskithophu abo e-Windows kanye neseva ye-Gitlab CI ku-Linux.
Ukuze ukuqaliswa kokuhlolwa okusha kuthethelelwe, akumele kudinge ukufakwa kwamathuluzi engeziwe kukhompuyutha yonjiniyela noma kuseva lapho ukuhlola kwenziwa khona lapho kwenziwa. I-Docker ixazulula le nkinga.
Ukuhlola kufanele kusebenze kuseva yendawo ngenxa yezizathu ezilandelayo:
- Ayikho inethiwekhi ethembeke ngokuphelele. Isicelo esisodwa enkulungwaneni singase singaphumeleli;
Kulesi simo, ukuhlolwa okuzenzakalelayo kuzohluleka, umsebenzi uzoyeka, futhi kuzodingeka ubheke imbangela emigodini; - Izicelo ezivame kakhulu azivunyelwe izinsizakalo zezinkampani zangaphandle.
Ngaphezu kwalokho, akunconywa ukusebenzisa isitendi ngoba:
- Isitendi singaphulwa hhayi kuphela ngekhodi embi esebenza kuso, kodwa futhi ngedatha ikhodi elungile engakwazi ukuyicubungula;
- Kungakhathaliseki ukuthi sizama kangakanani ukubuyisela zonke izinguquko ezenziwe ukuhlolwa phakathi nokuhlolwa ngokwako, kukhona okungahamba kahle (ngaphandle kwalokho, yini iphuzu lokuhlola?).
Mayelana nephrojekthi kanye nenhlangano yenqubo
Inkampani yethu ibithuthukisa uhlelo lwewebhu lwe-microservice olusebenza e-Docker efwini le-Amazon AWS. Ukuhlolwa kweyunithi kwase kukhona kakade kuphrojekthi, kodwa amaphutha ayevame ukutholwa amayunithi ayengawatholi. Besidinga ukuhlola yonke i-microservice, kuhlanganise nesizindalwazi kanye nezinsizakalo ze-Amazon.
Iphrojekthi isebenzisa inqubo ejwayelekile yokuhlanganisa eqhubekayo, ehlanganisa ukuhlolwa kwe-microservice ngakho konke ukuzibophezela. Ngemva kokunikezwa umsebenzi, unjiniyela wenza izinguquko ku-microservice, ayihlole mathupha, futhi aqhube zonke izivivinyo ezizenzakalelayo ezikhona. Umthuthukisi ulungisa izivivinyo uma kudingeka. Uma kungekho zinkinga ezitholakalayo, kuzibophezela egatsheni ngalowo msebenzi. Ngemva kokuzibophezela ngakunye, ukuhlola kuqaliswa ngokuzenzakalelayo kuseva. Ukuhlanganisa negatsha eliyinhloko nokusebenzisa izivivinyo ezizenzakalelayo kulo kwenzeka ngemva kokubuyekeza okuyimpumelelo. Uma izivivinyo egatsheni elikhulu ziphumelela, isevisi ibuyekezwa ngokuzenzakalelayo endaweni yokuhlola ku-Amazon Elastic Container Service (i-test rig). I-rig ibalulekile kubo bonke onjiniyela nabahloli, futhi ukuyiphula akudingekile. Abahloli basebenzisa le ndawo ukuze baqinisekise ukulungiswa noma isici esisha, abasebenzisa izivivinyo ezenziwa mathupha.
Isakhiwo sephrojekthi

Isicelo siqukethe izinkonzo ezingaphezu kweshumi. Ezinye zibhalwe nge-.NET Core, kanti ezinye ku-NodeJS. Isevisi ngayinye isebenza esitsheni se-Docker e-Amazon Elastic Container Service. Isevisi ngayinye ine-database yayo ye-Postgres, kanti abanye bane-Redis. Azikho izizindalwazi ezabiwe. Uma izinsiza eziningi zidinga idatha efanayo, idatha idluliselwa kusevisi ngayinye yalezi ngokushesha nje lapho ishintsha nge-SNS (Isevisi Yesaziso Esilula) kanye ne-SQS (Isevisi Yomugqa Olula Wase-Amazon), futhi izinsizakalo ziyigcina kuzigcinilwazi zazo ezihlukene.
SQS kanye SNS
I-SQS ikuvumela ukuthi ufake imilayezo kulayini futhi ufunde imilayezo evela kulayini usebenzisa iphrothokholi ye-HTTPS.
Uma izinsiza eziningi zifundwa kulayini ofanayo, umlayezo ngamunye uthunyelwa kowodwa kuphela. Lokhu kuyasiza uma usebenzisa izimo eziningi zesevisi efanayo ukuze kusatshalaliswe umthwalo phakathi kwazo.
Uma umlayezo ngamunye udinga ukulethwa kumasevisi amaningi, umamukeli ngamunye kufanele abe nomugqa wakhe, futhi i-SNS iyadingeka ukuze imilayezo iphinde ibe kulayini abaningi.
Ku-SNS, udala isihloko bese ubhalisa kuso, isibonelo, ulayini we-SQS. Ungathumela imilayezo esihlokweni. Uma wenza kanjalo, umlayezo uthunyelwa kuwo wonke ulayini obhalisele leso sihloko. I-SNS ayinayo indlela yokufunda imilayezo. Uma udinga ukwazi ukuthi yini ethunyelwa ku-SNS ngesikhathi sokulungisa iphutha noma ukuhlolwa, ungakha ulayini we-SQS, uwubhalisele esihlokweni osifunayo, futhi ufunde ulayini.

Isango le-API
Izinsizakalo eziningi azitholakali ngokuqondile ku-inthanethi. Ukufinyelela kunikezwa nge-API Gateway, eqinisekisa amalungelo okufinyelela. Lokhu futhi kuyinkonzo yethu, futhi sinezivivinyo zayo.
Izaziso zesikhathi sangempela
Uhlelo lokusebenza lusebenzisa ukuze ubonise izaziso zesikhathi sangempela kumsebenzisi. Lokhu kwenziwa kusevisi yezaziso. Ifinyeleleka ngokuqondile ku-inthanethi futhi isebenza ne-OAuth ngokwayo, njengoba ukuhlanganisa usekelo lwesokhethi yewebhu ku-Gateway kubonakale kungenakusebenza uma kuqhathaniswa nokuhlanganisa i-OAuth nesevisi yesaziso.
Indlela eyaziwayo yokuhlola
Ukuhlolwa kweyunithi esikhundleni sezinto ezifana nesizindalwazi esinezinto mbumbulu. Uma ngabe i-microservice, ngokwesibonelo, izama ukudala irekhodi kuthebula ngokhiye wangaphandle, kodwa irekhodi elishiwo yilo khiye lingekho, isicelo asikwazi ukuqaliswa. Ukuhlolwa kweyunithi akukwazi ukubona lokhu.
В Kuhlongozwa ukuthi kusetshenziswe isizindalwazi esisenkumbulo futhi kusetshenziswe izinto mbumbulu.
Isizindalwazi esisenkumbulweni singenye yama-DBMS asekelwa Uhlaka Lwebhizinisi. Idizayinelwe ukuhlola ngqo. Idatha kusizindalwazi esinjalo igcinwa kuphela kuze kube yilapho inqubo yokuyisebenzisa iphela. Asikho isidingo sokudala amathebula, futhi ubuqotho bedatha abuhloliwe.
Izinto mbumbulu ziyisibonelo sekilasi ezisishintshayo kuphela njengoba umthuthukisi wokuhlola eqonda ukuthi lisebenza kanjani.
I-athikili ye-Microsoft ayichazi ukuthi ungayethula kanjani ngokuzenzakalelayo i-Postgres futhi usebenzise ukufuduka lapho wenza isivivinyo. Isixazululo sami senza lokhu, futhi ngaphezu kwalokho, ayikho ikhodi yokuhlola engeziwe ku-microservice ngokwayo.
Ake siqhubekele esixazululo
Ngesikhathi sokuthuthukiswa, kwacaca ukuthi ukuhlolwa kwamayunithi akwanele ukubamba zonke izinkinga ngesikhathi, ngakho-ke kwanqunywa ukuthi udaba lubhekwe ngenye indlela.
Ukusetha indawo yokuhlola
Umsebenzi wokuqala ukufaka indawo yokuhlola. Izinyathelo ezidingekayo zokuqalisa i-microservice yilezi:
- Lungiselela isevisi ehlolwa endaweni yendawo; izinto eziguquguqukayo zemvelo zicacisa imininingwane yokuxhuma kusizindalwazi kanye ne-AWS;
- Qala ama-Postgres bese uqhuba ukufuduka ngokusebenzisa i-Liquibase.
Kuma-DBMS ahlobene, ngaphambi kokubhala idatha kusizindalwazi, udinga ukwakha i-schema yedatha-noma, kalula, amathebula. Lapho uthuthukisa uhlelo lokusebenza, amathebula adinga ukuguqulelwa kufomethi esetshenziswa inguqulo entsha, okungcono ngaphandle kokulahleka kwedatha. Lokhu kubizwa ngokufuduka. Ukudala amathebula kusizindalwazi esingenalutho ekuqaleni kuyisimo esikhethekile sokufuduka. Ukufuduka kungakhelwa kuhlelo lokusebenza ngokwalo. Kokubili i-.NET ne-NodeJS zinezinhlaka zokufuduka. Esimweni sethu, ngenxa yezizathu zokuphepha, ama-microservices avinjelwe ekuguquleni i-schema yedatha, futhi ukufuduka kwenziwa kusetshenziswa i-Liquibase. - Yethula i-Amazon LocalStack. Lokhu ukuqaliswa kwezinsizakalo ze-AWS ukuze uzisebenze ngokwakho. Kunesithombe esenziwe ngomumo se-LocalStack ku-Docker Hub.
- Qalisa iskripthi ukuze udale amabhizinisi adingekayo ku-LocalStack. Izikripthi zeShell zisebenzisa i-AWS CLI.
Kusetshenziswa ukuhlolwa kuphrojekthi Yayikhona ngaphambili, kodwa yethulwa mathupha futhi yasetshenziselwa ukuhlola uhlelo lokusebenza oseluvele lusetshenzisiwe ku-testbed. Leli thuluzi likuvumela ukuthi wenze izicelo ze-HTTP(S) ngokunganaki futhi uhlole ukuthi izimpendulo ziyahlangabezana yini nokulindelwe. Izicelo zihlanganiswa zibe iqoqo, futhi lonke iqoqo lingaqhutshwa.

Ngabe ukuhlolwa okuzenzakalelayo kusebenza kanjani?
Ngesikhathi sokuhlolwa, yonke into isebenza ku-Docker: isevisi iyahlolwa, i-Postgres, ithuluzi lokufuduka, kanye ne-Postman, noma kunalokho inguqulo yayo ye-console, i-Newman.
I-Docker ixazulula izinkinga eziningi:
- Ukuzimela ekucushweni komsingathi;
- Ukufaka okuncikile: I-Docker ilanda izithombe ku-Docker Hub;
- Ukusetha kabusha isistimu esimweni sayo sokuqala: vele ususe iziqukathi.
Docker-compose ihlanganisa iziqukathi zibe inethiwekhi ebonakalayo ehlukanisiwe ne-inthanethi, lapho iziqukathi zitholana ngamagama wesizinda.
Ukuhlolwa kulawulwa iskripthi segobolondo. Ukwenza isivivinyo ku-Windows, sisebenzisa i-git-bash. Lokhu kusho ukuthi iskripthi esisodwa sanele iWindows neLinux. Bonke abathuthukisi kuphrojekthi bane-Git ne-Docker efakiwe. Ukufaka i-Git ku-Windows kuphinde kufaka i-git-bash, ngakho wonke umuntu unayo.
Iskripthi senza izinyathelo ezilandelayo:
- Izithombe ze-Docker yokwakha
docker-compose build - Kwethulwa i-DB ne-LocalStack
docker-compose up -d <контейнер> - Ukuthuthwa kwesizindalwazi nokulungiswa kwe-LocalStack
docker-compose run <контейнер> - Kwethulwa isevisi ngaphansi kokuhlolwa
docker-compose up -d <сервис> - Ukwenza ukuhlolwa (Newman)
- Ukumisa zonke iziqukathi
docker-compose down - Ithumela imiphumela ku-Slack
Siba nengxoxo lapho kuthunyelwa khona imilayezo enophawu oluluhlaza noma isiphambano esibomvu nesixhumanisi selogi.
Lezi zinyathelo zifaka lezi zithombe ze-Docker ezilandelayo:
- Isevisi engaphansi kokuhlolwa iyisithombe esifanayo nesokukhiqiza. Ukucushwa kokuhlolwa kunikezwa ngokuhlukahluka kwemvelo.
- Kuma-Postgres, Redis, kanye ne-LocalStack, sisebenzisa izithombe ezenziwe ngomumo ezivela ku-Docker Hub. I-Liquibase ne-Newman nazo zinezithombe esezilungile. Sakha okwethu phezu kwesisekelo sabo, sengeza amafayela ethu.
- Ukuze kuhlinzekwe i-LocalStack, kusetshenziswe isithombe esakhelwe ngaphambili se-AWS CLI, futhi isithombe esiqukethe iskripthi sidalwa kuso.
Isebenzisa , awudingi ukwakha isithombe se-Docker ukuze nje wengeze amafayela esitsheni. Kodwa-ke, amavolumu awayilungele indawo yethu ngoba imisebenzi ye-Gitlab CI ngokwayo isebenza ezitsheni. I-Docker ingaphathwa kusukela kusitsha esinjalo, kodwa amavolumu akhweza kuphela amafolda asuka kusistimu yokusingatha, hhayi kwesinye isitsha.
Izinkinga ongase uhlangane nazo
Ilinde ukulungela
Ngenxa yokuthi isiqukathi sesevisi siyasebenza akusho ukuthi sesilungele ukwamukela ukuxhumana. Udinga ukulinda ukuxhumana ukuze uqhubeke.
Le nkinga ngezinye izikhathi ixazululwa ngosizo lweskripthi. , elinda ithuba lokusungula uxhumano lwe-TCP. Nokho, i-LocalStack ingase ibuyise iphutha le-502 Bad Gateway. Ngaphezu kwalokho, iqukethe izinsiza eziningi, futhi uma eyodwa isilungile, ayisho lutho ngezinye.
Isixazululo: Imibhalo yokulungiselela ye-LocalStack elinda impendulo engama-200 kusuka kokubili i-SQS ne-SNS.
Ukungqubuzana phakathi kwemisebenzi ehambisanayo
Ukuhlola okuningi kungasebenza ngesikhathi esisodwa kumsingathi oyedwa we-Docker, ngakho-ke amagama esiqukathi nawenethiwekhi kufanele ahluke. Ngaphezu kwalokho, ukuhlola okuvela emagatsheni ahlukene esevisi efanayo kungaphinda kusebenze ngesikhathi esisodwa, ngakho ukucacisa amagama ahlukene kufayela ngalinye lokubhala akwanele.
Isixazululo: umbhalo usetha inani eliyingqayizivele lokuhluka kwe-COMPOSE_PROJECT_NAME.
Izici zeWindows
Uma usebenzisa i-Docker ku-Windows, kunezinto ezimbalwa engifuna ukuziveza, njengoba lokhu okuhlangenwe nakho kubalulekile ekuqondeni izimbangela zamaphutha.
- Izikripthi zeshell esitsheni kufanele zibe neziphetho zomugqa we-Linux.
Uhlamvu lwe-CR lwegobolondo luyiphutha le-syntax. Kunzima ukusho kumlayezo wephutha ukuthi le nkinga. Lapho uhlela imibhalo enjalo ku-Windows, udinga isihleli sombhalo esifanele. Ukwengeza, uhlelo lwakho lokulawula inguqulo kufanele lumiswe kahle.
Nansi indlela i-git elungiselelwe ngayo:
git config core.autocrlf input- I-Git-bash ilingisa amafolda e-Linux ajwayelekile futhi, lapho ibiza ifayela le-.exe (okuhlanganisa ne-docker.exe), ithatha indawo yezindlela ze-Linux eziphelele ngeWindows. Nokho, lokhu akusebenzi ezindleleni ezingekho emshinini wendawo (noma izindlela ezisesitsheni). Lokhu kuziphatha akukwazi ukukhutshazwa.
Isixazululo: engeza i-slash eyengeziwe ekuqaleni kwendlela: //bin esikhundleni sika-/bin. I-Linux iyaziqonda izindlela ezinjalo; ngayo, ama-slash amaningi afana neyodwa. Kodwa-ke, i-git-bash ayiziboni izindlela ezinjalo futhi ayizami ukuziguqula.
Ukukhishwa kwelogi
Uma ngenza izivivinyo, ngingathanda ukubona amalogi avela kokubili kwa-Newman kanye nesevisi ehlolwayo. Njengoba imicimbi kulawa malogi ihlobene, ukuwahlanganisa kukhonsoli eyodwa kulula kakhulu kunamafayela amabili ahlukene. I-Newman yethulwa nge i-docker-compose run, ngakho-ke okukhiphayo kuya kukhonsoli. Okusele wukuqinisekisa ukuthi okukhiphayo kwesevisi nakho kuya lapho.
Isinqumo sokuqala kwaba ukwenza docker-bhala phezulu ngaphandle kwefulegi -d, kodwa usebenzisa amandla egobolondo, thumela le nqubo ngemuva:
docker-compose up <service> &Lokhu kusebenze kwaze kwadingeka ukuthi kuthunyelwe izingodo zisuka ku-Docker ziye enkampanini yangaphandle. docker-bhala phezulu uyeke ukukhipha izingodo kukhonsoli. Nokho, umyalo wasebenza. namathisela i-docker.
Isixazululo:
docker attach --no-stdin ${COMPOSE_PROJECT_NAME}_<сервис>_1 &Ukungqubuzana kwesikhombi ngesikhathi sokuphindaphinda ukuhlolwa
Ukuhlola kwenziwa ngokuphindaphinda okuningi. Isizindalwazi asisuliwe. Amarekhodi esizindalwazi anama-ID ahlukile. Uma ama-ID athile efakiwe emibuzweni, ukungqubuzana kuzokwenzeka ekuphindaphindweni kwesibili.
Ukuze ugweme lokhu, ama-ID kufanele ahluke noma zonke izinto ezidalwe ukuhlolwa kufanele zisuswe. Ezinye izinto azikwazi ukususwa ngenxa yezidingo.
Isixazululo: khiqiza ama-GUID anemibhalo ku-Postman.
var uuid = require('uuid');
var myid = uuid.v4();
pm.environment.set('myUUID', myid);Bese usebenzisa uphawu embuzweni wakho {{myUUID}}, okuzothathelwa indawo inani lokuguquguquka.
Ukusebenzisana nge-LocalStack
Uma isevisi engaphansi kokuhlolwa ifunda noma ibhalela kulayini we-SQS, ukuhlolwa ngokwako kufanele futhi kusebenze nalowo mugqa ukuze kuqinisekiswe lokhu.
Isixazululo: izicelo ezivela ku-Postman kuya ku-LocalStack.
Amasevisi e-AWS anama-API abhaliwe, akuvumela ukuthi wenze izicelo ngaphandle kwe-SDK.
Uma isevisi ibhalela kulayini, siyayifunda futhi sihlole okuqukethwe umyalezo.
Uma isevisi ithumela imilayezo ku-SNS, i-LocalStack iphinda idale ulayini futhi ibhalisele lesi sihloko se-SNS phakathi nesigaba sokusetha. Kusukela lapho, yonke into ilandela iphethini efanayo njengoba kuchazwe ngenhla.
Uma isevisi idinga ukufunda umlayezo ovela kulayini, khona-ke esinyathelweni sangaphambilini sokuhlolwa sibhala lo mlayezo emgqeni.
Ihlola izicelo ze-HTTP kusuka ku-microservice ngaphansi kokuhlolwa
Ezinye izinsiza zixhumana nge-HTTP ngokuthile okungeyona i-AWS, futhi ezinye izici ze-AWS azenziwa ku-LocalStack.
Isixazululo: kulezi zimo kungasiza , enesithombe esenziwe ngomumo Izicelo ezilindelwe nezimpendulo zilungiswa ngesicelo se-HTTP. I-API ibhaliwe, ngakho senza izicelo ku-Postman.
Ukuhlola ukuqinisekiswa kwe-OAuth nokugunyazwa
Sisebenzisa i-OAuth kanye Ukuze sihlole, sidinga umhlinzeki we-OAuth esingamsebenzisa endaweni.
Konke ukusebenzisana phakathi kwesevisi nomhlinzeki we-OAuth kwehla ezicelweni ezimbili: okokuqala, ukulungiselelwa kucelwa. /.well-known/openid-configuration, bese kucelwa ukhiye womphakathi (JWKS) kusetshenziswa ikheli ekucushweni. Konke lokhu okuqukethwe okumile.
IsixazululoUmhlinzeki wethu we-OAuth wokuhlola uyiseva yokuqukethwe emile enamafayela amabili kuyo. Ithokheni ikhiqizwa kanye futhi izinikele ku-Git.
Izici Zokuhlola I-SignalR
U-postman akasebenzi namasokhethi ewebhu. Ithuluzi elikhethekile ladalelwa ukuhlola i-SignalR.
Iklayenti le-SignalR lingaba noma yini ukusuka kusiphequluli kuye kulabhulali yeklayenti le-.NET Core. Iklayenti le-.NET Core lisungula uxhumano, liqinisekisa, futhi lilinde ukulandelana okuthile kwemilayezo. Uma umlayezo obungalindelekile wamukelwe noma uxhumano lulahleka, iklayenti livala ngekhodi 1. Lapho lithola umyalezo wokugcina olindelwe, linqanyulwa ngekhodi 0.
U-Newman ugijima kanyekanye neklayenti. Amaklayenti amaningana ethulwa ukuze kuqinisekiswe ukuthi imilayezo ilethwa kuwo wonke umuntu.

Ukuze usebenzise amaklayenti amaningi, sebenzisa inketho --isikali kulayini womyalo we-docker-compose.
Ngaphambi kokuqala i-Postman, umbhalo ulinda wonke amaklayenti ukuthi asungule uxhumano.
Sihlangabezane nenkinga yokulinda ukuxhumeka ngaphambilini. Kodwa lawo bekungamaseva, futhi leli yiklayenti. Kudingeka indlela ehlukile.
Isixazululo: iklayenti esitsheni lisebenzisa indlela ukwazisa umbhalo womsingathi ngesimo sawo. Iklayenti lidala ifayela ngendlela ethile, ithi /healthcheck, uma uxhumano selusungulwe. Iskripthi se-HealthCheck kufayela le-Docker sibukeka kanjena:
HEALTHCHECK --interval=3s CMD if [ ! -e /healthcheck ]; then false; fiIthimba I-Docker Inspect Ibonisa isimo esijwayelekile, isimo sempilo, kanye nekhodi yokuphuma yesiqukathi.
Ngemva kokuqeda u-Newman, umbhalo uhlola ukuthi zonke iziqukathi ezineklayenti seziqedile, ngekhodi 0.
Injabulo ikhona
Ngemva kokunqoba izinselele ezichazwe ngenhla, sibe nesethi yokuhlola okuzinzile. Ezivivinyweni, isevisi ngayinye isebenza njengeyunithi eyodwa, ixhumana ne-database kanye ne-Amazon LocalStack.
Lezi zivivinyo zivikela ithimba lonjiniyela abangu-30+ kumaphutha kuhlelo lokusebenza olunokusebenzelana okuyinkimbinkimbi phakathi kwama-microservices angu-10+ phakathi nokuthunyelwa okuvamile.
Source: www.habr.com
