Mekhoa e Tsoelang Pele ea Phano le Docker (tlhahlobo le video)

Re tla qala blog ea rona ka lingoliloeng tse thehiloeng lipuong tsa morao-rao tsa motsamaisi oa rona oa tekheniki distol (Dmitry Stolyarov). Kaofela ha tsona li etsahetse ka selemo sa 2016 liketsahalong tse fapaneng tsa litsebi mme li ne li inehetse ho sehlooho sa DevOps le Docker. Video e le 'ngoe e tsoang kopanong ea Docker Moscow ofising ea Badoo, re se re ntse re e-na le eona e hatisitsoeng Marang-rang. Tse ncha li tla tsamaea le lihlooho tse fetisang moelelo oa litlaleho. Kahoo…

La 31 May kopanong RootConf 2016, e tšoaroang e le karolo ea mokete oa "Russian Internet Technologies" (RIT ++ 2016), karolo ea "Continuous Deployment and Deployment" e ile ea buloa ka tlaleho "Mekhoa e Molemo ka ho Fetisisa ea ho Tsoela Pele ho Tsoela Pele le Docker". E ile ea akaretsa le ho hlophisa mekhoa e metle ea ho aha ts'ebetso ea Continuous Delivery (CD) e sebelisa Docker le lihlahisoa tse ling tsa Open Source. Re sebetsa le litharollo tsena tlhahisong, e re lumellang ho itšetleha ka boiphihlelo bo sebetsang.

Mekhoa e Tsoelang Pele ea Phano le Docker (tlhahlobo le video)

Haeba u na le monyetla oa ho qeta hora video ea tlaleho, re khothaletsa ho e shebella ka botlalo. Ho seng joalo, ka tlase ke kakaretso ea sehlooho ka mokhoa oa mongolo.

Tlhahiso e Tsoelang Pele le Docker

Tlas'a Tlhahiso e Tsoelang Pele re utloisisa letoto la liketsahalo ka lebaka leo khoutu ea kopo e tsoang sebakeng sa polokelo ea Git e tlang pele ho tlhahiso, ebe e qetella e le polokelong ea litaba. E shebahala tjena: Git → Haha → Teko → Lokolla → Sebetsa.

Mekhoa e Tsoelang Pele ea Phano le Docker (tlhahlobo le video)
Boholo ba tlaleho bo nehetsoe sethaleng sa kaho (kopano ea kopo), 'me lihlooho tse lokolloang le tse sebetsang li angoa ka bokhutšoanyane. Re tla bua ka mathata le lipaterone tse u lumellang hore u li rarolle, 'me ts'ebetsong e tobileng ea mekhoa ena e ka fapana.

Hobaneng ha Docker e hlokahala mona ho hang? Ha se lefeela hore ebe re nkile qeto ea ho bua ka litloaelo tse Tsoelang Pele tsa Phano molemong oa sesebelisoa sena sa Open Source. Leha tlaleho eohle e nehetsoe ts'ebelisong ea eona, mabaka a mangata a senotsoe ha ho nahanoa ka mokhoa o ka sehloohong oa tlhahiso ea khoutu ea kopo.

Mokhoa o ka sehloohong oa tlhahiso

Kahoo, ha re fana ka mefuta e mecha ea ts'ebeliso, ehlile re tobana le eona bothata ba nako, e hlahisoang nakong ea ho fetola seva sa tlhahiso. Sephethephethe se tsoang mofuteng oa khale oa sesebelisoa ho ea ho e ncha ha se khone ho fetoha hang-hang: pele re tlameha ho etsa bonnete ba hore mofuta o mocha ha o kopitsoe ka katleho feela, empa hape o "futhumala" (ke hore, o itokiselitse ho sebeletsa likopo).

Mekhoa e Tsoelang Pele ea Phano le Docker (tlhahlobo le video)
Kahoo, ka nako e itseng mefuta e 'meli ea kopo (ea khale le e ncha) e tla sebetsa ka nako e le' ngoe. E leng ka tsela e iketsang isang ho khohlano ea mehloli e arolelanoang: marang-rang, tsamaiso ea lifaele, IPC, joalo-joalo. Ka Docker, bothata bona bo rarolloa habonolo ka ho tsamaisa mefuta e fapaneng ea ts'ebeliso ka lijaneng tse arohaneng, tseo ho itšehla thajana ho netefalitsoeng ka har'a moamoheli a le mong (seva / mochini o sebetsang). Ha e le hantle, u ka khona ho phela ka maqheka a mang ntle le ho kenya letsoho ho hang, empa haeba ho na le sesebelisoa se lokiselitsoeng le se loketseng, joale ho na le lebaka le fapaneng - hore u se ke ua e hlokomoloha.

