Танос - Скалабилни Прометеј

Превод чланка је припремљен посебно за студенте курса „ДевОпс праксе и алати“.

Фабиан Реинартз је програмер софтвера, Го фанатик и решавање проблема. Такође је Прометхеус одржавалац и суоснивач Кубернетес СИГ инструментације. У прошлости је био инжењер продукције у СоундЦлоуд-у и водио је тим за праћење у ЦореОС-у. Тренутно ради у Гоогле-у.

Бартек Плотка - Инжењер инфраструктуре у компанији Импробабле. Занимају га нове технологије и проблеми дистрибуираних система. Има искуство програмирања ниског нивоа у Интелу, искуство сарадника у Месосу и искуство у производњи СРЕ светске класе у Импробаблеу. Посвећени побољшању света микроуслуга. Његове три љубави: Голанг, опен соурце и одбојка.

Гледајући наш водећи производ СпатиалОС, можете претпоставити да Импробабле захтева веома динамичну инфраструктуру облака глобалног нивоа са десетинама Кубернетес кластера. Били смо једни од првих који су користили систем за праћење Прометеј. Прометхеус је способан да прати милионе метрика у реалном времену и долази са моћним језиком упита који вам омогућава да извучете информације које су вам потребне.

Једноставност и поузданост Прометеја је једна од његових главних предности. Међутим, када смо прешли одређену скалу, наишли смо на неколико недостатака. Да бисмо решили ове проблеме смо развили Тханос је пројекат отвореног кода који је креирао Импробабле да неприметно трансформише постојеће Прометхеус кластере у јединствен систем за праћење са неограниченим складиштењем историјских података. Тханос је доступан на Гитхуб-у овде.

Будите у току са најновијим вестима из компаније Импробабле.

Наши циљеви са Таносом

У одређеном обиму јављају се проблеми који су изван могућности ванили Прометеја. Како поуздано и економично чувати петабајте историјских података? Може ли се ово урадити без угрожавања времена одговора? Да ли је могуће приступити свим метрикама које се налазе на различитим Прометхеус серверима са једним АПИ захтевом? Да ли постоји начин да се комбинују реплицирани подаци прикупљени помоћу Прометхеус ХА?

Да бисмо решили ове проблеме, креирали смо Тханос. Следећи одељци описују како смо приступили овим питањима и објашњавају наше циљеве.

Упит за податке из више Прометхеус инстанци (глобални упит)

Прометеј нуди функционалан приступ шардовању. Чак и један Прометхеус сервер пружа довољну скалабилност да ослободи кориснике сложености хоризонталног дељења у скоро свим случајевима употребе.

Иако је ово одличан модел примене, често је потребно приступити подацима на различитим Прометхеус серверима преко једног АПИ-ја или корисничког интерфејса – глобалног погледа. Наравно, могуће је приказати више упита у једном Графана панелу, али сваки упит се може извршити само на једном Прометхеус серверу. С друге стране, са Тханос-ом можете испитивати и агрегирати податке са више Прометхеус сервера пошто су сви доступни са једне крајње тачке.

Раније, да бисмо добили глобални поглед у Невероватно, организовали смо наше Прометхеус инстанце у више нивоа Хијерархијска федерација. То је значило стварање једног Прометхеус мета сервера који прикупља неке од метрика са сваког листа сервера.

Танос - Скалабилни Прометеј

Овај приступ се показао проблематичним. Ово је резултирало сложенијим конфигурацијама, додавањем додатне потенцијалне тачке квара и применом сложених правила како би се осигурало да федерална крајња тачка прима само податке који су јој потребни. Поред тога, ова врста федерације вам не дозвољава да добијете прави глобални приказ, пошто нису сви подаци доступни из једног АПИ захтева.

Уско повезан са овим је обједињени поглед на податке прикупљене на Прометхеус серверима високе доступности (ХА). Прометејев ХА модел независно прикупља податке два пута, што је толико једноставно да не може бити једноставније. Међутим, коришћење комбинованог и дедуплицираног приказа оба тока било би много згодније.

