Horumarinta Codsiga iyo geynta Buluugga-cagaaran, oo ku salaysan Habka Laba iyo toban-Factor App oo wata tusaalayaal php iyo docker

Horumarinta Codsiga iyo geynta Buluugga-cagaaran, oo ku salaysan Habka Laba iyo toban-Factor App oo wata tusaalayaal php iyo docker

Marka hore, aragti yar. Maxaa dhacay App-ka XNUMX-Factor?

Erayada fudud, dukumeentigan waxaa loogu talagalay in lagu fududeeyo horumarinta codsiyada SaaS, ka caawinta iyada oo la ogeysiinayo horumarinta iyo injineerada DevOps dhibaatooyinka iyo dhaqamada inta badan la kulma horumarinta codsiyada casriga ah.

Dukumeentiga waxaa abuuray horumariyayaal madal Heroku.

Laba-iyo-toban-Factor App-ka waxa lagu dabaqi karaa arjiyada ku qoran luuqad kasta oo barnaamij ah iyo iyadoo la isticmaalayo adeeg kasta oo taageero ah (databases, safafka fariimaha, khasnado, iwm.).

Si kooban oo ku saabsan arrimaha uu habkani ku salaysan yahay:

  1. Codebase - Hal codebase oo lagu raad-joogo kontoroolka nooca - hawlgelin badan
  2. Ku-tiirsanaanta – Si cad u caddeeya oo go'doomi ku tiirsanaanta
  3. Qaabeynta – Keydi qaabaynta wakhtiga runtime
  4. Adeegyada Taageerada - Tixgeli adeegyada taageerada inay yihiin ilo-fure
  5. Dhis, sii daa, orod - Si adag u kala saar shirarka iyo marxaladaha fulinta
  6. Geedi socodka - U socodsii codsiga sidii hal ama in ka badan oo habab bilaa waddan ah
  7. Deked ku xidhidh - Dhoofinta adeegyada iyada oo loo marayo xidhitaanka dekedda
  8. Isbarbar dhig - Cabbir codsigaaga adigoo isticmaalaya hababka
  9. Maqnaanshaha - Kor u qaad isku halaynta adigoo si degdeg ah u bilaabaya iyo xidhidh nadiif ah
  10. Kobcinta codsiga/sinaanta shaqada - Horumarkaaga, habayntaada, iyo deegaankaaga wax-soo-saarka u dhig sida ugu macquulsan
  11. Goynta - U arag diiwaanka sida qulqulka dhacdooyinka
  12. Hawlaha maamulka - Samee hawlaha maamulka/maamulida iyadoo la isticmaalayo hababka ad hoc

Waxaad ka heli kartaa macluumaad dheeraad ah oo ku saabsan 12 arrimood ilaha soo socda:

Waa maxay geynta Buluuga-cagaaran?

Ku darida Buluugga-cagaaran waa habka lagu geynayo codsiga wax soo saarka si markaa macmiilka ugu dambeeya uusan u arkin wax isbeddel ah oo dhankiisa ah. Si kale haddii loo dhigo, geynta arjiga eber leh downtime.

Nidaamka caadiga ah ee BG Deploy wuxuu u eg yahay kan ka muuqda sawirka hoose.

Horumarinta Codsiga iyo geynta Buluugga-cagaaran, oo ku salaysan Habka Laba iyo toban-Factor App oo wata tusaalayaal php iyo docker

  • Bilawga waxaa jira 2 server oo jireed oo leh gabi ahaanba isku kood, codsi, mashruuc, waxaana jira router (balancer).
  • Router-ka ayaa marka hore u haga dhammaan codsiyada mid ka mid ah server-yada (cagaaran).
  • Waqtigan xaadirka ah marka aad u baahan tahay inaad mar kale sii deyso, mashruuca oo dhan waxaa lagu cusboonaysiiyaa server kale (buluug), Kaas oo aan hadda la socodsiin wax codsiyo ah.
  • Kadib markuu koodku shido buluug server-ka gebi ahaanba waa la cusboonaysiiyay, router-ka waxaa la siiyay amar uu ka beddelo cagaaran on buluug server.
  • Hadda dhammaan macaamiishu waxay arkaan natiijada koodka la shaqaynaya buluug server.
  • In muddo ah, cagaaran Seerfarku waxa uu u adeegaa sidii koobi kayd ah haddii ay dhacdo in la geeyo aan lagu guulaysan buluug server-ka iyo haddii ay dhacdo cillad iyo cillad, router-ku wuxuu dib ugu beddelayaa isticmaalaha cagaaran server oo leh noocii hore ee xasiloon, koodka cusubna waxa loo diraa dib u eegis iyo tijaabin.
  • Iyo dhamaadka habka, waxaa la cusbooneysiiyey si la mid ah cagaaran server. Ka dib markii la cusboonaysiiyay, router-ku wuxuu u beddelaa qulqulka codsiga cagaaran server.

