Nts'etsopele ea kopo le phepelo ea Blue-Green, e ipapisitseng le mokhoa oa The Twelve-Factor App ka mehlala ho php le docker.

Nts'etsopele ea kopo le phepelo ea Blue-Green, e ipapisitseng le mokhoa oa The Twelve-Factor App ka mehlala ho php le docker.

Pele, khopolo e nyenyane. Tse etsahetseng The Leshome le metso e 'meli-Factor App?

Ka mantsoe a bonolo, tokomane ena e etselitsoe ho nolofatsa nts'etsopele ea lits'ebetso tsa SaaS, ho thusa ka ho tsebisa baetsi le baenjiniere ba DevOps ka mathata le litloaelo tse atisang ho kopana le nts'etsopele ea lits'ebetso tsa sejoale-joale.

Tokomane e entsoe ke baetsi ba sethala sa Heroku.

The Twelve-Factor App e ka sebelisoa lits'ebetsong tse ngotsoeng ka puo efe kapa efe ea lenaneo le ho sebelisa mefuta efe kapa efe ea litšebeletso tsa tšehetso (li-database, mela ea melaetsa, li-cache, joalo-joalo).

Ka bokhutšoanyane ka mabaka ao mokhoa ona o theiloeng holim'a ona:

  1. Codebase - Codebase e le 'ngoe e lateloang taolong ea mofuta - li-deployments tse ngata
  2. Ho itšetleha - Hlalosa ka ho hlaka le ho arola batho ba itšetlehileng ka bona
  3. Moralo - Boloka tlhophiso nakong ea ts'ebetso
  4. Litšebeletso tsa tšehetso - Nka litšebeletso tsa tšehetso e le lisebelisoa tsa plug-in
  5. Haha, lokolla, matha - Arola ka ho hlaka mekhahlelo ea kopano le ea ho phethahatsa
  6. Mekhahlelo - Sebelisa ts'ebeliso joalo ka ts'ebetso e le 'ngoe kapa ho feta tse se nang moeli
  7. Tlamo ea boema-kepe - Litšebeletso tsa ho romella kantle ho naha ka ho tlama li-port
  8. Parallelism - Lekola sesebelisoa sa hau u sebelisa lits'ebetso
  9. Ho lahloa - Eketsa ts'epo ka ho qala ka potlako le ho koala sekheo se hloekileng
  10. Kholiso ea ts'ebetso / tekano ea ts'ebetso - Boloka libaka tsa hau tsa nts'etsopele, sethala le tlhahiso li ts'oana kamoo ho ka khonehang
  11. Ho rema lifate - Sheba log e le letoto la liketsahalo
  12. Mesebetsi ea tsamaiso - Etsa mesebetsi ea tsamaiso/tsamaiso u sebelisa lits'ebetso tsa nakoana

U ka fumana leseli le eketsehileng mabapi le lintlha tse 12 ho tsoa mehloling e latelang:

Blue-Green deployment ke eng?

Blue-Green deployment ke mokhoa oa ho isa kopo ho Tlhahiso ka tsela eo mofani oa ho qetela a sa boneng liphetoho leha e le life lehlakoreng la hae. Ka mantsoe a mang, ho tsamaisa ts'ebeliso ka zero thapama.

Sekema sa khale sa BG Deploy se shebahala joalo ka se bontšitsoeng setšoantšong se ka tlase.

