Leasachadh tagraidh agus cleachdadh Blue-Green, stèidhichte air modh-obrach The Twelve-Factor App le eisimpleirean ann am php agus docker

Leasachadh tagraidh agus cleachdadh Blue-Green, stèidhichte air modh-obrach The Twelve-Factor App le eisimpleirean ann am php agus docker

An toiseach, beagan teòiridh. Dè thachair An App Dusan Factor?

Ann am faclan sìmplidh, tha an sgrìobhainn seo air a dhealbhadh gus leasachadh thagraidhean SaaS a dhèanamh nas sìmplidhe, a’ cuideachadh le bhith ag innse do luchd-leasachaidh agus innleadairean DevOps mu na duilgheadasan agus na cleachdaidhean as trice a thachras ann an leasachadh thagraidhean an latha an-diugh.

Chaidh an sgrìobhainn a chruthachadh le luchd-leasachaidh an àrd-ùrlar Heroku.

Faodar an App Twelve-Factor a chuir an sàs ann an tagraidhean sgrìobhte ann an cànan prògramadh sam bith agus a’ cleachdadh measgachadh sam bith de sheirbheisean cùl-taic (stòr-dàta, ciudhaichean teachdaireachd, tasgadan, msaa).

Beagan mu na factaran air a bheil am modh-obrach seo stèidhichte:

  1. Bun-chòd - Aon codebase air a leantainn ann an smachd dreach - ioma-chleachdadh
  2. eisimeil - Cuir an cèill gu soilleir agus cuir às do eisimeileachd
  3. Rèiteachadh - Sàbhail rèiteachadh ann an ùine ruith
  4. Seirbheisean cùl-taic - Beachdaich air seirbheisean taic mar ghoireasan plug-in
  5. Tog, fuasgail, ruith - Dèan sgaradh teann air na h-ìrean cruinneachaidh agus cur gu bàs
  6. Na pròiseasan - Ruith an tagradh mar aon phròiseas no barrachd gun stàit
  7. Ceangal port - Às-mhalairt seirbheisean tro cheangal puirt
  8. Co-dhunadh - Sgèile an tagradh agad a’ cleachdadh phròiseasan
  9. Fuasgladh - Meudaich earbsachd le tòiseachadh luath agus dùnadh glan
  10. Co-ionannachd leasachaidh / gnìomh tagraidh - Cùm na h-àrainneachdan leasachaidh, stèidse agus cinneasachaidh agad cho coltach ‘s a ghabhas
  11. Logadh - Faic an log mar shruth de thachartasan
  12. Gnìomhan rianachd - Dèan gnìomhan rianachd / riaghlaidh a’ cleachdadh pròiseasan ad hoc

Gheibh thu barrachd fiosrachaidh mu na 12 factaran bho na goireasan a leanas:

Dè a th’ ann an cleachdadh Blue-Green?

Tha cleachdadh Blue-Green mar dhòigh air tagradh a lìbhrigeadh gu riochdachaidh ann an dòigh nach fhaic an neach-dèiligidh deireannach atharrachaidhean sam bith air a phàirt. Ann am briathran eile, a 'cleachdadh iarrtas le neoni ùine neo-ùine.

Tha an sgeama clasaigeach BG Deploy coltach ris an fhear a chithear san ìomhaigh gu h-ìosal.

Leasachadh tagraidh agus cleachdadh Blue-Green, stèidhichte air modh-obrach The Twelve-Factor App le eisimpleirean ann am php agus docker

  • Aig an toiseach tha 2 fhrithealaiche fiosaigeach leis an aon chòd, tagradh, pròiseact, agus tha router (balancer).
  • Bidh an router an toiseach a’ stiùireadh a h-uile iarrtas gu aon de na frithealaichean (uaine).
  • An-dràsta nuair a dh'fheumas tu a leigeil ma sgaoil a-rithist, tha am pròiseact gu lèir air ùrachadh air frithealaiche eile (gorm), nach eil an-dràsta a’ làimhseachadh iarrtasan sam bith.
  • Às deidh don chòd a bhith air gorm tha am frithealaiche air ùrachadh gu tur, tha òrdugh air a thoirt don router tionndadh bho uaine air gorm frithealaiche.
  • A-nis tha a h-uile neach-dèiligidh a 'faicinn toradh a' chòd a 'ruith le de ghorm frithealaiche.
  • Airson beagan ùine, uaine bidh am frithealaiche na lethbhreac cùl-taic gun fhios nach tèid a chleachdadh gu soirbheachail gorm frithealaiche agus ma dh’ fhàilligeadh is bugaichean, bidh an router a’ tionndadh sruth an neach-cleachdaidh air ais gu uaine frithealaiche leis an t-seann dreach seasmhach, agus thèid an còd ùr a chuir airson ath-sgrùdadh agus deuchainn.
  • Agus aig deireadh a 'phròiseis, tha e air ùrachadh san aon dòigh uaine frithealaiche. Agus às deidh dha ùrachadh, bidh an router ag atharrachadh an t-sruthadh iarrtas air ais gu uaine frithealaiche.

