Kupititsa patsogolo ntchito ndi kutumizidwa kwa Blue-Green, kutengera njira ya The Twelve-Factor App yokhala ndi zitsanzo mu php ndi docker.

Kupititsa patsogolo ntchito ndi kutumizidwa kwa Blue-Green, kutengera njira ya The Twelve-Factor App yokhala ndi zitsanzo mu php ndi docker.

Choyamba, chiphunzitso chaching'ono. Zomwe zachitika The Twelve-Factor App?

M'mawu osavuta, chikalatachi chapangidwa kuti chikhale chosavuta kupanga mapulogalamu a SaaS, kuthandiza podziwitsa opanga ndi mainjiniya a DevOps zamavuto ndi machitidwe omwe nthawi zambiri amakumana nawo pakupanga mapulogalamu amakono.

Chikalatacho chinapangidwa ndi omwe amapanga nsanja ya Heroku.

The Twelve-Factor App itha kugwiritsidwa ntchito pamapulogalamu olembedwa m'chinenero chilichonse chokonzekera ndikugwiritsa ntchito kuphatikiza kwazinthu zothandizira (zosungirako, mizere ya mauthenga, ma cache, ndi zina).

Mwachidule za zinthu zomwe njira iyi idakhazikitsidwa:

  1. Codebase - Codebase imodzi yotsatiridwa pakuwongolera mtundu - kutumiza kangapo
  2. Zodalira - Nenani momveka bwino ndikupatula anthu omwe amadalira
  3. Kukhazikika - Sungani kasinthidwe mu nthawi yothamanga
  4. Ntchito Zothandizira - Ganizirani ntchito zothandizira ngati zowonjezera
  5. Mangani, masulani, thamangani - Patulani kwambiri magawo a msonkhano ndi kuphedwa
  6. Njira - Thamangani pulogalamuyi ngati njira imodzi kapena zingapo zopanda malire
  7. Kumanga padoko - Ntchito zotumiza kunja kudzera pama doko
  8. Kufanana - Onjezani pulogalamu yanu pogwiritsa ntchito njira
  9. Disposability - Kwezani kudalirika poyambitsa mwachangu komanso kutseka koyera
  10. Kugwirizana kwa ntchito / chitukuko cha ntchito - Sungani malo anu otukuka, masitepe, ndi mapangidwe anu mofanana momwe mungathere
  11. Kudula mitengo - Onani chipikacho ngati mndandanda wazochitika
  12. Ntchito zoyang'anira - Chitani ntchito zoyang'anira / kasamalidwe pogwiritsa ntchito njira zodzidzimutsa

Mutha kudziwa zambiri zazinthu 12 kuchokera pazotsatira izi:

Kodi Blue-Green deployment ndi chiyani?

Blue-Green deployment ndi njira yoperekera ntchito ku Kupanga m'njira yoti kasitomala womaliza asawone kusintha kulikonse kumbali yake. Mwa kuyankhula kwina, kutumiza ntchito ndi zero nthawi yotsika.

Dongosolo lachikale la BG Deploy likuwoneka ngati lomwe likuwonetsedwa pachithunzi pansipa.

Kupititsa patsogolo ntchito ndi kutumizidwa kwa Blue-Green, kutengera njira ya The Twelve-Factor App yokhala ndi zitsanzo mu php ndi docker.

  • Pachiyambi pali ma seva a 2 omwe ali ndi code yofanana, ntchito, polojekiti, ndipo pali rauta (balancer).
  • Router poyamba imatsogolera zopempha zonse ku seva imodzi (zobiriwira).
  • Panthawi yomwe mukufunika kumasulanso, polojekiti yonseyi imasinthidwa pa seva ina (buluu), chomwe sichikukonza zopempha zilizonse.
  • Pambuyo pa code buluu seva imasinthidwa kwathunthu, rauta imapatsidwa lamulo loti asinthe kuchokera wobiriwira pa buluu seva.
  • Tsopano makasitomala onse akuwona zotsatira za code yomwe ikuyenda nayo buluu seva.
  • Kwa nthawi ndithu, zobiriwira seva imakhala ngati kopi yosunga zobwezeretsera ngati sikunayendetsedwe bwino buluu seva ndipo zikalephera ndi zolakwika, rauta imasinthira wosuta kubwerera zobiriwira seva yokhala ndi mtundu wakale wokhazikika, ndipo code yatsopano imatumizidwa kuti iwunikenso ndikuyesedwa.
  • Ndipo kumapeto kwa ndondomekoyi, imasinthidwa mofanana zobiriwira seva. Ndipo mutatha kukonzanso, rauta imasinthira kuyenderera kwa pempho kubwerera zobiriwira seva.

