Kuvandudzwa kwekushandisa uye Blue-Green deployment, yakavakirwa paThe Twelve-Factor App nzira ine mienzaniso muphp uye docker.

Kuvandudzwa kwekushandisa uye Blue-Green deployment, yakavakirwa paThe Twelve-Factor App nzira ine mienzaniso muphp uye docker.

Kutanga, dzidziso shoma. Chii chaitika Iyo Gumi nembiri-Factor App?

Nemashoko akareruka, gwaro iri rakagadzirirwa kurerutsa kuvandudza kweSaaS zvikumbiro, zvichibatsira nekuzivisa vanogadzira uye DevOps mainjiniya nezve matambudziko nemaitiro anowanzo sangana mukuvandudza maapplication emazuva ano.

Gwaro racho rakagadzirwa nevagadziri veHeroku platform.

Iyo Gumi nembiri-Factor App inogona kuiswa kune zvikumbiro zvakanyorwa chero mutauro wechirongwa uye kushandisa chero musanganiswa wemasevhisi ekutsigira (databases, meseji mitsara, cache, nezvimwewo).

Muchidimbu nezvezvikonzero izvo nzira iyi yakavakirwa:

  1. Codebase - Imwe codebase inoteedzerwa mushanduro kutonga - akawanda deployments
  2. Dependencies -Taurira zvakajeka uye sarudza zvinotsamira
  3. Kugadziriswa - Sevha gadziriso munguva yekumhanya
  4. Backing Services - Funga kutsigira masevhisi seplug-in zviwanikwa
  5. Vaka, sunungura, mhanya -Kunyatsopatsanura gungano uye matanho ekuuraya
  6. Maitiro acho - Mhanya iyo application seimwe kana anopfuura asina mamiriro maitiro
  7. Port binding - Export masevhisi kuburikidza nechiteshi chinosunga
  8. Parallelism - Shamba application yako uchishandisa maitiro
  9. Disposability -Kurisa kuvimbika nekukasira kutanga uye kudzima kwakachena
  10. Kuvandudzwa kwekushandisa / kushanda parity - Chengetedza budiriro yako, nhandare, uye nzvimbo dzekugadzira dzakafanana sezvinobvira
  11. Kutema miti - Tarisa irogi serukova rwezviitiko
  12. Administration mabasa - Ita manejimendi / manejimendi mabasa uchishandisa ad hoc maitiro

Iwe unogona kuwana rumwe ruzivo nezve 12 zvinhu kubva pane zvinotevera zviwanikwa:

Chii chinonzi Blue-Green deployment?

Blue-Green deployment inzira yekuendesa application kune Kubudisa nenzira yekuti mutengi wekupedzisira haaone chero shanduko paari. Mune mamwe mazwi, kuendesa application ne zero downtime.

Iyo yekirasi BG Deploy scheme inoita senge inoratidzwa mumufananidzo uri pazasi.

Kuvandudzwa kwekushandisa uye Blue-Green deployment, yakavakirwa paThe Twelve-Factor App nzira ine mienzaniso muphp uye docker.

  • Pakutanga kune maseva maviri emuviri ane kodhi yakafanana, application, purojekiti, uye kune router (balancer).
  • Iyo router inotanga inotungamira zvese zvikumbiro kune imwe yemaseva (green).
  • Panguva yaunoda kusunungura zvakare, iyo purojekiti yese inovandudzwa pane imwe sevha (bluu), iyo isiri kugadzirisa chero zvikumbiro parizvino.
  • Mushure mekunge kodhi yabatidzwa bhuruu server yakanyatsogadziridzwa, iyo router inopiwa murairo wekuchinja kubva girinhi pamusoro bluu server.
  • Iye zvino vatengi vese vanoona mhedzisiro yekodhi inoshanda nayo bluu server.
  • Kwenguva yakati, green sevha inoshanda sekopi yekuchengetedza kana ikasabudirira kutumira kune bluu server uye kana kukundikana uye tsikidzi, router inochinja mushandisi kuyerera kudzokera green server neiyo yekare yakagadzikana vhezheni, uye iyo kodhi nyowani inotumirwa kuti idzokororwe uye kuongororwa.
  • Uye pakupera kwekuita, inovandudzwa nenzira imwecheteyo green server. Uye mushure mekugadzirisa, router inoshandura kuyerera kwekukumbira kudzokera green server.