Tha e uile a’ coimhead glè mhath agus aig a’ chiad sealladh cha bu chòir duilgheadas sam bith a bhith ann leis.
Ach leis gu bheil sinn beò ann an saoghal an latha an-diugh, chan eil an roghainn le atharrachadh corporra mar a tha air a chomharrachadh san sgeama clasaigeach freagarrach dhuinn. Clàraich am fiosrachadh airson a-nis, tillidh sinn thuige nas fhaide air adhart.

Droch chomhairle agus deagh chomhairle

Àicheadh: Tha na h-eisimpleirean gu h-ìosal a’ sealltainn nan goireasan/dòighean-obrach a bhios mi a’ cleachdadh, faodaidh tu roghainnean eile a chleachdadh le gnìomhan co-chosmhail.

Bidh a 'mhòr-chuid de na h-eisimpleirean ann an aon dòigh no dòigh eile a' dol an aghaidh leasachadh lìn (tha seo na iongnadh), le PHP agus Docker.

Tha na paragrafan gu h-ìosal a’ toirt seachad tuairisgeul practaigeach sìmplidh air cleachdadh fhactaran a’ cleachdadh eisimpleirean sònraichte; ma tha thu airson barrachd teòiridh fhaighinn air a’ chuspair seo, lean na ceanglaichean gu h-àrd chun an tùs thùsail.

1. Codebase

Cleachd FTP agus FileZilla gus faidhlichean a luchdachadh suas gu na frithealaichean aon aig aon àm, na stòraich an còd an àite sam bith ach air an t-seirbheisiche riochdachaidh.

Bu chòir bunait aon chòd a bhith aig a’ phròiseact an-còmhnaidh, is e sin, thig a h-uile còd bho aon dhol tasgaidh. Bidh luchd-frithealaidh (cinneasachadh, stèidse, deuchainn1, test2 ...) a’ cleachdadh còd bho mheuran aon stòr cumanta. San dòigh seo gheibh sinn cunbhalachd còd.

2. Dleasnais

Luchdaich sìos a h-uile leabharlann ann am pasganan gu dìreach gu freumh a’ phròiseict. Dèan ùrachaidhean dìreach le bhith a’ gluasad a’ chòd ùr chun phasgan leis an dreach làithreach den leabharlann. Stàlaich na goireasan riatanach gu dìreach air an t-seirbheisiche aoigheachd far a bheil 20 seirbheis eile a’ ruith.

Bu chòir gum biodh liosta eisimeileachd soilleir aig pròiseact an-còmhnaidh (le eisimeileachd tha mi a’ ciallachadh an àrainneachd cuideachd). Feumaidh a h-uile eisimeileachd a bhith air a mhìneachadh gu soilleir agus air leth.
Gabhamaid mar eisimpleir sgrìobhadh и Docker.

sgrìobhadh - manaidsear pacaid a leigeas leat leabharlannan a chuir a-steach ann am PHP. Leigidh sgrìobhaiche-ciùil leat dreachan a shònrachadh gu teann no gu fuasgailte, agus am mìneachadh gu soilleir. Faodaidh 20 pròiseact eadar-dhealaichte a bhith air an fhrithealaiche agus bidh liosta pearsanta de phasganan agus leabharlannan aig gach fear a tha neo-eisimeileach bhon fhear eile.

