Кубернетес авантура Даилимотион: креирање инфраструктуре у облацима + локално

Кубернетес авантура Даилимотион: креирање инфраструктуре у облацима + локално

Белешка. трансл.: Даилимотион је једна од највећих светских услуга за видео хостинг и стога је значајан корисник Кубернетеса. У овом материјалу, системски архитекта Дејвид Дончез дели резултате креирања производне платформе компаније засноване на К8с, која је почела инсталацијом у облаку у ГКЕ-у, а завршила се као хибридно решење, што је омогућило боље време одзива и уштеду на трошковима инфраструктуре.

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

Зашто је вредно изградити сопствену платформу засновану на Кубернетесу?

АПИ на нивоу производње за трен ока користећи Гоогле Цлоуд

Лето 2016

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

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

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

Зашто сте изабрали ГКЕ?

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

Кубернетес авантура Даилимотион: креирање инфраструктуре у облацима + локално
ГКЕ кластери у Даилимотион-у

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

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

Поред тога, мрежне услуге и балансери оптерећења из Гоогле Цлоуд-а раде одличан посао. Они вам једноставно омогућавају да користите произвољне јавне ИП адресе из сваког региона, а дивни БГП протокол се брине за остало (тј. преусмерава кориснике на најближи кластер). Очигледно, у случају квара, саобраћај ће аутоматски ићи у други регион без икакве људске интервенције.

Кубернетес авантура Даилимотион: креирање инфраструктуре у облацима + локално
Надгледање Гоогле балансирања оптерећења

Наша платформа такође интензивно користи ГПУ. Гоогле Цлоуд вам омогућава да их веома ефикасно користите директно у Кубернетес кластерима.

У то време, инфраструктурни тим је првенствено био фокусиран на застарели стек распоређен на физичким серверима. Због тога је коришћење управљане услуге (укључујући Кубернетес мастере) испунило наше захтеве и омогућило нам да обучимо тимове за рад са локалним кластерима.

Као резултат тога, успели смо да почнемо да добијамо производни саобраћај на Гоогле Цлоуд инфраструктури само 6 месеци након почетка рада.

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

Лансирање локалне платформе за оркестрацију контејнера Даилимотион

Јесен 2016

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

У то време, корисници су гледали више од 3 милијарде видео записа сваког месеца. Наравно, већ дуги низ година имамо сопствену широку мрежу за испоруку садржаја. Желели смо да искористимо ову околност и применимо Кубернетес кластере у постојеће центре података.

Инфраструктура Даилимотион-а се састојала од више од 2,5 хиљада сервера у шест дата центара. Сви су конфигурисани помоћу Салтстацк-а. Почели смо да припремамо све потребне рецепте за креирање мастер и радних чворова, као и етцд кластера.

Кубернетес авантура Даилимотион: креирање инфраструктуре у облацима + локално

Мрежни део

Наша мрежа је потпуно рутирана. Сваки сервер оглашава свој ИП на мрежи користећи Екабгп. Упоредили смо неколико мрежних додатака и једини који је задовољио све потребе (због коришћеног Л3 приступа) је Цалицо. Савршено се уклапа у постојећи модел мрежне инфраструктуре.

Пошто смо желели да користимо све доступне елементе инфраструктуре, прво што смо морали да урадимо је да смислимо наш домаћи мрежни услужни програм (који се користи на свим серверима): да га користимо за оглашавање опсега ИП адреса на мрежи са Кубернетес чворовима. Дозволили смо Цалицо-у да додели ИП адресе подовима, али то није и још увек не користи за БГП сесије на мрежној опреми. У ствари, рутирањем управља Екабгп, који оглашава подмреже које користи Цалицо. Ово нам омогућава да дођемо до било којег пода са интерне мреже (а посебно из балансера оптерећења).

Како управљамо улазним саобраћајем

За преусмеравање долазних захтева на жељену услугу, одлучено је да се користи Ингресс Цонтроллер због његове интеграције са Кубернетес ингресс ресурсима.

Пре три године, нгинк-ингресс-цонтроллер је био најзрелији контролер: Нгинк је постојао већ дуже време и био је познат по својој стабилности и перформансама.

У нашем систему, одлучили смо да поставимо контролере на наменске 10-Гигабитне блејд сервере. Сваки контролер је био повезан са кубе-аписервер крајњом тачком одговарајућег кластера. Ови сервери су такође користили Екабгп за оглашавање јавних или приватних ИП адреса. Наша мрежна топологија нам омогућава да користимо БГП из ових контролера да усмеримо сав саобраћај директно на подове без коришћења услуге као што је НодеПорт. Овај приступ помаже у избегавању хоризонталног саобраћаја између чворова и побољшава ефикасност.

Кубернетес авантура Даилимотион: креирање инфраструктуре у облацима + локално
Кретање саобраћаја са интернета на под

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

Миграција саобраћаја са Гоогле Цлоуд-а на Даилимотион инфраструктуру

Јесен 2018

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

Кубернетес авантура Даилимотион: креирање инфраструктуре у облацима + локално

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

Кубернетес авантура Даилимотион: креирање инфраструктуре у облацима + локално
Пример политике рутирања користећи Роуте 53

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

Током миграције, настојали смо да преусмеримо регионалне захтеве на одговарајуће кластере и проценили предности овог приступа.

Пошто су наши ГКЕ кластери конфигурисани да аутоматски скалирају користећи прилагођене метрике, они се повећавају/смањују на основу долазног саобраћаја.

У нормалном режиму, сав регионални саобраћај је усмерен ка локалном кластеру, а ГКЕ служи као резерва у случају проблема (здравствене провере се обављају путем 53).

...

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

ПС од преводиоца

Можда ће вас такође занимати још један недавни Даилимотион пост о Кубернетесу. Посвећен је имплементацији апликација са Хелмом на многим Кубернетес кластерима и је објављен пре око месец дана.

Прочитајте и на нашем блогу:

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

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