Наравно, постоји потреба за високо доступним Прометхеус серверима. У компанији Импробабле, посматрање података из минута у минут схватамо заиста озбиљно, али имати једну Прометхеус инстанцу по кластеру представља једну грешку. Свака грешка у конфигурацији или хардверски квар може потенцијално довести до губитка важних података. Чак и једноставна примена може да изазове мање сметње у прикупљању метрика јер поновна покретања могу бити знатно дужа од интервала гребања.

Поуздано складиштење историјских података

Јефтино, брзо, дугорочно складиштење метрике је наш сан (који дели већина Прометхеус корисника). У Невероватно, били смо приморани да конфигуришемо период задржавања метрике на девет дана (за Прометхеус 1.8). Ово додаје очигледна ограничења колико далеко можемо гледати уназад.

Прометхеус 2.0 је побољшан у том погледу, пошто број временских серија више не утиче на укупне перформансе сервера (види. КубеЦон увод о Прометеју 2). Међутим, Прометеј чува податке на локалном диску. Иако високоефикасна компресија података може значајно да смањи употребу локалног ССД-а, на крају крајева, још увек постоји ограничење количине историјских података који се могу ускладиштити.

Поред тога, у компанији Импробабле бринемо о поузданости, једноставности и цени. Великим локалним дисковима је теже руковати и правити резервне копије. Они коштају више и захтевају више алата за прављење резервних копија, што доводи до непотребне сложености.

Смањење узорковања

Када смо почели да радимо са историјским подацима, схватили смо да постоје фундаменталне потешкоће са великим-О због којих упити постају све спорији и спорији док радимо са подацима из недеља, месеци и година.

Стандардно решење овог проблема би било смањење узорковања (довнсамплинг) - смањење фреквенције узорковања сигнала. Са смањењем узорковања, можемо „смањити“ на већи временски опсег и одржавати исти број узорака, одржавајући упите одговорним.

Смањење узорковања старих података је неизбежан захтев сваког решења за дуготрајно складиштење и ван је оквира ваниле Прометеја.

Додатни циљеви

Један од првобитних циљева Тханос пројекта био је да се неприметно интегрише са било којом постојећом инсталацијом Прометеја. Други циљ је био једноставност рада са минималним препрекама за улазак. Било какве зависности треба лако задовољити и за мале и за велике кориснике, што такође значи ниску основну цену.

Тханос архитектура

Након што смо навели наше циљеве у претходном одељку, хајде да их прорадимо и видимо како Танос решава ове проблеме.

Глобални поглед

Да бисмо добили глобални поглед на постојеће Прометхеус инстанце, морамо да повежемо једну улазну тачку захтева са свим серверима. То је управо оно што Тханос компонента ради. приколица. Примењује се поред сваког Прометхеус сервера и делује као прокси, опслужујући локалне Прометхеус податке преко гРПЦ Сторе АПИ-ја, омогућавајући да се подаци временске серије преузимају према ознаци и временском опсегу.

На другој страни је скала-оут, Куериер компонента без стања, која ради само нешто више од само одговарања на ПромКЛ упите преко стандардног Прометхеус ХТТП АПИ-ја. Куериер, Сидецар и друге Тханос компоненте комуницирају путем трач протокол.

Танос - Скалабилни Прометеј

  1. Куериер, по пријему захтева, повезује се са одговарајућим Сторе АПИ сервером, односно са нашим Сидецарима и прима податке о временским серијама са одговарајућих Прометхеус сервера.
  2. Након тога, комбинује одговоре и извршава ПромКЛ упит на њима. Куериер може да споји и дисјунктне податке и дупликате података са Прометхеус ХА сервера.

Ово решава главни део наше слагалице - комбиновање података са изолованих Прометхеус сервера у један приказ. У ствари, Тханос се може користити само за ову функцију. Нема потребе да се мењају постојећи Прометхеус сервери!

Неограничен рок трајања!