Zonse zikuwoneka bwino kwambiri ndipo poyang'ana koyamba sikuyenera kukhala ndi vuto lililonse.
Koma popeza tikukhala m'dziko lamakono, chisankho ndi kusintha kwa thupi monga momwe tawonetsera mu classical scheme sichikugwirizana ndi ife. Lembani zambiri pakadali pano, tibwereranso mtsogolo.

Malangizo oipa ndi abwino

chandalama: Zitsanzo zomwe zili pansipa zikuwonetsa zofunikira / njira zomwe ndimagwiritsa ntchito, mutha kugwiritsa ntchito njira zina zilizonse zomwe zili ndi zofanana.

Zitsanzo zambiri zitha kuphatikizika mwanjira ina ndi chitukuko cha intaneti (izi ndizodabwitsa), ndi PHP ndi Docker.

Ndime zomwe zili m'munsizi zimapereka kufotokozera kosavuta kwa kagwiritsidwe ntchito ka zinthu pogwiritsa ntchito zitsanzo zenizeni; ngati mukufuna kudziwa zambiri pamutuwu, tsatirani maulalo omwe ali pamwambawa kugwero loyambira.

1. Khodi

Gwiritsani ntchito FTP ndi FileZilla kuti muyike mafayilo ku ma seva amodzi panthawi imodzi, musasunge kachidindo kulikonse kupatula pa seva yopanga.

Pulojekitiyi nthawi zonse ikhale ndi code base, ndiko kuti, code yonse imachokera kumodzi Giti posungira. Ma seva (kupanga, masitepe, test1, test2...) amagwiritsa ntchito code kuchokera kunthambi za malo amodzi. Mwanjira iyi timapeza kusasinthasintha kwa code.

2. Zodalira

Tsitsani malaibulale onse mu zikwatu molunjika ku mizu ya polojekiti. Pangani zosintha mwa kusamutsa kachidindo katsopano ku foda yomwe ili ndi laibulale yamakono. Ikani zofunikira zonse molunjika pa seva yolandila kumene mautumiki ena 20 akugwira ntchito.

Pulojekiti nthawi zonse iyenera kukhala ndi mndandanda womveka bwino wa anthu omwe amadalira (ndi kudalira ndikutanthauzanso chilengedwe). Zodalira zonse ziyenera kufotokozedwa momveka bwino ndikudzipatula.
Tiyeni titenge chitsanzo Wopeka ΠΈ Docker.

Wopeka - woyang'anira phukusi yemwe amakupatsani mwayi woyika malaibulale mu PHP. Wolemba amakulolani kuti mutchule zomasulira mosamalitsa kapena momasuka, ndikuwafotokozera momveka bwino. Pakhoza kukhala 20 ntchito zosiyanasiyana pa seva ndipo aliyense adzakhala ndi mndandanda wa phukusi ndi malaibulale popanda mzake.

