Kev soj ntsuam raws li kev pabcuam: kev ua haujlwm modular rau microservice architecture
Niaj hnub no, ntxiv rau txoj cai monolithic, peb qhov project suav nrog ntau lub microservices. Txhua tus ntawm lawv yuav tsum tau saib xyuas. Ua qhov no ntawm qhov ntsuas siv DevOps engineers yog teeb meem. Peb tau tsim ib qho kev saib xyuas uas ua haujlwm raws li kev pabcuam rau cov neeg tsim khoom. Lawv tuaj yeem sau cov metrics ntawm nws tus kheej rau hauv kev saib xyuas, siv lawv, tsim cov dashboards raws li lawv, thiab xa cov lus ceeb toom rau lawv uas yuav tshwm sim thaum cov nqi pib mus txog. Rau DevOps engineers, tsuas yog infrastructure thiab cov ntaub ntawv.
Cov ncej no yog ib daim ntawv teev lus ntawm kuv cov lus nrog peb ntu ntawm RIT++. Ntau tus neeg tau thov kom peb ua cov ntawv nyeem ntawm cov lus ceeb toom los ntawm qhov ntawd. Yog tias koj nyob hauv lub rooj sab laj lossis saib cov yeeb yaj kiab, koj yuav tsis pom dab tsi tshiab. Thiab txhua leej txhua tus - txais tos rau miv. Kuv yuav qhia koj seb peb tuaj rau qhov system li cas, nws ua haujlwm li cas thiab peb npaj yuav hloov kho nws li cas.
Yav dhau los: schemes thiab kev npaj
Peb tuaj txog ntawm qhov kev saib xyuas tam sim no li cas? Txhawm rau teb cov lus nug no, koj yuav tsum mus rau xyoo 2015. Nov yog qhov nws zoo li ntawd:
Peb muaj kwv yees li 24 qhov ntawm lub luag haujlwm saib xyuas. Muaj ib pob tag nrho ntawm cov yas sib txawv, cov ntawv sau, daemons uas saib xyuas qee yam, xa lus, thiab ua haujlwm. Peb xav tias qhov ntxiv peb mus, qhov tsis muaj peev xwm zoo li no yuav yog. Tsis muaj teeb meem hauv kev tsim nws: nws yog cumbersome dhau lawm.
Peb txiav txim siab xaiv cov kev saib xyuas uas peb yuav khaws thiab txhim kho, thiab cov uas peb yuav tso tseg. Muaj 19 tus ntawm lawv, tsuas yog graphites, aggregators thiab Grafana ua lub dashboard tseem nyob. Tab sis qhov system tshiab yuav zoo li cas? Zoo li no:
Peb muaj kev ntsuas kev ntsuas: cov no yog cov graphites, uas yuav ua raws li SSD tsav ceev, cov no yog qee qhov sib sau ua ke rau kev ntsuas. Tom ntej no - Grafana rau displaying dashboards thiab Moira rau ceeb toom. Peb kuj xav tsim ib qho system rau kev tshawb nrhiav qhov tsis txaus ntseeg.
Standard: Saib xyuas 2.0
Qhov no yog qhov kev npaj zoo li xyoo 2015. Tab sis peb yuav tsum tau npaj tsis yog tsuas yog kev tsim kho vaj tse thiab kev pabcuam nws tus kheej xwb, tab sis kuj yog cov ntaub ntawv rau nws. Peb tau tsim cov qauv kev lag luam rau peb tus kheej, uas peb hu ua kev soj ntsuam 2.0. Dab tsi yog qhov yuav tsum tau ua rau qhov system?
muaj nyob tas li;
metrics cia lub sijhawm = 10 vib nas this;
txhim khu kev qha cia ntawm metrics thiab dashboards;
SLA > 99,99%
sau cov xwm txheej ntsuas ntawm UDP (!).
Peb xav tau UDP vim tias peb muaj kev khiav tsheb loj thiab cov xwm txheej uas tsim kev ntsuas. Yog tias koj sau tag nrho rau hauv graphite ib zaug, qhov chaw cia yuav vau. Peb kuj tau xaiv thawj theem ua ntej rau txhua qhov ntsuas.
Txhua tus prefixes muaj qee yam khoom. Muaj cov kev ntsuas rau cov servers, networks, ntim, cov peev txheej, kev siv, thiab lwm yam. Clear, nruj, typed filtering tau raug muab coj los siv, qhov twg peb txais thawj-theem metrics thiab cias tso tseg. Qhov no yog li cas peb npaj qhov system no hauv 2015. Tam sim no yog dab tsi?
Tam sim no: daim duab ntawm kev sib cuam tshuam ntawm kev saib xyuas cov khoom
Ua ntej tshaj plaws, peb saib xyuas cov ntawv thov: peb cov lej PHP, cov ntawv thov thiab microservices - luv luv, txhua yam uas peb cov neeg tsim khoom sau. Txhua daim ntawv thov xa cov ntsuas ntawm UDP mus rau Brubeck aggregator (statsd, rov sau dua hauv C). Nws tau dhau los ua qhov ceev tshaj plaws hauv kev sim hluavtaws. Thiab nws xa cov metrics sib sau ua ke rau Graphite ntawm TCP.
Nws muaj ib hom kev ntsuas hu ua timers. Qhov no yog ib qho yooj yim heev. Piv txwv li, rau txhua tus neeg siv kev sib txuas rau qhov kev pabcuam, koj xa ib qho kev ntsuas nrog lub sijhawm teb rau Brubeck. Ib lab cov lus teb tuaj, tab sis tus sau rov qab tsuas yog 10 qhov ntsuas. Koj muaj pes tsawg tus neeg tuaj, qhov siab tshaj plaws, yam tsawg kawg nkaus thiab nruab nrab lub sij hawm teb, qhov nruab nrab thiab 4 feem pua. Tom qab ntawd cov ntaub ntawv raug xa mus rau Graphite thiab peb pom nws tag nrho nyob.
Peb kuj muaj kev sib sau ua ke rau kev ntsuas ntawm cov khoom siv kho vajtse, software, kev ntsuas qhov system thiab peb qhov qub Munin xyuas qhov system (nws ua haujlwm rau peb txog xyoo 2015). Peb sau tag nrho cov no los ntawm C daemon CollectD (nws muaj tag nrho pawg ntawm cov plugins sib txawv tsim rau hauv nws, nws tuaj yeem tshawb xyuas tag nrho cov peev txheej ntawm tus tswv tsev uas nws tau teeb tsa, tsuas yog qhia hauv kev teeb tsa qhov twg los sau cov ntaub ntawv) thiab sau cov ntaub ntawv rau Graphite los ntawm nws. Nws kuj tseem txhawb nqa python plugins thiab cov ntawv plhaub, yog li koj tuaj yeem sau koj tus kheej cov kev cai daws teeb meem: CollectD yuav sau cov ntaub ntawv no los ntawm tus tswv tsev lossis chaw taws teeb (xws li Curl) thiab xa mus rau Graphite.
Tom qab ntawd peb xa tag nrho cov kev ntsuas uas peb tau sau rau Carbon-c-relay. Qhov no yog cov tshuaj Carbon Relay los ntawm Graphite, hloov kho hauv C. Qhov no yog lub router uas sau tag nrho cov metrics uas peb xa los ntawm peb cov aggregators thiab xa lawv mus rau cov nodes. Tsis tas li nyob rau theem routing, nws tshawb xyuas qhov siv tau ntawm cov ntsuas. Ua ntej, lawv yuav tsum tau ua raws li cov txheej txheem ua ntej uas kuv tau pom ua ntej thiab, qhov thib ob, lawv siv tau rau graphite. Txwv tsis pub lawv yuav poob.
Carbon-c-relay ces xa cov metrics mus rau Graphite pawg. Peb siv Carbon-cache, rewritten nyob rau hauv Go, raws li lub ntsiab cia ntawm metrics. Go-carbon, vim nws txoj kev sib txuas ntau, deb tshaj Carbon-cache. Nws tau txais cov ntaub ntawv thiab sau nws rau disks siv lub pob ntxhi (tus qauv, sau hauv python). Txhawm rau nyeem cov ntaub ntawv los ntawm peb cov chaw khaws cia, peb siv Graphite API. Nws yog nrawm dua li tus qauv Graphite WEB. Yuav ua li cas rau cov ntaub ntawv tom ntej?
Lawv mus rau Grafana. Peb siv peb cov graphite pawg ua cov ntaub ntawv tseem ceeb, ntxiv rau peb muaj Grafana ua lub vev xaib sib cuam tshuam rau kev nthuav tawm cov ntsuas ntsuas thiab lub tsev dashboards. Rau txhua qhov ntawm lawv cov kev pabcuam, cov neeg tsim khoom tsim lawv tus kheej dashboard. Tom qab ntawd lawv tsim cov duab raws li lawv, uas tso saib cov metrics lawv sau los ntawm lawv daim ntawv thov. Ntxiv rau Grafana, peb kuj muaj SLAM. Qhov no yog python dab uas suav SLA raws li cov ntaub ntawv los ntawm graphite. Raws li kuv twb tau hais lawm, peb muaj ntau lub kaum os microservices, txhua tus muaj nws tus kheej xav tau. Siv SLAM, peb mus rau hauv cov ntaub ntawv thiab muab piv nrog qhov muaj nyob hauv Graphite thiab sib piv cov kev xav tau zoo npaum li cas ntawm peb cov kev pabcuam.
Cia peb mus ntxiv: ceeb toom. Nws yog npaj siv lub zog muaj zog - Moira. Nws yog ywj siab vim nws muaj nws tus kheej Graphite nyob rau hauv lub hood. Tsim los ntawm cov hais mav los ntawm SKB "Kontur", sau nyob rau hauv python thiab mus, kiag li qhib qhov chaw. Moira tau txais tib qhov ntws mus rau hauv graphites. Yog tias vim li cas koj qhov chaw cia tuag, koj qhov kev ceeb toom tseem yuav ua haujlwm.
Zoo, txij li peb yog ib lub tuam txhab kev vam meej, peb kuj tau saib xyuas Kubernetes hauv qhov system no. Peb suav nrog nws hauv qhov system siv Heapster, uas peb tau teeb tsa hauv pawg, nws sau cov ntaub ntawv thiab xa mus rau Graphite. Yog li ntawd, daim duab zoo li no:
Saib xyuas cov Cheebtsam
Ntawm no yog ib daim ntawv teev cov txuas mus rau cov khoom uas peb tau siv rau txoj haujlwm no. Tag nrho cov ntawm lawv yog qhib qhov chaw.