Docker - goireas a leigeas leat an àrainneachd anns am bi an tagradh a’ ruith a mhìneachadh agus a sgaradh. Mar sin, dìreach mar le sgrìobhadair-ciùil, ach nas mionaidiche, is urrainn dhuinn dearbhadh cò leis a tha an tagradh ag obair. Tagh dreach sònraichte de PHP, stàlaich ach na pacaidean a tha riatanach airson a’ phròiseact obrachadh, gun dad a bharrachd a chur ris. Agus as cudromaiche, gun a bhith a 'cur bacadh air pacaidean agus àrainneachd an inneal aoigheachd agus pròiseactan eile. Is e sin, faodaidh a h-uile pròiseact air an fhrithealaiche a tha a’ ruith tro Docker seata pacaidean sam bith agus àrainneachd gu tur eadar-dhealaichte a chleachdadh.

3. Rèiteachadh

Glèidh rèiteachaidhean mar chuibhlichean gu dìreach sa chòd. Stuthan air leth airson an fhrithealaiche deuchainn, fa leth airson cinneasachadh. Ceangail gnìomhachd an tagraidh a rèir na h-àrainneachd gu dìreach ann an loidsig gnìomhachais a ’phròiseict a’ cleachdadh ma thèid togail eile a dhèanamh.

Rèiteachadh - is e seo an aon dòigh anns am bu chòir cleachdadh phròiseactan a bhith eadar-dhealaichte. Mas fheàrr, bu chòir rèiteachaidhean a dhol tro chaochladairean àrainneachd (env vars).

Is e sin, eadhon ged a stòras tu grunn fhaidhlichean rèiteachaidh .config.prod .config.local agus ath-ainmich iad aig àm an cleachdadh gu .config (am prìomh config bhon a leughas an aplacaid dàta) - chan e seo an dòigh-obrach cheart, oir anns a’ chùis seo bidh am fiosrachadh bho na rèiteachaidhean ri fhaighinn gu poblach do luchd-leasachaidh an tagraidh agus thèid dàta bhon t-seirbheisiche riochdachaidh a chuir an cunnart. Feumar a h-uile rèiteachadh a stòradh gu dìreach san t-siostam cleachdadh (CI / CD) agus a chruthachadh airson diofar àrainneachdan le luachan eadar-dhealaichte a tha riatanach airson àrainneachd shònraichte aig àm an cleachdadh.

4. Seirbheisean Treas Pàrtaidh

Bi ceangailte gu teann ris an àrainneachd, cleachd diofar cheanglaichean airson na h-aon sheirbheisean ann an àrainneachdan sònraichte.

Gu dearbh, tha a’ phuing seo gu mòr a’ dol thairis air a’ phuing mu rèiteachaidhean, oir às aonais na puing seo, chan urrainnear dàta rèiteachaidh àbhaisteach a dhèanamh agus, san fharsaingeachd, cha tuit an comas rèiteachadh gu dad.

Feumaidh a h-uile ceangal ri seirbheisean taobh a-muigh, leithid frithealaichean ciudha, stòran-dàta, seirbheisean tasgadan, a bhith mar an ceudna airson an àrainneachd ionadail agus an àrainneachd treas-phàrtaidh / cinneasachaidh. Ann am faclan eile, aig àm sam bith, le bhith ag atharrachadh an t-sreang ceangail, is urrainn dhomh bonn #1 a chuir an àite fiosan gu bonn #2 gun a bhith ag atharrachadh còd an tagraidh. No, a 'coimhead air adhart, mar eisimpleir, nuair a bhios tu a' sgèileadh an t-seirbheis, cha leig thu leas an ceangal a shònrachadh ann an dòigh shònraichte airson frithealaiche cache a bharrachd.

5. Tog, fuasgail, cuir an gniomh

Na bi ach an dreach mu dheireadh den chòd air an fhrithealaiche, gun teans gun tèid an naidheachd a thoirt air ais. Chan eil feum air àite diosc a lìonadh. Tha neach sam bith a tha den bheachd gun urrainn dhaibh còd a leigeil ma sgaoil gu cinneasachadh le mearachd na dhroch phrògramadair!

Feumaidh gach ìre de chleachdadh a bhith air a sgaradh bho chèile.

Faigh cothrom tilleadh air ais. Dèan fiosan le seann lethbhric den tagradh (mar-thà cruinn agus deiseil airson blàr) air an sàbhaladh ann an ruigsinneachd luath, gus an urrainn dhut an seann dreach ath-nuadhachadh ma tha mearachdan ann. Is e sin, le cùmhnant tha pasgan ann naidheachd agus pasgan -dràsta, agus an dèidh cleachdadh soirbheachail agus co-chruinneachadh am pasgan -dràsta ceangailte le ceangal samhlachail ris an fhoillseachadh ùr a tha na laighe a-staigh naidheachd le ainm àbhaisteach an àireamh fuasglaidh.