Docker - chida chomwe chimakupatsani mwayi wofotokozera ndikupatula malo omwe pulogalamuyo idzayendetse. Chifukwa chake, monga momwe zimakhalira ndi wolemba, koma mozama, titha kudziwa zomwe pulogalamuyi imagwira. Sankhani mtundu wina wa PHP, yikani phukusi lofunikira kuti polojekiti igwire ntchito, osawonjezera china chilichonse. Ndipo chofunika kwambiri, popanda kusokoneza phukusi ndi chilengedwe cha makina ochitira alendo ndi ntchito zina. Ndiye kuti, ma projekiti onse pa seva yomwe ikuyenda kudzera pa Docker imatha kugwiritsa ntchito phukusi lililonse komanso malo osiyana kwambiri.

3. Kusintha

Sungani ma configs ngati zosasintha mwachindunji mu code. Zosintha zosiyana za seva yoyesera, zolekanitsa kuti zipangidwe. Gwirizanitsani magwiridwe antchito kutengera chilengedwe mwachindunji mumalingaliro abizinesi a projekitiyo pogwiritsa ntchito ngati ipanga.

Zosintha - Iyi ndi njira yokhayo yomwe ma projekiti amayenera kusiyanasiyana. Moyenera, masinthidwe akuyenera kudutsa mumitundu yosiyanasiyana ya chilengedwe (env vars).

Ndiko kuti, ngakhale mutasunga mafayilo angapo okonzekera .config.prod .config.local ndi kuwatchulanso pa nthawi yotumizidwa ku .config (chikhazikitso chachikulu chomwe pulogalamuyo imawerengera deta) - iyi sidzakhala njira yoyenera, popeza pamenepa zambiri zomwe zasinthidwa zidzapezeka poyera kwa onse opanga mapulogalamu ndipo deta yochokera ku seva yopanga idzasokonezedwa. Zosintha zonse ziyenera kusungidwa mwachindunji mumayendedwe otumizira (CI/CD) ndikupangidwira madera osiyanasiyana okhala ndi zinthu zosiyanasiyana zofunika pamalo enaake panthawi yotumizidwa.

4. Ntchito Zachipani Chachitatu

Khalani omangika kwambiri ku chilengedwe, gwiritsani ntchito malumikizidwe osiyanasiyana pazantchito zomwezo m'malo ena.

M'malo mwake, mfundoyi ikuphatikizana kwambiri ndi mfundo yokhudzana ndi masanjidwe, popeza popanda mfundo iyi, zosintha zanthawi zonse sizingapangidwe ndipo, mwachidziwikire, kuthekera kokonzekera sikudzagwera kanthu.

Malumikizidwe onse kuzinthu zakunja, monga ma seva amzere, nkhokwe, ntchito zosungirako, ziyenera kukhala zofanana ndi chilengedwe chakumaloko komanso chilengedwe chachitatu / kupanga. Mwanjira ina, nthawi iliyonse, posintha chingwe cholumikizira, nditha kusintha mafoni kukhala maziko # 1 ndi maziko #2 osasintha nambala yofunsira. Kapena, kuyang'ana m'tsogolo, mwachitsanzo, powonjezera ntchitoyo, simudzasowa kufotokoza kugwirizanitsa mwanjira ina iliyonse yapadera kwa seva yowonjezera ya cache.

5. Mangani, kumasula, perekani

Khalani ndi code yomaliza yokha pa seva, popanda mwayi wobwezeretsanso kutulutsidwa. Palibe chifukwa chodzaza malo a disk. Aliyense amene akuganiza kuti atha kutulutsa kachidindo kuti apange cholakwika ndi pulogalamu yoyipa!

Magawo onse otumizira ayenera kupatulidwa.

Khalani ndi mwayi wobwerera. Pangani zotulutsidwa ndi makope akale a pulogalamuyo (yomwe yasonkhanitsidwa kale ndikukonzekera kumenya nkhondo) yosungidwa mwachangu, kuti pakachitika zolakwika mutha kubwezeretsanso mtundu wakale. Ndiye kuti, mokhazikika pali chikwatu kumasulidwa ndi folda panopa, ndipo mutatha kutumiza bwino ndikusonkhanitsa chikwatu panopa kulumikizidwa ndi ulalo wophiphiritsa wa kumasulidwa kwatsopano komwe kuli mkati kumasulidwa ndi dzina lodziwika la nambala yotulutsa.

