Cov kev pabcuam menyuam ntsuag: qhov poob qis ntawm (micro) kev pabcuam architecture

Tus Thawj Coj ntawm Kev Ua Haujlwm ntawm Banki.ru portal Andrey Nikolsky tau hais ntawm lub rooj sib tham xyoo tas los DevOpsDays Moscow hais txog cov kev pabcuam menyuam ntsuag: yuav ua li cas txheeb xyuas tus menyuam ntsuag nyob rau hauv kev tsim kho, vim li cas cov kev pabcuam menyuam ntsuag tsis zoo, yuav ua licas rau lawv, thiab yuav ua li cas yog tias tsis muaj dabtsi pab.

Hauv qab ntawm qhov txiav yog cov ntawv nyeem ntawm tsab ntawv ceeb toom.


Nyob zoo cov npoj yaig! Kuv lub npe yog Andrey, Kuv ua haujlwm ntawm Banki.ru.

Peb muaj cov kev pabcuam loj, cov no yog cov kev pabcuam monolithic, muaj cov kev pabcuam hauv kev nkag siab zoo dua qub, thiab muaj tsawg heev. Hauv kuv tus neeg ua haujlwm-peasant terminology, kuv hais tias yog qhov kev pabcuam yooj yim thiab me me, ces nws yog micro, thiab yog tias nws tsis yooj yim thiab me me, ces nws tsuas yog kev pabcuam xwb.

Cov kev pabcuam zoo

Kuv yuav sai sai dua qhov zoo ntawm cov kev pabcuam.

Cov kev pabcuam menyuam ntsuag: qhov poob qis ntawm (micro) kev pabcuam architecture

Thawj yog scaling. Koj tuaj yeem ua qee yam ntawm kev pabcuam sai sai thiab pib tsim khoom. Koj tau txais kev khiav tsheb, koj tau cloned qhov kev pabcuam. Koj muaj tsheb ntau dua, koj tau cloned nws thiab nyob nrog nws. Qhov no yog qhov zoo tshaj plaws, thiab, hauv paus ntsiab lus, thaum peb pib, nws tau suav tias yog qhov tseem ceeb tshaj plaws rau peb, vim li cas peb thiaj ua txhua yam no.

Cov kev pabcuam menyuam ntsuag: qhov poob qis ntawm (micro) kev pabcuam architecture

Qhov thib ob, kev txhim kho nyob ib leeg, thaum koj muaj ntau pab pawg txhim kho, ntau tus neeg tsim khoom sib txawv hauv txhua pab pawg, thiab txhua pab pawg tsim nws cov kev pabcuam.

Nrog pab pawg muaj qhov nuance. Cov neeg tsim tawm txawv. Thiab muaj, piv txwv li, cov neeg snowflake. Kuv thawj zaug pom qhov no nrog Maxim Dorofeev. Qee zaum cov neeg snowflake nyob ntawm qee pawg thiab tsis nyob ntawm lwm tus. Qhov no ua rau cov kev pabcuam sib txawv siv thoob plaws lub tuam txhab tsis sib xws.

Cov kev pabcuam menyuam ntsuag: qhov poob qis ntawm (micro) kev pabcuam architecture

Saib daim duab: qhov no yog tus tsim tawm zoo, nws muaj tes loj, nws tuaj yeem ua tau ntau yam. Qhov teeb meem tseem ceeb yog qhov twg cov tes los ntawm.

Cov kev pabcuam menyuam ntsuag: qhov poob qis ntawm (micro) kev pabcuam architecture

Cov kev pabcuam ua rau nws siv tau cov lus programming sib txawv uas tsim nyog rau cov haujlwm sib txawv. Qee qhov kev pabcuam yog nyob rau hauv Go, qee qhov nyob hauv Erlang, qee qhov nyob hauv Ruby, qee yam nyob hauv PHP, qee yam nyob hauv Python. Feem ntau, koj tuaj yeem nthuav dav heev. Tseem muaj nuances ntawm no thiab.

Cov kev pabcuam menyuam ntsuag: qhov poob qis ntawm (micro) kev pabcuam architecture

Service-oriented architecture feem ntau yog hais txog devops. Ntawd yog, yog tias koj tsis muaj automation, tsis muaj cov txheej txheem xa mus, yog tias koj teeb tsa nws manually, koj qhov kev teeb tsa tuaj yeem hloov pauv los ntawm kev pabcuam rau piv txwv, thiab koj yuav tsum mus rau qhov ntawd ua ib yam dab tsi, ces koj nyob hauv ntuj txiag teb tsaus.

Piv txwv li, koj muaj 20 cov kev pab cuam thiab koj yuav tsum tau xa los ntawm tes, koj muaj 20 consoles, thiab koj ib txhij nias "sau" zoo li ninja. Nws tsis zoo heev.