Seo far a bheil cuimhne againn air cleachdadh Blue-Green, a leigeas leat chan ann a-mhàin gluasad eadar còd, ach cuideachd gluasad eadar a h-uile goireas agus eadhon àrainneachdan leis a ’chomas a h-uile càil a thoirt air ais.

6. Pròiseasan

Glèidh dàta stàite an tagraidh gu dìreach taobh a-staigh an aplacaid fhèin. Cleachd seiseanan ann an RAM an aplacaid fhèin. Cleachd nas urrainn dhut de roinneadh eadar seirbheisean treas-phàrtaidh. An urra ris nach urrainn ach aon phròiseas a bhith aig an tagradh agus nach leig leotha sgèileadh.

A thaobh seiseanan, stòraich dàta a-mhàin ann an tasgadan fo smachd seirbheisean treas-phàrtaidh (memcached, redis), mar sin eadhon ma tha 20 pròiseas tagraidh agad a’ ruith, bidh e comasach dha gin dhiubh, às deidh dhaibh faighinn chun tasgadan, leantainn air adhart ag obair leis an neach-dèiligidh ann an an aon staid anns an robh an neach-cleachdaidh ag obair leis an tagradh ann am pròiseas eile. Leis an dòigh-obrach seo, tha e a 'tionndadh a-mach, ge bith cia mheud leth-bhreac de treas-phàrtaidh seirbheisean a chleachdas tu, bidh a h-uile càil ag obair mar as trice agus gun duilgheadasan le cothrom air dàta.

7. Ceangal port

Is e dìreach an t-seirbheisiche lìn a bu chòir fios a bhith agad mar a dh’ obraicheas e le seirbheisean treas-phàrtaidh. No nas fheàrr fhathast, stàlaich seirbheisean treas-phàrtaidh gu dìreach taobh a-staigh an fhrithealaiche lìn. Mar eisimpleir, mar mhodal PHP ann an Apache.
Feumaidh na seirbheisean agad uile a bhith ruigsinneach dha chèile tro ruigsinneachd air cuid de sheòladh agus port (localgost: 5432, localhost: 3000, nginx: 80, php-fpm: 9000), is e sin, bho nginx is urrainn dhomh faighinn gu gach cuid php- fpm agus gu postgres, agus bho php-fpm gu postgres agus nginx agus gu dearbh bho gach seirbheis gheibh mi cothrom air seirbheis eile. San dòigh seo, chan eil ion-obrachadh seirbheis ceangailte ri ion-obrachadh seirbheis eile.

8. Co-shìnteachd

Obraich le aon phròiseas, air neo cha bhith e comasach dha grunn phròiseasan faighinn còmhla ri chèile!

Fàg rùm airson sgèileadh. Tha swarm docker sgoinneil airson seo.
Is e inneal a th’ ann an Docker Swarm airson cruinneachaidhean de shoithichean a chruthachadh agus a riaghladh an dà chuid eadar diofar innealan agus dòrlach de shoithichean air an aon inneal.

A’ cleachdadh swarm, ’s urrainn dhomh faighinn a-mach cia mheud goireas a bhios mi a’ riarachadh do gach pròiseas agus cia mheud pròiseas den aon sheirbheis a chuireas mi air bhog, agus bidh an cothromachadh a-staigh, a gheibh dàta air port sònraichte, ga chuir gu fèin-ghluasadach gu na pròiseasan. Mar sin, a’ faicinn gu bheil an luchd air an t-seirbheisiche air a dhol suas, is urrainn dhomh barrachd phròiseasan a chur ris, agus mar sin a’ lughdachadh an luchd air pròiseasan sònraichte.

9. Fuasgladh

Na cleachd ciudha gus obrachadh le pròiseasan agus dàta. Bu chòir marbhadh aon phròiseas buaidh a thoirt air an tagradh gu lèir. Ma thèid aon seirbheis sìos, thèid a h-uile càil sìos.

