Deuchainn fèin-ghluasadach air microservices ann an Docker airson amalachadh leantainneach

Ann am pròiseactan co-cheangailte ri leasachadh ailtireachd microservice, bidh CI / CD a’ gluasad bhon roinn de chothrom tlachdmhor chun roinn de fheum èiginneach. Tha deuchainn fèin-ghluasadach na phàirt riatanach de aonachadh leantainneach, dòigh-obrach comasach a bheir mòran oidhcheannan tlachdmhor don sgioba le teaghlach is caraidean. Rud eile, tha cunnart ann nach tèid am pròiseact a chrìochnachadh gu bràth.

Tha e comasach an còd microservice gu lèir a chòmhdach le deuchainnean aonad le rudan meallta, ach chan eil seo ach gu ìre a ’fuasgladh na duilgheadas agus a’ fàgail mòran cheistean is dhuilgheadasan, gu sònraichte nuair a bhios tu a ’dèanamh deuchainn air obair le dàta. Mar as àbhaist, is e an fheadhainn as cudromaiche a bhith a’ dèanamh deuchainn air cunbhalachd dàta ann an stòr-dàta dàimh, a’ dèanamh deuchainn air obair le seirbheisean sgòthan, agus a’ dèanamh barailean ceàrr nuair a bhios tu a’ sgrìobhadh nithean meallta.

Faodar seo uile agus beagan a bharrachd fhuasgladh le bhith a’ dèanamh deuchainn air a’ mhicro-sheirbheis gu lèir ann an soitheach Docker. Is e buannachd gun teagamh airson dèanamh cinnteach à dligheachd dheuchainnean gu bheilear a’ dèanamh deuchainn air na h-aon ìomhaighean Docker a thèid a-steach gu cinneasachadh.

Tha fèin-ghluasad an dòigh-obrach seo a 'nochdadh grunn dhuilgheadasan, a thèid am fuasgladh a mhìneachadh gu h-ìosal:

  • còmhstri de ghnìomhan co-shìnte anns an aon òstair docker;
  • còmhstri aithnichear san stòr-dàta rè ath-aithrisean deuchainn;
  • a 'feitheamh airson microservices a bhith deiseil;
  • a’ tighinn còmhla agus a’ cur a-mach logaichean gu siostaman taobh a-muigh;
  • a’ dèanamh deuchainn air iarrtasan HTTP a tha a’ dol a-mach;
  • deuchainn socaid lìn (a’ cleachdadh SignalR);
  • a’ dèanamh deuchainn air dearbhadh agus ùghdarras OAuth.

Tha an artaigil seo stèidhichte air mo chainnt aig SECR 2019. Mar sin dhaibhsan a tha ro leisg airson leughadh, seo clàr den òraid.

Deuchainn fèin-ghluasadach air microservices ann an Docker airson amalachadh leantainneach

San artaigil seo innsidh mi dhut mar a chleachdas tu sgriobt gus an t-seirbheis a ruith fo dheuchainn, stòr-dàta agus seirbheisean Amazon AWS ann an Docker, an uairsin deuchainnean air Postman agus, às deidh dhaibh a bhith deiseil, stad agus cuir às do na soithichean cruthaichte. Bithear a’ dèanamh deuchainnean gach uair a dh’atharraicheas an còd. San dòigh seo, bidh sinn a’ dèanamh cinnteach gu bheil gach dreach ag obair gu ceart le stòr-dàta agus seirbheisean AWS.

Tha an aon sgriobt air a ruith an dà chuid leis an luchd-leasachaidh fhèin air an deasg Windows aca agus leis an fhrithealaiche Gitlab CI fo Linux.

Gus a bhith air fhìreanachadh, cha bu chòir gum biodh feum air innealan a bharrachd a chuir a-steach airson deuchainnean ùra a thoirt a-steach an dàrna cuid air coimpiutair an leasaiche no air an fhrithealaiche far a bheil na deuchainnean gan ruith air gealltanas.

Feumaidh an deuchainn ruith air frithealaiche ionadail airson na h-adhbharan a leanas:

  • Chan eil an lìonra a-riamh gu tur earbsach. A-mach à mìle iarrtas, faodaidh aon fàiligeadh;
    Anns a 'chùis seo, chan obraich an deuchainn fèin-ghluasadach, stadaidh an obair, agus feumaidh tu an adhbhar a lorg anns na logaichean;
  • Chan eil cuid de sheirbheisean treas-phàrtaidh a’ ceadachadh iarrtasan ro thric.