Међутим, пре или касније пожелећемо да ускладиштимо податке изван уобичајеног времена задржавања Прометеја. Изабрали смо складиште објеката за складиштење историјских података. Широко је доступан у било ком облаку, као иу локалним центрима података и веома је исплатив. Поред тога, скоро свако складиштење објеката је доступно преко добро познатог С3 АПИ-ја.

Прометеј уписује податке из РАМ-а на диск отприлике свака два сата. Складиштени блок података садржи све податке за одређени временски период и непроменљив је. Ово је веома згодно јер Тханос Сидецар може једноставно да погледа Прометхеусов директоријум података и, како нови блокови постану доступни, учита их у канте за складиштење објеката.

Танос - Скалабилни Прометеј

Учитавање у складиште објеката одмах након писања на диск такође вам омогућава да одржите једноставност стругача (Прометеј и Танос Сидецар). Што поједностављује подршку, трошкове и дизајн система.

Као што видите, сигурносна копија података је врло једноставна. Али шта је са упитом података у складишту објеката?

Компонента Тханос Сторе делује као прокси за преузимање података из складишта објеката. Као и Тханос Сидецар, он учествује у кластеру трачева и имплементира Сторе АПИ. На овај начин, постојећи Куериер може да га третира као Сидецар, као још један извор података временске серије - није потребна посебна конфигурација.

Танос - Скалабилни Прометеј

Блокови података временских серија састоје се од неколико великих датотека. Њихово учитавање на захтев би било прилично неефикасно, а локално кеширање захтевало би огромну количину меморије и простора на диску.

Уместо тога, Сторе Гатеваи зна како да рукује Прометхеус форматом складиштења. Захваљујући паметном планеру упита и кеширању само неопходних индексних делова блокова, могуће је свести сложене упите на минимални број ХТТП захтева за датотеке за складиштење објеката. На овај начин можете смањити број захтева за четири до шест редова величине и постићи време одговора које је генерално тешко разликовати од захтева за податке на локалном ССД-у.

Танос - Скалабилни Прометеј

Као што је приказано на дијаграму изнад, Тханос Куериер значајно смањује цену по упиту података за складиштење објеката тако што користи Прометхеус формат складиштења и поставља повезане податке један поред другог. Користећи овај приступ, можемо комбиновати много појединачних захтева у минималан број групних операција.

Збијање и смањење узорковања

Када се нови блок података временске серије успешно учита у складиште објеката, третирамо га као „историјске“ податке, који су одмах доступни преко Сторе Гатеваи-а.

Међутим, након неког времена, блокови из једног извора (Прометеј са бочним колима) се акумулирају и више не користе пуни потенцијал индексирања. Да бисмо решили овај проблем, увели смо још једну компоненту под називом Цомпацтор. Једноставно примењује Прометхеусов локални механизам за сабијање на историјске податке у складишту објеката и може се покренути као једноставан периодични скупни посао.

Танос - Скалабилни Прометеј

Захваљујући ефикасној компресији, испитивање меморије током дужег временског периода не представља проблем у смислу величине података. Међутим, потенцијални трошкови распакивања милијарде вредности и њиховог покретања кроз процесор упита неизбежно ће довести до драматичног повећања времена извршења упита. С друге стране, пошто на екрану постоје стотине тачака података по пикселу, постаје немогуће чак и визуализовати податке у пуној резолуцији. Дакле, смањење узорковања не само да је могуће, већ и неће довести до приметног губитка тачности.

Танос - Скалабилни Прометеј

Да би смањио узорковање података, Цомпацтор континуирано агрегира податке у резолуцији од пет минута и једног сата. За сваки необрађени део кодиран коришћењем ТСДБ КСОР компресије, чувају се различити типови збирних података, као што су мин, максимум или збир за један блок. Ово омогућава Куериер-у да аутоматски изабере агрегат који је прикладан за дати ПромКЛ упит.