Nts'etsopele ea kopo le phepelo ea Blue-Green, e ipapisitseng le mokhoa oa The Twelve-Factor App ka mehlala ho php le docker.

  • Qalong ho na le li-server tse 2 tsa 'mele tse nang le khoutu e ts'oanang, ts'ebeliso, projeke, mme ho na le router (balancer).
  • Qalong router e lebisa likopo tsohle ho e 'ngoe ea li-server (e tala).
  • Nakong eo u hlokang ho lokolla hape, morero oohle o nchafatsoa ho seva se seng (e putsoa), eo hajoale e sa sebetseng likopo leha e le life.
  • Kamora hore khoutu e bulelwe putsoa seva e nchafalitsoe ka ho feletseng, router e fuoa taelo ea ho tloha tala mabapi le e putsoa seva.
  • Hona joale bareki bohle ba bona sephetho sa khoutu e sebetsang le e putsoa seva.
  • Ka nako e itseng, e tala seva e sebetsa e le kopi ea bekapo ha ho ka ba le phepelo e sa atleheng ho e putsoa seva 'me haeba ho hlōleha le likokoana-hloko, router e fetola phallo ea mosebedisi ho khutlela ho e tala seva e nang le mofuta oa khale o tsitsitseng, 'me khoutu e ncha e romelloa bakeng sa tlhahlobo le tlhahlobo.
  • 'Me qetellong ea ts'ebetso, e nchafatsoa ka mokhoa o ts'oanang e tala seva. 'Me ka mor'a ho e ntlafatsa, router e fetola phallo ea kopo ho khutlela ho e tala seva.

Tsohle li shebahala li le ntle haholo 'me ha u habanya feela ha lia lokela ho ba le mathata leha e le afe ka eona.
Empa kaha re phela lefatšeng la sejoale-joale, khetho e nang le phetoho ea 'mele joalo ka ha e bonts'itsoe lenaneong la khale ha e re tšoanele. Rekota lintlha tsa hajoale, re tla khutlela ho tsona hamorao.

Keletso e mpe le e ntle

ikgololo: Mehlala e ka tlase e bonts'a lits'ebeletso/mekhoa eo ke e sebelisang, u ka sebelisa mekhoa efe kapa efe e nang le mesebetsi e ts'oanang.

Mehlala e mengata e tla kopana ka tsela e 'ngoe le nts'etsopele ea webo (sena ke ntho e makatsang), ka PHP le Docker.

Litemana tse ka tlase li fana ka tlhaloso e bonolo ea tšebeliso ea lintlha tse sebelisang mehlala e itseng; haeba u batla ho fumana khopolo e eketsehileng tabeng ena, latela likhokahano tse ka holimo ho ea mohloling oa pele.

1. Codebase

Sebelisa FTP le FileZilla ho kenya lifaele ho li-server ka nako e le 'ngoe, u se ke ua boloka khoutu kae kapa kae ntle le ho seva sa tlhahiso.

Morero o lokela ho lula o na le khoutu e le 'ngoe, ke hore, khoutu eohle e tsoa ho e le' ngoe Git polokelo. Li-server (tlhahiso, sethala, test1, test2 ...) li sebelisa khoutu e tsoang makaleng a polokelo e le 'ngoe e tloaelehileng. Ka tsela ena re finyella ho lumellana ha khoutu.

2. Ho itšetleha

Khoasolla lilaebrari tsohle ka har'a lifoldara ka kotloloho ho motso oa projeke. Etsa liapdeite ka ho fetisetsa khoutu e ncha foldareng ka mofuta oa hajoale oa laeborari. Kenya lisebelisoa tsohle tse hlokahalang ka kotloloho ho seva se amohelang moo litšebeletso tse ling tse 20 li sebetsang.

Morero o lokela ho lula o e-na le lethathamo le hlakileng la batho ba itšetlehileng ka bona (ka ho itšetleha ke boetse ke bolela tikoloho). Lintho tsohle tse itšetlehileng ka tsona li tlameha ho hlalosoa ka ho hlaka le ho aroloa.
Ha re nke mohlala Moqapi и Docker.

Moqapi - mookameli oa sephutheloana ea u lumellang ho kenya lilaebrari ho PHP. Moqapi o u lumella ho hlakisa liphetolelo ka mokhoa o tiileng kapa o hlephileng, le ho li hlalosa ka ho hlaka. Ho ka ba le merero e fapaneng ea 20 ho seva mme e 'ngoe le e' ngoe e tla ba le lethathamo la liphutheloana le lilaebrari tse ikemetseng ho tse ling.