A bharrachd air an sin, chan eil e ion-mhiannaichte an stand a chleachdadh oir:

  • Faodar seasamh a bhriseadh chan ann a-mhàin le droch chòd a’ ruith air, ach cuideachd le dàta nach urrainn an còd ceart a phròiseasadh;
  • Ge bith dè cho cruaidh ‘s a dh’ fheuchas sinn ri na h-atharrachaidhean uile a rinn an deuchainn a thoirt air ais tron ​​​​deuchainn fhèin, faodaidh rudeigin a dhol ceàrr (air dhòigh eile, carson deuchainn?).

Mu dheidhinn a 'phròiseact agus buidheann phròiseas

Leasaich a ’chompanaidh againn tagradh lìn microservice a’ ruith ann an Docker ann an sgòth Amazon AWS. Chaidh deuchainnean aonad a chleachdadh air a’ phròiseact mu thràth, ach thachair mearachdan gu tric nach do lorg na deuchainnean aonaid. Bha e riatanach deuchainn a dhèanamh air microservice slàn còmhla ris an stòr-dàta agus seirbheisean Amazon.

Bidh am pròiseact a’ cleachdadh pròiseas amalachaidh leantainneach àbhaisteach, a tha a’ toirt a-steach a bhith a’ dèanamh deuchainn air a’ mhicro-sheirbheis leis a h-uile gealladh. Às deidh dha gnìomh a shònrachadh, bidh an leasaiche a ’dèanamh atharrachaidhean air a’ mhicro-sheirbheis, ga dheuchainn le làimh agus a ’ruith a h-uile deuchainn fèin-ghluasadach a tha ri fhaighinn. Ma tha feum air, bidh an leasaiche ag atharrachadh nan deuchainnean. Mura lorgar duilgheadas, thèid gealltanas a thoirt don mheur den chùis seo. Às deidh gach gealltanas, thèid deuchainnean a ruith gu fèin-ghluasadach air an fhrithealaiche. Thig a-steach do mheur cumanta agus cuir air bhog deuchainnean fèin-ghluasadach air às deidh ath-sgrùdadh soirbheachail. Ma thèid na deuchainnean air a’ mheur co-roinnte seachad, thèid an t-seirbheis ùrachadh gu fèin-ghluasadach san àrainneachd deuchainn air Amazon Elastic Container Service (beinn). Tha an seasamh riatanach airson a h-uile leasaiche agus neach-dearbhaidh, agus chan eilear a ’moladh a bhriseadh. Bidh luchd-dearbhaidh san àrainneachd seo a’ sgrùdadh fuasgladh no feart ùr le bhith a’ dèanamh deuchainnean làimhe.

Pròiseact ailtireachd

Deuchainn fèin-ghluasadach air microservices ann an Docker airson amalachadh leantainneach

Tha an tagradh air a dhèanamh suas de chòrr air deich seirbheisean. Tha cuid dhiubh sgrìobhte ann an .NET Core agus cuid ann an NodeJs. Bidh gach seirbheis a’ ruith ann an soitheach Docker ann an Seirbheis Gabhaidh Elastic Amazon. Tha stòr-dàta Postgres fhèin aig gach fear, agus tha Redis aig cuid cuideachd. Chan eil stòran-dàta cumanta ann. Ma tha feum aig grunn sheirbheisean air an aon dàta, bidh an dàta seo, nuair a dh’ atharraicheas e, air a ghluasad gu gach aon de na seirbheisean sin tro SNS (Seirbheis Fiosrachaidh Shìmplidh) agus SQS (Amazon Simple Queue Service), agus bidh na seirbheisean ga shàbhaladh anns na stòran-dàta fa leth aca fhèin.

SQS agus SNS

Leigidh SQS leat teachdaireachdan a chuir ann an ciudha agus teachdaireachdan bhon ciudha a leughadh a’ cleachdadh protocol HTTPS.

Ma leughas grunn sheirbheisean aon ciudha, cha ruig gach teachdaireachd ach gu aon dhiubh. Tha seo feumail nuair a bhios tu a’ ruith grunn shuidheachaidhean den aon sheirbheis gus an luchd a sgaoileadh eatorra.