Dhammaantood waxay u muuqdaan kuwo aad u wanaagsan oo jaleecada hore waa inaysan jirin wax dhibaato ah oo la xidhiidha.
Laakiin maadaama aan ku nool nahay adduunka casriga ah, ikhtiyaarka leh beddelka jirka sida lagu tilmaamay nidaamka qadiimiga ah naguma habboona. Diiwaangeli xogta hadda, dib ayaan ku soo celin doonaa.

Xumaan iyo talo wanaagsan

AfeefTusaalooyinka hoose waxay muujinayaan utility/hababka aan isticmaalo, waxaad isticmaali kartaa gabi ahaanba wax kasta oo beddelka ah oo leh hawlo isku mid ah.

Tusaalooyinka intooda badani waxay si uun ama si kale isaga gooyaan horumarinta shabakada (tani waa yaab), PHP iyo Docker.

Baaragaraafyada hoose waxay bixinayaan sharraxaad wax ku ool ah oo fudud oo ku saabsan adeegsiga qodobbada iyadoo la adeegsanayo tusaalooyin gaar ah; haddii aad rabto inaad aragti dheeraad ah ka hesho mawduucan, raac xiriirka kore ee isha asalka ah.

1. Codebase

Adeegso FTP iyo FileZilla si aad faylasha ugu geliso xayndaabyada midba mar, haku kaydin koodka meel aan ahayn serfarka wax soo saarka.

Mashruucu had iyo jeer waa inuu lahaadaa hal saldhig oo kood ah, taas oo ah, dhammaan koodka wuxuu ka yimid hal tag kayd. Adeegayaasha (wax soo saarka, diyaarinta, test1, test2...) waxay isticmaalaan koodka laamaha hal kayd oo caadi ah. Sidan ayaanu ku gaadhaynaa joogtaynta koodka.

2. Ku-tiirsanaanta

Soo deji dhammaan maktabadaha ku jira galka si toos ah xididka mashruuca. Samee cusbooneysiinta si fudud adiga oo u wareejinaya koodka cusub galka nooca hadda ee maktabadda. Ku rakib dhammaan adeegyada lagama maarmaanka ah si toos ah server-ka martida loo yahay halkaas oo 20 adeegyo dheeraad ah ay socdaan.

Mashruucu had iyo jeer waa inuu lahaadaa liis si cad loo fahmi karo oo ku tiirsanaanta (ku tiirsanaanta waxaan sidoo kale ula jeedaa deegaanka). Dhammaan ku-tiirsanaanta waa in si cad loo qeexaa oo la go'doomiyey.
Aan tusaale u soo qaadano laxamiistaha ΠΈ Docker.

laxamiistaha - maamule xirmo kaas oo kuu ogolaanaya inaad ku rakibto maktabadaha PHP. Laxanku wuxuu kuu ogolaanayaa inaad si adag u qeexdo noocyada si adag ama dabacsan, oo si cad u qeex. Waxaa jiri kara 20 mashruuc oo kala duwan oo server-ka ah mid walbana wuxuu yeelan doonaa liis gaar ah oo xirmo iyo maktabado ah oo ka madax bannaan kan kale.