Faodar gach pròiseas agus seirbheis a chuir dheth aig àm sam bith agus cha bu chòir seo buaidh a thoirt air seirbheisean eile (gu dearbh, chan eil seo a’ ciallachadh nach bi an t-seirbheis ri fhaighinn airson seirbheis eile, ach nach cuir seirbheis eile dheth às deidh an tè seo). Feumar a h-uile pròiseas a thoirt gu crìch gu gràsmhor, gus nach tèid dàta sam bith a mhilleadh nuair a thèid an crìochnachadh, agus obraichidh an siostam gu ceart an ath thuras a thionndaidheas tu air. Is e sin, eadhon ma thig crìoch èiginneach air an dàta, cha bu chòir an dàta a mhilleadh (tha an uidheamachd malairt freagarrach an seo, bidh ceistean san stòr-dàta ag obair ann am buidhnean a-mhàin, agus ma dh’ fhailicheas co-dhiù aon cheist bhon bhuidheann no ma thèid a chuir gu bàs le aon mearachd, an uairsin chan eil ceist sam bith eile bhon bhuidheann a’ fàiligeadh aig a’ cheann thall).

10. Co-ionannachd leasachaidh/gnìomh tagraidh

Feumaidh cinneasachadh, cumail suas agus dreach ionadail den tagradh a bhith eadar-dhealaichte. Ann an cinneasachadh bidh sinn a’ cleachdadh frèam Yii Lite, agus Yii gu h-ionadail, gus am bi e ag obair nas luaithe ann an cinneasachadh!

Gu fìrinneach, bu chòir a h-uile cleachdadh agus obair le còd a bhith ann an àrainneachd cha mhòr co-ionann (chan eil sinn a ’bruidhinn mu dheidhinn bathar-cruaidh corporra). Cuideachd, bu chòir gum biodh e comasach do neach-obrach leasachaidh sam bith an còd a chuir gu cinneasachadh ma tha sin riatanach, agus chan e cuid de roinn devops air an trèanadh gu sònraichte, a dh’ fhaodadh dìreach le neart sònraichte an tagradh a thogail gu cinneasachadh.

Bidh Docker cuideachd gar cuideachadh le seo. Ma thèid na puingean gu lèir a choimhead, le bhith a’ cleachdadh docker bheir sin am pròiseas cleachdadh na h-àrainneachd an dà chuid air cinneasachadh agus air an inneal ionadail gu bhith a’ dol a-steach do àithne no dhà.

11. Logaichean

Bidh sinn a’ sgrìobhadh logaichean gu faidhlichean agus stòran-dàta! Cha bhith sinn a’ glanadh fhaidhlichean agus stòran-dàta bho logaichean. Nach ceannaich sinn dìreach draibhear cruaidh le 9000 Peta bytes agus tha sin ceart gu leòr.

Bu chòir beachdachadh air a h-uile log mar shruth de thachartasan. Cha bu chòir don tagradh fhèin a bhith an sàs ann an làimhseachadh logaichean. Bu chòir logaichean a bhith air an cur a-mach an dàrna cuid gu stdout no air an cur tro phròtacal leithid udp, gus nach cruthaich obrachadh le logaichean duilgheadas sam bith don tagradh. tha graylog math airson seo. Chan eil Graylog a ’faighinn a h-uile log tro udp (chan fheum am protocol seo feitheamh ri freagairt mu bhith a’ faighinn a ’phacaid gu soirbheachail) a’ cur bacadh air an tagradh ann an dòigh sam bith agus chan eil e a ’dèiligeadh ach ri structaradh agus giullachd logaichean. Chan eil loidsig an tagraidh ag atharrachadh gu bhith ag obair le dòighean-obrach mar sin.

12. Gnìomhan rianachd

Gus dàta, stòran-dàta, msaa ùrachadh, cleachd puing crìochnachaidh a chaidh a chruthachadh air leth san API, le bhith ga chuir an gnìomh 2 uair ann an sreath thig a h-uile càil a dhùblachadh. Ach chan eil thu gòrach, cha bhriog thu dà uair, agus chan fheum sinn imrich.

Bu chòir a h-uile gnìomh rianachd a dhèanamh san aon àrainneachd ris a h-uile còd, aig an ìre fuasglaidh. Is e sin, ma dh'fheumas sinn structar an stòr-dàta atharrachadh, cha dèan sinn sin le làimh le bhith ag atharrachadh ainmean nan colbhan agus a' cur feadhainn ùra ris tro chuid de dh'innealan stiùireadh stòr-dàta lèirsinneach. Airson rudan mar seo, bidh sinn a’ cruthachadh sgriobtaichean fa leth - imrich, a tha air an cur gu bàs anns a h-uile àite agus anns a h-uile àrainneachd san aon dòigh le toradh cumanta agus so-thuigsinn. Airson a h-uile gnìomh eile, leithid a bhith a’ lìonadh a’ phròiseict le dàta, bu chòir dòighean-obrach coltach ris a chleachdadh.