Zvose zvinotaridzika zvakanaka uye pakutanga pakuona hapafaniri kuva nematambudziko nazvo.
Asi sezvo isu tichigara munyika yemazuva ano, sarudzo nekuchinja kwemuviri sezvakaratidzwa mukirasi yeklastiki haina kukodzera isu. Rekodha ruzivo izvozvi, tichazodzokera kwairi gare gare.

Zano rakaipa uye rakanaka

Disclaimer: Mienzaniso iri pazasi inoratidza zvishandiso / nzira dzandinoshandisa, unogona kushandisa zvachose chero sarudzo dzine mabasa akafanana.

Mazhinji emienzaniso achapindirana neimwe nzira kana imwe nekuvandudzwa kwewebhu (izvi zvinoshamisa), nePHP uye Docker.

Ndima dziri pazasi dzinopa tsananguro yakapfava yekushandiswa kwezvinhu uchishandisa mienzaniso chaiyo; kana iwe uchida kuwana imwe dzidziso pamusoro penyaya iyi, tevera zvinongedzo zviri pamusoro kune yekutanga sosi.

1. Codebase

Shandisa FTP uye FileZilla kurodha mafaera kumaseva rimwe chete panguva, usachengete kodhi chero kupi kunze kwesevha yekugadzira.

Iyo purojekiti inofanirwa kugara iine imwechete kodhi base, kureva kuti, kodhi yese inobva kune imwe Git repository. Masevhisi (kugadzira, dhizaini, test1, test2...) shandisa kodhi kubva kumatavi eimwe yakajairika repository. Nenzira iyi tinowana kuenderana kwekodhi.

2. Kutsamira

Dhawunirodha ma library ese mumaforodha zvakananga kumudzi weprojekiti. Ita zvigadziriso nekungoendesa iyo kodhi nyowani kune folda ine yazvino vhezheni yeraibhurari. Isa zvese zvinodikanwa zvinoshandiswa zvakananga pane iyo host server uko makumi maviri mamwe masevhisi ari kushanda.

Purojekiti inofanirwa kugara iine rondedzero inonzwisisika yevanotsamira (nekutsamira ndinorevawo nharaunda). Zvese zvinotsamira zvinofanirwa kutsanangurwa zvakajeka uye zvakaparadzaniswa.
Ngatitorei semuenzaniso munyori и Docker.

munyori - maneja wepakeji iyo inokutendera iwe kuti uise maraibhurari muPHP. Munyori anokubvumira kuti utaure shanduro zvakasimba kana zvakasununguka, uye kunyatsotsanangura. Panogona kuve nemapurojekiti makumi maviri akasiyana pasevha uye imwe neimwe ichange iine rondedzero yega yemapakeji uye maraibhurari akazvimiririra kubva kune imwe.

Docker - chishandiso chinokutendera kuti utsanangure uye kupatsanura nharaunda iyo application ichamhanya. Saizvozvo, sezvakangoita nemunyori, asi zvakanyanya, tinogona kuona kuti iyo application inoshanda nei. Sarudza imwe vhezheni yePHP, isa chete mapakeji anodiwa kuti purojekiti ishande, pasina kuwedzera chimwe chinhu. Uye zvinonyanya kukosha, pasina kukanganisa mapakeji uye nharaunda yemuchina wekugamuchira uye mamwe mapurojekiti. Ndokunge, mapurojekiti ese ari paseva ari kumhanya kuburikidza neDocker anogona kushandisa zvachose chero seti yemapakeji uye nharaunda yakasiyana zvachose.

3. Kugadzirisa

Chengetedza magadzirirwo seanogara akananga mukodhi. Kupatsanura maconstants eye test server, akapatsanurwa kugadzirwa. Sunga mashandiro echishandiso zvichienderana nenharaunda zvakananga mubhizinesi logic yeprojekiti uchishandisa kana imwe ichivaka.

Configurations - iyi ndiyo chete nzira iyo kutumirwa kweprojekiti kunofanirwa kusiyana. Zvakanaka, zvigadziriso zvinofanirwa kupfuudzwa kuburikidza nemamiriro ekunze akasiyana (env vars).