Није потребна посебна конфигурација да би корисник користио податке смањене прецизности. Куериер аутоматски пребацује између различитих резолуција и необрађених података док корисник увећава и умањује. По жељи, корисник може да контролише ово директно преко параметра „корак“ у захтеву.

Пошто је цена складиштења једног ГБ ниска, Тханос подразумевано складишти необрађене податке, податке у резолуцији од пет минута и једног сата. Нема потребе за брисањем оригиналних података.

Правила снимања

Чак и са Тханос-ом, правила снимања су суштински део скупа за праћење. Они смањују сложеност, кашњење и цену упита. Такође су корисни за кориснике да добију збирне податке према метрикама. Тханос је заснован на ванилла Прометхеус инстанцама, тако да је савршено прихватљиво чувати правила снимања и правила упозорења на постојећем Прометхеус серверу. Међутим, у неким случајевима ово можда неће бити довољно:

  • Глобално упозорење и правило (на пример, упозорење када услуга не ради на више од два од три кластера).
  • Правило за податке изван локалне меморије.
  • Жеља да се сва правила и упозорења чувају на једном месту.

Танос - Скалабилни Прометеј

За све ове случајеве, Тханос укључује засебну компоненту под називом Рулер, која израчунава правило и упозорење преко Тханос Куериес-а. Обезбеђивањем добро познатог СтореАПИ-а, Куери чвор може да приступи свеже израчунатим метрикама. Касније се такође чувају у складишту објеката и постају доступни преко Сторе Гатеваи-а.

Моћ Таноса

Тханос је довољно флексибилан да се прилагоди вашим потребама. Ово је посебно корисно када се мигрира са обичног Прометеја. Хајде да брзо поновимо оно што смо научили о Тханос компонентама са кратким примером. Ево како да свој ванилин Прометхеус однесете у свет „неограниченог складиштења метрика“:

Танос - Скалабилни Прометеј

  1. Додајте Тханос Сидецар на своје Прометхеус сервере - на пример, бочни контејнер у Кубернетес под.
  2. Примените више реплика Тханос Куериер-а да бисте могли да видите податке. У овој фази је лако поставити трачеве између Сцрапера и Куериера. Да бисте проверили интеракцију компоненти, користите метрику 'тханос_цлустер_мемберс'.

Само ова два корака су довољна да обезбеде глобални преглед и беспрекорну дедупликацију података са потенцијалних Прометхеус ХА реплика! Једноставно повежите своје контролне табле са Куериер ХТТП крајњом тачком или директно користите Тханос кориснички интерфејс.

Међутим, ако вам је потребна резервна копија метрика и дуготрајно складиштење, мораћете да довршите још три корака:

  1. Направите АВС С3 или ГЦС корпу. Конфигуришите Сидецар да копира податке у ове корпе. Локално складиштење података сада се може свести на минимум.
  2. Поставите Сторе Гатеваи и повежите га са постојећим кластером трачева. Сада можете да тражите резервне копије података!
  3. Примените Цомпацтор да бисте побољшали ефикасност упита током дугих временских периода користећи збијање и смањење узорковања.

Ако желите да сазнате више, не устручавајте се да погледате нашу примери манифеста кубернетеса и почетак!

У само пет корака претворили смо Прометхеус у поуздан систем за праћење са глобалним прегледом, неограниченим временом складиштења и потенцијалном високом доступношћу метрике.

Захтев за повлачењем: потребни сте нам!

Тханос је пројекат отвореног кода од самог почетка. Беспрекорна интеграција са Прометхеусом и могућност коришћења само једног дела Тханоса чини га одличним избором за скалирање вашег система за праћење без напора.

Увек поздрављамо захтеве и проблеме ГитХуб-а. У међувремену, слободно нас контактирајте преко Гитхуб Иссуес или Слацк Невероватно-енг #тханосако имате питања или повратне информације, или желите да поделите своје искуство коришћења! Ако вам се свиђа оно што радимо у Импробабле-у, не оклевајте да нас контактирате - увек имамо слободна места!

Сазнајте више о курсу.

Извор: ввв.хабр.цом

Додај коментар