Apa ndipamene timakumbukira kutumizidwa kwa Blue-Green, komwe kumakupatsani mwayi wosintha pakati pa ma code, komanso kusinthana pakati pa zinthu zonse komanso ngakhale malo omwe mungathe kubweza chilichonse.

6. Njira

Sungani zidziwitso za chikhalidwe cha pulogalamu mwachindunji mkati mwa pulogalamu yokhayo. Gwiritsani ntchito magawo mu RAM ya pulogalamuyo. Gwiritsani ntchito kugawana kwambiri pakati pa ntchito za chipani chachitatu momwe mungathere. Dalirani kuti pulogalamuyo ikhoza kukhala ndi njira imodzi yokha ndipo musalole kukulitsa.

Ponena za magawo, sungani zidziwitso mu cache yomwe imayendetsedwa ndi anthu ena (memcached, redis), kotero ngakhale mutakhala ndi njira 20 zogwiritsira ntchito, aliyense waiwo, atapeza posungira, azitha kupitiliza kugwira ntchito ndi kasitomala. mkhalidwe womwewo womwe wogwiritsa ntchito anali kugwira ntchito ndi pulogalamuyo munjira ina. Ndi njirayi, zimakhala kuti ngakhale mumagwiritsa ntchito makope angati azinthu zamagulu ena, zonse zimagwira ntchito bwino komanso popanda mavuto ndi mwayi wopeza deta.

7. Kumanga padoko

Ndi seva yapaintaneti yokha yomwe iyenera kudziwa momwe angagwiritsire ntchito ntchito zamagulu ena. Kapena bwino, ikani ntchito za chipani chachitatu mwachindunji mkati mwa seva. Mwachitsanzo, monga gawo la PHP mu Apache.
Ntchito zanu zonse ziyenera kupezeka kwa wina ndi mnzake kudzera pakupeza ma adilesi ndi doko (localgost:5432, localhost:3000, nginx:80, php-fpm:9000), ndiye kuti, kuchokera ku nginx nditha kupeza zonse php- fpm komanso mpaka postgres, komanso kuchokera ku php-fpm kupita ku postgres ndi nginx ndipo kwenikweni kuchokera pautumiki uliwonse ndimatha kupeza ntchito ina. Mwanjira iyi, kutheka kwa ntchito sikumangiriridwa ndi kuthekera kwa ntchito ina.

8. Kufanana

Gwirani ntchito ndi njira imodzi, apo ayi njira zingapo sizingagwirizane!

Siyani malo owonjezera. Docker swarm ndiyabwino pa izi.
Docker Swarm ndi chida chopangira ndikuwongolera masango a zotengera zonse pakati pa makina osiyanasiyana ndi mulu wa zotengera pamakina amodzi.

Pogwiritsa ntchito guluu, nditha kudziwa kuchuluka kwazinthu zomwe ndingapereke panjira iliyonse ndi njira zingati zautumiki womwewo womwe ndiyambitse, ndipo wowerengera wamkati, yemwe amalandira deta padoko lomwe adapatsidwa, amangoyimira njirayo. Chifukwa chake, powona kuti katundu pa seva wakula, nditha kuwonjezera njira zambiri, potero ndikuchepetsa katundu panjira zina.

9. Kutaya

Osagwiritsa ntchito mizere kuti mugwiritse ntchito njira ndi data. Kupha njira imodzi kuyenera kukhudza ntchito yonse. Ngati msonkhano umodzi utsikira, chirichonse chimatsika.