Ma tha thu airson gach teachdaireachd a lìbhrigeadh gu ioma-sheirbheisean, feumaidh ciudha fhèin a bhith aig gach neach a gheibh e, agus tha feum air SNS gus teachdaireachdan a dhùblachadh gu grunn ciudha.

Ann an SNS cruthaichidh tu cuspair agus fo-sgrìobh thu dha, mar eisimpleir, ciudha SQS. Faodaidh tu teachdaireachdan a chuir gu cuspair. Anns a’ chùis seo, thèid an teachdaireachd a chuir gu gach ciudha a tha fo-sgrìobhadh don chuspair seo. Chan eil dòigh aig SNS airson teachdaireachdan a leughadh. Ma dh’ fheumas tu, rè debugging no deuchainn, faighinn a-mach dè a thèid a chuir gu SNS, faodaidh tu ciudha SQS a chruthachadh, fo-sgrìobhadh don chuspair a tha thu ag iarraidh agus an ciudha a leughadh.

Deuchainn fèin-ghluasadach air microservices ann an Docker airson amalachadh leantainneach

Geata API

Chan eil a’ mhòr-chuid de sheirbheisean rim faighinn gu dìreach bhon eadar-lìn. Gheibhear a-steach tro API Gateway, a nì sgrùdadh air còraichean-slighe. Is e seo an t-seirbheis againn cuideachd, agus tha deuchainnean ann air a shon cuideachd.

Brathan fìor-ùine

Bidh an tagradh a’ cleachdadh ComharraRgus fiosan fìor-ùine a nochdadh don neach-cleachdaidh. Tha seo air a bhuileachadh anns an t-seirbheis fios. Tha e ruigsinneach gu dìreach bhon eadar-lìn agus tha e fhèin ag obair le OAuth, oir thionndaidh e a-mach gu robh e do-dhèanta taic a thogail airson socaidean lìn a-steach gu Gateway, an coimeas ri bhith ag aonachadh OAuth agus an t-seirbheis fios.

Dòigh-obrach deuchainn ainmeil

Bidh deuchainnean aonaid a’ cuir rudan meallta an àite rudan mar an stòr-dàta. Ma dh’ fheuchas microservice, mar eisimpleir, ri clàr a chruthachadh ann an clàr le iuchair chèin, agus nach eil an clàr air a bheil an iuchair sin ann, cha ghabh an t-iarrtas a choileanadh. Chan urrainn do dheuchainnean aonad seo a lorg.

В artaigil bho Microsoft Thathas a’ moladh stòr-dàta cuimhneachaidh a chleachdadh agus nithean meallta a chuir an gnìomh.

Tha stòr-dàta cuimhne mar aon de na DBMSn le taic bhon Fhrèam Aonachd. Chaidh a chruthachadh gu sònraichte airson deuchainn. Chan eil dàta ann an stòr-dàta mar sin air a stòradh ach gus an tig am pròiseas a chleachdas e gu crìch. Chan fheum e clàran a chruthachadh agus chan eil e a’ sgrùdadh ionracas dàta.

Bidh nithean meallta a’ modail a’ chlas a tha iad a’ cur nan àite dìreach chun na h-ìre gu bheil an leasaiche deuchainn a’ tuigsinn mar a tha e ag obair.

Chan eil mar a gheibh Postgres tòiseachadh gu fèin-ghluasadach agus imrich a dhèanamh nuair a ruitheas tu deuchainn air a shònrachadh ann an artaigil Microsoft. Bidh am fuasgladh agam a’ dèanamh seo agus, a bharrachd air sin, chan eil e a’ cur còd sam bith gu sònraichte airson deuchainnean ris a’ mhicro-sheirbheis fhèin.

Gluaisidh sinn air adhart chun fhuasgladh

Rè a 'phròiseas leasachaidh, dh'fhàs e soilleir nach robh deuchainnean aonad gu leòr airson a h-uile duilgheadas a lorg ann an deagh àm, agus mar sin chaidh co-dhùnadh dèiligeadh ris a' chùis seo bho cheàrn eadar-dhealaichte.

A 'stèidheachadh àrainneachd deuchainn