Eisimpleir de bhuileachadh ann am PHP, Laravel, Laradock, Docker-Compose

P.S Chaidh na h-eisimpleirean uile a dhèanamh air macOS. Tha a’ mhòr-chuid dhiubh cuideachd freagarrach airson Linux. Luchd-cleachdaidh Windows, thoir maitheanas dhomh, ach chan eil mi air a bhith ag obair le Windows airson ùine mhòr.

Smaoinich sinn air suidheachadh far nach eil dreach sam bith de PHP againn air a chuir a-steach air a’ PC againn agus gun dad idir.
Stàlaich na dreachan as ùire de docker agus docker-compose. (gheibhear seo air an eadar-lìon)

docker -v && 
docker-compose -v

Leasachadh tagraidh agus cleachdadh Blue-Green, stèidhichte air modh-obrach The Twelve-Factor App le eisimpleirean ann am php agus docker

1. Cuir Laradock

git clone https://github.com/Laradock/laradock.git && 
ls

Leasachadh tagraidh agus cleachdadh Blue-Green, stèidhichte air modh-obrach The Twelve-Factor App le eisimpleirean ann am php agus docker

A thaobh Laradock, canaidh mi gur e rud gu math fionnar a th’ ann, anns a bheil tòrr shoithichean agus rudan taice. Ach cha bhithinn a’ moladh Laradock a chleachdadh mar sin às aonais atharrachaidhean ann an cinneasachadh air sgàth cho fada ‘s a tha e. Tha e nas fheàrr na soithichean agad fhèin a chruthachadh stèidhichte air eisimpleirean ann an Laradock, bidh seo tòrr nas fheàrr, oir chan fheum duine a h-uile dad a tha ann aig an aon àm.

2. Dèan rèiteachadh air Laradock gus an tagradh againn a ruith.

cd laradock && 
cp env-example .env

Leasachadh tagraidh agus cleachdadh Blue-Green, stèidhichte air modh-obrach The Twelve-Factor App le eisimpleirean ann am php agus docker

2.1. Fosgail an eòlaire habr (am pasgan pàrant anns a bheil laradock air a chlonadh) ann an deasaiche cuid. (Anns a’ chùis PHPStorm agam)

Aig an ìre seo chan eil sinn a’ toirt ach ainm don phròiseact.

Leasachadh tagraidh agus cleachdadh Blue-Green, stèidhichte air modh-obrach The Twelve-Factor App le eisimpleirean ann am php agus docker

2.2. Cuir air bhog an ìomhaigh àite-obrach. (Anns a ’chùis agad, bheir e beagan ùine airson na h-ìomhaighean a thogail)
Tha Workspace na ìomhaigh air ullachadh gu sònraichte airson a bhith ag obair leis an fhrèam às leth an leasaiche.

Bidh sinn a 'dol a-steach don bhogsa a' cleachdadh

docker-compose up -d workspace && 
docker-compose exec workspace bash

Leasachadh tagraidh agus cleachdadh Blue-Green, stèidhichte air modh-obrach The Twelve-Factor App le eisimpleirean ann am php agus docker

2.3. Laravel a stàladh

composer create-project --prefer-dist laravel/laravel application

Leasachadh tagraidh agus cleachdadh Blue-Green, stèidhichte air modh-obrach The Twelve-Factor App le eisimpleirean ann am php agus docker

2.4. Às deidh an stàladh, nì sinn sgrùdadh a bheil an eòlaire leis a’ phròiseact air a chruthachadh agus a mharbhadh compose.

ls
exit
docker-compose down

Leasachadh tagraidh agus cleachdadh Blue-Green, stèidhichte air modh-obrach The Twelve-Factor App le eisimpleirean ann am php agus docker

2.5. Rachamaid air ais gu PHPStorm agus suidhich an t-slighe cheart chun tagradh laravel againn anns an fhaidhle .env.

Leasachadh tagraidh agus cleachdadh Blue-Green, stèidhichte air modh-obrach The Twelve-Factor App le eisimpleirean ann am php agus docker