Containerization e fana ka melemo e meng e mengata ha e sebelisoa. Kopo efe kapa efe e itšetlehile ka mofuta o itseng (kapa mofuta oa mofuta) mofetoleli, ho fumaneha ha li-module/extensions, joalo-joalo, hammoho le liphetolelo tsa tsona. 'Me sena ha se sebetse feela ho tikoloho e sebetsang hang-hang, empa hape le tikolohong eohle, ho kenyeletsa software ea tsamaiso le mofuta oa eona (ho fihlela kabong ea Linux e sebelisitsoeng). Ka lebaka la hore lijana ha li na khoutu ea kopo feela, empa hape le sistimi e kentsoeng pele le software ea ts'ebeliso ea liphetolelo tse hlokahalang, o ka lebala ka mathata a ho its'etleha.

Ha re akaretsang mokhoa o ka sehloohong oa ho ntša liphetolelo tse ncha ho ela hloko lintlha tse latelang:

  1. Qalong, mofuta oa khale oa kopo o sebetsa ka har'a setshelo sa pele.
  2. Phetolelo e ncha e ntan'o phuthoa 'me ea "futhumala" ka har'a setshelo sa bobeli. Hoa hlokomeleha hore phetolelo ena e ncha ka boeona e ka 'na ea se ke ea jara khoutu ea kopo e ntlafalitsoeng feela, empa hape le tse ling tse itšetlehileng ka eona, hammoho le likarolo tsa tsamaiso (mohlala, phetolelo e ncha ea OpenSSL kapa kabo eohle).
  3. Ha mofuta o mocha o se o loketse ho fana ka likopo, sephethephethe se fetoha ho tloha setshelo sa pele ho ea ho sa bobeli.
  4. Mofuta oa khale joale o ka emisoa.

Mokhoa ona oa ho kenya mefuta e fapaneng ea ts'ebeliso ka lijaneng tse arohaneng o fana ka monyetla o mong hape - ho khutlisa kapele ho phetolelo ea khale (ka mor'a tsohle, ho lekane ho fetola sephethephethe ho setshelo se lakatsehang).

Mekhoa e Tsoelang Pele ea Phano le Docker (tlhahlobo le video)
Keletso ea ho qetela e utloahala e le ntho eo Captain a neng a sitoa ho e fumana phoso: "[ha o hlophisa Thomello e Tsoelang Pele le Docker] Sebelisa Docker [le ho utloisisa seo e fanang ka sona]" Hopola, sena ha se bullet ea silevera e tla rarolla bothata bo bong le bo bong, empa ke sesebelisoa se fanang ka motheo o babatsehang.

Ho ikatisa

Ka "reproducibility" re bolela mathata a akaretsang a kopaneng le lits'ebetso. Re bua ka linyeoe tse joalo:

  • Lingoliloeng tse hlahlobiloeng ke lefapha la boleng bakeng sa sethala li tlameha ho hlahisoa ka nepo tlhahisong.
  • Likopo li phatlalatsoa ho li-server tse ka amohelang liphutheloana ho tsoa liipone tse fapaneng tsa polokelo (ha nako e ntse e ea li ntlafatsoa, ​​​​'me ka tsona ho na le mefuta ea lits'ebetso tse kentsoeng).
  • “Ntho e ’ngoe le e ’ngoe e ea nthusa sebakeng sa ka!” (... mme bahlahisi ha ba dumellwa ho etsa tlhahiso.)
  • U hloka ho hlahloba ho hong ho mofuta oa khale (o bolokiloeng).
  • ...

