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.
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.
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.
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".
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?
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.
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?
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.
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.
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.
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 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.
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.
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.
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."
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?
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?
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.
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.
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
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.
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.
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.
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.