Yog tias koj muaj kev pabcuam tomqab kuaj (yog tias muaj kev sim, tau kawg), thiab koj tseem yuav tsum ua kom tiav nrog cov ntaub ntawv kom nws ua haujlwm hauv kev tsim khoom, kuv kuj muaj xov xwm phem rau koj.

Yog tias koj tso siab rau cov kev pabcuam Amazon tshwj xeeb thiab ua haujlwm hauv tebchaws Russia, tom qab ob lub hlis dhau los koj kuj muaj "Txhua yam nyob ib puag ncig yog hluav taws, kuv zoo, txhua yam yog txias."

Cov kev pabcuam menyuam ntsuag: qhov poob qis ntawm (micro) kev pabcuam architecture

Peb siv Ansible rau automate deployment, Puppet for convergence, Bamboo to automate deployment, and Confluence to somehow piav nws tag nrho.

Kuv yuav tsis nyob ntawm qhov no hauv kev nthuav dav, vim tias daim ntawv tshaj tawm yog ntau ntxiv txog kev sib cuam tshuam kev coj ua, thiab tsis yog hais txog kev siv tswv yim.

Cov kev pabcuam menyuam ntsuag: qhov poob qis ntawm (micro) kev pabcuam architecture

Piv txwv li, peb tau muaj teeb meem qhov twg Puppet ntawm lub server ua haujlwm nrog Ruby 2, tab sis qee daim ntawv thov raug sau rau Ruby 1.8, thiab lawv tsis ua haujlwm ua ke. Ib yam dab tsi mus tsis ncaj ncees lawm. Thiab thaum koj xav tau khiav ntau yam ntawm Ruby ntawm ib lub tshuab, koj feem ntau pib muaj teeb meem.

Piv txwv li, peb muab txhua tus tsim tawm lub platform uas muaj kwv yees li txhua yam uas peb muaj, tag nrho cov kev pabcuam uas tuaj yeem tsim kho, kom nws muaj kev sib cais, nws tuaj yeem tawg thiab tsim nws raws li nws xav tau.

Nws tshwm sim tias koj xav tau qee qhov tshwj xeeb suav nrog pob nrog kev txhawb nqa rau qee yam nyob ntawd. Nws yog tawv heev. Kuv tau mloog ib daim ntawv qhia qhov twg Docker duab hnyav 45 GB. Hauv Linux, tau kawg, nws yooj yim dua, txhua yam me dua nyob ntawd, tab sis tseem, yuav tsis muaj chaw txaus.

Zoo, muaj kev tsis sib haum xeeb, thaum ib daim ntawm qhov project nyob ntawm ib lub tsev qiv ntawv ntawm ib lub version, lwm daim ntawm qhov project nyob ntawm lwm version, thiab cov tsev qiv ntawv tsis tau nruab ua ke txhua.

Cov kev pabcuam menyuam ntsuag: qhov poob qis ntawm (micro) kev pabcuam architecture

Peb muaj cov chaw thiab cov kev pabcuam hauv PHP 5.6, peb txaj muag rau lawv, tab sis peb tuaj yeem ua li cas? Nov yog peb qhov chaw. Muaj cov chaw thiab cov kev pabcuam ntawm PHP 7, muaj ntau ntawm lawv, peb tsis txaj muag rau lawv. Thiab txhua tus tsim tawm muaj nws lub hauv paus uas nws zoo siab pom.

Yog tias koj sau hauv ib lub tuam txhab hauv ib hom lus, peb lub tshuab virtual ib tus neeg tsim tawm suab zoo li qub. Yog tias koj muaj cov lus programming sib txawv, ces qhov xwm txheej yuav tshwm sim.

Cov kev pabcuam menyuam ntsuag: qhov poob qis ntawm (micro) kev pabcuam architecture

Koj muaj cov chaw thiab cov kev pabcuam ntawm qhov no, ntawm qhov no, tom qab ntawd lwm qhov chaw rau Mus, ib qhov chaw rau Ruby, thiab qee qhov Redis ntawm sab. Yog li ntawd, tag nrho cov no hloov mus rau hauv ib qho chaw loj rau kev txhawb nqa, thiab txhua lub sijhawm nws tuaj yeem tawg.

Cov kev pabcuam menyuam ntsuag: qhov poob qis ntawm (micro) kev pabcuam architecture

Yog li ntawd, peb tau hloov cov txiaj ntsig ntawm cov lus programming nrog kev siv cov txheej txheem sib txawv, txij li cov txheej txheem PHP sib txawv heev, lawv muaj peev xwm sib txawv, cov zej zog sib txawv, thiab kev txhawb nqa sib txawv. Thiab koj tuaj yeem sau ib qho kev pabcuam kom koj twb muaj ib yam dab tsi npaj rau nws.

