Kubernetes macəra Dailymotion: buludlarda + yerli infrastruktur yaratmaq

Kubernetes macəra Dailymotion: buludlarda + yerli infrastruktur yaratmaq

Qeyd. tərcümə.: Dailymotion dünyanın ən böyük video hostinq xidmətlərindən biridir və buna görə də diqqətəlayiq Kubernetes istifadəçisidir. Bu materialda sistem memarı David Donchez şirkətin GKE-də bulud quraşdırması ilə başlayan və daha yaxşı cavab müddəti və infrastruktur xərclərinə qənaət etməyə imkan verən hibrid həll kimi başa çatan K8s əsasında istehsal platformasının yaradılmasının nəticələrini bölüşür.

Əsas API-nin yenidən qurulmasına qərar vermək Dailymotion üç il əvvəl biz tətbiqləri yerləşdirmək və onu asanlaşdırmaq üçün daha səmərəli üsul inkişaf etdirmək istəyirdik inkişaf və istehsal prosesləri. Bu məqsədlə konteyner orkestr platformasından istifadə etmək qərarına gəldik və təbii olaraq Kubernetes-i seçdik.

Niyə Kubernetes əsasında öz platformanızı qurmağa dəyər?

Google Cloud istifadə edərək heç vaxt istehsal səviyyəli API

Yay 2016

Üç il əvvəl, Dailymotion tərəfindən satın alındıqdan dərhal sonra Vivendi, bizim mühəndislik komandalarımız bir qlobal məqsəd üzərində cəmləşib: tamamilə yeni Dailymotion məhsulu yaratmaq.

Konteynerlərin təhlili, orkestrləşdirmə həlləri və keçmiş təcrübəmizə əsaslanaraq, Kubernetesin düzgün seçim olduğuna əminik. Bəzi tərtibatçılar artıq əsas anlayışları başa düşürdülər və ondan necə istifadə edəcəyini bilirdilər ki, bu da infrastruktur transformasiyası üçün böyük üstünlük idi.

İnfrastruktur nöqteyi-nəzərindən, buludda yerli tətbiqlərin yeni növlərini yerləşdirmək üçün güclü və çevik sistem tələb olunurdu. Biz səyahətimizin əvvəlində buludda qalmağı seçdik ki, rahatlıqla mümkün olan ən möhkəm yerli platformanı qura bilək. Tətbiqlərimizi Google Kubernetes Engine istifadə edərək yerləşdirməyə qərar verdik, baxmayaraq ki, gec-tez öz məlumat mərkəzlərimizə keçəcəyimizi və hibrid strategiya tətbiq edəcəyimizi bilirdik.

Niyə GKE-ni seçdiniz?

Biz bu seçimi əsasən texniki səbəblərə görə etdik. Bundan əlavə, şirkətin biznes ehtiyaclarına cavab verən infrastrukturu tez bir zamanda təmin etmək lazım idi. Coğrafi paylama, miqyaslılıq və xətaya dözümlülük kimi hostinq proqramları üçün bəzi tələblərimiz var idi.

Kubernetes macəra Dailymotion: buludlarda + yerli infrastruktur yaratmaq
Dailymotion-da GKE qrupları

Dailymotion bütün dünyada mövcud olan video platforma olduğundan, biz həqiqətən gözləmə müddətini azaltmaqla xidmətin keyfiyyətini yaxşılaşdırmaq istəyirdik. (gecikmə). Əvvəllər bizim API yalnız Parisdə mövcud idi, bu da optimal deyildi. Təkcə Avropada deyil, Asiya və ABŞ-da da tətbiqləri qəbul etmək istəyirdim.

Gecikməyə qarşı bu həssaslıq platformanın şəbəkə arxitekturasında ciddi işlərin görülməli olması demək idi. Əksər bulud xidmətləri sizi hər bir bölgədə öz şəbəkənizi yaratmağa və sonra onları VPN və ya bir növ idarə olunan xidmət vasitəsilə birləşdirməyə məcbur etsə də, Google Bulud sizə bütün Google regionlarını əhatə edən tam yönləndirilə bilən vahid şəbəkə yaratmağa imkan verdi. Bu, sistemin işləməsi və səmərəliliyi baxımından böyük bir artıdır.