Kureva, kunyange kana ukachengeta akati wandei configuration mafaira .config.prod .config.local uye rename navo panguva deployment kuti .config (chikuru config kubva iyo Anwendung anoverenga data) - iyi haisi kuzova nzira yakarurama, sezvo mune iyi nyaya iyo ruzivo kubva kune zvigadziriso ichave inowanikwa pachena kune vese vanogadzira maapplication uye data kubva kune yekugadzira server ichakanganiswa. Zvese zvigadziriso zvinofanirwa kuchengetwa zvakananga muiyo deployment system (CI/CD) uye kugadzirirwa nharaunda dzakasiyana dzine hunhu hwakasiyana hunodiwa kune yakatarwa nharaunda panguva yekutumirwa.

4. Third Party Services

Iva akanyatsosungirirwa kune zvakatipoteredza, shandisa akasiyana ekubatanidza kune mamwe masevhisi mune mamwe nharaunda.

Muchokwadi, iyi poindi inopindirana zvakanyanya neiyo pfungwa yezvigadziriso, sezvo pasina iyi poindi, yakajairika dhizaini data haigone kuitwa uye, kazhinji, kugona kugadzirisa kuchadonha pasina.

Zvese zvinongedzo kune ekunze masevhisi, senge mitsara maseva, dhatabhesi, caching masevhisi, anofanirwa kunge akafanana kune ese ari maviri nharaunda uye yechitatu-bato / kugadzirwa nharaunda. Mune mamwe mazwi, chero nguva, nekushandura tambo yekubatanidza, ndinogona kutsiva mafoni kugadziko #1 nebhesi #2 pasina kuchinja kodhi yekushandisa. Kana, uchitarisa kumberi, semuenzaniso, paunenge uchiyera sevhisi, haufanirwe kutsanangura kubatana mune chero yakakosha nzira yekuwedzera cache server.

5. Vaka, sunungura, ita

Iva neshanduro yekupedzisira chete yekodhi pane sevha, pasina mukana wekudzoreredza kuburitsa. Hapana chikonzero chekuzadza dhisiki nzvimbo. Chero ani anofunga kuti vanogona kuburitsa kodhi mukugadzira nekanganiso mugadziri wakashata!

Matanho ese ekutumirwa anofanira kuparadzaniswa kubva kune mumwe.

Iva nemukana wekudzokera shure. Gadzira kuburitswa nemakopi ekare echishandiso (chatounganidzwa uye chagadzirira kurwa) chakachengetedzwa mukukurumidza kuwana, kuitira kuti kana paine zvikanganiso unogona kudzoreredza iyo yekare vhezheni. Kureva, conditionally pane folder Releases uye folda mafambiro, uye mushure mekubudirira kutumirwa uye kuunganidza iyo folda mafambiro yakabatanidzwa nechisungo chekufananidzira kune kusunungurwa kutsva kuri mukati Releases nezita rakajairika renhamba yekuburitsa.

Apa ndipo patinorangarira Blue-Green deployment, iyo inobvumidza iwe kwete chete kushandura pakati pekodhi, asiwo kushandura pakati pezviwanikwa zvese uye kunyangwe nharaunda nekugona kudzosera kumashure zvese.

6. Maitiro

Chengetedza application state data zvakananga mukati meiyo application pachayo. Shandisa zvikamu mu RAM yekushandisa pachayo. Shandisa kugovana kwakawanda pakati pevechitatu-bato masevhisi sezvinobvira. Vimba pane chokwadi chekuti application inogona kungoita imwe chete maitiro uye haibvumire kuyera.

Nezvesesheni, chengetedza data chete mucache inodzorwa nevechitatu-bato masevhisi (memcached, redis), saka kunyangwe uine makumi maviri ekushandisa maitiro ari kushanda, chero iwo, awana cache, achakwanisa kuenderera mberi nekushanda nemutengi mukati. iyo imwe mamiriro umo mushandisi anga achishanda nechishandiso mune imwe maitiro. Neiyi nzira, zvinoitika kuti kunyangwe makopi mangani emasevhisi echitatu aunoshandisa, zvese zvichashanda zvakajairika uye pasina matambudziko nekuwana data.

7. Port kusunga