Txhua qhov kev pabcuam muaj nws pab pawg

Cov kev pabcuam menyuam ntsuag: qhov poob qis ntawm (micro) kev pabcuam architecture

Peb lub ntsiab kom zoo dua, uas tau crystallized ntau xyoo, yog tias txhua qhov kev pabcuam muaj nws pab pawg. Qhov no yooj yim rau ib qhov project loj, koj tuaj yeem txuag lub sijhawm ntawm cov ntaub ntawv, cov thawj coj paub lawv qhov project zoo.

Koj tuaj yeem xa cov haujlwm yooj yim los ntawm kev txhawb nqa. Piv txwv li, qhov kev pab cuam pov hwm tawg lawm. Thiab tam sim ntawd pab neeg uas cuam tshuam nrog kev pov hwm mus kho nws.

Cov yam ntxwv tshiab tau raug tsim sai, vim tias thaum koj muaj ib qho kev pabcuam atomic, koj tuaj yeem ceev ceev ib yam dab tsi rau hauv nws.

Thiab thaum koj ua txhaum koj qhov kev pabcuam, thiab qhov no tshwm sim tsis raug, koj tsis cuam tshuam rau lwm tus neeg cov kev pabcuam, thiab cov neeg tsim tawm los ntawm lwm pab pawg tsis tuaj yeem khiav rau koj nrog cov khoom thiab hais tias: "Ay-ay, tsis txhob ua li ntawd."

Cov kev pabcuam menyuam ntsuag: qhov poob qis ntawm (micro) kev pabcuam architecture

Raws li ib txwm muaj, muaj nuances. Peb muaj pab pawg ruaj khov, cov thawj coj raug ntsia rau hauv pab pawg. Muaj cov ntaub ntawv meej meej, cov thawj coj saib xyuas txhua yam. Txhua pab pawg nrog tus thawj tswj hwm muaj ntau yam kev pabcuam, thiab muaj qhov tshwj xeeb ntawm kev txawj ntse.

Yog tias pab pawg tau ntab (peb qee zaum kuj siv qhov no), muaj ib txoj hauv kev zoo hu ua "daim duab qhia hnub qub".

Cov kev pabcuam menyuam ntsuag: qhov poob qis ntawm (micro) kev pabcuam architecture

Koj muaj daim ntawv teev cov kev pabcuam thiab cov neeg. Lub hnub qub txhais tau hais tias tus neeg ntawd yog tus kws tshaj lij hauv qhov kev pabcuam no, phau ntawv txhais tau hais tias tus neeg kawm qhov kev pabcuam no. Tus neeg lub luag haujlwm yog hloov phau ntawv rau lub hnub qub. Thiab yog tias tsis muaj dab tsi sau nyob rau hauv pem hauv ntej ntawm qhov kev pab cuam, ces cov teeb meem pib, uas kuv yuav tham txog ntxiv.

Cov kev pabcuam menyuam ntsuag tshwm li cas?

Cov kev pabcuam menyuam ntsuag: qhov poob qis ntawm (micro) kev pabcuam architecture

Thawj qhov teeb meem, thawj txoj hauv kev kom tau txais kev pabcuam menyuam ntsuag hauv koj qhov kev tsim kho yog tua neeg. Puas muaj leej twg puas tau muaj kev lag luam ua tau raws li hnub kawg ua ntej cov haujlwm raug soj ntsuam? Qee lub sij hawm nws tshwm sim tias cov hnub kawg yog nruj thiab tsuas yog tsis muaj sijhawm txaus rau cov ntaub ntawv. "Peb yuav tsum xa cov kev pabcuam rau kev tsim khoom, tom qab ntawd peb yuav ntxiv nws."

Yog tias pab pawg me me, nws tshwm sim tias muaj ib tus tsim tawm uas sau txhua yam, tus so yog nyob rau hauv tis. "Kuv tau sau cov qauv tsim qauv, cia peb ntxiv cov interfaces." Tom qab ntawd ntawm qee kis tus thawj tswj hwm, piv txwv li, tawm mus. Thiab nyob rau lub sijhawm no, thaum tus thawj tswj hwm tau tawm mus thiab tus tshiab tseem tsis tau raug xaiv, cov neeg tsim khoom lawv tus kheej txiav txim siab qhov kev pabcuam yuav mus thiab dab tsi tshwm sim nyob rau ntawd. Thiab raws li peb paub (cia peb rov qab mus rau ob peb lub swb), hauv qee pawg muaj cov neeg snowflake, qee zaum cov thawj coj pab pawg snowflake. Tom qab ntawd nws tawm, thiab peb tau txais kev pabcuam menyuam ntsuag.