Bundan əlavə, Google Cloud-dan şəbəkə xidmətləri və yük balanslaşdırıcıları əla iş görür. Onlar sadəcə olaraq hər bir bölgədən ixtiyari ictimai IP ünvanlarından istifadə etməyə imkan verir və gözəl BGP protokolu qalanların qayğısına qalır (yəni istifadəçiləri ən yaxın klasterə yönləndirir). Aydındır ki, nasazlıq olarsa, heç bir insan müdaxiləsi olmadan nəqliyyat avtomatik olaraq başqa bölgəyə gedəcək.

Kubernetes macəra Dailymotion: buludlarda + yerli infrastruktur yaratmaq
Google Load Balancing monitorinqi

Platformamız həmçinin GPU-lardan çox istifadə edir. Google Bulud onlardan birbaşa Kubernetes klasterlərində çox səmərəli istifadə etməyə imkan verir.

O zaman infrastruktur komandası ilk növbədə fiziki serverlərdə yerləşdirilmiş köhnə yığına diqqət yetirirdi. Buna görə də idarə olunan xidmətdən istifadə (o cümlədən Kubernetes ustaları) tələblərimizə cavab verdi və bizə yerli klasterlərlə işləmək üçün komandalar öyrətməyə imkan verdi.

Nəticədə biz işin başlanmasından cəmi 6 ay sonra Google Bulud infrastrukturunda istehsal trafikini almağa başlaya bildik.

Bununla belə, bir sıra üstünlüklərə baxmayaraq, bulud provayderi ilə işləmək yükdən asılı olaraq arta bilən müəyyən xərclərlə bağlıdır. Buna görə də istifadə etdiyimiz hər bir idarə olunan xidməti diqqətlə təhlil etdik və gələcəkdə onları yerində tətbiq etməyə ümid etdik. Əslində, yerli klasterlərin tətbiqinə 2016-cı ilin sonunda başlanılıb və eyni zamanda hibrid strategiyaya start verilib.

Yerli konteyner orkestr platforması Dailymotion-un işə salınması

Payız 2016

Bütün yığının istehsala hazır olduğu və API üzərində işlədiyi şəraitdə davam etdi, regional klasterlərə diqqət yetirməyin vaxtı gəldi.

Həmin vaxt istifadəçilər hər ay 3 milyarddan çox videoya baxırdılar. Əlbəttə, bizim uzun illərdir ki, öz geniş Məzmun Çatdırılma Şəbəkəmiz var. Biz bu vəziyyətdən yararlanmaq və Kubernetes klasterlərini mövcud məlumat mərkəzlərində yerləşdirmək istədik.

Dailymotion-un infrastrukturu altı məlumat mərkəzində 2,5 mindən çox serverdən ibarət idi. Onların hamısı Saltstack istifadə edərək konfiqurasiya edilmişdir. Biz master və işçi qovşaqlarının, eləcə də etcd klasterinin yaradılması üçün bütün lazımi reseptləri hazırlamağa başladıq.

Kubernetes macəra Dailymotion: buludlarda + yerli infrastruktur yaratmaq

Şəbəkə hissəsi

Şəbəkəmiz tamamilə yönləndirilib. Hər bir server Exabgp istifadə edərək şəbəkədə IP-ni reklam edir. Bir neçə şəbəkə plaginini müqayisə etdik və bütün ehtiyacları ödəyən yeganə (istifadə olunan L3 yanaşmasına görə) kolenkor. Mövcud şəbəkə infrastrukturu modelinə mükəmməl uyğun gəlir.

Bütün mövcud infrastruktur elementlərindən istifadə etmək istədiyimiz üçün etməli olduğumuz ilk şey evdə yetişdirilən şəbəkə yardım proqramımızı (bütün serverlərdə istifadə olunur) anlamaq oldu: ondan Kubernetes qovşaqları ilə şəbəkədə IP ünvan diapazonlarını reklam etmək üçün istifadə edin. Biz Calico-ya podlara IP ünvanlarını təyin etməyə icazə verdik, lakin onu şəbəkə avadanlıqlarında BGP seansları üçün istifadə etmədik və hələ də istifadə etmirik. Əslində, marşrutlaşdırma Calico tərəfindən istifadə edilən alt şəbəkələri reklam edən Exabgp tərəfindən idarə olunur. Bu, bizə daxili şəbəkədən (xüsusən də yük balanslaşdırıcılarından) istənilən pod-a çatmağa imkan verir.