Iyo webhu server chete ndiyo inofanirwa kuziva maitiro ekushanda nevechitatu-bato masevhisi. Kana zvirinani zvakadaro, isa wechitatu-bato masevhisi zvakananga mukati mewebhu server. Semuenzaniso, se PHP module muApache.
Masevhisi ako ese anofanirwa kuwanikwa kune mumwe nemumwe kuburikidza nekuwana imwe kero uye chiteshi (localgost:5432, localhost:3000, nginx:80, php-fpm:9000), kureva, kubva nginx ndinogona kuwana ese php- fpm uye postgres, uye kubva php-fpm kuenda kupostgres uye nginx uye chaizvo kubva kune yega yega sevhisi ndinogona kuwana imwe sevhisi. Nenzira iyi, kushanda kwesevhisi hakuna kusungirirwa kune kushanda kweimwe sevhisi.

8. Kufanana

Shanda nehumwe maitiro, zvikasadaro akati wandei maitiro haakwanise kugarisana!

Siya nzvimbo yekuyera. Docker swarm yakanaka kune izvi.
Docker Swarm chishandiso chekugadzira uye kugadzirisa masumbu emidziyo ese ari pakati pemichina yakasiyana uye boka remidziyo pamushini mumwe chete.

Ndichishandisa swarm, ndinogona kuona kuti zvingani zviwanikwa zvandichagovera kune yega yega maitiro uye mangani maitiro ebasa rimwe chete randichavhura, uye iyo yemukati balancer, inogamuchira data pane yakapihwa chiteshi, inozozvimiririra kune maitiro. Nokudaro, ndichiona kuti mutoro uri pavhavha wakawedzera, ndinogona kuwedzera mamwe maitiro, nokudaro kuderedza mutoro pane mamwe maitiro.

9. Disposability

Usashandise mitsetse kushanda nemaitiro uye data. Kuuraya imwe nzira inofanirwa kukanganisa chikumbiro chose. Kana sevhisi imwe chete ikadzika, zvese zvinodzikira.

Imwe neimwe nzira uye sevhisi inogona kudzimwa chero nguva uye izvi hazvifanirwe kukanganisa mamwe masevhisi (zvechokwadi, izvi hazvireve kuti sevhisi ichave isingawanikwe kune imwe sevhisi, asi kuti imwe sevhisi haizodzimwa mushure meiyi). Maitiro ese anofanirwa kugumiswa zvine nyasha, kuitira kuti kana amiswa, hapana data ichakuvadzwa uye sisitimu inoshanda nemazvo nguva inotevera paunoibatidza. Kureva kuti, kunyangwe pakaitika kumiswa kwekukurumidzira, iyo data haifanirwe kukuvadzwa (nzira yekutengeserana yakakodzera pano, mibvunzo mudhatabhesi inoshanda mumapoka chete, uye kana mubvunzo mumwe chete kubva muboka ukatadza kana kuurayiwa ne kukanganisa, saka hapana mumwe mubvunzo kubva muboka unozotadza chokwadi).

10. Kuvandudza kushandiswa / kushanda parity

Kugadzirwa, dhizaini uye yemuno vhezheni yechishandiso inofanira kunge yakasiyana. Mukugadzira tinoshandisa Yii Lite chimiro, uye munharaunda Yii, kuitira kuti ishande nekukurumidza mukugadzira!

Muchokwadi, zvese zvinotumirwa uye kushanda nekodhi kunofanirwa kunge kuri munzvimbo yakafanana (hatisi kutaura nezve Hardware yemuviri). Zvakare, chero mushandi webudiriro anofanirwa kukwanisa kuendesa kodhi mukugadzira kana zvichidikanwa, uye kwete imwe yakanyatsodzidziswa devops dhipatimendi, iro chete nekuda kwesimba rakakosha rinogona kusimudza application mukugadzira.

Docker inotibatsirawo neizvi. Kana ese mapoinzi apfuura akacherechedzwa, kushandisa docker kunounza maitiro ekuisa nharaunda pakugadzira uye pamushini wemuno kupinda murairo mumwechete kana maviri.

11. Matanda

Isu tinonyora matanda kune mafaera uye dhatabhesi! Isu hatichenese mafaera uye dhatabhesi kubva mumatanda. Ngatingotengai hard drive ine 9000 Peta bytes uye zvakanaka.