Is e a’ chiad obair àrainneachd deuchainn a chleachdadh. Ceumannan a dh 'fheumar gus microservice a ruith:

  • Dèan rèiteachadh air an t-seirbheis fo dheuchainn airson na h-àrainneachd ionadail, sònraich am mion-fhiosrachadh airson ceangal ris an stòr-dàta agus AWS anns na caochladairean àrainneachd;
  • Tòisich Postgres agus dèan an imrich le bhith a 'ruith Liquibase.
    Ann an DBMSan co-cheangailte, mus sgrìobh thu dàta a-steach don stòr-dàta, feumaidh tu sgeama dàta a chruthachadh, ann am faclan eile, clàran. Nuair a bhios tu ag ùrachadh iarrtas, feumar clàran a thoirt chun fhoirm a chleachdas an dreach ùr, agus, mas fheàrr, gun dàta a chall. Canar imrich ris an seo. Tha cruthachadh chlàran ann an stòr-dàta falamh an toiseach na chùis sònraichte de imrich. Faodar imrich a thoirt a-steach don tagradh fhèin. Tha frèaman imrich aig an dà chuid .NET agus NodeJS. Anns a ’chùis againn, airson adhbharan tèarainteachd, tha còir aig microservices an sgeama dàta atharrachadh, agus thèid an imrich a dhèanamh a’ cleachdadh Liquibase.
  • Cuir air bhog Amazon LocalStack. Is e seo buileachadh de sheirbheisean AWS airson ruith aig an taigh. Tha ìomhaigh deiseil airson LocalStack air Docker Hub.
  • Ruith an sgriobt gus na buidhnean riatanach a chruthachadh ann an LocalStack. Bidh sgriobtaichean Shell a’ cleachdadh an AWS CLI.

Air a chleachdadh airson deuchainn air a’ phròiseact Fear a ’phuist. Bha e ann roimhe, ach chaidh a chuir air bhog le làimh agus deuchainn a dhèanamh air tagradh a chaidh a chleachdadh mar-thà aig an stand. Leigidh an inneal seo leat iarrtasan HTTP(S) neo-riaghailteach a dhèanamh agus dèanamh cinnteach a bheil na freagairtean a’ freagairt ris na bha dùil. Bidh ceistean air an cur còmhla ann an cruinneachadh, agus faodar an cruinneachadh gu lèir a ruith.

Deuchainn fèin-ghluasadach air microservices ann an Docker airson amalachadh leantainneach

Ciamar a tha an deuchainn fèin-ghluasadach ag obair?

Rè an deuchainn, bidh a h-uile dad ag obair ann an Docker: an t-seirbheis fo dheuchainn, Postgres, an inneal imrich, agus Postman, no an àite an dreach tòcan aige - Newman.

Bidh Docker a’ fuasgladh grunn dhuilgheadasan:

  • Neo-eisimeileachd bho rèiteachadh aoigheachd;
  • A’ stàladh eisimeileachd: Bidh Docker a’ luchdachadh sìos ìomhaighean bho Docker Hub;
  • Tilleadh an t-siostam chun a staid thùsail: dìreach cuir air falbh na soithichean.

Docker-sgrìobhadh ag aonachadh shoithichean a-steach do lìonra mas-fhìor, iomallach bhon eadar-lìn, anns am bi soithichean a’ lorg a chèile le ainmean fearainn.

Tha an deuchainn fo smachd sgriobt shligean. Gus an deuchainn a ruith air Windows bidh sinn a’ cleachdadh git-bash. Mar sin, tha aon sgriobt gu leòr airson Windows agus Linux. Tha Git agus Docker air an stàladh leis a h-uile leasaiche air a’ phròiseact. Nuair a stàlaicheas tu Git air Windows, tha git-bash air a chuir a-steach, agus mar sin tha sin aig a h-uile duine cuideachd.

Bidh an sgriobt a’ coileanadh nan ceumannan a leanas:

  • Togail dealbhan docker
    docker-compose build
  • A' cur air bhog an stòr-dàta agus LocalStack
    docker-compose up -d <контейнер>
  • Imrich stòr-dàta agus ullachadh LocalStack
    docker-compose run <контейнер>
  • A chur air bhog an t-seirbheis fo deuchainn
    docker-compose up -d <сервис>
  • A' ruith na deuchainn (Newman)
  • A 'stad a h-uile container
    docker-compose down
  • Toraidhean postachd ann an Slack
    Bidh còmhradh againn far am bi teachdaireachdan le comharradh uaine no crois dhearg agus ceangal ris an loga a’ dol.