Giriş trafikini necə idarə edirik

Daxil olan sorğuları istədiyiniz xidmətə yönləndirmək üçün Kubernetes giriş resursları ilə inteqrasiyası səbəbindən Ingress Controller-dən istifadə etmək qərara alındı.

Üç il əvvəl nginx-ingress-controller ən yetkin nəzarətçi idi: Nginx uzun müddətdir mövcud idi və sabitliyi və performansı ilə tanınırdı.

Sistemimizdə nəzarətçiləri xüsusi 10 Gigabit blade serverlərə yerləşdirmək qərarına gəldik. Hər bir nəzarətçi müvafiq klasterin kube-apiserver son nöqtəsinə qoşulmuşdur. Bu serverlər ictimai və ya şəxsi IP ünvanlarını reklam etmək üçün Exabgp-dən də istifadə edirdilər. Şəbəkə topologiyamız bizə NodePort kimi xidmətdən istifadə etmədən bütün trafiki birbaşa podlara yönləndirmək üçün bu kontrollerlərdən BGP istifadə etməyə imkan verir. Bu yanaşma qovşaqlar arasında üfüqi trafikdən qaçmağa kömək edir və səmərəliliyi artırır.

Kubernetes macəra Dailymotion: buludlarda + yerli infrastruktur yaratmaq
İnternetdən podlara qədər trafik hərəkəti

İndi hibrid platformamızı başa düşdükdən sonra biz trafik miqrasiya prosesinin özünü daha dərindən öyrənə bilərik.

Trafikin Google Buluddan Dailymotion infrastrukturuna miqrasiyası

Payız 2018

Təxminən iki il tikinti, sınaq və tənzimləmədən sonra nəhayət bir qədər trafik qəbul etməyə hazır tam Kubernetes yığınımız var.

Kubernetes macəra Dailymotion: buludlarda + yerli infrastruktur yaratmaq

Mövcud marşrutlaşdırma strategiyası olduqca sadədir, lakin ehtiyacları ödəmək üçün kifayətdir. İctimai IP-lərə əlavə olaraq (Google Cloud və Dailymotion-da), AWS Route 53 siyasətləri təyin etmək və istifadəçiləri seçdiyimiz klasterə yönləndirmək üçün istifadə olunur.

Kubernetes macəra Dailymotion: buludlarda + yerli infrastruktur yaratmaq
Marşrut 53 istifadə edərək marşrutlaşdırma siyasətinin nümunəsi

Google Cloud ilə bu, asandır, çünki biz bütün klasterlər arasında vahid IP paylaşırıq və istifadəçi ən yaxın GKE klasterinə yönləndirilir. Bizim klasterlərimiz üçün texnologiya fərqlidir, çünki onların IP-ləri fərqlidir.

Miqrasiya zamanı biz regional sorğuları müvafiq klasterlərə yönləndirməyə çalışdıq və bu yanaşmanın faydalarını qiymətləndirdik.

Bizim GKE klasterlərimiz Fərdi Metriklərdən istifadə etməklə avtomatik miqyaslanmaq üçün konfiqurasiya edildiyi üçün daxil olan trafikə əsasən böyüdülür/kiçildilir.

Normal rejimdə bütün regional trafik yerli klasterə yönəldilir və GKE problemlər olduqda ehtiyat rolunu oynayır (sağlamlıq yoxlamaları 53 nömrəli marşrut tərəfindən həyata keçirilir).

...

Gələcəkdə istifadəçilər üçün əlçatanlığı daim təkmilləşdirən avtonom hibrid strategiyaya nail olmaq üçün marşrutlaşdırma siyasətlərini tam avtomatlaşdırmaq istəyirik. Müsbət tərəfi, bulud xərcləri əhəmiyyətli dərəcədə azaldılıb və API cavab müddətləri hətta azaldılıb. Yaranan bulud platformasına etibar edirik və lazım gələrsə, daha çox trafiki ona yönləndirməyə hazırıq.

Tərcüməçidən PS

Kubernetes haqqında başqa bir Dailymotion yazısı ilə də maraqlana bilərsiniz. Bir çox Kubernetes klasterlərində Helm ilə tətbiqlərin yerləşdirilməsinə həsr edilmişdir nəşr olundu təxminən bir ay əvvəl.

Bloqumuzda da oxuyun:

Mənbə: www.habr.com

Добавить комментарий