Ese matanda anofanira kutorwa serukova rwezviitiko. Iyo application pachayo haifanirwe kuve nechekuita mukugadzirisa matanda. Marogi anofanirwa kubuda kungave kune stdout kana kutumirwa kuburikidza neprotocol senge udp, kuitira kuti kushanda nematanda hakugadzirise matambudziko ekushandisa. greylog yakanaka kune izvi. Greylog inogamuchira matanda ese kuburikidza ne udp (iyi protocol haidi kumirira mhinduro nezve yakabudirira kugamuchirwa kwepaketi) haikanganise mashandisirwo nenzira ipi zvayo uye inongobata nekugadzirisa uye kugadzirisa matanda. Iyo yekushandisa logic haichinji kushanda nemaitiro akadaro.

12. Mabasa ekutungamirira

Kuti uvandudze data, dhatabhesi, nezvimwe, shandisa yakaparadzana yakasikwa endpoint muAPI, kuiita 2 nguva mumutsara kuchaita kuti zvese zvidzokororwe. Asi iwe hausi benzi, hauzodzvanya kaviri, uye isu hatidi kutama.

Ese mabasa ekutonga anofanirwa kuitwa munzvimbo imwechete sekodhi yese, padanho rekuburitsa. Ndiko kuti, kana tichida kushandura chimiro chedhatabhesi, saka hatizozviiti nemaoko nekushandura mazita emakoramu uye nekuwedzera matsva kuburikidza nemamwe maturusi ekuona dhatabhesi. Nokuda kwezvinhu zvakadaro, tinogadzira zvinyorwa zvakasiyana-siyana - kutama, kunoitwa kwese kwese uye munzvimbo dzose nenzira imwechete nemigumisiro yakafanana uye inonzwisisika. Kune mamwe mabasa ese, akadai sekuzadza chirongwa nedata, nzira dzakafanana dzinofanira kushandiswa.

Muenzaniso kuita muPHP, Laravel, Laradock, Docker-Compose

PS Mienzaniso yese yakagadzirwa paMacOS. Mazhinji acho akakodzerawo kuLinux. Vashandisi veWindows, ndiregererei, asi ini handina kushanda neWindows kwenguva yakareba.

Ngatimbofungidzira mamiriro ezvinhu apo isu hatina chero vhezheni yePP yakaiswa paPC yedu uye hapana zvachose.
Isa iyo yazvino vhezheni yedocker uye docker-compose. (Izvi zvinogona kuwanikwa paInternet)

docker -v && 
docker-compose -v

Kuvandudzwa kwekushandisa uye Blue-Green deployment, yakavakirwa paThe Twelve-Factor App nzira ine mienzaniso muphp uye docker.

1. Isa Laradock

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

Kuvandudzwa kwekushandisa uye Blue-Green deployment, yakavakirwa paThe Twelve-Factor App nzira ine mienzaniso muphp uye docker.

Nezve Laradock, ini ndichataura kuti chinhu chinotonhorera kwazvo, chine midziyo yakawanda uye zvinhu zvekubatsira. Asi ini handingakurudzire kushandisa Laradock sekudaro pasina kugadziridzwa mukugadzirwa nekuda kwekuwedzera kwayo. Zviri nani kugadzira midziyo yako yakavakirwa pamienzaniso muLaradock, izvi zvichave zvakanyanya kugadzirwa, nekuti hapana anoda zvese zviripo panguva imwe chete.

2. Rongedza Laradock kuti ishandise application yedu.

cd laradock && 
cp env-example .env

Kuvandudzwa kwekushandisa uye Blue-Green deployment, yakavakirwa paThe Twelve-Factor App nzira ine mienzaniso muphp uye docker.

2.1. Vhura iyo habr dhairekitori (iyo mubereki folda mune iyo laradock inogadzirwa) mune imwe edhita. (Mune yangu PHPStorm kesi)

Panguva ino tinopa chirongwa chete zita.

Kuvandudzwa kwekushandisa uye Blue-Green deployment, yakavakirwa paThe Twelve-Factor App nzira ine mienzaniso muphp uye docker.

2.2. Tangisa mufananidzo wenzvimbo yebasa. (Munyaya yako, mifananidzo inotora nguva kuvakwa)
Nzvimbo yekushanda mufananidzo wakanyatsogadzirirwa wekushanda nehurongwa uchimiririra mugadziri.