Docker - sesebelisoa se u lumellang ho hlalosa le ho arola tikoloho eo kopo e tla sebetsa ho eona. Ka hona, joalo ka moqapi, empa ka botlalo, re ka tseba hore na kopo e sebetsa ka eng. Khetha mofuta o itseng oa PHP, kenya feela liphutheloana tse hlokahalang hore projeke e sebetse, ntle le ho eketsa letho. Habohlokoa ka ho fetisisa, ntle le ho kena-kenana le liphutheloana le tikoloho ea mochine o amohelang baeti le merero e meng. Ka mantsoe a mang, merero eohle e ho seva e tsamaeang ka Docker e ka sebelisa sete ea liphutheloana le tikoloho e fapaneng ka ho felletseng.

3. Tlhophiso

Boloka li-configs e le li-constants ka ho toba khoutu. Li-constants tse arohaneng bakeng sa seva sa teko, tse arohaneng bakeng sa tlhahiso. Tlama ts'ebetso ea ts'ebeliso ho latela tikoloho ka kotloloho mohopolong oa khoebo oa projeke o sebelisa haeba ho ka hahoa.

Litlhophiso - ena ke eona feela tsela eo phepelo ea morero e lokelang ho fapana. Ka nepo, litlhophiso li lokela ho fetisoa ka mefuta e fapaneng ea tikoloho (env vars).

Ke hore, le haeba u boloka lifaele tse 'maloa tsa tlhophiso .config.prod .config.local' me u li reha lebitso nakong ea ho romelloa ho .config (sebopeho se seholo seo kopo e balang data ho sona) - sena e ke ke ea e-ba mokhoa o nepahetseng, kaha Tabeng ena, lintlha tse tsoang ho litlhophiso li tla fumaneha phatlalatsa ho bohle ba ntlafatsang likopo mme data e tsoang ho seva sa tlhahiso e tla senyeha. Litlhophiso tsohle li tlameha ho bolokoa ka kotloloho tsamaisong ea thomello (CI/CD) 'me e hlahisetsoe libaka tse fapaneng tse nang le boleng bo fapaneng bo hlokahalang bakeng sa tikoloho e itseng ka nako ea thomello.

4. Litšebeletso tsa Mokha oa Boraro

Ikopanye ka thata le tikoloho, sebelisa likhokahano tse fapaneng bakeng sa lits'ebeletso tse tšoanang libakeng tse itseng.

Ha e le hantle, ntlha ena e lumellana ka matla le ntlha e mabapi le litlhophiso, kaha ntle le ntlha ena, data e tloaelehileng ea tlhophiso e ke ke ea etsoa 'me, ka kakaretso, bokhoni ba ho lokisa bo tla theohela lefeela.

Lihokelo tsohle tsa lits'ebeletso tsa kantle, joalo ka li-server tsa mela, li-database, lits'ebeletso tsa caching, li tlameha ho tšoana bakeng sa tikoloho ea lehae le tikoloho ea motho oa boraro / ea tlhahiso. Ka mantsoe a mang, ka nako leha e le efe, ka ho fetola khoele ea khokahanyo, nka khutlisa li-call ho ea ho #1 ka setsi sa #2 ntle le ho fetola khoutu ea kopo. Kapa, ​​​​ka mohlala, ha u sheba pele, ha u eketsa tšebeletso, ha ho hlokahale hore u hlalose khokahano ka tsela leha e le efe e khethehileng bakeng sa seva se eketsehileng sa cache.

5. Haha, lokolla, phethisa

Eba le mofuta oa ho qetela oa khoutu ho seva feela, ntle le monyetla oa ho khutlisa tokollo. Ha ho hlokahale ho tlatsa sebaka sa disk. Mang kapa mang ea nahanang hore a ka lokolla khoutu ho hlahisa ka phoso ke moqapi o mobe!

Mekhahlelo eohle ea ho romelloa e tlameha ho aroloa ho e mong.

E-ba le monyetla oa ho khutlela morao. Etsa litokollo ka likopi tsa khale tsa ts'ebeliso (e seng e bokane 'me e itokiselitse ntoa) e bolokiloe ka phihlello e potlakileng, e le hore haeba ho na le liphoso u ka khutlisetsa mofuta oa khale. Ka mantsoe a mang, ho na le foldara ho lokolloa le foldara hajwale, 'me ka mor'a ho tsamaisoa ka katleho le ho kopanya foldara hajwale e amahanngoa ke sehokelo sa tšoantšetso tokollong e ncha e ka hare ho lokolloa ka lebitso le tlwaelehileng la nomoro ya tokollo.