Tha na h-ìomhaighean Docker a leanas an sàs anns na ceumannan seo:

  • Tha an aon ìomhaigh aig an t-seirbheis a thathar a’ dèanamh deuchainn agus airson cinneasachadh. Tha an rèiteachadh airson an deuchainn tro chaochladairean àrainneachd.
  • Airson Postgres, Redis agus LocalStack, thathas a’ cleachdadh ìomhaighean deiseil bho Docker Hub. Tha ìomhaighean deiseil ann cuideachd airson Liquibase agus Newman. Bidh sinn a 'togail ar cuid air an cnàimhneach, a' cur ar faidhlichean an sin.
  • Gus LocalStack ullachadh, bidh thu a’ cleachdadh ìomhaigh deiseil AWS CLI agus cruthaichidh tu ìomhaigh anns a bheil sgriobt stèidhichte air.

A ’cleachdadh leabhraichean, chan fheum thu dealbh Docker a thogail dìreach airson faidhlichean a chuir ris a’ ghobhar. Ach, chan eil meudan freagarrach airson ar n-àrainneachd leis gu bheil gnìomhan Gitlab CI iad fhèin a’ ruith ann an soithichean. Faodaidh tu smachd a chumail air Docker bho leithid de shoitheach, ach chan eil ann an tomhas-lìonaidh ach pasganan bhon t-siostam aoigheachd, agus chan ann bho shoitheach eile.

Duilgheadasan a dh'fhaodadh a bhith agad

A 'feitheamh airson deiseil

Nuair a bhios soitheach le seirbheis a 'ruith, chan eil seo a' ciallachadh gu bheil e deiseil airson gabhail ri ceanglaichean. Feumaidh tu feitheamh gus an lean an ceangal.

Uaireannan thèid an duilgheadas seo fhuasgladh le bhith a 'cleachdadh sgriobt feitheamh-air-it.sh, a tha a’ feitheamh ri cothrom ceangal TCP a stèidheachadh. Ach, faodaidh LocalStack mearachd 502 Bad Gateway a thilgeil. A bharrachd air an sin, tha mòran sheirbheisean ann, agus ma tha aon dhiubh deiseil, chan eil seo ag ràdh dad mu dheidhinn an fheadhainn eile.

co-dhùnadh: Sgriobtaichean solarachaidh LocalStack a tha a’ feitheamh ri freagairt 200 bhon dà chuid SQS agus SNS.

Còmhstri Gnìomh Co-shìnte

Faodaidh ioma-dheuchainnean ruith aig an aon àm air an aon aoigh Docker, agus mar sin feumaidh ainmean soithichean agus lìonra a bhith gun samhail. A bharrachd air an sin, faodaidh deuchainnean bho dhiofar mheuran den aon sheirbheis ruith aig an aon àm, agus mar sin chan eil e gu leòr an ainmean a sgrìobhadh anns gach faidhle sgrìobhaidh.

co-dhùnadh: Tha an sgriobt a' suidheachadh an caochladair COMPOSE_PROJECT_NAME gu luach sònraichte.

Feartan Windows

Tha grunn rudan ann a tha mi airson a chomharrachadh nuair a bhios tu a’ cleachdadh Docker air Windows, leis gu bheil na h-eòlasan sin cudromach airson tuigsinn carson a tha mearachdan a’ tachairt.

  1. Feumaidh crìochnachaidhean loidhne Linux a bhith aig sgriobtaichean slige ann an soitheach.
    Tha an samhla CR slige na mhearachd co-chòrdadh. Tha e duilich innse bhon teachdaireachd mhearachd gur e seo a 'chùis. Nuair a bhios tu a’ deasachadh a leithid de sgriobtaichean air Windows, feumaidh tu deasaiche teacsa ceart. A bharrachd air an sin, feumaidh an siostam smachd dreach a bhith air a rèiteachadh gu ceart.

Seo mar a tha git air a rèiteachadh:

git config core.autocrlf input

  1. Bidh Git-bash a’ dèanamh atharrais air pasganan àbhaisteach Linux agus, nuair a chuireas tu fios gu faidhle exe (a’ toirt a-steach docker.exe), cuiridh e slighean Windows an àite slighean Linux iomlan. Ach, chan eil seo a 'dèanamh ciall airson slighean nach eil air an inneal ionadail (no slighean ann an soitheach). Chan urrainnear an giùlan seo a chuir dheth.