Cov kev pabcuam menyuam ntsuag: qhov poob qis ntawm (micro) kev pabcuam architecture

Tib lub sijhawm, cov dej num los ntawm kev txhawb nqa thiab los ntawm kev lag luam tsis ploj mus; lawv xaus rau hauv qhov rov qab. Yog hais tias muaj ib qho kev ua vaj tse yuam kev thaum lub sij hawm tsim kev pab cuam, lawv kuj mus rau hauv lub backlog. Kev pabcuam maj mam deteriorate.

Yuav txheeb xyuas tus menyuam ntsuag li cas?

Daim ntawv no piav txog qhov xwm txheej zoo. Leej twg tau kawm dab tsi txog lawv cov infrastructure?

Cov kev pabcuam menyuam ntsuag: qhov poob qis ntawm (micro) kev pabcuam architecture

Txog cov ntaub ntawv ua haujlwm ib puag ncig: muaj kev pabcuam thiab, feem ntau, nws ua haujlwm, nws muaj ob nplooj ntawv qhia txog kev ua haujlwm nrog nws, tab sis tsis muaj leej twg paub nws ua haujlwm li cas hauv.

Los yog, piv txwv li, muaj qee yam kev txuas luv luv. Piv txwv li, tam sim no peb muaj peb qhov txuas luv luv siv rau cov hom phiaj sib txawv hauv cov kev pabcuam sib txawv. Tej no tsuas yog qhov tshwm sim xwb.

Cov kev pabcuam menyuam ntsuag: qhov poob qis ntawm (micro) kev pabcuam architecture

Tam sim no kuv yuav ua tus thawj coj ntawm qhov pom tseeb. Yuav ua li cas? Ua ntej, peb yuav tsum hloov cov kev pabcuam mus rau lwm tus thawj coj, lwm pab pawg. Yog tias koj pawg thawj coj tseem tsis tau tso tseg, tom qab ntawd hauv lwm pab pawg no, thaum koj nkag siab tias qhov kev pabcuam zoo li menyuam ntsuag, koj yuav tsum suav nrog ib tus neeg nkag siab yam tsawg kawg ntawm nws.

Qhov tseem ceeb: koj yuav tsum muaj cov txheej txheem hloov pauv hauv cov ntshav. Hauv peb qhov xwm txheej, kuv feem ntau saib xyuas qhov no, vim kuv xav tau txhua yam ua haujlwm. Cov thawj coj xav tau kom nws xa sai sai, thiab yuav ua li cas rau nws tom qab tsis tseem ceeb rau lawv lawm.

Cov kev pabcuam menyuam ntsuag: qhov poob qis ntawm (micro) kev pabcuam architecture

Lwm txoj hauv kev los ua tus menyuam ntsuag yog "Peb yuav ua nws tawm, nws yuav nrawm dua, thiab tom qab ntawd peb yuav muab nws rau pab pawg." Nws yog qhov tseeb tias txhua tus neeg muaj qee qhov kev npaj hauv pab pawg, tig. Feem ntau cov neeg siv khoom lag luam xav tias tus neeg siv khoom tawm yuav ua ib yam li lub tuam txhab kev lag luam uas lub tuam txhab muaj. Txawm hais tias lawv cov kev txhawb zog sib txawv. Muaj cov kev daws teeb meem coj txawv txawv thiab cov kev daws teeb meem algorithmic coj txawv txawv hauv outsourcing.

Cov kev pabcuam menyuam ntsuag: qhov poob qis ntawm (micro) kev pabcuam architecture

Piv txwv li, peb muaj ib qho kev pab cuam uas muaj Sphinx nyob rau hauv ntau qhov chaw npaj txhij txog. Kuv mam li qhia koj tom qab kuv yuav tsum ua dab tsi.

Outsourcers muaj cov txheej txheem sau tus kheej. Qhov no tsuas yog liab qab PHP nrog cov ntawv luam tawm los ntawm qhov project dhau los, qhov twg koj tuaj yeem pom txhua yam. Cov ntawv xa tawm yog qhov teeb meem loj thaum koj xav siv qee cov ntawv Bash nyuaj los hloov ob peb kab hauv qee cov ntaub ntawv, thiab cov ntawv xa tawm no raug hu los ntawm qee tsab ntawv thib peb. Yog li ntawd, koj hloov qhov kev xa tawm, xaiv lwm yam, dhia, tab sis koj qhov kev pabcuam tsis ua haujlwm. Vim tias muaj nws yuav tsum tau muab 8 txuas ntxiv ntawm cov folders sib txawv. Los yog nws tshwm sim tias ib txhiab cov ntaub ntawv ua haujlwm, tab sis ib puas txhiab tsis ua haujlwm ntxiv lawm.