Tinopinda mukati memudziyo tichishandisa

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

Kuvandudzwa kwekushandisa uye Blue-Green deployment, yakavakirwa paThe Twelve-Factor App nzira ine mienzaniso muphp uye docker.

2.3. Kuisa Laravel

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

Kuvandudzwa kwekushandisa uye Blue-Green deployment, yakavakirwa paThe Twelve-Factor App nzira ine mienzaniso muphp uye docker.

2.4. Mushure mekuisa, tinotarisa kana dhairekitori rine purojekiti yagadzirwa uye kuuraya kunyora.

ls
exit
docker-compose down

Kuvandudzwa kwekushandisa uye Blue-Green deployment, yakavakirwa paThe Twelve-Factor App nzira ine mienzaniso muphp uye docker.

2.5. Ngatidzokerei kuPHPStorm toseta nzira chaiyo kune yedu laravel application mu.env faira.

Kuvandudzwa kwekushandisa uye Blue-Green deployment, yakavakirwa paThe Twelve-Factor App nzira ine mienzaniso muphp uye docker.

3. Wedzera kodhi yese kuGit.

Kuti tiite izvi, isu tichagadzira repository paGithub (kana chero kupi zvako). Ngatiendei kune habr dhairekitori mune terminal uye tiite inotevera kodhi.

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

Ngatitarisei kana zvinhu zvese zviri mugwara.

Kuvandudzwa kwekushandisa uye Blue-Green deployment, yakavakirwa paThe Twelve-Factor App nzira ine mienzaniso muphp uye docker.

Kuti zvive nyore, ini ndinokurudzira kushandisa imwe yekuona interface yeGit, mune yangu kesi GitKraken. (heino link yekutumira)

4. Ngatitangei!

Usati watanga, ita shuwa kuti hapana chakarembera pachiteshi 80 uye 443.

docker-compose up -d nginx php-fpm

Kuvandudzwa kwekushandisa uye Blue-Green deployment, yakavakirwa paThe Twelve-Factor App nzira ine mienzaniso muphp uye docker.

Saka, chirongwa chedu chine masevhisi matatu akasiyana:

  • nginx - web server
  • php-fpm - php yekugamuchira zvikumbiro kubva kuwebhu server
  • nzvimbo yebasa - php yevagadziri

Parizvino, takawana kuti takagadzira application inosangana nemapoinzi mana kubva pagumi nemaviri, anoti:

1. Codebase - kodhi yese iri mune imwe repository (diki chinyorwa: zvingave zvakanaka kuwedzera docker mukati meiyo laravel purojekiti, asi izvi hazvina kukosha).

2. Dependencies - Zvese zvatinovimba nazvo zvakanyorwa zvakajeka mukushandisa/composer.json uye mune yega yega Dockerfile yemudziyo wega wega.

3. Backing Services - Imwe neimwe yemasevhisi (php-fom, nignx, nzvimbo yebasa) inorarama hupenyu hwayo uye yakabatana kubva kunze uye kana uchishanda nesevhisi imwe, imwe haikanganiswe.

4. Maitiro acho - sevhisi yega yega inzira imwe. Imwe neimwe masevhisi haachengetedze mamiriro emukati.

5. Port binding

docker ps

Kuvandudzwa kwekushandisa uye Blue-Green deployment, yakavakirwa paThe Twelve-Factor App nzira ine mienzaniso muphp uye docker.

Sezvatinoona, sevhisi yega yega inomhanya pachiteshi chayo uye inowanikwa kune mamwe ese masevhisi.

6. Parallelism

Docker inotibvumira kuburitsa akawanda maitiro emasevhisi akafanana ane otomatiki mutoro wekuenzanisa pakati pawo.

Ngatimisei midziyo uye timhanye nepakati pemureza --scale

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

Kuvandudzwa kwekushandisa uye Blue-Green deployment, yakavakirwa paThe Twelve-Factor App nzira ine mienzaniso muphp uye docker.

Sezvatinoona, makopi akagadzirwa eiyo php-fpm mudziyo. Hatifanire kushandura chero chinhu mukushanda nemudziyo uyu. Isu tinoenderera mberi nekuiwana pachiteshi 9000, uye Docker inotitongera mutoro pakati pemidziyo.