Docker - utility kuu ogolaanaya inaad qeexdo oo go'doomiso deegaanka uu codsiga ku socon doono. Sidaa darteed, sida laxamiistaha, laakiin si qoto dheer, waxaan go'aamin karnaa waxa codsigu ku shaqeeyo. Dooro nooc gaar ah oo PHP ah, ku rakib kaliya xirmooyinka lagama maarmaanka u ah mashruuca inuu shaqeeyo, adoon ku darin wax dheeraad ah. Iyo tan ugu muhiimsan, iyada oo aan la faragelin xirmooyinka iyo deegaanka mashiinka martida loo yahay iyo mashaariicda kale. Taasi waa, dhammaan mashaariicda ku jira server-ka ku socda Docker waxay isticmaali karaan gabi ahaanba xirmo kasta iyo jawi gebi ahaanba ka duwan.

3. Habaynta

Ku kaydi habaynta sida joogtada ah si toos ah koodka. Joogtada goonida ah ee server-ka tijaabada ah, oo u gooni ah wax soo saarka. Ku xidh hawlgalka codsiga iyada oo ku xidhan deegaanka si toos ah macquulka ganacsiga ee mashruuca isticmaalaya haddii kale dhiska.

Habaynta - tani waa habka kaliya ee ay ku kala duwanaan karaan hawlgalinta mashruuca. Sida habboon, qaabaynta waa in loo maro doorsoomayaasha deegaanka (env vars).

Taasi waa, xitaa haddii aad kaydiso dhowr faylal qaabeyn ah .config.prod .config.local oo dib u magacow waqtiga la dirayo .config (qaabka ugu weyn ee codsigu akhriyo xogta) - tani ma noqon doonto habka saxda ah, tan iyo markii Xaaladdan oo kale macluumaadka ka soo baxa qaabeynta ayaa si guud loo heli doonaa dhammaan soo-saarayaasha arjiyada iyo xogta server-ka wax-soo-saarka waa la jabin doonaa. Dhammaan qaabaynta waa in si toos ah loogu kaydiyaa nidaamka geynta (CI/CD) oo loo soo saaraa deegaanno kala duwan oo leh qiyam kala duwan oo lagama maarmaan u ah deegaan gaar ah wakhtiga la dirayo.

4. Adeegyada Xisbiga Saddexaad

Si adag ugu xidhnow deegaanka, isticmaal isku xidhka kala duwan ee isla adeegyada deegaanka qaarkood.

Dhab ahaantii, qodobkani wuxuu si xoog leh ugu dul dhacayaa barta ku saabsan qaabeynta, tan iyo iyada oo aan la helin, xogta qaabeynta caadiga ah lama samayn karo, guud ahaan, awoodda wax-ku-qaabaynta ayaa hoos u dhigi doonta waxba.

Dhammaan isku xirka adeegyada dibadda, sida server-yada safka, xog-ururinta, adeegyada kaydinta, waa inay isku mid ahaadaan deegaanka deegaanka iyo dhinaca saddexaad/deegaanka wax-soo-saarka labadaba. Si kale haddii loo dhigo, wakhti kasta, aniga oo beddelaya xadhigga isku xirka, waxaan ku beddeli karaa wicitaannada saldhigga #1 saldhigga #2 aniga oo aan beddelin koodka codsiga. Ama, horay u sii fiiriya, tusaale ahaan, marka la miisaaminayo adeegga, uma baahnid inaad si gaar ah u qeexdo isku xirka server cache dheeraad ah.

5. Dhis, sii daa, fuliya

Hayso kaliya nooca ugu dambeeya ee koodka ee seerfarka, iyada oo aan fursad loo helin in dib loo soo celiyo sii deynta. Looma baahna in la buuxiyo booska diskka. Qof kasta oo u maleynaya inay ku sii dayn karaan koodka soo saarista qaladka waa barnaamij xun!

Dhammaan marxaladaha dirista waa in midba midka kale ka sooco.

Laakin fursad aad dib ugu laabato Samee siidooyin nuqulo duug ah oo codsiga ah (oo mar hore la soo ururiyey oo diyaar u ah dagaalka) si degdeg ah u geli, si haddii ay dhacdo khaladaad aad u soo celin karto nuqulkii hore. Taasi waa, shuruud ahaan waxaa jira gal sii deynta iyo gal hadda, iyo ka dib markii si guul leh la geeyo oo la isu geeyo galka hadda ku xidhidhiyaha astaanta u ah sii daynta cusub ee gudaha ku jirta sii deynta oo leh magaca caadiga ah ee lambarka siideynta.

