Atinaʻeina o talosaga ma le faʻaogaina o le Blue-Green, faʻavae i luga o le Twelve-Factor App methodology ma faʻataʻitaʻiga ile php ma le docker

Atinaʻeina o talosaga ma le faʻaogaina o le Blue-Green, faʻavae i luga o le Twelve-Factor App methodology ma faʻataʻitaʻiga ile php ma le docker

Muamua, se manatu itiiti. O le a le mea ua tupu Le Twelve-Factor App?

I ni upu faigofie, o lenei pepa ua mamanuina e faʻafaigofie ai le atinaʻeina o talosaga a le SaaS, fesoasoani e ala i le logoina o le au atinaʻe ma le inisinia DevOps e uiga i faʻafitauli ma faiga e masani ona faʻafeiloaʻi i le atinaʻeina o talosaga faʻaonaponei.

O le pepa na faia e le au atinaʻe o le Heroku platform.

O le Twelve-Factor App e mafai ona faʻaoga i tusi talosaga e tusia i soʻo se gagana polokalame ma faʻaaogaina soʻo se tuʻufaʻatasiga o tautua lagolago (faʻamaumauga, faʻasologa o feʻau, caches, ma isi).

Fa'apuupuu e uiga i mea taua e fa'avae ai lenei metotia:

  1. Codebase - Tasi codebase siaki i le faʻatonutonuina o faʻasalalauga - tele faʻapipiʻi
  2. Fa'alagolago – Fa'ailoa manino ma fa'aesea fa'alagolago
  3. Fetuunaiga - Faasaoina le faʻatulagaina i le taimi faʻataʻavalevale
  4. Au'aunaga Lagolago – Manatunatu i le lagolagoina o auaunaga e avea ma punaoa faʻapipiʻi
  5. Fausia, tatala, tamoe – Vaevae fa'apitoa le fa'apotopotoga ma le fa'atinoga
  6. O faagasologa - Faʻaauau le talosaga o se tasi pe sili atu faiga e leai ni setete
  7. Faamauina o uafu – Auaunaga auina atu i fafo e ala i le fusifusia o uafu
  8. Parallelism - Faʻateleina lau talosaga e faʻaaoga ai faiga
  9. Tu'u ese - Faʻateleina le faʻalagolago i le vave amataina ma le tapunia mama
  10. Atina'e o talosaga/fa'agaioiga tutusa - Tausia lau atinaʻe, faʻatulagaina, ma siosiomaga gaosiga tutusa e mafai
  11. Fa'amauina - Vaʻai le ogalaau o se faʻasologa o mea na tutupu
  12. Galuega tau pulega - Fa'atino galuega tau pulega/pulega e fa'aaoga ai faiga fa'apitoa

E mafai ona e mauaina nisi faʻamatalaga e uiga i mea taua e 12 mai punaoa nei:

O le a le Blue-Green deployment?

Blue-Green deployment o se auala e momoli atu ai se talosaga i faiga i se auala e le iloa ai e le tagata o tausia se suiga i lana vaega. I se isi faaupuga, faʻapipiʻiina o se talosaga e leai se mea toso.

Ole polokalame masani ole BG Deploy e pei ole ata o loʻo faʻaalia i lalo.

Atinaʻeina o talosaga ma le faʻaogaina o le Blue-Green, faʻavae i luga o le Twelve-Factor App methodology ma faʻataʻitaʻiga ile php ma le docker

  • I le amataga o loʻo i ai 2 'auʻaunaga faʻapitoa e tutusa lelei le code, talosaga, poloketi, ma o loʻo i ai se alalaupapa (paleni).
  • O le router e fa'atonu muamua talosaga uma i se tasi o 'au'aunaga (lanumeamata).
  • I le taimi e te manaʻomia ai le toe faʻamalolo, o le poloketi atoa e faʻafouina i luga o se isi server (lanumoana), lea e le o faia i le taimi nei soʻo se talosaga.
  • A uma ona ola le code lanu moaga ua uma ona faafou le server, ua tuuina atu i le router se poloaiga e sui mai lanumeamata i lanumoana server.
  • O lea ua va'aia e tagata fa'atau uma le taunu'uga o le code o lo'o fa'agaoioi lanumoana server.
  • Mo sina taimi, lanumeamata o le server e avea o se kopi faaleoleo i le tulaga o le le manuia deploying i lanumoana server ma i le tulaga o faaletonu ma bugs, o le router sui le tagata faʻaoga tafe i tua lanumeamata 'au'aunaga fa'atasi ma le fa'amaumauga tuai, ma o le code fou e tu'uina atu mo le toe iloiloga ma su'ega.
  • Ma i le faaiuga o le faagasologa, e toe faafou i le auala lava e tasi lanumeamata server. Ma a maeʻa ona faʻafouina, e sui e le router le tafega o talosaga i tua lanumeamata server.