Sebopeho sa bona se akaretsang se ipapisitse le taba ea hore ho latela ka botlalo tikoloho e sebelisoang (hammoho le ho ba sieo ha ntlha ea motho) hoa hlokahala. Re ka tiisa joang hore re ka khona ho ikatisa? Etsa litšoantšo tsa Docker e thehiloeng ho khoutu e tsoang ho Git, ebe u e sebelisa bakeng sa mosebetsi leha e le ofe: libakeng tsa liteko, tlhahiso, mechine ea sebaka sa baetsi ba mananeo ... Ka nako e ts'oanang, ke habohlokoa ho fokotsa liketso tse etsoang. после ho bokella setšoantšo: ho bonolo ho feta, ha ho na monyetla oa hore ho be le liphoso.

Infrastructure ke khoutu

Haeba litlhoko tsa meralo ea motheo (ho ba teng ha software ea seva, mofuta oa eona, joalo-joalo) li sa hlophisoa 'me "tse hlophisoa," joale ho phatlalatsoa ha ntlafatso efe kapa efe ea ts'ebeliso ho ka baka litlamorao tse mpe. Mohlala, ha u le sethaleng u se u fetiselitse ho PHP 7.0 'me u ngotse khoutu hape - joale ponahalo ea eona e hlahisoang ka PHP (5.5) ea khale e tla makatsa motho e mong. U ka 'na ua se ke ua lebala ka phetoho e kholo ea phetolelo ea mofetoleli, empa "diabolose o lintlheng": ntho e makatsang e ka ba ntlafatso e nyenyane ea ho itšetleha leha e le efe.

Mokhoa oa ho rarolla bothata bona o tsejoa e le IaC (Infrastructure as Code, "infrastructure as code") mme e kenyelletsa ho boloka ditlhoko tsa meralo ya motheo mmoho le khoutu ya kopo. Ha ba e sebelisa, bahlahisi le litsebi tsa DevOps ba ka sebetsa le polokelo e tšoanang ea ts'ebeliso ea Git, empa likarolong tse fapaneng tsa eona. Ho tsoa khoutu ena, ho entsoe setšoantšo sa Docker ho Git, moo ts'ebeliso e kentsoeng ho nahanoa ka lintlha tsohle tsa lisebelisoa. Ka mantsoe a bonolo feela, lingoloa (melao) bakeng sa ho bokella litšoantšo li lokela ho ba sebakeng sa polokelo e le 'ngoe le khoutu ea mohloli ebe li kopantsoe hammoho.

Mekhoa e Tsoelang Pele ea Phano le Docker (tlhahlobo le video)

Tabeng ea meralo ea meralo ea meralo e mengata - mohlala, ho na le nginx, e emeng ka pel'a sesebelisoa se seng se ntse se sebetsa ka har'a sets'oants'o sa Docker - Litšoantšo tsa Docker li tlameha ho etsoa ho tsoa khoutu ho Git bakeng sa lera ka leng. Joale setšoantšo sa pele se tla ba le kopo e nang le mofetoleli le tse ling tse itšetlehileng ka "haufi", 'me setšoantšo sa bobeli se tla ba le nginx e holimo.

Litšoantšo tsa Docker, puisano le Git

Re arola litšoantšo tsohle tsa Docker tse bokelletsoeng ho tloha Git ka mekhahlelo e 'meli: ea nakoana le ea tokollo. Litšoantšo tsa nakoana e tšoailoe ka lebitso la lekala ho Git, e ka hlakoloa ke boitlamo bo latelang mme e romelloa feela bakeng sa ponelopele (eseng bakeng sa tlhahiso). Ena ke phapang ea bona ea mantlha ho tsoa ho tse lokollotsoeng: ha u tsebe hore na ke boitlamo bofe bo ho bona.

Hoa utloahala ho bokella litšoantšo tsa nakoana: lekala le leholo (o ka khona ho e fetisetsa sebakeng se arohaneng ho lula u bona phetolelo ea morao-rao ea monghali), makala a nang le litokollo, makala a mekhoa e mecha.

Mekhoa e Tsoelang Pele ea Phano le Docker (tlhahlobo le video)
Ka mor'a hore ponelo-pele ea litšoantšo tsa nakoana e fihle ho tlhokahalo ea ho fetolela tlhahiso, bahlahisi ba beha letšoao le itseng. E bokelloa ka li-tag lokolla setšoantšo (tag ea eona e tsamaellana le tag e tsoang ho Git) mme e fetisetsoa sethaleng. Haeba e netefalitsoe ka katleho ke lefapha la boleng, e ea tlhahisong.