Mona ke moo re hopolang ho tsamaisoa ha Blue-Green, e leng se u lumellang hore u se ke ua fetola pakeng tsa khoutu feela, empa hape le ho fetola pakeng tsa lisebelisoa tsohle esita le libaka tse nang le bokhoni ba ho khutlisetsa ntho e 'ngoe le e' ngoe morao.

6. Mekhoa

Boloka data ea boemo ba ts'ebeliso ka kotloloho ka har'a sesebelisoa ka bosona. Sebelisa linako ho RAM ea sesebelisoa ka boeona. Sebelisa ho arolelana haholo lipakeng tsa lits'ebeletso tsa batho ba bang kamoo ho ka khonehang. Itšetlehe tabeng ea hore kopo e ka ba le ts'ebetso e le 'ngoe feela' me ha e lumelle ho eketsa.

Mabapi le linako, boloka data feela ka har'a cache e laoloang ke lits'ebeletso tsa motho oa boraro (memcached, redis), kahoo leha o na le lits'ebetso tse 20 tsa ts'ebetso, leha e le efe ea tsona, ha e se e fihletse cache, e tla khona ho tsoela pele ho sebetsa le moreki. boemo bo ts'oanang boo mosebelisi a neng a sebetsa le kopo ts'ebetsong e 'ngoe. Ka mokhoa ona, hoa bonahala hore ho sa tsotellehe hore na u sebelisa likopi tse kae tsa litšebeletso tsa motho oa boraro, ntho e 'ngoe le e' ngoe e tla sebetsa ka mokhoa o tloaelehileng le ntle le mathata a ho fihlella data.

7. Koung e tlamang

Ke seva sa marang-rang feela se lokelang ho tseba ho sebetsa le lits'ebeletso tsa motho oa boraro. Kapa ho molemo le ho feta, kenya lits'ebeletso tsa motho oa boraro ka kotloloho ka har'a seva sa webo. Mohlala, joalo ka mojule oa PHP ho Apache.
Litšebeletso tsohle tsa hau li tlameha ho fumaneha ho tse ling ka phihlello ea aterese le boema-kepe (localgost:5432, localhost:3000, nginx:80, php-fpm:9000), ke hore, ho tloha nginx nka fihlella ka bobeli php- fpm le ho postgres, le ho tloha php-fpm ho ea ho postgres le nginx mme ha e le hantle ho tsoa tšebeletsong e 'ngoe le e' ngoe ke khona ho fumana tšebeletso e 'ngoe. Ka tsela ena, ts'ebetso ea ts'ebeletso ha e tlamahane le ts'ebetso ea ts'ebeletso e 'ngoe.

8. Ho bapisa

Sebetsa ka ts'ebetso e le 'ngoe, ho seng joalo lits'ebetso tse' maloa li ke ke tsa khona ho sebelisana!

Tlohela sebaka sa ho eketsa. Docker swarm e ntle bakeng sa sena.
Docker Swarm ke sesebelisoa sa ho theha le ho laola lihlopha tsa lijana pakeng tsa mechini e fapaneng le lijana tse ngata mochining o le mong.

Ke sebelisa li-swarm, ke khona ho tseba hore na ke tla fana ka lisebelisoa tse kae molemong oa ts'ebetso e 'ngoe le hore na ke tla qala lits'ebetso tse kae tsa ts'ebeletso e ts'oanang,' me balancer ea kahare, e amohelang data boema-kepeng bo fanoeng, e tla e etsa proxy ka bo eona. Ka hona, ha ke bona hore mojaro ho seva o eketsehile, nka eketsa mekhoa e mengata, kahoo ke fokotsa mojaro lits'ebetsong tse itseng.

9. Ho lahloa