E foliga lelei uma lava ma i le tepa muamua e le tatau ona i ai ni faʻafitauli i ai.
Ae talu ai o loʻo tatou ola i le lalolagi faʻaonaponei, o le filifiliga ma suiga faʻaletino e pei ona faʻaalia i le faiga masani e le fetaui ma i tatou. Faamaumau faamatalaga mo le taimi nei, o le a matou toe foi i ai mulimuli ane.

Le leaga ma lelei fautuaga

Tuuese: O faʻataʻitaʻiga o loʻo i lalo o loʻo faʻaalia ai mea aoga / metotia o loʻo ou faʻaaogaina, e mafai ona e faʻaogaina atoatoa soʻo se isi mea e tutusa ai galuega.

O le tele o faʻataʻitaʻiga o le a fesoʻotaʻi i se tasi auala poʻo se isi ma le atinaʻeina o upega tafaʻilagi (o se mea e ofo ai), ma PHP ma Docker.

O palakalafa o loʻo i lalo o loʻo tuʻuina atu ai se faʻamatalaga faigofie faigofie o le faʻaogaina o mea taua e faʻaaoga ai faʻataʻitaʻiga faʻapitoa; afai e te manaʻo e maua atili aʻoaʻoga i lenei autu, mulimuli i sootaga o loʻo i luga i le puna muamua.

1. Codebase

Faʻaaoga FTP ma FileZilla e faʻapipiʻi ai faila i le 'auʻaunaga taʻitasi, aua le teuina le code i soʻo se mea e ese mai i luga o le gaosiga o galuega.