7. Disposability - mudziyo wega wega unogona kuurayiwa pasina kukuvadza mumwe. Kumisa kana kutangazve mudziyo hakuzokanganisa mashandiro echishandiso panguva yekutangwa kunotevera. Chigaba chimwe nechimwe chinogonawo kusimudzwa chero nguva.

8. Kuvandudzwa kwekushandisa / kushanda parity - nharaunda dzedu dzese dzakafanana. Nekumhanyisa sisitimu pane sevha mukugadzira, haufanirwe kushandura chero chinhu mumirairo yako. Zvese zvichange zvakavakirwa paDocker nenzira imwechete.

9. Kutema miti - matanda ese ari mumidziyo iyi anoenda kunoyerera uye anoonekwa muDocker console. (mune iyi kesi, kutaura zvazviri, nemamwe midziyo yekumba, izvi zvinogona kunge zvisiri izvo kana ukasazvichengeta)

 docker-compose logs -f

Kuvandudzwa kwekushandisa uye Blue-Green deployment, yakavakirwa paThe Twelve-Factor App nzira ine mienzaniso muphp uye docker.

Asi pane kubata mune iyo Default kukosha muPHP uye Nginx zvakare nyora matanda kune faira. Kuti usangane nezvinhu gumi nezviviri, zvinodikanwa disable kunyora matanda kufaira mune zvigadziriso zvegaba rega rega zvakasiyana.

Docker inopawo kugona kutumira matanda kwete kungoita stdout, asiwo kuzvinhu zvakaita segreylog, yandataura pamusoro. Uye mukati me greylog, tinogona kushandisa matanda sezvatinoda uye application yedu haizozvione izvi neimwe nzira.

10. Administration mabasa -ese mabasa ekutonga anogadziriswa nelaravel nekuda kwechishandiso chehunyanzvi chaizvo sekuda kwevagadziri vegumi nembiri.

Semuenzaniso, ini ndicharatidza kuti mimwe mirairo inoitwa sei.
Tinopinda mumudziyo.

 
docker-compose exec workspace bash
php artisan list

Kuvandudzwa kwekushandisa uye Blue-Green deployment, yakavakirwa paThe Twelve-Factor App nzira ine mienzaniso muphp uye docker.

Iye zvino tinogona kushandisa chero murairo. (Ndokumbira utarise kuti isu hatina kugadzirisa dhatabhesi uye cache, saka hafu yemirairo haizoitwe nemazvo, nekuti yakagadzirirwa kushanda necache uye dhatabhesi).

Kuvandudzwa kwekushandisa uye Blue-Green deployment, yakavakirwa paThe Twelve-Factor App nzira ine mienzaniso muphp uye docker.

11. Configurations uye 12. Vaka, sunungura, mhanya

Ini ndaida kutsaurira chikamu ichi kuBlue-Green Deployment, asi zvakazove zvakawandisa kune ichi chinyorwa. Ndichanyora imwe nyaya pamusoro peizvi.

Muchidimbu, pfungwa yacho yakavakirwa paCI / CD masisitimu akafanana Jenkins и Gitlab CI. Mune ese ari maviri, iwe unogona kuseta nharaunda dzakasiyana dzakabatana neimwe nharaunda. Saizvozvowo, mumamiriro ezvinhu aya, pfungwa c ichazadziswa Configurations.

Uye pfungwa pamusoro Vaka, sunungura, mhanya inogadziriswa neakavakirwa-mukati mabasa ane zita Pipeline.

Pipeline inokubvumira kugovera nzira yekuendesa mumatanho akawanda, kuratidza matanho ekuunganidza, kusunungurwa uye kuuraya. Zvakare muPipeline, unogona kugadzira backups, uye zvechokwadi chero chinhu. Ichi chishandiso chine simba risingaperi.

Kodhi yekushandisa iri pa Github.
Usakanganwa kutanga iyo submodule paunenge uchigadzira iyi repository.

PS: Maitiro ese aya anogona kushandiswa nemamwe maturusi uye mitauro yekuronga. Chinhu chikuru ndechekuti essence haina kusiyana.

Source: www.habr.com

Voeg