maqephe

Ntho e 'ngoe le e' ngoe e hlalositsoeng (ho hlahisoa, kopano ea litšoantšo, tlhokomelo e latelang) e ka kenngoa ts'ebetsong ka mokhoa o ikemetseng ho sebelisa mangolo a Bash le lisebelisoa tse ling tse "ntlafalitsoeng". Empa haeba u etsa sena, ka nako e 'ngoe ts'ebetsong e tla lebisa ho rarahanang ho hoholo le ho se laolehe hantle. Ka ho utloisisa sena, re tlile ho iketsetsa lisebelisoa tsa rona tse khethehileng tsa Workflow bakeng sa ho haha ​​​​CI / CD - maqephe.

Mohloli oa eona oa mohloli o ngotsoe ka Ruby, mohloli o bulehileng 'me o hatisitsoe ho GitHub. Ka bomalimabe, litokomane hajoale ke ntlha e fokolang ea sesebelisoa, empa re ntse re sebetsa ho eona. Mme re tla ngola le ho bua ka dapp ho feta hang, hobane ... Ka 'nete re ke ke ra emela ho arolelana bokhoni ba eona le sechaba sohle se nang le thahasello, empa hajoale, romella litaba tsa hau le ho hula likopo le/kapa u latele nts'etsopele ea morero ho GitHub.

E ntlafalitsoe ka la 13 Phato 2019: hajoale ke morero maqephe rehetsoe ka werf, khoutu ea eona e ngotsoe bocha ka botlalo ho Go, 'me litokomane tsa eona li ntlafalitsoe haholo.

Kubernetes

Sesebelisoa se seng se seng se lokiselitsoe ho Open Source se seng se fumane kananelo ea bohlokoa tikolohong ea litsebi ke Kubernetes, sehlopha sa tsamaiso ea Docker. Sehlooho sa ts'ebeliso ea eona ts'ebetsong ea merero e hahiloeng ho Docker se feta tekanyo ea tlaleho, kahoo tlhahiso e lekanyelitsoe ho kakaretso ea likarolo tse ling tse thahasellisang.

Bakeng sa ho phatlalatsoa, ​​Kubernetes e fana ka:

  • probe ea ho itokisa - ho lekola ho itokisa ha mofuta o mocha oa ts'ebeliso (ho fetolela sephethephethe ho eona);
  • ho ntlafatsa - ntlafatso ea setšoantšo se latellanang sehlopheng sa lijana (ho koala, ho ntlafatsa, ho itokisetsa ho qala, ho fetola sephethephethe);
  • ntlafatso ea synchronous - ho ntlafatsa setšoantšo ka har'a sehlopha ka mokhoa o fapaneng: pele ho halofo ea lijana, ebe ho tse ling kaofela;
  • ho lokolloa ha canary - ho hlahisa setšoantšo se secha ho palo e lekanyelitsoeng (e nyane) ea lijana ho beha leihlo liphapang.

Kaha Tsoelo-pele e Tsoelang Pele ha se feela tokollo ea mofuta o mocha, Kubernetes e na le bokhoni bo bongata bakeng sa tokiso ea meaho e latelang: ho beha leihlo le ho rema lifate bakeng sa lijana tsohle, ho lekanya ka boiketsetso, joalo-joalo. ts'ebetsong lits'ebetsong tsa hau.

Likhothaletso tsa ho qetela

  1. Sebelisa Docker.
  2. Theha litšoantšo tsa Docker tsa lits'ebetso bakeng sa litlhoko tsohle tsa hau.
  3. Latela molao-motheo "Infrastructure is code."
  4. Kopanya Git ho Docker.
  5. Laola tatellano ea ho phatlalatsoa.
  6. Sebelisa sethala se entsoeng hantle (Kubernetes kapa se seng).

Lifitio le li-slide

Video e hlahang tšebetsong (hoo e ka bang hora) e hatisitsoeng ho YouTube (tlaleho ka boeona e qala ho tloha motsotsong oa 5 - latela sehokelo sa ho bapala ho tloha motsotsong ona).

Tlhahiso ea tlaleho:

PES

Litlaleho tse ling ka sehlooho ho blog ea rona:

Source: www.habr.com

Eketsa ka tlhaloso