3. Cuir a h-uile còd gu Git.

Gus seo a dhèanamh, cruthaichidh sinn stòr air Github (no an àite sam bith eile). Rachamaid chun an eòlaire habr anns a’ cheann-uidhe agus cuir an gnìomh an còd a leanas.

echo "# habr-12factor" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin [email protected]:nzulfigarov/habr-12factor.git # здесь будет ссылка на ваш репо
git push -u origin master
git status

Feuch an dèan sinn cinnteach a bheil a h-uile dad ann an òrdugh.

Leasachadh tagraidh agus cleachdadh Blue-Green, stèidhichte air modh-obrach The Twelve-Factor App le eisimpleirean ann am php agus docker

Airson goireasachd, tha mi a’ moladh cuid de eadar-aghaidh lèirsinneach a chleachdadh airson Git, na mo chùis tha e GitKraken. (Seo ceangal tar-chuir)

4. Cuir air bhog!

Mus tòisich thu, dèan cinnteach nach eil dad an crochadh air puirt 80 agus 443.

docker-compose up -d nginx php-fpm

Leasachadh tagraidh agus cleachdadh Blue-Green, stèidhichte air modh-obrach The Twelve-Factor App le eisimpleirean ann am php agus docker

Mar sin, tha am pròiseact againn air a dhèanamh suas de 3 seirbheisean eadar-dhealaichte:

  • nginx - frithealaiche lìn
  • php-fpm - php airson iarrtasan fhaighinn bho fhrithealaiche lìn
  • àite-obrach - php airson luchd-leasachaidh

Aig an àm seo, tha sinn air faighinn a-mach gu bheil sinn air tagradh a chruthachadh a choinnicheas ri 4 puingean a-mach à 12, is iad sin:

1. Bun-chòd - tha an còd gu lèir ann an aon stòr (nota beag: is dòcha gu bheil e ceart docker a chuir a-steach don phròiseact laravel, ach chan eil seo cudromach).

2. eisimeil - Tha ar eisimeileachd uile air an sgrìobhadh gu soilleir ann an application/composer.json agus anns gach Dockerfile de gach soitheach.

3. Seirbheisean cùl-taic - Tha a bheatha fhèin aig gach seirbheis (php-fom, nignx, àite-obrach) agus tha e ceangailte bhon taobh a-muigh agus nuair a bhios e ag obair le aon sheirbheis, cha bhi buaidh air an fhear eile.

4. Na pròiseasan - tha gach seirbheis mar aon phròiseas. Chan eil gach seirbheis a’ cumail suas staid a-staigh.

5. Ceangal port

docker ps

Leasachadh tagraidh agus cleachdadh Blue-Green, stèidhichte air modh-obrach The Twelve-Factor App le eisimpleirean ann am php agus docker

Mar a chì sinn, bidh gach seirbheis a 'ruith air a phort fhèin agus tha e ruigsinneach do gach seirbheis eile.

6. Co-dhunadh

Leigidh Docker leinn iomadh pròiseas de na h-aon sheirbheisean a shìolachadh le cothromachadh luchdan fèin-ghluasadach eatorra.

Stadamaid na soithichean agus ruithidh sinn tron ​​​​bhratach --sgèile

docker-compose down && 
docker-compose up -d --scale php-fpm=3 nginx php-fpm

Leasachadh tagraidh agus cleachdadh Blue-Green, stèidhichte air modh-obrach The Twelve-Factor App le eisimpleirean ann am php agus docker

Mar a chì sinn, chaidh lethbhric den inneal php-fpm a chruthachadh. Chan fheum sinn dad atharrachadh ann a bhith ag obair leis a’ ghobhar seo. Bidh sinn cuideachd a’ faighinn thuige air port 9000, agus bidh Docker a’ riaghladh an luchd eadar soithichean dhuinn.

7. Fuasgladh - faodar gach soitheach a mharbhadh gun a bhith a’ dèanamh cron air an fhear eile. Cha toir stad no ath-thòiseachadh an soitheach buaidh air gnìomhachd an tagraidh aig àm cur air bhog às deidh sin. Faodar gach soitheach a thogail aig àm sam bith cuideachd.