Njira iliyonse ndi ntchito zimatha kuzimitsidwa nthawi iliyonse ndipo izi siziyenera kukhudza mautumiki ena (zowona, izi sizikutanthauza kuti ntchitoyo sidzakhalapo pa ntchito ina, koma kuti ntchito ina siyizimitsidwe pambuyo pa izi). Njira zonse ziyenera kuthetsedwa mwachisomo, kotero kuti zikatha, palibe deta yomwe idzawonongeke ndipo dongosolo lidzagwira ntchito moyenera nthawi ina mukayatsa. Izi zikutanthauza kuti, ngakhale zitachitika mwadzidzidzi, deta sayenera kuonongeka (njira yogulitsira ndi yoyenera pano, mafunso mu database amagwira ntchito m'magulu, ndipo ngati funso limodzi la gulu likulephera kapena likuchitidwa ndi cholakwika, ndiye kuti palibe funso lina kuchokera kugulu lomwe limalephera kwenikweni).

10. Kupititsa patsogolo ntchito / kugwirizanitsa ntchito

Kupanga, masitepe ndi mtundu wakomweko wa pulogalamuyi uyenera kukhala wosiyana. Popanga timagwiritsa ntchito mawonekedwe a Yii Lite, ndi Yii kwanuko, kuti azigwira ntchito mwachangu popanga!

M'malo mwake, zonse zomwe zimagwiritsidwa ntchito ndikugwira ntchito ndi code ziyenera kukhala pafupifupi malo ofanana (sitikulankhula za zida zakuthupi). Komanso, wogwira ntchito zachitukuko aliyense ayenera kutumiza kachidindo pakupanga ngati kuli kofunikira, osati dipatimenti ina yophunzitsidwa mwapadera, yomwe chifukwa cha mphamvu zapadera imatha kukweza ntchitoyo kupanga.

Docker imatithandizanso ndi izi. Ngati mfundo zonse zam'mbuyomu ziwonedwa, kugwiritsa ntchito docker kumabweretsa njira yotumizira chilengedwe popanga komanso pamakina akomweko kuti alowe lamulo limodzi kapena awiri.

11. Zipika

Timalemba zipika kumafayilo ndi ma database! Sitiyeretsa mafayilo ndi nkhokwe kuchokera ku zipika. Tiyeni tingogula hard drive yokhala ndi 9000 Peta byte ndipo zili bwino.

Zolemba zonse ziyenera kuganiziridwa ngati mndandanda wa zochitika. Ntchito yokhayo siyenera kutenga nawo mbali pokonza zipika. Zolemba ziyenera kutulutsidwa mwina ku stdout kapena kutumizidwa kudzera pa protocol monga udp, kuti kugwira ntchito ndi zipika sikubweretse vuto lililonse pakugwiritsa ntchito. Graylog ndi yabwino kwa izi. Graylog kulandira zipika zonse kudzera udp (protocol iyi sikutanthauza kudikira yankho la kulandilidwa bwino kwa paketi) sikusokoneza kugwiritsa ntchito mwanjira iliyonse ndipo imangogwira ntchito yokonza ndi kukonza zipika. Mfundo yogwiritsira ntchito sikusintha kuti igwire ntchito ndi njira zoterezi.

12. Ntchito zoyang'anira

Kuti musinthe deta, nkhokwe, ndi zina zotero, gwiritsani ntchito mapeto omwe adapangidwa padera mu API, kuchita maulendo a 2 motsatana kumapangitsa kuti chirichonse chibwerezedwe. Koma simuli opusa, simudzadina kawiri, ndipo sitifunikira kusamuka.

Ntchito zonse zoyang'anira ziyenera kuchitidwa pamalo ofanana ndi ma code onse, pamlingo womasulidwa. Ndiko kuti, ngati tifunika kusintha mawonekedwe a database, ndiye kuti sitingapange pamanja posintha mayina amizere ndikuwonjezera zatsopano kudzera pazida zoyang'anira zowonera. Pazinthu zoterezi, timapanga zolemba zosiyana - kusamuka, zomwe zimachitidwa paliponse komanso m'madera onse mofanana ndi zotsatira zofanana komanso zomveka. Pazinthu zina zonse, monga kudzaza polojekiti ndi deta, njira zofanana ziyenera kugwiritsidwa ntchito.

Kukhazikitsa kwachitsanzo mu PHP, Laravel, Laradock, Docker-Compose

PS Zitsanzo zonse zidapangidwa pa MacOS. Ambiri aiwo ndi oyenera Linux. Ogwiritsa ntchito Windows, ndikhululukireni, koma sindinagwire ntchito ndi Windows kwa nthawi yayitali.

Tiyerekeze kuti tilibe mtundu uliwonse wa PHP woyikidwa pa PC yathu ndipo palibe chilichonse.
Ikani mitundu yaposachedwa ya docker ndi docker-compose. (izi zitha kupezeka pa intaneti)

docker -v && 
docker-compose -v

Kupititsa patsogolo ntchito ndi kutumizidwa kwa Blue-Green, kutengera njira ya The Twelve-Factor App yokhala ndi zitsanzo mu php ndi docker.

1. Ikani Laradock

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

Kupititsa patsogolo ntchito ndi kutumizidwa kwa Blue-Green, kutengera njira ya The Twelve-Factor App yokhala ndi zitsanzo mu php ndi docker.

Ponena za Laradock, ndikunena kuti ndichinthu chozizira kwambiri, chomwe chili ndi zida zambiri ndi zinthu zothandizira. Koma sindingalimbikitse kugwiritsa ntchito Laradock motere popanda kusinthidwa pakupanga chifukwa chakuchepa kwake. Ndibwino kuti mupange zotengera zanu kutengera zitsanzo ku Laradock, izi zitha kukonzedwa bwino, chifukwa palibe amene amafunikira chilichonse chomwe chilipo nthawi imodzi.

2. Konzani Laradock kuti agwiritse ntchito pulogalamu yathu.

cd laradock && 
cp env-example .env

Kupititsa patsogolo ntchito ndi kutumizidwa kwa Blue-Green, kutengera njira ya The Twelve-Factor App yokhala ndi zitsanzo mu php ndi docker.

2.1. Tsegulani chikwatu cha habr (chikwatu cha makolo chomwe laradock amapangidwa) mu mkonzi wina. (Pankhani yanga ya PHPStorm)

Pakadali pano timangopatsa pulojekitiyo dzina.

Kupititsa patsogolo ntchito ndi kutumizidwa kwa Blue-Green, kutengera njira ya The Twelve-Factor App yokhala ndi zitsanzo mu php ndi docker.

2.2. Yambitsani chithunzi cha malo ogwirira ntchito. (Kwa inu, zithunzizi zitenga nthawi kuti zipangidwe)
Malo ogwirira ntchito ndi chithunzi chokonzekera mwapadera chogwirira ntchito ndi chimango m'malo mwa wopanga.

Timapita mu chidebe pogwiritsa ntchito

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

Kupititsa patsogolo ntchito ndi kutumizidwa kwa Blue-Green, kutengera njira ya The Twelve-Factor App yokhala ndi zitsanzo mu php ndi docker.

2.3. Kukhazikitsa Laravel

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

Kupititsa patsogolo ntchito ndi kutumizidwa kwa Blue-Green, kutengera njira ya The Twelve-Factor App yokhala ndi zitsanzo mu php ndi docker.

2.4. Pambuyo kukhazikitsa, timayang'ana ngati chikwatu chomwe chili ndi projekiti chapangidwa ndikupha kulemba.

ls
exit
docker-compose down

Kupititsa patsogolo ntchito ndi kutumizidwa kwa Blue-Green, kutengera njira ya The Twelve-Factor App yokhala ndi zitsanzo mu php ndi docker.

2.5. Tiyeni tibwerere ku PHPStorm ndikukhazikitsa njira yolondola yogwiritsira ntchito laravel mu fayilo ya .env.

Kupititsa patsogolo ntchito ndi kutumizidwa kwa Blue-Green, kutengera njira ya The Twelve-Factor App yokhala ndi zitsanzo mu php ndi docker.

3. Onjezani ma code onse ku Git.

Kuti tichite izi, tipanga chosungira pa Github (kapena kwina kulikonse). Tiyeni tipite ku habr directory mu terminal ndikuchita zotsatirazi.

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

Tiyeni tiwone ngati zonse zili bwino.

Kupititsa patsogolo ntchito ndi kutumizidwa kwa Blue-Green, kutengera njira ya The Twelve-Factor App yokhala ndi zitsanzo mu php ndi docker.

Kuti zikhale zosavuta, ndikupangira kugwiritsa ntchito mawonekedwe owoneka a Git, kwa ine GitKraken. (nayi ulalo wotumizira)

4. Tiyeni tiyambe!

Musanayambe, onetsetsani kuti palibe chomwe chikulendewera pamadoko 80 ndi 443.

docker-compose up -d nginx php-fpm

Kupititsa patsogolo ntchito ndi kutumizidwa kwa Blue-Green, kutengera njira ya The Twelve-Factor App yokhala ndi zitsanzo mu php ndi docker.

Chifukwa chake, polojekiti yathu ili ndi ntchito zitatu zosiyana:

  • nginx - seva yapaintaneti
  • php-fpm - php polandila zopempha kuchokera pa seva yapaintaneti
  • malo ogwirira ntchito - php kwa opanga

Pakadali pano, tapeza kuti tapanga pulogalamu yomwe imakwaniritsa mfundo 4 mwa 12, zomwe ndi:

1. Codebase - ma code onse ali m'malo amodzi (chidziwitso chaching'ono: kungakhale kolondola kuwonjezera docker mkati mwa polojekiti ya laravel, koma izi sizofunikira).