Kuv tseem yuav ua tus thawj coj. Txais ib qho kev pabcuam sab nraud yog ib qho yuav tsum tau ua. Puas muaj leej twg puas tau muaj kev pabcuam sab nraud tuaj txog thiab tsis raug lees txais nyob qhov twg? Qhov no tsis yog nrov, tau kawg, ua ib qho kev pabcuam menyuam ntsuag, tab sis tseem.

Cov kev pabcuam menyuam ntsuag: qhov poob qis ntawm (micro) kev pabcuam architecture

Cov kev pabcuam yuav tsum tau kuaj xyuas, cov kev pabcuam yuav tsum tau tshuaj xyuas, cov passwords yuav tsum tau hloov. Peb muaj ib rooj plaub thaum lawv muab kev pab rau peb, muaj ib tug admin vaj huam sib luag "yog tus ID nkag mus == 'admin' && password == 'admin' ... ", nws yog sau nyob rau hauv cov cai. Peb zaum thiab xav, thiab tib neeg sau qhov no hauv 2018?

Kev ntsuas lub peev xwm cia kuj yog ib qho tsim nyog. Koj yuav tsum tau saib dab tsi yuav tshwm sim ntawm ib puas txhiab cov ntaub ntawv, txawm tias ua ntej koj muab qhov kev pabcuam no rau hauv qhov chaw.

Cov kev pabcuam menyuam ntsuag: qhov poob qis ntawm (micro) kev pabcuam architecture

Yuav tsum tsis muaj kev txaj muag hauv kev xa cov kev pabcuam rau kev txhim kho. Thaum koj hais tias: "Peb yuav tsis lees txais qhov kev pabcuam no, peb muaj 20 txoj haujlwm, ua lawv, ces peb yuav txais," qhov no yog qhov qub. Koj lub siab yuav tsum tsis txhob raug mob los ntawm qhov tseeb tias koj tab tom teeb tsa tus thawj tswj hwm lossis kev lag luam nkim nyiaj. Kev lag luam ces yuav siv nyiaj ntau dua.

Peb muaj ib rooj plaub thaum peb txiav txim siab outsource ib tug pilot project.

Cov kev pabcuam menyuam ntsuag: qhov poob qis ntawm (micro) kev pabcuam architecture

Nws tau xa tuaj raws sijhawm, thiab qhov no tsuas yog qhov kev ntsuas zoo xwb. Tias yog vim li cas peb thiaj ua lwm qhov kev sim, uas tsis yog tus kws tsav dav hlau ntxiv lawm. Cov kev pabcuam no tau txais, thiab los ntawm kev tswj hwm txhais tau tias lawv tau hais tias, ntawm no yog koj tus lej, ntawm no yog pab pawg, ntawm no yog koj tus thawj tswj hwm. Cov kev pabcuam yeej tau pib ua kom tau nyiaj. Tib lub sijhawm, qhov tseeb, lawv tseem yog menyuam ntsuag, tsis muaj leej twg nkag siab tias lawv ua haujlwm li cas, thiab cov thawj coj ua lawv qhov zoo tshaj plaws los tsis lees paub lawv txoj haujlwm.

Cov kev pabcuam menyuam ntsuag: qhov poob qis ntawm (micro) kev pabcuam architecture

Muaj lwm lub tswv yim zoo - guerrilla txoj kev loj hlob. Thaum qee lub tuam tsev, feem ntau yog lub tuam txhab lag luam, xav sim qhov kev xav thiab txiav txim siab tag nrho cov kev pabcuam outsourced. Kev tsheb pib ntws mus rau hauv nws, lawv kaw cov ntaub ntawv, kos npe rau cov ntaub ntawv nrog tus neeg cog lus, tuaj ua haujlwm thiab hais tias: "Cov txiv neej, peb muaj kev pabcuam ntawm no, nws twb muaj tsheb khiav, nws nqa nyiaj rau peb, cia peb txais." Peb zoo li, "Oppa, yuav ua li cas ua tau."

Cov kev pabcuam menyuam ntsuag: qhov poob qis ntawm (micro) kev pabcuam architecture

Thiab lwm txoj hauv kev kom tau txais kev pabcuam menyuam ntsuag: thaum qee pab pawg pom nws tus kheej thauj khoom, kev tswj hwm hais tias: "Cia peb hloov cov kev pabcuam ntawm pab pawg no mus rau lwm pab pawg, nws muaj lub nra me dua." Thiab tom qab ntawd peb yuav hloov nws mus rau pab pawg thib peb thiab hloov tus thawj tswj hwm. Thiab thaum kawg peb muaj ib tug menyuam ntsuag dua.