Se ke oa sebelisa mela ho sebetsa le lits'ebetso le data. Ho bolaea ts'ebetso e le 'ngoe ho lokela ho ama kopo eohle. Ha tshebeletso e le nngwe e theoha, ntho e nngwe le e nngwe e theoha.

Ts'ebetso e 'ngoe le e' ngoe le ts'ebeletso li ka tima ka nako leha e le efe 'me sena ha sea lokela ho ama litšebeletso tse ling (ha e le hantle, sena ha se bolele hore tšebeletso e ke ke ea fumaneha bakeng sa tšebeletso e' ngoe, empa hore tšebeletso e 'ngoe e ke ke ea tima ka mor'a ena). Mekhoa eohle e tlameha ho felisoa ka mokhoa o motle, e le hore ha e felisoa, ha ho na data e tla senyeha 'me tsamaiso e tla sebetsa hantle nakong e tlang ha u e bulela. Ka mantsoe a mang, esita le haeba ho felisoa ha ts'ohanyetso, data ha ea lokela ho senyeha (mochine oa transaction o loketse mona, lipotso ho database li sebetsa feela ka lihlopha, 'me haeba bonyane potso e le' ngoe e tsoang sehlopheng e hlōleha kapa e etsoa ka " phoso, ha ho na potso e 'ngoe e tsoang sehlopheng e qetellang e hloleha).

10. Ts'ebetso ea nts'etsopele ea kopo / tekano ea ts'ebetso

Tlhahiso, sethala le mofuta oa lehae oa ts'ebeliso e tlameha ho fapana. Tlhahisong re sebelisa moralo oa Yii Lite, le sebakeng sa Yii, e le hore e sebetse ka potlako tlhahisong!

Ha e le hantle, lisebelisoa tsohle le ho sebetsa ka khoutu li lokela ho ba sebakeng se batlang se tšoana (ha re bue ka hardware ea 'mele). Hape, mosebeletsi leha e le ofe oa nts'etsopele o lokela ho khona ho tsamaisa khoutu ho hlahisa ha ho hlokahala, eseng lefapha le itseng la li-devops tse koetlisitsoeng ka ho khetheha, tseo feela ka lebaka la matla a khethehileng a ka phahamisang kopo ho hlahisa.

Docker e boetse e re thusa ka sena. Haeba lintlha tsohle tse fetileng li hlokomeloa, ho sebelisa docker ho tla tlisa ts'ebetso ea ho tsamaisa tikoloho tlhahiso le mochining oa lehae ho kenya taelo e le 'ngoe kapa tse peli.

11. Lifate

Re ngola lits'oants'o ho lifaele le li-database! Ha re hloekise lifaele le li-database ho tsoa ho li-log. Ha re rekeng hard drive e nang le 9000 Peta byte mme ho lokile.

Li-log tsohle li lokela ho nkoa e le letoto la liketsahalo. Kopo ka boeona ha ea lokela ho ameha ho sebetsa li-logs. Li-log li lokela ho hlahisoa ebang ke ho stdout kapa ho romelloa ka protocol e kang udp, e le hore ho sebetsa ka logs ho se ke ha baka mathata bakeng sa kopo. Graylog e loketse sena. Graylog e amohelang lits'oants'o tsohle ka udp (protocol ena ha e hloke ho emela karabo mabapi le kamohelo e atlehileng ea pakete) ha e kena-kenane le kopo ka tsela efe kapa efe mme e sebetsana feela le ho hlophisa le ho sebetsana le likutu. Mokhoa oa kopo ha o fetohe ho sebetsa le mekhoa e joalo.

12. Mesebetsi ea tsamaiso

Ho nchafatsa lintlha, li-database, joalo-joalo, sebelisa pheletso e entsoeng ka thoko ho API, ho e etsa ka makhetlo a 2 ka tatellano ho tla etsa hore ntho e ngoe le e ngoe e kopitsoe. Empa ha u sethoto, u ke ke ua tobetsa habeli, 'me ha re hloke ho falla.

Mesebetsi eohle ea tsamaiso e lokela ho etsoa sebakeng se tšoanang le khoutu eohle, boemong ba ho lokolloa. Ke hore, haeba re hloka ho fetola sebopeho sa database, joale re ke ke ra e etsa ka letsoho ka ho fetola mabitso a likholomo le ho eketsa tse ncha ka lisebelisoa tse ling tsa taolo ea database. Bakeng sa lintho tse joalo, re theha mangolo a arohaneng - ho falla, ho etsoang hohle le libakeng tsohle ka tsela e ts'oanang le sephetho se tloaelehileng le se utloisisoang. Bakeng sa mesebetsi e meng kaofela, joalo ka ho tlatsa projeke ka data, mekhoa e ts'oanang e lokela ho sebelisoa.

Mohlala oa ts'ebetsong ho PHP, Laravel, Laradock, Docker-Compose

PS Mehlala eohle e entsoe ka MacOS. Tse ngata tsa tsona li boetse li loketse Linux. Basebelisi ba Windows, ntšoarele, empa ha ke so sebetse le Windows nako e telele.

Ha re nahane ka boemo boo re senang mofuta oa PHP o kentsoeng ho PC ea rona mme ha ho letho ho hang.
Kenya mefuta ea morao-rao ea docker le docker-compose. (sena se ka fumanoa Inthaneteng)

docker -v && 
docker-compose -v

Nts'etsopele ea kopo le phepelo ea Blue-Green, e ipapisitseng le mokhoa oa The Twelve-Factor App ka mehlala ho php le docker.

1. Re beha Laradock

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

Nts'etsopele ea kopo le phepelo ea Blue-Green, e ipapisitseng le mokhoa oa The Twelve-Factor App ka mehlala ho php le docker.

Mabapi le Laradock, ke tla re ke ntho e pholileng haholo, e nang le lijana tse ngata le lintho tse thusang. Empa nke ke ka khothaletsa ho sebelisa Laradock joalo ka ntle le liphetoho tlhahisong ka lebaka la ho haella ha eona. Ho molemo ho iketsetsa lijana tsa hau ho latela mehlala ea Laradock, sena se tla ntlafatsoa le ho feta, hobane ha ho motho ea hlokang tsohle tse teng ka nako e le 'ngoe.

2. Lokisa Laradock ho tsamaisa ts'ebeliso ea rona.

cd laradock && 
cp env-example .env

Nts'etsopele ea kopo le phepelo ea Blue-Green, e ipapisitseng le mokhoa oa The Twelve-Factor App ka mehlala ho php le docker.

2.1. Bula buka ea habr (foldara ea motsoali eo laradock e kentsoeng ho eona) ho mohlophisi o mong. (Ntlheng ea ka ea PHPStorm)

Mothating ona re reha morero feela.

Nts'etsopele ea kopo le phepelo ea Blue-Green, e ipapisitseng le mokhoa oa The Twelve-Factor App ka mehlala ho php le docker.

2.2. Qala setšoantšo sa sebaka sa mosebetsi. (Ho uena, litšoantšo li tla nka nako ho aha)
Sebaka sa ho sebetsa ke setšoantšo se lokiselitsoeng ka ho khetheha bakeng sa ho sebetsa le moralo molemong oa moqapi.

Re kena ka har'a setshelo re sebelisa

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

Nts'etsopele ea kopo le phepelo ea Blue-Green, e ipapisitseng le mokhoa oa The Twelve-Factor App ka mehlala ho php le docker.

2.3. Ho kenya Laravel

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

Nts'etsopele ea kopo le phepelo ea Blue-Green, e ipapisitseng le mokhoa oa The Twelve-Factor App ka mehlala ho php le docker.

2.4. Kamora ho kenya, re hlahloba hore na bukana e nang le morero e bōpiloe le ho bolaea compose.

ls
exit
docker-compose down

Nts'etsopele ea kopo le phepelo ea Blue-Green, e ipapisitseng le mokhoa oa The Twelve-Factor App ka mehlala ho php le docker.

2.5. Ha re khutleleng ho PHPStorm 'me re behe tsela e nepahetseng ea kopo ea rona ea laravel faeleng ea .env.

Nts'etsopele ea kopo le phepelo ea Blue-Green, e ipapisitseng le mokhoa oa The Twelve-Factor App ka mehlala ho php le docker.

3. Kenya khoutu eohle ho Git.

Ho etsa sena, re tla theha sebaka sa polokelo ho Github (kapa kae kapa kae). Ha re ee bukeng ea habr ho terminal mme re phethe khoutu e latelang.

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

Ha re hlahlobeng hore na lintho tsohle li hantle.

Nts'etsopele ea kopo le phepelo ea Blue-Green, e ipapisitseng le mokhoa oa The Twelve-Factor App ka mehlala ho php le docker.

Bakeng sa boiketlo, ke khothaletsa ho sebelisa sebopeho sa pono bakeng sa Git, molemong oa ka ho joalo Ho felile. (sehokelo sa phetiso ke ena)

4. Ha re qaleng!

Pele o qala, etsa bonnete ba hore ha ho letho le leketlileng likoung tsa 80 le 443.

docker-compose up -d nginx php-fpm

Nts'etsopele ea kopo le phepelo ea Blue-Green, e ipapisitseng le mokhoa oa The Twelve-Factor App ka mehlala ho php le docker.

Kahoo, morero oa rona o na le litšebeletso tse 3 tse fapaneng:

  • nginx - seva ea webo
  • php-fpm - php bakeng sa ho amohela likopo ho tsoa ho seva sa webo
  • sebaka sa mosebetsi - php bakeng sa bahlahisi

Hajoale, re fihletse hore re thehile kopo e kopanang le lintlha tse 4 ho tse 12, e leng:

1. Codebase - khoutu eohle e sebakeng sa polokelo e le 'ngoe (ntlha e nyane: ho ka ba ho nepahetse ho eketsa docker ka hare ho morero oa laravel, empa sena ha se bohlokoa).

2. Ho itšetleha - Litšepiso tsohle tsa rona li ngotsoe ka ho hlaka ho application/composer.json le ho Dockerfile ka 'ngoe ea sets'oants'o ka seng.

3. Litšebeletso tsa tšehetso - E 'ngoe le e' ngoe ea litšebeletso (php-fom, nignx, workspace) e phela bophelo ba eona 'me e hokahane ho tsoa ka ntle mme ha e sebetsa ka ts'ebeletso e le' ngoe, e 'ngoe e ke ke ea ameha.

4. Mekhahlelo - tšebeletso ka 'ngoe ke mokhoa o le mong. E 'ngoe le e' ngoe ea litšebeletso ha e boloke boemo ba ka hare.

5. Tlamo ea boema-kepe

docker ps

Nts'etsopele ea kopo le phepelo ea Blue-Green, e ipapisitseng le mokhoa oa The Twelve-Factor App ka mehlala ho php le docker.

Joalokaha re bona, tšebeletso e 'ngoe le e' ngoe e sebetsa boema-kepeng ba eona 'me e fumaneha ho litšebeletso tse ling kaofela.

6. Parallelism

Docker e re lumella ho hlahisa lits'ebetso tse ngata tsa lits'ebeletso tse tšoanang ka ho leka-lekanya mojaro oa othomathike lipakeng tsa tsona.

Ha re emiseng lijana ebe re li tsamaisa ka har'a folakha -- tekanyo

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

Nts'etsopele ea kopo le phepelo ea Blue-Green, e ipapisitseng le mokhoa oa The Twelve-Factor App ka mehlala ho php le docker.

Joalokaha re bona, likopi li entsoe ka setshelo sa php-fpm. Ha ho hlokahale hore re fetole letho ha re sebetsa le setshelo sena. Re boetse re tsoela pele ho e fumana boema-kepeng ba 9000, mme Docker e re laola mojaro lipakeng tsa lijana.

7. Ho lahloa - setshelo se seng le se seng se ka bolawa ntle le ho ntsha se seng kotsi. Ho emisa kapa ho qala setshelo bocha ho ke ke ha ama ts'ebetso ea ts'ebeliso nakong ea ts'ebetso e latelang. Setshelo se seng le se seng se ka phahamisoa ka nako efe kapa efe.

8. Kholiso ea ts'ebetso / tekano ea ts'ebetso - ditikoloho tsohle tsa rona di a tshwana. Ka ho tsamaisa sistimi ho seva tlhahisong, ha ho hlokahale hore u fetole letho ho litaelo tsa hau. Ntho e ngoe le e ngoe e tla ipapisa le Docker ka tsela e ts'oanang.

9. Ho rema lifate - lits'oants'o tsohle tse ka har'a lijana tsena li ea phalla 'me li bonahala ho khomphutha ea Docker. (tabeng ena, ha e le hantle, ka lijana tse ling tse entsoeng lapeng, sena se kanna sa se be joalo haeba u sa se hlokomele)

 docker-compose logs -f

Nts'etsopele ea kopo le phepelo ea Blue-Green, e ipapisitseng le mokhoa oa The Twelve-Factor App ka mehlala ho php le docker.

Empa ho na le ts'oarelo ea hore boleng ba Default ho PHP le Nginx le bona ba ngola li-log ho faele. Ho kopana le lintlha tse 12, hoa hlokahala thiba ho ngola lintlha faeleng ka litlhophiso tsa setshelo ka seng ka thoko.

Docker e boetse e fana ka bokhoni ba ho romella lits'oants'o eseng feela ho stdout, empa hape le linthong tse kang graylog, eo ke e boletseng ka holimo. 'Me ka hare ho greylog, re ka khona ho sebetsa ka mokhoa oo re ratang ka oona mme kopo ea rona e ke ke ea hlokomela sena ka tsela leha e le efe.

10. Mesebetsi ea tsamaiso - Mesebetsi eohle ea tsamaiso e rarolloa ke laravel ka lebaka la sesebelisoa sa litsebi hantle feela joalokaha baetsi ba lisebelisoa tse 12 ba ka rata.

Ka mohlala, ke tla bontša kamoo litaelo tse ling li etsoang kateng.
Re kena ka har'a setshelo.

 
docker-compose exec workspace bash
php artisan list

Nts'etsopele ea kopo le phepelo ea Blue-Green, e ipapisitseng le mokhoa oa The Twelve-Factor App ka mehlala ho php le docker.

Hona joale re ka sebelisa taelo efe kapa efe. (ka kopo hlokomela hore ha rea ​​​​ka ra lokisa database le cache, kahoo halofo ea litaelo e ke ke ea etsoa ka nepo, hobane e etselitsoe ho sebetsa le cache le database).

Nts'etsopele ea kopo le phepelo ea Blue-Green, e ipapisitseng le mokhoa oa The Twelve-Factor App ka mehlala ho php le docker.

11. Litlhophiso le 12. Haha, lokolla, matha

Ke ne ke batla ho nehela karolo ena ho Blue-Green Deployment, empa ho ile ha bonahala e le ngata haholo bakeng sa sengoloa sena. Ke tla ngola sengoloa se arohaneng mabapi le sena.

Ka bokhutšoanyane, mohopolo o thehiloe ho litsamaiso tsa CI / CD joalo ka Jenkins и Gitlab CI. Ka bobeli, o ka beha mefuta e fapaneng ea tikoloho e amanang le tikoloho e itseng. Ka hona, boemong bona, ntlha ea c e tla phethahala Litlhophiso.

Le ntlha mabapi le Haha, lokolla, matha e rarolloa ka mesebetsi e hahelletsoeng ka lebitso Pipe.

Pipe e u lumella ho arola ts'ebetso ea ho romelloa ka mekhahlelo e mengata, ho totobatsa mekhahlelo ea kopano, ho lokolloa le ho bolaoa. Hape ho Pipeline, o ka etsa li-backups, 'me ehlile eng kapa eng. Sena ke sesebelisoa se nang le bokhoni bo se nang moeli.

Khoutu ea kopo e ho Github.
Se ke oa lebala ho qala submodule ha o kopanya polokelo ena.

PS: Mekhoa ena kaofela e ka sebelisoa le lisebelisoa tse ling le lipuo tsa mananeo. Ntho e ka sehloohong ke hore moelelo ha o fapane.

Source: www.habr.com

Eketsa ka tlhaloso