8. Co-ionannachd leasachaidh / gnìomh tagraidh - tha na h-àrainneachdan againn uile mar an ceudna. Le bhith a’ ruith an t-siostam air frithealaiche ann an riochdachadh, cha bhith agad ri dad atharrachadh anns na h-òrdughan agad. Bidh a h-uile dad stèidhichte air Docker san aon dòigh.

9. Logadh - bidh a h-uile log anns na soithichean sin a’ dol gu sruth agus rim faicinn ann an consol Docker. (anns a 'chùis seo, gu dearbh, le soithichean dachaigh eile, is dòcha nach bi seo fìor mura gabh thu cùram dheth)

 docker-compose logs -f

Leasachadh tagraidh agus cleachdadh Blue-Green, stèidhichte air modh-obrach The Twelve-Factor App le eisimpleirean ann am php agus docker

Ach tha grèim ann gu bheil na luachan bunaiteach ann am PHP agus Nginx cuideachd a’ sgrìobhadh logaichean gu faidhle. Gus coinneachadh ris na 12 factaran, tha e riatanach dhì-cheadachadh sgrìobhadh logaichean gu faidhle ann an rèiteachaidhean gach soitheach fa leth.

Tha Docker cuideachd a’ toirt seachad comas logaichean a chuir chan ann a-mhàin gu stdout, ach cuideachd gu rudan mar graylog, air an tug mi iomradh gu h-àrd. Agus taobh a-staigh graylog, is urrainn dhuinn na logaichean obrachadh mar a thogras sinn agus cha mhothaich an tagradh againn seo ann an dòigh sam bith.

10. Gnìomhan rianachd - tha a h-uile gnìomh rianachd air a rèiteachadh le laravel le taing don inneal artisan dìreach mar a bhiodh luchd-cruthachaidh an tagraidh 12 factar ag iarraidh.

Mar eisimpleir, seallaidh mi mar a tha cuid de dh’ àitheantan air an cur an gnìomh.
Bidh sinn a 'dol a-steach don fhrigeradair.

 
docker-compose exec workspace bash
php artisan list

Leasachadh tagraidh agus cleachdadh Blue-Green, stèidhichte air modh-obrach The Twelve-Factor App le eisimpleirean ann am php agus docker

A-nis is urrainn dhuinn òrdugh sam bith a chleachdadh. (Thoir an aire nach do shuidhich sinn an stòr-dàta agus an tasgadan, agus mar sin cha tèid leth nan òrdughan a chuir an gnìomh gu ceart, oir tha iad air an dealbhadh gus obrachadh leis an tasgadan agus an stòr-dàta).

Leasachadh tagraidh agus cleachdadh Blue-Green, stèidhichte air modh-obrach The Twelve-Factor App le eisimpleirean ann am php agus docker

11. Rèiteachadh agus 12. Tog, fuasgail, ruith

Bha mi airson am pàirt seo a choisrigeadh do Blue-Green Deployment, ach thionndaidh e a-mach gu robh e ro fharsaing airson an artaigil seo. Sgrìobhaidh mi artaigil air leth mu dheidhinn seo.

Ann an ùine ghoirid, tha am bun-bheachd stèidhichte air siostaman CI / CD mar Jenkins и Gitlab CI. Anns gach cuid, faodaidh tu caochladairean àrainneachd a shuidheachadh co-cheangailte ri àrainneachd shònraichte. A rèir sin, anns an t-suidheachadh seo, thèid puing c a choileanadh rèiteachaidhean.

Agus a’ phuing mu dheidhinn Tog, fuasgail, ruith air a rèiteachadh le gnìomhan togte leis an ainm Pìob-loidhne.

Pìob-loidhne a’ leigeil leat am pròiseas cleachdadh a roinn ann an iomadh ìre, a’ soilleireachadh na h-ìrean co-chruinneachaidh, sgaoilidh agus cur an gnìomh. Cuideachd ann am Pìoba, faodaidh tu cùl-taic a chruthachadh, agus gu dearbh rud sam bith. Is e inneal a tha seo le comas gun chrìoch.

Tha an còd tagraidh aig GitHub.
Na dìochuimhnich am fo-mhodal a thòiseachadh nuair a bhios tu a’ clonadh an stòr-dàta seo.

PS: Faodar na dòighean-obrach sin uile a chleachdadh le goireasan agus cànanan prògramaidh sam bith eile. Is e am prìomh rud nach eil am bun-bheachd eadar-dhealaichte.

Source: www.habr.com

Cuir beachd ann