Dab tsi yog qhov teeb meem rau menyuam ntsuag?

Cov kev pabcuam menyuam ntsuag: qhov poob qis ntawm (micro) kev pabcuam architecture

Leej twg tsis paub, qhov no yog lub nkoj sib ntaus sib tua Wasa tau tsa hauv Sweden, nto moo rau qhov tseeb tias nws ntog 5 feeb tom qab tso tawm. Thiab tus Vaj Ntxwv ntawm Sweden, los ntawm txoj kev, tsis tau tua leej twg rau qhov no. Nws tau tsim los ntawm ob tiam neeg ntawm cov engineers uas tsis paub yuav ua li cas tsim cov nkoj zoo li no. Ntuj nyhuv.

Lub nkoj yuav poob, los ntawm txoj kev, nyob rau hauv ib txoj kev phem heev, piv txwv li, thaum huab tais twb caij rau nws nyob rau hauv ib qho chaw ntawm cua daj cua dub. Thiab yog li ntawd, nws poob dej tam sim ntawd, raws li Agile nws yog qhov zoo kom ua tsis tau ntxov.

Yog tias peb ua tsis tiav thaum ntxov, feem ntau tsis muaj teeb meem. Piv txwv li, thaum lees txais nws raug xa mus rau kev kho dua tshiab. Tab sis yog tias peb ua tsis tiav hauv kev tsim khoom, thaum cov nyiaj tau nqis peev, ces yuav muaj teeb meem. Cov txiaj ntsig, raws li lawv tau hu ua lag luam.

Vim li cas cov kev pabcuam menyuam ntsuag yog qhov txaus ntshai:

  • Kev pabcuam yuav tawg sai sai.
  • Kev pabcuam siv sijhawm ntev los kho lossis tsis kho txhua.
  • Teeb meem kev nyab xeeb.
  • Teeb meem nrog kev txhim kho thiab hloov tshiab.
  • Yog tias qhov kev pabcuam tseem ceeb tawg, lub tuam txhab lub koob npe nrov raug kev txom nyem.

Yuav ua li cas nrog cov kev pabcuam menyuam ntsuag?

Cov kev pabcuam menyuam ntsuag: qhov poob qis ntawm (micro) kev pabcuam architecture

Kuv yuav rov ua dab tsi ntxiv. Ua ntej, yuav tsum muaj cov ntaub ntawv. 7 xyoo ntawm Banki.ru tau qhia kuv tias cov neeg sim yuav tsum tsis txhob coj cov lus ntawm cov neeg tsim khoom, thiab kev ua haujlwm yuav tsum tsis txhob coj cov lus ntawm txhua tus. Peb yuav tsum tau kuaj.

Cov kev pabcuam menyuam ntsuag: qhov poob qis ntawm (micro) kev pabcuam architecture

Qhov thib ob, nws yog ib qho tsim nyog los sau cov duab kos duab sib cuam tshuam, vim tias nws tshwm sim tias cov kev pabcuam uas tsis tau txais zoo heev muaj kev vam meej uas tsis muaj leej twg hais txog. Piv txwv li, cov neeg tsim khoom tau teeb tsa qhov kev pabcuam ntawm lawv tus yuam sij rau qee qhov Yandex.Maps lossis Dadata. Koj tau khiav tawm ntawm kev txwv pub dawb, txhua yam tawg, thiab koj tsis paub tias muaj dab tsi tshwm sim. Tag nrho cov rakes yuav tsum tau piav qhia: cov kev pabcuam siv Dadata, SMS, lwm yam.

Cov kev pabcuam menyuam ntsuag: qhov poob qis ntawm (micro) kev pabcuam architecture

Thib peb, ua haujlwm nrog cov nuj nqis technical. Thaum koj ua qee yam khoom siv ntoo lossis txais kev pabcuam thiab hais tias qee yam yuav tsum tau ua, koj yuav tsum ua kom paub tseeb tias nws ua tiav. Vim li ntawd nws yuav tig tawm tias lub qhov me me tsis yog li ntawd, thiab koj yuav poob los ntawm nws.