Tani waa meesha aan ku xasuusaneyno geynta Blue-Green, taas oo kuu ogolaaneysa inaadan isku bedelin inta u dhaxaysa koodka, laakiin sidoo kale inaad u beddesho dhammaan kheyraadka iyo xitaa jawiga awood u leh inuu dib u soo celiyo wax walba.

6. Geedi socodka

Ku kaydi xogta gobolka si toos ah codsiga laftiisa. Isticmaal kalfadhiyada RAM ee arjiga laftiisa. Isticmaal wadaagga ugu badan ee u dhexeeya adeegyada dhinac saddexaad intii suurtogal ah. Ku kalsoonow xaqiiqda ah in codsigu yeelan karo hal hab oo keliya oo ha oggolaan in la miisaamo.

Marka laga hadlayo fadhiyada, ku kaydi xogta kaydka ay gacanta ku hayaan adeegyada dhinac saddexaad (memcached, redis), marka xataa haddii aad haysato 20 hab oo codsi ah oo socda, mid kasta oo iyaga ka mid ah, markuu galo khasnadda, wuxuu awoodi doonaa inuu la sii shaqeeyo macmiilka isla gobolka uu isticmaaluhu kula shaqaynayey codsiga hab kale. Habkan, waxay soo baxday in iyada oo aan loo eegin inta nuqul ee adeegyada saddexaad ee aad isticmaasho, wax walba waxay u shaqeyn doonaan si caadi ah oo aan dhibaato lahayn helitaanka xogta.

7. Deked ku xidhidh

Kaliya server-ka shabakada waa inuu yaqaanaa sida loola shaqeeyo adeegyada dhinac saddexaad. Ama si ka sii wanaagsan, ku rakib adeegyada qolo saddexaad si toos ah gudaha serfarka shabakadda. Tusaale ahaan, sida moduleka PHP ee Apache.
Dhammaan adeegyadaadu waa inay ahaadaan kuwo la isku heli karo iyada oo loo marayo marin u helka qaar ka mid ah ciwaanka iyo dekedda (localgost: 5432, localhost: 3000, nginx: 80, php-fpm: 9000), taas oo ah, nginx waxaan ka heli karaa labadaba php-fpm iyo ilaa postgres, iyo php-fpm ilaa postgres iyo nginx iyo runtii adeeg kasta waxaan ka heli karaa adeeg kale. Sidan, jiritaanku adeeg kuma xidhna jiritaan adeeg kale.

8. Isbarbar yaac

La shaqee hal hab, haddii kale dhowr hannaan ma awoodi doonaan inay is qabsadaan!

U dhaaf meel aad ku miisaamayso. Raxan Docker ayaa tan u fiican.
Docker Swarm waa aalad lagu abuuro laguna maareeyo rucubyada weelasha ee u dhexeeya mashiinada kala duwan iyo farabadan weel ku yaal isla mashiinka.

Isticmaalka raxan, waxaan go'aamin karaa inta agab ee aan u qoondayn doono hannaan kasta iyo inta hab ee adeeg isku mid ah oo aan bilaabi doono, iyo dheelitirka gudaha, oo helaya xogta deked la bixiyay, ayaa si toos ah u matali doonta geeddi-socodka. Sidaa darteed, marka la eego in culeyska server-ku uu kordhay, waxaan ku dari karaa habab badan, taas oo yareyneysa culeyska hababka qaarkood.

9. Luminta

Ha isticmaalin safafka si aad ula shaqeyso hababka iyo xogta. Dilka hal habraac waa inuu saameeyaa codsiga oo dhan. Haddii hal adeeg hoos u dhaco, wax walba hoos bay u dhacayaan.