co-dhùnadh: cuir slaise a bharrachd ri toiseach na slighe: //bin an àite /bin. Tha Linux a 'tuigsinn slighean mar sin; air a shon, tha grunn slashes an aon rud ri aon. Ach chan eil git-bash ag aithneachadh a leithid de shlighean agus chan eil e a 'feuchainn ri an tionndadh.

Toradh log

Nuair a bhios mi a’ ruith dheuchainnean, bu mhath leam logaichean fhaicinn bho gach cuid Newman agus an t-seirbheis fo dheuchainn. Leis gu bheil tachartasan nan logaichean sin eadar-cheangailte, tha e nas fhasa an cur còmhla ann an aon chonsail na dà fhaidhle fa leth. Newman a’ cur air bhog tro ruith docker-compose, agus mar sin thig an toradh aige gu crìch anns a’ chonsail. Chan eil air fhàgail ach dèanamh cinnteach gu bheil toradh na seirbheis a’ dol ann cuideachd.

Bha am fuasgladh tùsail ri dhèanamh docker-compose suas chan eil bratach -d, ach a’ cleachdadh comasan nan sligean, cuir am pròiseas seo chun chùl:

docker-compose up <service> &

Dh'obraich seo gus an robh feum air logaichean a chuir bho Docker gu seirbheis treas-phàrtaidh. docker-compose suas sguir a bhith a’ toirt a-mach logaichean chun chonsail. Ach, dh'obraich an sgioba ceangail a 'ceangal.

co-dhùnadh:

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

Còmhstri aithnichear rè ath-aithrisean deuchainn

Bidh deuchainnean gan ruith ann an grunn thursan. Chan eil an stòr-dàta air a ghlanadh. Tha IDan sònraichte aig clàran san stòr-dàta. Ma sgrìobhas sinn sìos IDan sònraichte ann an iarrtasan, gheibh sinn còmhstri aig an dàrna tionndadh.

Gus a sheachnadh, feumaidh an dàrna cuid na IDan a bhith gun samhail, no feumaidh gach nì a chruthaich an deuchainn a bhith air a dhubhadh às. Chan urrainnear cuid de nithean a sguabadh às air sgàth riatanasan.

co-dhùnadh: cruthaich GUIDs a’ cleachdadh sgriobtaichean Postman.

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

An uairsin cleachd an samhla anns a’ cheist {{myUUID}}, a thèid a chur na àite le luach an caochladair.

Co-obrachadh tro LocalStack

Ma tha an t-seirbheis a thathar a’ dèanamh deuchainn a’ leughadh no a’ sgrìobhadh gu ciudha SQS, an uairsin gus seo a dhearbhadh, feumaidh an deuchainn fhèin obrachadh leis a’ chiudha seo cuideachd.

co-dhùnadh: iarrtasan bho Postman gu LocalStack.

Tha API seirbheisean AWS air a chlàradh, a’ ceadachadh ceistean a dhèanamh às aonais SDK.

Ma sgrìobhas seirbheis gu ciudha, an uairsin bidh sinn ga leughadh agus a’ sgrùdadh susbaint na teachdaireachd.

Ma chuireas an t-seirbheis teachdaireachdan gu SNS, aig an ìre ullachaidh bidh LocalStack cuideachd a’ cruthachadh ciudha agus a’ gabhail ris a’ chuspair SNS seo. An uairsin tha e uile an urra ris na chaidh a mhìneachadh gu h-àrd.

Ma dh’ fheumas an t-seirbheis teachdaireachd bhon ciudha a leughadh, an uairsin anns a’ cheum deuchainn mu dheireadh bidh sinn a’ sgrìobhadh am brath seo chun ciudha.

A’ dèanamh deuchainn air iarrtasan HTTP a thàinig bhon mhicro-sheirbheis fo dheuchainn

Bidh cuid de sheirbheisean ag obair thairis air HTTP le rudeigin a bharrachd air AWS, agus chan eil cuid de fheartan AWS air an cur an gnìomh ann an LocalStack.

co-dhùnadh: anns na cùisean sin faodaidh e cuideachadh Frithealaidh meallta, aig a bheil ìomhaigh deiseil ann an Hub Docker. Tha iarrtasan agus freagairtean ris a bheil dùil air an rèiteachadh le iarrtas HTTP. Tha an API clàraichte, agus mar sin bidh sinn a’ dèanamh iarrtasan bho Postman.