Nrog rau kev ua vaj tse, peb muaj ib zaj dab neeg txog Sphinx. Ib qho ntawm cov kev pabcuam siv Sphinx los sau cov npe. Tsuas yog ib daim ntawv teev npe paginated, tab sis nws tau rov txheeb xyuas txhua hmo. Nws tau sib sau los ntawm ob qhov ntsuas: ib qho loj tau ntsuas txhua txhua hmo, thiab tseem muaj qhov ntsuas me me uas tau ntsia rau nws. Txhua txhua hnub, nrog 50% qhov tshwm sim ntawm kev foob pob lossis tsis yog, qhov ntsuas tau poob thaum lub sijhawm suav, thiab peb cov xov xwm tau nres hloov kho ntawm nplooj ntawv tseem ceeb. Thaum xub thawj nws siv 5 feeb rau qhov ntsuas kom rov ntsuas dua, tom qab ntawd qhov ntsuas tau loj hlob, thiab qee lub sijhawm nws pib siv 40 feeb los rov ntsuas dua. Thaum peb txiav qhov no tawm, peb ua tsis taus pa ntawm lub siab, vim nws pom tseeb tias me ntsis sij hawm ntxiv yuav dhau mus thiab peb qhov ntsuas yuav rov qab ntsuas puv sijhawm. Qhov no yuav yog qhov ua tsis tiav rau peb lub portal, tsis muaj xov xwm rau yim teev - qhov ntawd yog nws, kev lag luam tau nres.

Npaj rau kev ua haujlwm nrog kev pabcuam menyuam ntsuag

Cov kev pabcuam menyuam ntsuag: qhov poob qis ntawm (micro) kev pabcuam architecture

Qhov tseeb, qhov no yog qhov nyuaj heev los ua, vim tias devops yog hais txog kev sib txuas lus. Koj xav ua kom zoo nrog koj cov npoj yaig, thiab thaum koj ntaus koj cov npoj yaig thiab cov thawj coj ntawm lub taub hau nrog cov cai, lawv yuav muaj kev tsis sib haum xeeb rau cov neeg uas ua qhov no.

Ntxiv rau tag nrho cov ntsiab lus no, muaj lwm qhov tseem ceeb: cov neeg tshwj xeeb yuav tsum muaj lub luag haujlwm rau txhua qhov kev pabcuam tshwj xeeb, rau txhua ntu tshwj xeeb ntawm cov txheej txheem xa tawm. Thaum tsis muaj neeg thiab koj yuav tsum nyiam qee tus neeg los kawm tag nrho cov teeb meem no, nws nyuaj.

Cov kev pabcuam menyuam ntsuag: qhov poob qis ntawm (micro) kev pabcuam architecture

Yog tias tag nrho cov no tsis pab, thiab koj qhov kev pabcuam menyuam ntsuag tseem yog menyuam ntsuag, tsis muaj leej twg xav coj nws mus, cov ntaub ntawv tsis tau sau, pab pawg uas raug hu rau hauv qhov kev pabcuam no tsis kam ua dab tsi, muaj ib txoj hauv kev yooj yim - rov ua dua. txhua yam.

Ntawd yog, koj coj cov kev xav tau rau cov kev pabcuam tshiab thiab sau cov kev pabcuam tshiab, zoo dua, ntawm lub platform zoo dua, tsis muaj kev daws teeb meem txawv txawv. Thiab koj tsiv mus rau nws hauv kev sib ntaus sib tua.

Cov kev pabcuam menyuam ntsuag: qhov poob qis ntawm (micro) kev pabcuam architecture

Peb muaj qhov xwm txheej thaum peb tau txais kev pabcuam ntawm Yii 1 thiab pom tau tias peb tsis tuaj yeem txhim kho nws ntxiv, vim peb tau khiav tawm ntawm cov neeg tsim khoom uas tuaj yeem sau tau zoo ntawm Yii 1. Txhua tus neeg tsim khoom sau tau zoo ntawm Symfony XNUMX. Yuav ua li cas? Peb faib sijhawm, faib pab pawg, faib tus thawj coj, rov sau qhov project thiab hloov tsheb mus rau nws zoo.

Tom qab no, cov kev pabcuam qub tuaj yeem raug tshem tawm. Qhov no yog cov txheej txheem uas kuv nyiam tshaj plaws, thaum koj yuav tsum tau coj thiab ntxuav tawm qee qhov kev pabcuam los ntawm kev tswj hwm kev teeb tsa thiab tom qab ntawd mus dhau thiab pom tias txhua lub tsheb hauv kev tsim khoom tau raug xiam oob qhab, yog li ntawd cov neeg tsim khoom tsis muaj cov cim tseg. Lub repository tseem nyob hauv Git.

Qhov no yog txhua yam kuv xav tham txog, Kuv npaj siab los tham, lub ntsiab lus yog holivar, ntau tus tau ua luam dej hauv nws.

Cov slides hais tias koj unified languages. Ib qho piv txwv yog qhov resizing ntawm cov duab. Puas yog nws yuav tsum nruj nruj rau ib hom lus? Vim tias cov duab resizing hauv PHP, zoo, tuaj yeem ua tiav hauv Golang.