2. Zodalira - Zodalira zathu zonse zidalembedwa momveka bwino mu application/composer.json komanso mu Dockerfile iliyonse ya chidebe chilichonse.

3. Ntchito Zothandizira - Utumiki uliwonse (php-fom, nignx, malo ogwirira ntchito) umakhala moyo wake ndipo umalumikizidwa kuchokera kunja ndipo pogwira ntchito ndi ntchito imodzi, winayo sangakhudzidwe.

4. Njira - ntchito iliyonse ndi njira imodzi. Uliwonse wa mautumikiwa sasunga dziko lamkati.

5. Kumanga padoko

docker ps

Kupititsa patsogolo ntchito ndi kutumizidwa kwa Blue-Green, kutengera njira ya The Twelve-Factor App yokhala ndi zitsanzo mu php ndi docker.

Monga tikuonera, ntchito iliyonse imayenda pa doko lake ndipo imapezeka kuzinthu zina zonse.

6. Kufanana

Docker imatilola kuti tiyambitse njira zingapo zamautumiki omwewo ndi kusungitsa katundu pakati pawo.

Tiyeni tiyimitse zotengerazo ndikuziyendetsa kupyola mbendera --mlingo

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

Kupititsa patsogolo ntchito ndi kutumizidwa kwa Blue-Green, kutengera njira ya The Twelve-Factor App yokhala ndi zitsanzo mu php ndi docker.