Nidaam kasta iyo adeeg kasta waa la damin karaa wakhti kasta tanina maaha inay saamayso adeegyada kale (dabcan, tani macnaheedu maaha in adeeggu aanu heli doonin adeeg kale, laakiin adeeg kale ma dami doono ka dib). Dhammaan geeddi-socodyada waa in si qurux badan loo joojiyaa, si marka la joojiyo, aysan wax xog ah u dhicin oo nidaamku si sax ah u shaqeyn doono marka xigta ee aad shido. Taasi waa, xitaa haddii ay dhacdo xaalad degdeg ah, xogta waa in aan la dhaawacin (habka wax kala iibsiga ayaa ku habboon halkan, su'aalaha ku jira kaydka xogta waxay u shaqeeyaan kooxo kaliya, iyo haddii ugu yaraan hal su'aal oo kooxeed ah ay ku guuldareysato ama lagu fuliyo qalad, markaas ma jiro su'aal kale oo kooxda ka timid oo ugu dambeyntii fashilantay xaqiiqda).

10. Isku dheelitirnaanta horumarinta/arjiga codsiga

Soo saarista, habaynta iyo nooca maxaliga ah ee arjiga waa in uu ka duwanaadaa. Soo saarista waxaanu isticmaalnaa qaabka Yii Lite, iyo gudaha Yii, si uu dhakhso ugu shaqeeyo wax soo saarka!

Xaqiiqda, dhammaan diritaannada iyo shaqada koodka waa inay ahaadaan ku dhawaad ​​deegaan isku mid ah (kama hadlayno qalabka jireed). Sidoo kale, shaqaale kasta oo horumarineed waa inuu awood u leeyahay inuu geeyo koodhka wax-soo-saarka haddii loo baahdo, oo ma aha qaar ka mid ah waaxda gaarka ah ee loo tababaray, taas oo ay ku mahadsan tahay xoogga gaarka ah oo keliya ayaa kor u qaadi kara codsiga wax soo saarka.

Docker ayaa sidoo kale naga caawiya tan. Haddii dhammaan qodobbadii hore la arkay, iyadoo la adeegsanayo docker waxay keenaysaa habka loo dirayo deegaanka labadaba wax soo saarka iyo mashiinka maxalliga ah si loo galo hal ama laba amar.

11. Logs

Waxaan u qornaa diiwaanka faylasha iyo xogta macluumaadka! Ma ka nadiifinno faylasha iyo macluumaadka kaydka logyada. Aynu ka soo iibsano darawal adag oo leh 9000 Peta bytes taasina waa fiican tahay.

Dhammaan qoraallada waa in loo tixgeliyaa sida socodka dhacdooyinka. Codsiga laftiisa waa in aanu ku lug lahayn habaynta diiwaannada. Loggu waa in loo soo saaraa si stdout ah ama loo soo diro hab-maamuus sida udp, si ka shaqaynta logyada aysan u abuurin wax dhibaato ah codsiga. graylog ayaa u fiican tan. Graylog oo ku helaya dhammaan qoraallada udp (Borotokoolkani uma baahna sugitaanka jawaabta ku saabsan soo dhawaynta guusha leh ee xidhmada) sina uma faragelin codsiga oo kaliya waxa ay ka hadlaysaa qaabaynta iyo habaynta diiwaannada. Caqliga codsigu isma beddelo si uu ula shaqeeyo hababkaas.

12. Hawlaha maamulka

Si aad u cusboonaysiiso xogta, xogta macluumaadka, iwm., isticmaal barta dhamaadka API-ga si gaar ah loo abuuray, ku fulin 2 jeer oo isku xigta waxay keeni doontaa in wax walba la nuqulo. Laakiin doqon ma tihid, laba jeer ma riixi doontid, uma baahnin tahriib.

Dhammaan hawlaha maamulka waa in lagu qabtaa isla jawiga dhammaan koodka, heerka sii deynta. Taasi waa, haddii aan u baahanahay inaan bedelno qaab-dhismeedka xogta, markaa ma samayn doonno gacanta annaga oo beddelaya magacyada tiirarka oo aan ku darno kuwa cusub iyada oo loo marayo qaar ka mid ah qalabka maareynta xogta xogta. Waxyaabahan oo kale, waxaan abuurnaa qoraallo gaar ah - guuritaanka, kuwaas oo lagu fuliyo meel kasta iyo dhammaan deegaannada si isku mid ah oo leh natiijo caadi ah oo la fahmi karo. Dhammaan hawlaha kale, sida buuxinta mashruuca xogta, habab la mid ah waa in la isticmaalo.

Tusaale ahaan hirgelinta PHP, Laravel, Laradock, Docker-Compose

PS Dhammaan tusaalooyinka waxaa lagu sameeyay MacOS. Badankooda sidoo kale waxay ku habboon yihiin Linux. Isticmaalayaasha Windows, i cafi, laakiin ma aanan la shaqeyn Windows muddo dheer.

Aynu qiyaasno xaalad aynaan haysan nooc kasta oo PHP ah oo lagu rakibay kombuyuutarkeena oo aan waxbaba ahayn.
Ku rakib noocyadii ugu dambeeyay ee docker iyo docker-compose. (kan waxaa laga heli karaa internetka)

docker -v && 
docker-compose -v

Horumarinta Codsiga iyo geynta Buluugga-cagaaran, oo ku salaysan Habka Laba iyo toban-Factor App oo wata tusaalayaal php iyo docker

1. Dhig Laradock

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

Horumarinta Codsiga iyo geynta Buluugga-cagaaran, oo ku salaysan Habka Laba iyo toban-Factor App oo wata tusaalayaal php iyo docker

Ku saabsan Laradock, waxaan dhihi doonaa waa shay aad u qabow, kaas oo ka kooban weelal badan iyo waxyaabo caawiya. Laakiin kuma talin lahaa isticmaalka Laradock sida oo kale iyada oo aan wax laga beddelin wax soo saarka sababtoo ah dib-u-celinta. Way fiicantahay inaad abuurto weel adiga kuu gaar ah oo ku salaysan tusaalooyinka Laradock, tani waxay noqon doontaa mid aad u wanagsan, sababtoo ah qofna uma baahna wax kasta oo jira waqti isku mid ah.

2. Habee Laradock si uu codsigayaga u socodsiiyo.

cd laradock && 
cp env-example .env

Horumarinta Codsiga iyo geynta Buluugga-cagaaran, oo ku salaysan Habka Laba iyo toban-Factor App oo wata tusaalayaal php iyo docker

2.1. Fur tusaha habr (faylka waalidka kaas oo laradock lagu xiray) tafatiraha qaar. (Kiiskayga PHPStorm)

Marxaladan waxaan kaliya siineynaa mashruuca magac.

Horumarinta Codsiga iyo geynta Buluugga-cagaaran, oo ku salaysan Habka Laba iyo toban-Factor App oo wata tusaalayaal php iyo docker

2.2. Bilow sawirka goobta shaqada (Xaaladdaada, sawiradu waxay qaadan doonaan wakhti in la dhiso)
Goobta shaqadu waa sawir si gaar ah loo diyaariyey oo lagula shaqaynayo qaab-dhismeedka iyadoo laga wakiil yahay horumariyaha.

Waxaan galnaa gudaha weelka anagoo adeegsanayna

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

Horumarinta Codsiga iyo geynta Buluugga-cagaaran, oo ku salaysan Habka Laba iyo toban-Factor App oo wata tusaalayaal php iyo docker

2.3. Ku rakibida Laravel

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

Horumarinta Codsiga iyo geynta Buluugga-cagaaran, oo ku salaysan Habka Laba iyo toban-Factor App oo wata tusaalayaal php iyo docker

2.4. Ka dib marka la rakibo, waxaan hubineynaa in tusaha mashruuca la sameeyay iyo in la dilo samee.

ls
exit
docker-compose down

Horumarinta Codsiga iyo geynta Buluugga-cagaaran, oo ku salaysan Habka Laba iyo toban-Factor App oo wata tusaalayaal php iyo docker

2.5. Aan ku laabano PHPStorm oo aan dejino dariiqa saxda ah ee codsigayaga laravel ee faylka .env.

Horumarinta Codsiga iyo geynta Buluugga-cagaaran, oo ku salaysan Habka Laba iyo toban-Factor App oo wata tusaalayaal php iyo docker

3. Ku dar dhammaan koodka Git.

Si tan loo sameeyo, waxaan ku abuuri doonaa kayd Github (ama meel kasta oo kale). Aan tagno buugga habr ee ku yaal terminalka oo aan fulino koodka soo socda.

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

Aynu eegno in wax waliba hagaagsan yihiin.

Horumarinta Codsiga iyo geynta Buluugga-cagaaran, oo ku salaysan Habka Laba iyo toban-Factor App oo wata tusaalayaal php iyo docker

Si ay ugu habboonaato, waxaan ku talinayaa in loo isticmaalo xoogaa is-dhexgal muuqaal ah Git, xaaladdeyda waa GitKraken. (halkan waa xiriirinta gudbinta)

4. Aan bilowno!

Kahor intaadan bilaabin, iska hubi inaysan waxba ka soo laadlaadin dekedaha 80 iyo 443.

docker-compose up -d nginx php-fpm

Horumarinta Codsiga iyo geynta Buluugga-cagaaran, oo ku salaysan Habka Laba iyo toban-Factor App oo wata tusaalayaal php iyo docker

Haddaba, mashruucayagu wuxuu ka kooban yahay 3 adeeg oo kala duwan:

  • nginx - server web
  • php-fpm - php ee codsiyada ka imanaya server-ka shabakadda
  • goobta shaqada - php ee horumariyeyaasha

Waqtigan xaadirka ah, waxaan ku guuleysanay inaan abuurnay codsi buuxinaya 4 qodob oo ka mid ah 12, oo kala ah.

1. Codebase - dhammaan koodka ayaa ku jira hal kayd (warbixin yar: waxaa laga yaabaa inay sax tahay in lagu daro docker gudaha mashruuca Laravel, laakiin tani muhiim maaha).

2. Ku-tiirsanaanta - Dhammaan waxyaalaha ku tiirsanaantayadu waxay si cad ugu qoran yihiin codsi/laxamiistaha.json iyo Dockerfile kasta ee weel kasta.

3. Adeegyada Taageerada - Mid kasta oo ka mid ah adeegyada (php-fom, nignx, goobta shaqada) ayaa ku nool nolosheeda oo waxay ku xiran tahay dibadda iyo marka la shaqeynayo hal adeeg, kan kale ma saameyn doono.

4. Geedi socodka - adeeg kastaa waa hal hab. Mid kasta oo ka mid ah adeegyadu ma ilaalinayaan xaaladda gudaha.

5. Deked ku xidhidh

docker ps

Horumarinta Codsiga iyo geynta Buluugga-cagaaran, oo ku salaysan Habka Laba iyo toban-Factor App oo wata tusaalayaal php iyo docker

Sida aan arki karno, adeeg kastaa wuxuu ku shaqeeyaa deked u gaar ah, waana mid la heli karo dhammaan adeegyada kale.

6. Isbarbar dhig

Docker wuxuu noo ogolaanayaa inaan dhalno habab badan oo isku adeegyo ah oo leh isku dheelitirnaanta culeyska tooska ah ee dhexdooda.

Aan joojino weelasha oo aan dhex marno calanka --miisaanka

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

Horumarinta Codsiga iyo geynta Buluugga-cagaaran, oo ku salaysan Habka Laba iyo toban-Factor App oo wata tusaalayaal php iyo docker

Sida aan arki karno, koobiyo ayaa laga sameeyay weelka php-fpm. Uma baahnid inaan wax ka bedelno la shaqaynta weelkan. Waxaan sidoo kale sii wadeynaa inaan ku galno dekedda 9000, Docker-ka ayaa xakameynaya culeyska u dhexeeya weelasha annaga.

7. Maqnaanshaha - weel walba waa la dili karaa iyadoon kan kale waxba la yeelin. Joojinta ama dib-u-kicinta weelka wax saameyn ah kuma yeelan doonto howsha arjiga inta lagu jiro bilaabista xiga. Weel kasta sidoo kale waa la qaadi karaa wakhti kasta.

8. Kobcinta codsiga/sinaanta shaqada - Dhammaan deegaanadeena waa isku mid. Markaad ku socodsiiso nidaamka server-ka wax soo saarka, uma baahnid inaad wax ka bedesho amarradaada. Wax walba waxay ku salaysnaan doonaan Docker si la mid ah.

9. Goynta - Dhammaan qoraallada ku jira weelashan waxay aadayaan qulqulka waxayna ka dhex muuqanayaan qalabka loo yaqaan 'Docker console'. (xaaladdan, dhab ahaantii, weelasha kale ee guriga lagu sameeyo, tani ma noqon karto kiiska haddii aadan daryeelin)

 docker-compose logs -f

Horumarinta Codsiga iyo geynta Buluugga-cagaaran, oo ku salaysan Habka Laba iyo toban-Factor App oo wata tusaalayaal php iyo docker

Laakiin waxaa jira qabsasho ah in qiyamka Default ee PHP iyo Nginx ay sidoo kale ku qoraan diiwaannada faylka. Si loo daboolo 12 arrimood, waa lagama maarmaan naafo ah qorista logyada fayl ku jira habaynta weel kasta si gaar ah.

Docker sidoo kale wuxuu bixiyaa awooda lagu soo diro logs ma aha oo kaliya in lagu dhejiyo, laakiin sidoo kale waxyaabaha sida graylog, oo aan kor ku soo sheegay. Iyo gudaha graylog, waxaan u shaqayn karnaa logu si aan u rabno codsigayaguna sina uma dareemi doono tan.

10. Hawlaha maamulka - Dhammaan hawlaha maamulka waxaa lagu xalliyaa Laravel iyadoo ay ugu wacan tahay aaladda farshaxanimada sida saxda ah ee abuurayaasha codsiga 12-ka ay rabaan.

Tusaale ahaan, waxaan tusi doonaa sida amarrada qaar loo fuliyo.
Waxaan galnaa weelka.

 
docker-compose exec workspace bash
php artisan list

Horumarinta Codsiga iyo geynta Buluugga-cagaaran, oo ku salaysan Habka Laba iyo toban-Factor App oo wata tusaalayaal php iyo docker

Hadda waxaan isticmaali karnaa amar kasta. (Fadlan ogow in aanaan habeynin xogta iyo kaydinta, markaa kala badh amarrada si sax ah looma fulin doono, sababtoo ah waxaa loogu talagalay inay la shaqeeyaan kaydinta iyo kaydinta xogta).

Horumarinta Codsiga iyo geynta Buluugga-cagaaran, oo ku salaysan Habka Laba iyo toban-Factor App oo wata tusaalayaal php iyo docker

11. Habaynta iyo 12. Dhis, sii daa, orod

Waxaan rabay in aan u hibeeyo qaybtan Dirista Buluugga-cagaaran, laakiin waxay noqotay mid aad u ballaaran oo maqaalkan ah. Maqaal gooni ah ayaan arrintan ka qori doonaa.

Si kooban, fikraddu waxay ku salaysan tahay nidaamyada CI/CD sida Jenkins ΠΈ Gitlab CI. Labadaba, waxaad dejin kartaa doorsoomayaasha deegaanka ee la xidhiidha deegaan gaar ah. Sidaas awgeed, xaaladdan, qodobka c waa la fulin doonaa Habaynta.

Iyo qodobka ku saabsan Dhis, sii daa, orod waxaa lagu xalliyaa hawlaha la dhisay ee magaca Dhuumaha.

Dhuumaha wuxuu kuu ogolaanayaa inaad u qaybiso habka geynta marxalado badan, oo muujinaya marxaladaha isu-ururinta, sii-deynta iyo fulinta. Sidoo kale gudaha Pipeline, waxaad abuuri kartaa kayd, iyo runtii wax kasta. Kani waa qalab leh awood aan xad lahayn.

Koodhka codsigu waa xaga Github.
Ha iloobin inaad bilawdo submodule-ka markaad xidhidayso kaydkan.

PS: Dhammaan hababkan waxaa loo isticmaali karaa adeeg kasta oo kale iyo luqadaha barnaamijka. Waxa ugu muhiimsan waa in nuxurku aanu ka duwanayn.

Source: www.habr.com

Add a comment