Qhov tseeb, nws yog xaiv tau, zoo li txhua yam kev coj ua. Tej zaum, nyob rau hauv tej rooj plaub, nws yog txawm undesirable. Tab sis koj yuav tsum nkag siab tias yog tias koj muaj lub tuam txhab kev lag luam hauv ib lub tuam txhab ntawm 50 tus neeg, 45 ntawm lawv yog cov kws tshaj lij PHP, lwm 3 yog devops uas paub Python, Ansible, Puppet thiab ib yam dab tsi zoo li ntawd, thiab tsuas yog ib qho ntawm lawv sau hauv qee qhov. hom lus, qee qhov Go duab resizing kev pab cuam, tom qab ntawd thaum nws tawm mus, kev txawj ntse mus nrog nws. Thiab nyob rau tib lub sijhawm, koj yuav tsum tau nrhiav tus neeg tsim khoom lag luam tshwj xeeb uas paub cov lus no, tshwj xeeb tshaj yog tias nws tsis tshua muaj. Ntawd yog, los ntawm qhov kev xav ntawm lub koom haum, qhov no yog teeb meem. Los ntawm qhov pom ntawm devops, koj yuav tsis tsuas yog yuav tsum tau clone qee cov ntawv npaj ua si uas koj siv los xa cov kev pabcuam, tab sis koj yuav tau sau lawv dua.

Tam sim no peb tab tom tsim kev pabcuam ntawm Node.js, thiab qhov no tsuas yog lub platform nyob ze rau txhua tus tsim tawm nrog cov lus sib txawv. Tab sis peb zaum thiab xav tias qhov kev ua si tsim nyog rau lub tswm ciab. Qhov ntawd yog, qhov no yog ib lo lus nug rau koj zaum thiab xav txog.

Koj saib xyuas koj cov kev pabcuam li cas? Koj sau thiab saib xyuas cov cav li cas?

Peb sau cov cav hauv Elasticsearch thiab muab tso rau hauv Kibana, thiab nyob ntawm seb nws puas yog qhov chaw tsim khoom lossis qhov chaw sim, cov khoom sib txawv tau siv nyob ntawd. Qee qhov Lumberjack, lwm qhov chaw lwm yam, kuv tsis nco qab. Thiab tseem muaj qee qhov chaw hauv qee qhov kev pabcuam uas peb nruab Telegraf thiab tua lwm qhov sib cais.

Yuav ua li cas nyob nrog Puppet thiab Ansible nyob rau hauv tib qhov chaw?

Qhov tseeb, tam sim no peb muaj ob qhov chaw, ib qho yog Puppet, lwm qhov yog Ansible. Peb tab tom ua haujlwm hybridize lawv. Ansible yog lub hauv paus zoo rau kev teeb tsa thawj zaug, Puppet yog lub hauv paus tsis zoo rau kev teeb tsa thawj zaug vim tias nws yuav tsum tau siv tes ua haujlwm ncaj qha rau ntawm lub platform, thiab Puppet ua kom muaj kev sib koom ua ke. Qhov no txhais tau hais tias lub platform tswj hwm nws tus kheej hauv lub xeev tshiab, thiab txhawm rau kom lub tshuab ansibilized khaws cia rau hnub tim, koj yuav tsum tau khiav cov ntawv ua si rau nws txhua lub sijhawm nrog qee zaus. Qhov ntawd yog qhov txawv.

Yuav ua li cas koj tuav compatibility? Koj puas muaj configs hauv Ansible thiab Puppet?

Qhov no yog peb qhov mob loj, peb tuav kev sib raug zoo nrog peb txhais tes thiab xav txog yuav ua li cas txav mus los ntawm txhua qhov chaw tam sim no. Nws hloov tawm tias Puppet dov tawm cov pob khoom thiab tuav qee qhov txuas rau ntawd, thiab Ansible, piv txwv li, dov tawm cov cai thiab kho qhov tseeb daim ntawv thov configs muaj.

Qhov kev nthuav qhia yog hais txog txawv versions ntawm Ruby. Yuav daws li cas?

Peb ntsib qhov no hauv ib qho chaw, thiab peb yuav tsum khaws nws hauv peb lub taub hau txhua lub sijhawm. Peb tsuas yog muab qhov chaw khiav ntawm Ruby uas tsis sib haum nrog cov ntawv thov thiab khaws nws cais.

Xyoo no lub rooj sib tham DevOpsDays Moscow yuav muaj nyob rau lub Kaum Ob Hlis 7 ntawm Technopolis. Peb tab tom lees txais cov ntawv thov rau cov ntaub ntawv kom txog thaum lub Kaum Ib Hlis 11. Sau peb yog koj xav hais lus.

Kev tso npe rau cov neeg koom tau qhib, koom nrog peb!

Tau qhov twg los: www.hab.com

Ntxiv ib saib