Monga tikuonera, makope adapangidwa kuchokera ku php-fpm chidebe. Sitiyenera kusintha chilichonse pogwira ntchito ndi chotengera ichi. Tikupitilizabe kuyipeza pa doko 9000, ndipo Docker imatiwongolera katundu pakati pa zotengera zathu.

7. Disposability - chidebe chilichonse chikhoza kuphedwa popanda kuvulaza chinzake. Kuyimitsa kapena kuyambitsanso chidebe sikungakhudze kagwiritsidwe ntchito ka pulogalamu ikadzayambitsanso. Chidebe chilichonse chingathenso kukwezedwa nthawi iliyonse.

8. Kugwirizana kwa ntchito / chitukuko cha ntchito - madera athu onse ndi ofanana. Poyendetsa dongosolo pa seva pakupanga, simudzasowa kusintha chilichonse m'malamulo anu. Chilichonse chidzakhazikitsidwa pa Docker mwanjira yomweyo.

9. Kudula mitengo - zipika zonse zomwe zili muzotengerazi zimapita kukayenda ndipo zimawoneka mu Docker console. (pankhaniyi, makamaka, ndi zotengera zina zopangira kunyumba, izi sizingakhale choncho ngati simukuzisamalira)

 docker-compose logs -f

Kupititsa patsogolo ntchito ndi kutumizidwa kwa Blue-Green, kutengera njira ya The Twelve-Factor App yokhala ndi zitsanzo mu php ndi docker.