A’ dèanamh deuchainn air Dearbhadh agus Ùghdarrachadh OAuth

Bidh sinn a’ cleachdadh OAuth agus Comharran lìn JSON (JWT). Feumaidh an deuchainn solaraiche OAuth as urrainn dhuinn a ruith gu h-ionadail.

Bidh a h-uile eadar-obrachadh eadar an t-seirbheis agus an solaraiche OAuth a’ tighinn sìos gu dà iarrtas: an toiseach, thathar ag iarraidh an rèiteachadh /.well-known/openid-configuration, agus an uairsin thathar ag iarraidh an iuchair phoblach (JWKS) aig an t-seòladh bhon rèiteachadh. Is e susbaint statach a tha seo uile.

co-dhùnadh: Tha an solaraiche deuchainn OAuth againn na fhrithealaiche susbaint statach agus dà fhaidhle air. Tha an comharra air a chruthachadh aon uair agus air a ghealltainn do Git.

Feartan deuchainn SignalR

Chan eil Postman ag obair le websockets. Chaidh inneal sònraichte a chruthachadh gus SignalR a dhearbhadh.

Faodaidh neach-dèiligidh SignalR a bhith nas motha na dìreach brobhsair. Tha leabharlann teachdaiche air a shon fo .NET Core. Bidh an neach-dèiligidh, sgrìobhte ann an .NET Core, a 'stèidheachadh ceangal, air a dhearbhadh, agus a' feitheamh airson sreath sònraichte de theachdaireachdan. Ma gheibhear teachdaireachd ris nach robh dùil no ma thèid an ceangal a chall, falbhaidh an neach-dèiligidh le còd 1. Ma gheibhear an teachdaireachd mu dheireadh ris a bheil dùil, falbhaidh an neach-dèiligidh le còd 0.

Bidh Newman ag obair aig an aon àm leis an neach-dèiligidh. Thèid grunn luchd-dèiligidh a chuir air bhog gus dèanamh cinnteach gu bheil teachdaireachdan air an lìbhrigeadh don h-uile duine a tha feumach orra.

Deuchainn fèin-ghluasadach air microservices ann an Docker airson amalachadh leantainneach

Gus iomadh cleachdaiche a ruith cleachd an roghainn --sgèile air an loidhne-àithne docker-compose.

Mus ruith e, tha an sgriobt Postman a’ feitheamh ris a h-uile neach-dèiligidh ceanglaichean a stèidheachadh.
Tha sinn mu thràth air coinneachadh ris an duilgheadas a bhith a’ feitheamh ri ceangal. Ach bha frithealaichean ann, agus seo an neach-dèiligidh. Tha feum air dòigh-obrach eadar-dhealaichte.

co-dhùnadh: bidh an neach-dèiligidh anns a’ ghobhar a’ cleachdadh an uidheamachd SlàinteCheckgus innse don sgriobt air an òstair mun inbhe aige. Bidh an neach-dèiligidh a’ cruthachadh faidhle aig slighe shònraichte, can / healthcheck, cho luath ‘s a thèid an ceangal a stèidheachadh. Tha an sgriobt HealthCheck anns an fhaidhle docker a’ coimhead mar seo:

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

sgioba sgrùdadh docker A’ sealltainn inbhe àbhaisteach, inbhe slàinte agus còd fàgail a’ bhogsa.

Às deidh Newman a chrìochnachadh, bidh an sgriobt a’ dèanamh cinnteach gu bheil a h-uile inneal leis an neach-dèiligidh air tighinn gu crìch, le còd 0.

Tha Happinnes ann

Às deidh dhuinn faighinn thairis air na duilgheadasan a chaidh a mhìneachadh gu h-àrd, bha seata de dheuchainnean ruith seasmhach againn. Ann an deuchainnean, bidh gach seirbheis ag obair mar aonad singilte, ag eadar-obrachadh leis an stòr-dàta agus Amazon LocalStack.

Bidh na deuchainnean sin a’ dìon sgioba de luchd-leasachaidh 30+ bho mhearachdan ann an tagradh le eadar-obrachadh iom-fhillte de 10+ microservices le cleachdadh tric.

Source: www.habr.com

Cuir beachd ann