Pulogalamu ya ProHoster > Blog > Ulamuliro > 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.
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.
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.
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.
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.
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)
2.1. Tsegulani chikwatu cha habr (chikwatu cha makolo chomwe laradock amapangidwa) mu mkonzi wina. (Pankhani yanga ya PHPStorm)
Pakadali pano timangopatsa pulojekitiyo dzina.
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
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
Monga tikuonera, ntchito iliyonse imayenda pa doko lake ndipo imapezeka kuzinthu zina zonse.
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.
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.
Mwachitsanzo, ndikuwonetsa momwe malamulo ena amagwiritsidwira ntchito.
Timalowa mu chidebe.
docker-compose exec workspace bash
php artisan list
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).
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.