Koma pali chogwira kuti Zosintha Zosintha mu PHP ndi Nginx zimalembanso zipika ku fayilo. Kuti mukwaniritse zinthu 12, ndikofunikira lekani kulemba zipika ku fayilo mumasinthidwe a chidebe chilichonse padera.

Docker imaperekanso kuthekera kotumiza zipika osati ku stdout, komanso kuzinthu monga greylog, zomwe ndatchula pamwambapa. Ndipo mkati mwa graylog, titha kugwiritsa ntchito zipika momwe tikufunira ndipo kugwiritsa ntchito kwathu sikuzindikira izi mwanjira iliyonse.

10. Ntchito zoyang'anira - Ntchito zonse zoyang'anira zimathetsedwa ndi laravel chifukwa cha chida chamisiri monga momwe omwe amapanga 12 factor application angafune.

Mwachitsanzo, ndikuwonetsa momwe malamulo ena amagwiritsidwira ntchito.
Timalowa mu chidebe.

 
docker-compose exec workspace bash
php artisan list

Kupititsa patsogolo ntchito ndi kutumizidwa kwa Blue-Green, kutengera njira ya The Twelve-Factor App yokhala ndi zitsanzo mu php ndi docker.

Tsopano titha kugwiritsa ntchito lamulo lililonse. (chonde dziwani kuti sitinakhazikitse deta ndi cache, kotero theka la malamulo silidzachitidwa molondola, chifukwa adapangidwa kuti azigwira ntchito ndi cache ndi database).

Kupititsa patsogolo ntchito ndi kutumizidwa kwa Blue-Green, kutengera njira ya The Twelve-Factor App yokhala ndi zitsanzo mu php ndi docker.

11. Zosintha ndi 12. Mangani, masulani, thamangani

Ndinkafuna kupereka gawo ili ku Blue-Green Deployment, koma zidakhala zochulukirapo pankhaniyi. Ndilemba nkhani yosiyana pa izi.

Mwachidule, lingaliroli limachokera ku machitidwe a CI / CD monga Jenkins ΠΈ Gitlab CI. Pazonse ziwiri, mutha kukhazikitsa zosintha zachilengedwe zomwe zimagwirizanitsidwa ndi malo enaake. Mogwirizana ndi izi, mfundo c idzakwaniritsidwa Zosintha.

Ndipo mfundo za Mangani, masulani, thamangani imathetsedwa ndi ntchito zomangidwa ndi dzina Bomba.

Bomba amakulolani kugawaniza njira yotumizira m'magawo ambiri, kuwonetsa magawo a msonkhano, kumasulidwa ndi kuphedwa. Komanso mu Pipeline, mutha kupanga zosunga zobwezeretsera, ndipo chilichonse. Ichi ndi chida chopanda malire.

Khodi yofunsira ili pa Github.
Musaiwale kuyambitsa submodule mukamapanga chosungirachi.

PS: Njira zonsezi zitha kugwiritsidwa ntchito ndi zida zilizonse ndi zilankhulo zamapulogalamu. Chinthu chachikulu ndi chakuti chikhalidwe sichisiyana.

Source: www.habr.com

Kuwonjezera ndemanga