O le poloketi e tatau ona i ai i taimi uma se faʻavae code tasi, o lona uiga, o code uma e sau mai le tasi Git faleteuoloa. O 'au'aunaga (gaosi, fa'atulagaina, su'ega1, su'ega2...) fa'aaoga le fa'ailoga mai lala o le fale fa'atau masani. O le auala lea matou te ausia ai le faʻaogaina o le code.

2. Fa'alagolago

La'u sa'o uma faletusi i faila i le a'a o le poloketi. Fa'afou fa'afouga na'o le fa'aliliuina o le code fou i le fa'ailoga fa'atasi ai ma le fa'asologa o lo'o iai nei o le faletusi. Faʻapipiʻi saʻo uma mea faʻaoga talafeagai i luga o le 'auʻaunaga talimalo lea e 20 isi auʻaunaga o loʻo faʻaogaina.

O se poloketi e tatau ona i ai i taimi uma se lisi malamalama manino o faʻalagolago (e ala i faʻalagolago ou te uiga foi i le siosiomaga). O fa'alagolago uma e tatau ona fa'amalamalama manino ma tu'ufua.
Seʻi o tatou fai ma faaaʻoaʻoga fatupese и Docker.

fatupese - o se pule o pusa e mafai ai ona e faʻapipiʻi faletusi ile PHP. E fa'atagaina oe e le fatupese e fa'amanino fa'aliliuga fa'apitoa pe fa'atalatala, ma fa'amalamalama manino i latou. E mafai ona i ai 20 galuega eseese i luga o le 'auʻaunaga ma o le a tofu i latou ma se lisi patino o afifi ma faletusi tutoatasi mai le isi.

Docker - o se aoga e mafai ai e oe ona faʻamalamalamaina ma faʻaesea le siosiomaga o le a faʻaogaina ai le talosaga. E tusa ai, e pei lava o le fatu pese, ae sili atu le maeʻaeʻa, e mafai ona tatou iloa le mea e galue ai le talosaga. Filifili se faʻamatalaga patino o le PHP, faʻapipiʻi naʻo afifi e manaʻomia mo le poloketi e galue, e aunoa ma le faʻaopoopoina o se mea faʻaopoopo. Ma sili ona taua, e aunoa ma le faʻalavelave i afifi ma le siosiomaga o le masini talimalo ma isi galuega faatino. O lona uiga, o galuega uma i luga o le 'auʻaunaga o loʻo faʻaogaina e Docker e mafai ona faʻaaogaina atoatoa soʻo se seti o afifi ma se siosiomaga e matua ese lava.

3. Fa'atulagaga

Teu configs e pei o tumau tuusao i le code. Tu'ufa'atasi tumau mo le su'ega su'ega, vavae ese mo le gaosiga. Nonoa le faagaoioiga o le talosaga e faalagolago i luga o le siosiomaga tuusaʻo i le pisinisi manatu o le galuega faatino pe a fai seisi fau.

Fa'atonuga - na'o le pau lea o le auala e tatau ai ona 'ese'ese le fa'atinoina o galuega. O le mea e sili ona lelei, e tatau ona pasi atu faʻasalalauga i fesuiaiga o le siosiomaga (env vars).

O lona uiga, e tusa lava pe e te teuina ni faila faila .config.prod .config.local ma toe faʻaigoaina i latou i le taimi o le faʻapipiʻiina i le .config (le faʻatonuga autu lea e faitau ai e le talosaga faʻamaumauga) - e le o le auala saʻo lea, talu ai i lenei tulaga o faʻamatalaga mai faʻasalalauga o le a faʻasalalau lautele i tagata faʻapipiʻi talosaga uma ma faʻamaumauga mai le gaosiga o le gaosiga o le a faʻafefeteina. O faʻasalalauga uma e tatau ona teuina saʻo i totonu o le faʻaogaina o le polokalama (CI / CD) ma faʻatupuina mo siosiomaga eseese ma tulaga taua eseese e manaʻomia mo se siosiomaga faʻapitoa i le taimi o le faʻapipiʻiina.

4. Tolu Vaega Auaunaga

Ia matua saisaitia i le siosiomaga, faʻaoga fesoʻotaʻiga eseese mo auaunaga tutusa i nisi siosiomaga.

O le mea moni, o lenei manatu e matua faʻafefeteina ma le manatu e uiga i faʻasalalauga, talu ai a aunoa ma lenei tulaga, e le mafai ona faia faʻamaumauga masani masani ma, i se tulaga lautele, o le mafai ona faʻatulagaina o le a pa'ū i le leai.

O feso'ota'iga uma i 'au'aunaga i fafo, e pei o 'au'aunaga tu'i, fa'amaumauga, 'au'aunaga caching, e tatau ona tutusa mo le si'osi'omaga fa'apitonu'u ma le si'osi'omaga lona tolu / gaosiga. I se isi faaupuga, i soʻo se taimi, e ala i le suia o le manoa fesoʻotaʻiga, e mafai ona ou suitulaga i le faavae #1 ma le faavae #2 e aunoa ma le suia o le numera o talosaga. Pe, vaʻai i luma, e fai ma faʻataʻitaʻiga, pe a faʻalauteleina le tautua, e te le tau faʻamaonia le fesoʻotaʻiga i soʻo se auala faʻapitoa mo se faʻaoga faʻapipiʻi faʻapipiʻi.

5. Fausia, tatala, faatino

Ia na'o le fa'ai'uga mulimuli o le fa'ailoga i luga o le 'au'aunaga, e aunoa ma se avanoa e toe fa'afo'i ai le fa'amalolo. E le mana'omia le fa'atumuina o avanoa tisiki. Soʻo se tasi e manatu e mafai ona latou tuʻuina atu le code i le gaosiga ma se mea sese o se tagata fai polokalame leaga!

O vaega uma o le faʻapipiʻiina e tatau ona vavae ese mai le tasi ma le isi.

Ia maua se avanoa e toe fo'i ai i tua. Faʻasalalau faʻatasi ma kopi tuai o le talosaga (ua uma ona faʻapipiʻi ma sauni mo le taua) faʻasaoina i se avanoa vave, ina ia i ai ni mea sese e mafai ona e toe faʻafoʻisia le kopi tuai. O lona uiga, i se tulaga e iai se faila faamalologa ma le faila i le taimi nei, ma a maeʻa le faʻapipiʻiina ma le faʻapipiʻiina o le faila i le taimi nei feso'ota'i i se feso'ota'iga fa'atusa i le fa'asalalauga fou o lo'o taoto i totonu faamalologa fa'atasi ai ma le igoa masani o le numera fa'amalolo.

O le mea lea matou te manatua ai le Blue-Green deployment, lea e mafai ai e le gata e fesuiaʻi i le va o code, ae faʻapea foʻi ona fesuiaʻi i le va o punaoa uma ma e oʻo lava i siosiomaga ma le mafai ona toe faʻafoʻi mea uma.

6. Fa'agasologa

Teu fa'amatalaga tulaga o talosaga i totonu o le talosaga lava ia. Faʻaaoga vasega i le RAM o le talosaga lava ia. Fa'aaogā le tele o fefa'asoaa'iga i le va o 'au'aunaga isi vaega e mafai. Fa'alagolago i le mea moni o le talosaga e na'o le tasi le faiga ma e le fa'atagaina le fa'afuaina.

E tusa ai ma sauniga, teuina faʻamatalaga i totonu o se faʻaoga e pulea e isi vaega (memcached, redis), e tusa lava pe e 20 au faʻaoga faʻaoga o loʻo faʻagaoioia, soʻo se tasi oi latou, pe a maua le cache, o le a mafai ona faʻaauau ona galulue ma le kalani i totonu. o le tulaga lava lea na galue ai le tagata faʻaoga ma le talosaga i se isi faiga. Faatasi ai ma lenei faiga, e foliga mai e tusa lava po o le a le tele o kopi o auʻaunaga isi vaega e te faʻaaogaina, o mea uma o le a galue masani ma e aunoa ma ni faʻafitauli i le avanoa i faʻamatalaga.

7. Faamauina uafu

E na'o le 'upega tafa'ilagi e tatau ona iloa pe fa'afefea ona galulue fa'atasi ma auaunaga a isi vaega. Po'o le sili atu, fa'apipi'i sa'o 'au'aunaga isi vaega i totonu ole 'upega tafa'ilagi. Mo se faʻataʻitaʻiga, o se PHP module i Apache.
O au 'auʻaunaga uma e tatau ona faʻaogaina e le tasi le isi e ala i le avanoa i se tuatusi ma le taulaga (localgost: 5432, localhost: 3000, nginx: 80, php-fpm: 9000), o lona uiga, mai le nginx e mafai ona ou mauaina uma php-fpm ma le postgres, ma mai le php-fpm i le postgres ma le nginx ma o le mea moni mai auaunaga taitasi e mafai ona ou mauaina se isi auaunaga. I lenei auala, o le faʻaogaina o se auaunaga e le o noatia i le faʻaogaina o se isi auaunaga.

8. Fa'atasi

Galulue i le tasi faiga, a le o le tele o faiga o le a le mafai ona fegalegaleai ma le tasi!

Tu'u le avanoa mo le fua. Docker swarm e lelei tele mo lenei.
Docker Swarm o se meafaigaluega mo le fatuina ma le puleaina o fuifui o koneteina i le va o masini eseese ma le tele o pusa i luga o le masini e tasi.

I le faʻaaogaina o le au, e mafai ona ou fuafua pe fia le tele o punaoa o le a ou tuʻuina atu i faiga taʻitasi ma le tele o faʻagasologa o le auaunaga lava e tasi o le a ou faʻalauiloaina, ma o le paleni i totonu, mauaina o faʻamatalaga i luga o se taulaga tuʻuina atu, o le a otometi lava ona sui i faiga. O le mea lea, i le vaʻaia o le uta i luga o le 'auʻaunaga ua faʻateleina, e mafai ona ou faʻaopoopo atili faʻagasologa, ma faʻaitiitia ai le avega i luga o nisi faiga.

9. Fa'aleaogaina

Aua le fa'aogaina laina e galue ai ma fa'agaioiga ma fa'amaumauga. O le tapeina o se tasi faiga e tatau ona aafia ai le talosaga atoa. Afai e tasi le auaunaga e alu i lalo, o mea uma e alu i lalo.

E mafai ona tape uma faiga ma auaunaga i soo se taimi ma e le tatau ona aafia ai isi auaunaga (ioe, e le faapea o le a le avanoa le auaunaga mo se isi auaunaga, ae o le a le tape se isi auaunaga pe a uma lenei). O faiga uma e tatau ona faʻamutaina ma le alofa, ina ia faʻamutaina, e leai se faʻamaumauga e faʻaleagaina ma o le a lelei le faiga i le isi taimi e te ki ai. O lona uiga, e tusa lava pe oʻo i se faʻalavelave faʻafuaseʻi, e le tatau ona faʻaleagaina faʻamatalaga (o le faʻaogaina o fefaʻatauaiga e talafeagai iinei, fesili i totonu o faʻamaumauga e galue naʻo vaega, ma afai e le itiiti ifo ma le tasi le fesili mai le vaega e le manuia pe faʻatinoina ma se sese, ona leai lea o se isi fesili mai le vaega e iu ina le manuia).

10. Atina'e talosaga/fa'agaioiga tutusa

O gaosiga, fa'atulagaina ma fa'alotoifale o le talosaga e tatau ona 'ese'ese. I le gaosiga matou te faʻaogaina le Yii Lite framework, ma le lotoifale Yii, ina ia galue vave i le gaosiga!

O le mea moni, o faʻapipiʻi uma ma galulue faʻatasi ma code e tatau ona i ai i se siosiomaga tutusa (matou te le o talanoa e uiga i meafaigaluega faʻapitoa). E le gata i lea, o soʻo se tagata faigaluega atinaʻe e tatau ona mafai ona faʻapipiʻi le code i le gaosiga pe a manaʻomia, ae le o se matagaluega faʻapitoa aʻoaʻoina devops, e naʻo le faʻafetai i le malosi faʻapitoa e mafai ona siitia le talosaga i le gaosiga.

E fesoasoani foi Docker ia i matou i lenei mea. Afai e matauina uma mea muamua, o le faʻaaogaina o le docker o le a aumaia ai le faagasologa o le faʻaogaina o le siosiomaga i luga o le gaosiga ma luga o le masini i le lotoifale e ulufale ai i se tasi pe lua poloaiga.

11. Ogalaau

Matou te tusia ogalaau i faila ma faʻamaumauga! Matou te le faʻamamaina faila ma faʻamaumauga mai ogalaau. Se'i na'o le fa'atauina o se ta'avale malo e 9000 Peta bytes ma e lelei.

O ogalaau uma e tatau ona manatu o se fa'asologa o mea tutupu. O le talosaga lava ia e le tatau ona a'afia i le fa'againa o ogalaau. O ogalaau e tatau ona tu'uina atu i le stdout po'o le auina atu e ala i se protocol e pei o le udp, ina ia le galue i ogalaau e le tupu ai ni fa'afitauli mo le talosaga. e lelei le graylog mo lenei mea. Graylog mauaina uma ogalaau e ala i le udp (o lenei feagaiga e le manaʻomia le faʻatali mo se tali e uiga i le manuia o le mauaina o le afifi) e le faʻalavelaveina le talosaga i soʻo se auala ma e naʻo le faʻatulagaina ma le faʻatulagaina o ogalaau. E le suia le faʻaogaina o le faʻaogaina e galue ai ma ia auala.

12. Galuega tau pulega

Ina ia faʻafouina faʻamaumauga, faʻamaumauga, ma isi, faʻaoga se mea e tuʻu eseʻese i le API, faʻatino 2 taimi i se laina o le a mafua ai ona faʻaluaina mea uma. Ae e te le valea, e te le kiliki faalua, ma matou te le manaʻomia le faimalaga.

O galuega fa'afoe uma e tatau ona fa'atino i le si'osi'omaga tutusa ma fa'ailoga uma, ile tulaga fa'asa'oloto. O lona uiga, afai tatou te manaʻomia le suia o le fausaga o faʻamaumauga, ona tatou le faia lea ma le lima e ala i le suia o igoa o koluma ma faʻaopoopo mea fou e ala i nisi meafaigaluega faʻatautaia faʻamaumauga vaʻaia. Mo ia mea, matou te faia ni tusitusiga eseese - femalagaiga, lea e faʻatinoina i soʻo se mea ma i siosiomaga uma i le auala tutusa ma se taunuuga masani ma malamalama. Mo isi galuega uma, e pei o le faʻatumuina o le poloketi i faʻamaumauga, e tatau ona faʻaogaina auala tutusa.

Faʻataʻitaʻiga faʻatinoga ile PHP, Laravel, Laradock, Docker-Compose

PS O faʻataʻitaʻiga uma na faia ile MacOS. Ole tele oi latou e fetaui lelei mo Linux. Tagata fa'aoga Windows, fa'amagalo mai a'u, ae ou te le'i galue ma Windows mo se taimi umi.

Sei o tatou mafaufau i se tulaga e leai se faʻamatalaga o PHP faʻapipiʻiina i luga o la tatou PC ae leai se mea.
Faʻapipiʻi lomiga fou o le docker ma le docker-compose. (e mafai ona maua i luga ole Initaneti)

docker -v && 
docker-compose -v

Atinaʻeina o talosaga ma le faʻaogaina o le Blue-Green, faʻavae i luga o le Twelve-Factor App methodology ma faʻataʻitaʻiga ile php ma le docker

1. Tuu Laradock

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

Atinaʻeina o talosaga ma le faʻaogaina o le Blue-Green, faʻavae i luga o le Twelve-Factor App methodology ma faʻataʻitaʻiga ile php ma le docker

E uiga ia Laradock, o le a ou fai atu o se mea manaia tele, lea e aofia ai le tele o pusa ma mea fesoasoani. Ae ou te le fautuaina le faʻaaogaina o Laradock e aunoa ma ni suiga i le gaosiga ona o lona toe faʻaaogaina. E sili atu le fatuina o au lava koneteina e faʻavae i luga o faʻataʻitaʻiga i Laradock, o le a sili atu le faʻaleleia, aua e leai se tasi e manaʻomia mea uma o loʻo i ai i le taimi e tasi.

2. Fa'atulaga Laradock e fa'atino la matou talosaga.

cd laradock && 
cp env-example .env

Atinaʻeina o talosaga ma le faʻaogaina o le Blue-Green, faʻavae i luga o le Twelve-Factor App methodology ma faʻataʻitaʻiga ile php ma le docker

2.1. Tatala le lisi o le habr (le matua faila i totonu o loʻo faʻapipiʻi ai le laradock) i nisi faatonu. (I laʻu mataupu PHPStorm)

I le la'asaga lea e na'o le ta'u atu o le poloketi se igoa.

Atinaʻeina o talosaga ma le faʻaogaina o le Blue-Green, faʻavae i luga o le Twelve-Factor App methodology ma faʻataʻitaʻiga ile php ma le docker

2.2. Tatala le ata o le avanoa faigaluega. (I lou tulaga, o ata e umi se taimi e fau ai)
Workspace o se ata ua saunia faapitoa mo le galue ma le faʻavaa e fai ma sui o le tagata atiaʻe.

Matou te o i totonu o le koneteina faʻaaoga

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

Atinaʻeina o talosaga ma le faʻaogaina o le Blue-Green, faʻavae i luga o le Twelve-Factor App methodology ma faʻataʻitaʻiga ile php ma le docker

2.3. Fa'apipi'i Laravel

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

Atinaʻeina o talosaga ma le faʻaogaina o le Blue-Green, faʻavae i luga o le Twelve-Factor App methodology ma faʻataʻitaʻiga ile php ma le docker

2.4. A maeʻa faʻapipiʻi, matou siaki pe o le faʻatonuga ma le poloketi na faia ma fasioti le fatu.

ls
exit
docker-compose down

Atinaʻeina o talosaga ma le faʻaogaina o le Blue-Green, faʻavae i luga o le Twelve-Factor App methodology ma faʻataʻitaʻiga ile php ma le docker

2.5. Tatou toe fo'i ile PHPStorm ma seti le ala sa'o ile laravel application ile faila .env.

Atinaʻeina o talosaga ma le faʻaogaina o le Blue-Green, faʻavae i luga o le Twelve-Factor App methodology ma faʻataʻitaʻiga ile php ma le docker

3. Fa'aopoopo uma le code ile Git.

Ina ia faia lenei mea, matou te fatuina se fale teu oloa i Github (poʻo se isi mea). Tatou alu i le lisi o le habr i le terminal ma faatino le code lea.

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

Sei o tatou siaki pe o lelei mea uma.

Atinaʻeina o talosaga ma le faʻaogaina o le Blue-Green, faʻavae i luga o le Twelve-Factor App methodology ma faʻataʻitaʻiga ile php ma le docker

Mo le faʻaogagofie, ou te fautuaina le faʻaogaina o se faʻaaliga vaʻaia mo Git, i laʻu tulaga GitKraken. (o se feso'ota'iga fa'asinomaga)

4. Tatou amata!

A'o le'i amataina, ia mautinoa e leai se mea o tautau i luga o ports 80 ma 443.

docker-compose up -d nginx php-fpm

Atinaʻeina o talosaga ma le faʻaogaina o le Blue-Green, faʻavae i luga o le Twelve-Factor App methodology ma faʻataʻitaʻiga ile php ma le docker

O lea la, o la matou poloketi e aofia ai 3 auaunaga eseese:

  • nginx - 'upega tafaʻilagi
  • php-fpm - php mo le mauaina o talosaga mai se upega tafaʻilagi
  • avanoa faigaluega - php mo tagata atiaʻe

I le taimi nei, ua matou ausia ua matou fatuina se talosaga e fetaui ma 4 points mai le 12, e pei o:

1. Codebase - o tulafono uma o loʻo i totonu o le fale teu oloa (tamaʻi faʻamatalaga: atonu e saʻo le faʻaopoopoina o le docker i totonu o le laravel project, ae e le taua).

2. Fa'alagolago - O matou fa'alagolago uma o lo'o tusia manino i le application/composer.json ma i Dockerfile ta'itasi o koneteina ta'itasi.

3. Au'aunaga Lagolago — O au'aunaga ta'itasi (php-fom, nignx, workspace) o lo'o ola i lona lava olaga ma feso'ota'i mai fafo ma pe a galulue i le tasi auaunaga, o le a le afaina le isi.

4. O faagasologa — o auaunaga taitasi e tasi le faagasologa. O 'au'aunaga ta'itasi e le fa'atumauina le tulaga i totonu.

5. Faamauina o uafu

docker ps

Atinaʻeina o talosaga ma le faʻaogaina o le Blue-Green, faʻavae i luga o le Twelve-Factor App methodology ma faʻataʻitaʻiga ile php ma le docker

E pei ona mafai ona tatou vaʻaia, o auaunaga taʻitasi e taʻavale i luga o lona lava taulaga ma e mafai ona maua i isi auaunaga uma.

6. Parallelism

Docker faʻatagaina i matou e faʻapipiʻi le tele o faiga o auaunaga tutusa ma le paleni otometi i le va o latou.

Sei o tatou taofi atigipusa ae taamilo i le fu'a --fua

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

Atinaʻeina o talosaga ma le faʻaogaina o le Blue-Green, faʻavae i luga o le Twelve-Factor App methodology ma faʻataʻitaʻiga ile php ma le docker

E pei ona mafai ona tatou vaʻaia, ua faia kopi o le pusa php-fpm. Matou te le manaʻomia le suia o soʻo se mea i le galulue ai ma lenei pusa. Matou te faʻaauau pea ona maua i luga o le taulaga 9000, ma faʻatonutonu e Docker le uta i le va o koneteina mo i matou.

7. Tu'u ese - e mafai ona fasiotia ta'itasi atigipusa e aunoa ma le fa'aleagaina o le isi. O le taofi po'o le toe fa'afouina o le koneteina o le a le a'afia ai le fa'agaioiga o le talosaga i le taimi o fa'alauiloa mulimuli ane. E mafai fo'i ona si'i i luga koneteina ta'itasi i so'o se taimi.

8. Atina'e o talosaga/fa'agaioiga tutusa - o tatou siosiomaga uma e tutusa. E ala i le faʻaogaina o le polokalama i luga o se 'auʻaunaga i le gaosiga, e te le tau suia se mea i au poloaiga. O mea uma o le a faʻavae i luga o Docker i le auala lava e tasi.

9. Fa'amauina - o ogalaau uma i totonu o nei koneteina e alu i le tafe ma o loʻo vaaia i le Docker console. (i lenei tulaga, o le mea moni, faatasi ai ma isi koneteina fale, atonu e le o le tulaga lea pe afai e te le tausia)

 docker-compose logs -f

Atinaʻeina o talosaga ma le faʻaogaina o le Blue-Green, faʻavae i luga o le Twelve-Factor App methodology ma faʻataʻitaʻiga ile php ma le docker

Ae o loʻo i ai se puʻupuʻu o le Default values ​​​​i PHP ma Nginx e tusi foi ogalaau i se faila. Ina ia ausia tulaga e 12, e manaʻomia taofiofia tusia o ogalaau i se faila i le faatulagaga o pusa taitasi eseese.

O loʻo tuʻuina atu foʻi e Docker le tomai e lafo ai ogalaau e le gata i le stdout, ae faʻapea foi i mea e pei o le graylog, lea na ou taʻua i luga. Ma i totonu o le graylog, e mafai ona matou faʻaogaina ogalaau pe a matou manaʻo ai ma o le a le matauina e le matou talosaga lenei mea i soo se auala.

10. Galuega tau pulega - o galuega uma tau pulega e foia e laravel faafetai i le meafaigaluega tufuga e pei lava ona manaʻo i ai le au foafoa o le talosaga 12 vaega.

Mo se faʻataʻitaʻiga, o le a ou faʻaalia pe faʻapefea ona faʻatinoina nisi o poloaiga.
Matou te o i totonu o le koneteina.

 
docker-compose exec workspace bash
php artisan list

Atinaʻeina o talosaga ma le faʻaogaina o le Blue-Green, faʻavae i luga o le Twelve-Factor App methodology ma faʻataʻitaʻiga ile php ma le docker

O lea e mafai ona tatou faʻaogaina soʻo se poloaiga. (fa'amolemole ia maitauina matou te leʻi faʻapipiʻiina le database ma le cache, o lea o le afa o poloaiga o le a le faʻatinoina saʻo, aua ua mamanuina e galulue ai ma le cache ma le database).

Atinaʻeina o talosaga ma le faʻaogaina o le Blue-Green, faʻavae i luga o le Twelve-Factor App methodology ma faʻataʻitaʻiga ile php ma le docker

11. Fa'atonuga ma le 12. Fausia, tatala, tamoe

Na ou manaʻo e tuʻuina atu lenei vaega i le Blue-Green Deployment, ae na faʻaalia e matua tele mo lenei tusiga. O le a ou tusia se tala ese e uiga i lenei mea.

I se fa'apuupuuga, o le manatu e fa'avae i luga o faiga CI/CD pei Jenkins и Gitlab CI. I mea uma e lua, e mafai ona e setiina fesuiaiga o le siosiomaga e fesoʻotaʻi ma se siosiomaga faʻapitoa. E tusa ai, i lenei tulaga, o le a faataunuuina le vaega c Fa'atonuga.

Ma le manatu e uiga i Fausia, tatala, tamoe e foia e fausia-i galuega tauave ma le igoa Pipili.

Pipili faʻatagaina oe e vaevaeina le faʻaogaina o le faʻagasologa i le tele o laʻasaga, faʻamaonia tulaga o le faʻapotopotoga, faʻamalolo ma le faʻataunuʻuina. Faʻapea foʻi i le Pipeline, e mafai ona e faia faʻamaumauga, ma e moni lava soʻo se mea. O se meafaigaluega e leai se gataaga.

O le numera o talosaga o loʻo i Github.
Aua nei galo e amata le submodule pe a faʻapipiʻi lenei fale teu oloa.

PS: O nei auala uma e mafai ona faʻaogaina i soʻo se isi lava aoga ma gagana polokalame. O le mea autu o le mea moni e le eseese.

puna: www.habr.com

Faaopoopo i ai se faamatalaga