Consul + iptables = :3

У 2010 році у компанії Wargaming було 50 серверів і проста мережева модель: бекенд, фронтенд та файрвол. Кількість серверів зростала, модель ускладнювалася: стейджинги ізольовані VLAN з ACL, потім VPN з VRF, VLAN c ACL на L2, VRF з ACL на L3. Закрутилася голова? Далі буде веселіше.

Коли серверів стало 16 тисяч працювати без сліз з такою кількістю різнорідних сегментів стало неможливо. Тому вигадали інше рішення. Взяли стек Netfilter, додали до нього Consul як джерело даних, вийшов швидкий розподілений файрвол. Ним замінили ACL на роутерах і використовували як зовнішній та внутрішній файрвол. Для динамічного керування інструментом розробили систему BEFW, яку застосували скрізь: від керування доступом користувачів до продуктової мережі до ізоляції сегментів мережі один від одного.

Consul + iptables = :3

Як це все працює і чому вам варто придивитися до цієї системи, розповість Іван Агарков (annmuor) – керівник групи інфраструктурної безпеки підрозділу Maintenance у Мінському центрі розробки компанії. Іван – фанат SELinux, любить Perl, пише код. Як керівник групи ІБ, регулярно працює з логами, бекапами та R&D, щоб захищати Wargaming від хакерів та забезпечувати роботу всіх ігрових серверів у компанії.

Історична довідка

Перш ніж розповісти, як ми це робили, розповім, як узагалі до цього прийшли і чому це знадобилося. Для цього перенесемося на 9 років тому: 2010 рік, тільки-но з'явилися World of Tanks. У компанії Wargaming було приблизно 50 серверів.

Consul + iptables = :3
Графік зростання серверів компанії.

Ми мали мережеву модель. На той час вона була оптимальною.

Consul + iptables = :3
Мережеві моделі в 2010 році.

На фронтенді мешкають погані хлопці, які хочуть нас зламати, але в ньому є файрвол. На бекенді файрвола немає, але там 50 серверів, ми їх знаємо. Все працює добре.

За 4 роки парк серверів виріс у 100 разів, до 5000. З'явилися перші ізольовані мережі — стейджинги: вони не можуть ходити в продакшн, а там часто крутилося те, що могло бути небезпечним.

Consul + iptables = :3
Мережеві моделі в 2014 році.

За інерцією використовували ті самі залозки, і вся робота велася на ізольованих VLAN: до VLAN пишуться ACL, які дозволяють або забороняють якесь з'єднання.

У 2016 році кількість серверів досягла 8000. Wargaming поглинав інші студії, з'явилися додаткові партнерські мережі. Вони начебто наші, але не зовсім: для партнерів VLAN часто не працює, доводиться використовувати VPN з VRF, ізоляції ускладнюються. Суміш ізоляцій ACL зростала.

Consul + iptables = :3
Мережеві моделі в 2016 році.

На початок 2018 року парк машин виріс до 16 000. Сегментів було 6, а решту ми не рахували, у тому числі закриті, в яких зберігалися фінансові дані. З'явилися контейнерні мережі (Kubernetes), DevOps, хмарні мережі, підключені за VPN, наприклад, з ІТТ. Правил було дуже багато – було боляче.

Consul + iptables = :3
Мережева модель та способи ізоляції у 2018.

Для ізоляції ми використовували: VLAN з ACL на L2, VRF з ACL на L3, VPN та багато іншого. Занадто багато.

Проблеми

Усі живуть з ACL та VLAN. Що взагалі не таке? На це запитання відповість Гарольд, який приховує біль.

Consul + iptables = :3

Проблем було багато, але масових – п'ять.

  • Геометричне зростання ціни для нових правил. Кожне нове правило додавалося довше, ніж попереднє, бо треба було спочатку подивитися чи немає такого правила.
  • Немає файрвола всередині сегментів. Сегменти один від одного якось відокремили, всередині ресурсів уже не вистачає.
  • Правила застосовувалися довго. Руками одне локальне правило оператори могли написати за годину. Світове займало кілька днів.
  • Складнощі з аудитом правил. Точніше, він був неможливий. Перші правила писалися ще 2010 року, і більшість їх авторів не працювала у компанії.
  • Низький рівень контролю за інфраструктурою. Це головна проблема – ми погано знали, що у нас взагалі відбувається.

Так виглядав мережевий інженер у 2018 році, коли він чув: «Потрібно ще трохи ACL».

Consul + iptables = :3

Розв'язки

На початку 2018 року було вирішено щось із цим робити.

Ціна інтеграцій безперервно зростає. Відправною точкою стало те, що великі дата-центри перестали підтримувати ізольовані VLAN та ACL, тому що скінчилася пам'ять на пристроях.

Рішення: прибрали людський фактор і максимально автоматизували надання доступу.

Нові правила використовуються довго. Рішення: прискорити застосування правил, зробити його розподіленим та паралельним. Для цього потрібна розподілена система, щоб правила доставлялися самі, без rsync або SFTP на тисячу систем.

Відсутність файрвола усередині сегментів. Файрвол усередині сегментів став до нас прилітати, коли в рамках однієї мережі з'являлися різні послуги. Рішення: використовувати файрвол на рівні хоста - host-based firewalls. Практично скрізь у нас Linux і скрізь є iptables, це не проблема.

Складнощі з аудитом правил. Рішення: зберігати всі правила в єдиному місці для огляду та управління, тому ми зможемо все аудувати.

Низький рівень контролю над інфраструктурою. Рішення: провести інвентаризацію всіх сервісів та доступів між ними.

Це більший адміністративний процес, ніж технічний. Іноді у нас буває 200-300 нових релізів на тиждень, особливо під час акцій та у свята. Це лише для однієї команди наших DevOps. З такою кількістю релізів неможливо побачити потрібні порти, IP, інтеграції. Тому нам знадобилися спеціально навчені сервіс-менеджери, які опитували команди: Що взагалі є і навіщо ви це підняли?

Після всього, що ми запустили, мережевий інженер у 2019 році став виглядати вже так.

Consul + iptables = :3

Консул

Ми вирішили, що все, що ми знайшли за допомогою сервіс-менеджерів, помістимо в Consul і звідти писатимемо правила iptables.

Як ми вирішили це робити?

  • Зберемо всі сервіси, мережі та користувачів.
  • Зробимо на їх основі правила iptables.
  • Автоматизуємо контроль.
  • ....
  • ПРИБУТ.

Consul не віддалений API, він може працювати на кожному вузлі і писати в iptables. Залишається тільки придумати автоматичні засоби контролю, які вичищатимуть зайве, і більшість проблем буде вирішена! Решту доопрацюємо у процесі.

Чому Consul?

Добре зарекомендував себе. У 2014-15 роках ми його використовували як бекенд для Vault, у якому зберігаємо паролі.

Не втрачає дані. За час використання Consul не втрачав даних за жодної аварії. Це величезний плюс для системи керування файрволом.

P2P-зв'язки прискорюють поширення змін. З P2P всі зміни приходять швидко, не потрібно чекати годинами.

Зручний API REST. Ми розглядали також Apache ZooKeeper, але він не має REST API, доведеться ставити милиці.

Працює як сховище ключів (KV), і як каталог (Service Discovery). Можна зберігати одночасно послуги, каталоги, дата-центри. Це зручно не лише нам, а й сусіднім командам, бо будуючи глобальний сервіс, ми думаємо масштабно.

Написаний на Go, який входить у стек Wargaming. Ми любимо цю мову, у нас багато Go-розробників.

Потужна система ACL. У Consul за допомогою ACL можна керувати тим, кому та що писати. Ми гарантуємо, що правила файрволу не перетинатимуться більше ні з чим і ми не матимемо з цим проблем.

Але у Consul є й недоліки.

  • Не масштабується в дата-центрі, якщо у вас не бізнес-версія. Він масштабується лише федерацією.
  • Дуже залежить від якості мережі та завантаження серверів. Consul не буде нормально працювати в ролі сервера на завантаженому сервері, якщо в мережі якісь лаги, наприклад, нерівна швидкість. Пов'язано це з P2P-з'єднаннями та моделями розповсюдження оновлень.
  • Складнощі з моніторингом доступності. У статусі Consul може говорити, що все гаразд, а він уже давно помер.

Більшість цих проблем ми вирішили під час експлуатації Consul, тому його і вибрали. У компанії є плани про альтернативний бекенд, але ми навчилися боротися з проблемами і поки що живемо з Consul.

Як працює Consul

В умовний дата-центр встановимо сервери від трьох до п'яти. Один або два сервери не підійде: вони не зможуть організувати кворум і вирішити, хто має рацію, хто винен, коли дані не збігаються. Понад п'ять немає сенсу, продуктивність впаде.

Consul + iptables = :3

До серверів у будь-якому порядку підключаються клієнти: ті ж агенти, тільки з прапором server = false.

Consul + iptables = :3

Після цього клієнти одержують список P2P-з'єднань і будують між собою зв'язки.

Consul + iptables = :3

На глобальному рівні ми поєднуємо між собою кілька дата-центрів. Вони також з'єднуються P2P та спілкуються.

Consul + iptables = :3

Коли ми хочемо забрати дані з іншого дата-центру, запит йде від сервера до сервера. Така схема називається протоколом Serf. Протокол Serf, як Consul, розробка HashiCorp.

Декілька важливих фактів про Consul

Consul має документацію з описом його роботи. Я наведу лише вибіркові факти, які варто знати.

Consul-сервери вибирають майстри з числа тих, хто голосує. Consul вибирає майстри зі списку серверів для кожного дата-центру, і всі запити йдуть лише до нього, незалежно від кількості серверів. Зависання майстра не призводить до перевиборів. Якщо майстер не вибрано, запити ніким не обслуговуються.

Ви хотіли горизонтальне масштабування? Вибачте, ні.

Запит в інший дата-центр йде від майстра до майстра незалежно від того, на який сервер він прийшов. Вибраний майстер отримує 100% навантаження, окрім навантаження на форвард запитів. Актуальна копія даних має всі сервери дата-центру, але відповідає тільки один.

Єдиний спосіб масштабуватись - включити stale-режим на клієнта.

У stale режимі можна відповідати без кворуму. Це режим, в якому ми відмовляємося від консистентності даних, але читаємо трохи швидше, ніж зазвичай, і відповідає будь-який сервер. Звичайно, запис тільки через майстер.

Consul не копіює дані між дата-центрами. При зборі федерації кожного сервера будуть лише свої дані. За іншими він завжди звертається до когось іншого.

Атомарність операцій не гарантується поза транзакцією. Пам'ятайте, що змінювати щось можете не лише ви. Якщо хочете інакше, проводьте транзакцію з блокуванням.

Блокуючі операції не гарантують блокування. Запит йде від майстра до майстра, а не безпосередньо, тому немає гарантій, що блокування спрацює, коли ви робите блокування, наприклад, в іншому дата-центрі.

ACL також не гарантує доступу (у багатьох випадках). ACL може не спрацювати, тому що зберігається в одному дата-центрі федерації - в ACL дата-центрі (Primary DC). Якщо ДЦ вам не відповість, ACL не працюватиме.

Один завислий майстер приведе до зависання всієї федерації. Наприклад, у федерації 10 дата-центрів, а в одному погана мережа і один майстер падає. Усі, хто з ним спілкується, зависнуть по колу: йде запит, на нього немає відповіді, тред підвисає. Не вдасться дізнатися коли це станеться, просто через годину чи дві впаде вся федерація. Ви нічого не зможете із цим зробити.

Статус, кворум та вибори обробляються окремим потоком. Перевибору не станеться, статус нічого не покаже. Ви думаєте, що у вас живий Consul, ви запитуєте, і нічого не відбувається — відповіді немає. При цьому статус показує, що все гаразд.

Ми стикалися з цією проблемою, нам доводилося розбудовувати конкретні частини дата-центрів, щоб її уникнути.

У бізнес-версії Consul Enterprise немає деяких недоліків вище. У ньому багато корисних функцій: вибір голосуючих, розподіл, масштабування. Є лише одне "але" - система ліцензування для розподіленої системи коштує дуже дорого.

Лайфхак: rm -rf /var/lib/consul - Ліки від всіх хвороб агента. Якщо у вас щось не працює, просто видаліть дані та завантажте дані з копії. Швидше за все, Consul почне працювати.

BEFW

Тепер поговоримо про те, що ми додали до Consul.

BEFW - це акронім від BACKEndFгнівWall. Потрібно було якось назвати продукт, коли я створював репозиторій, щоб до нього покласти перші тестові комміти. Така назва залишилася.

Шаблони правил

Правила написані у синтаксисі iptables.

  • -N BEFW
  • -P INPUT DROP
  • -A INPUT -m state-state RELATED,ESTABLISHED -j ACCEPT
  • -A ВХІД -i lo -j ПРИЙНЯТИ
  • -A INPUT -j BEFW

У нас все йде в ланцюжок BEFW, крім ESTABLISHED, RELATED та localhost. Шаблон може бути будь-яким, це просто приклад.

Чим корисний BEFW?

Сервіси

У нас є сервіс, у ньому завжди є порт, нода, на якій він працює. Зі своєї ноди ми можемо локально запитати агента і дізнатися, що у нас є якийсь сервіс. Можна також ставити теги.

Consul + iptables = :3

Будь-який сервіс, який запущений та зареєстрований у Consul, перетворюється на правило iptables. У нас є SSH – відкриваємо порт 22. Bash-скрипт простий: curl та iptables, більше нічого не потрібно.

Клієнти

Як відкривати доступ не всім, а вибірково? На ім'я сервісу складати в KV-сховище IP-списки.

Consul + iptables = :3

Наприклад, ми хочемо, щоб усі з десятої мережі могли звертатися до сервісу SSH_TCP_22. Додаємо одне маленьке поле TTL? і тепер ми маємо тимчасові дозволи, наприклад, на добу.

Доступи

З'єднуємо сервіси та клієнтів: у нас є сервіс, на кожне готове KV-сховище. Тепер ми надаємо доступ не всім, а вибірково.

Consul + iptables = :3

Групи

Якщо щоразу писатимемо тисячі IP для доступів, то втомимося. Придумаємо угруповання окремий subset в KV. Назвемо його Alias ​​(або групи) і зберігатимемо там групи за тим самим принципом.

Consul + iptables = :3

З'єднуємо: тепер можемо відкрити SSH не конкретно на P2P, а цілу групу чи кілька груп. Так само є TTL - можна додавати в групу і видаляти з групи тимчасово.

Consul + iptables = :3

Інтеграція

Наша проблема – людський фактор та автоматизація. Поки що ми вирішили її так.

Consul + iptables = :3

Ми працюємо з Puppet і переносимо їм все, що відноситься до системи (код додатків). У puppetdb (звичайний PostgreSQL) зберігається список сервісів, які там запущені, їх можна знайти за типом ресурсу. Там же можна знайти, хто звертається. Також у нас є система pull request та merge request для цього.

Ми написали befw-sync – найпростіше рішення, яке допомагає переносити дані. Спочатку sync cookies звертаються до puppetdb. Там налаштований HTTP API: запитуємо, які у нас є сервіси, що потрібно зробити. Потім запитують у Consul.

Інтеграція є? Є: написали правила, дозволили приймати Pull Request. Потрібний якийсь порт чи додати хост до якоїсь групи? Pull Request, рев'ю - більше ніяких "Знайди 200 інших ACL і спробуй щось з цим зробити".

Оптимізація

Пінг localhost з порожнім ланцюжком правил займає 0,075 мс.

Consul + iptables = :3

Додамо в цей ланцюжок 10 000 адрес iptables. В результаті пінг збільшиться в 5 разів: iptables повністю лінійний, обробка кожної адреси займає якийсь час.

Consul + iptables = :3

Для файрвола, який ми мігруємо тисячі ACL, у нас багато правил, і це вносить затримку. Для ігрових протоколів це погано.

Але якщо ми помістимо 10 000 адрес в ipset пінг навіть зменшиться.

Consul + iptables = :3

Сенс у цьому, що «O» (складність алгоритму) для ipset завжди дорівнює 1, скільки там правил не було. Щоправда, там є обмеження — правил не може бути більше 65535 XNUMX. Поки що з цим живемо: можна їх комбінувати, розширювати, робити два ipset в одному.

Зберігання

Логічне продовження процесу ітерацій - зберігання інформації про клієнтів для сервісу в ipset.

Consul + iptables = :3

Тепер у нас є той же SSH, і ми не пишемо відразу 100 IP, а задаємо ім'я ipset, з яким треба поспілкуватися, і наступне правило DROP. Можна переробити в одне правило "Хто не тут, той DROP", але так наочніше.

Тепер у нас є правила та мережі. Головне завдання – зробити сет до того, як написати правило, бо інакше iptables не запише правило.

Загальна схема

У вигляді схеми все, що я розповів, має такий вигляд.

Consul + iptables = :3

Комітім в Puppet, все вирушає на хост, сервіси тут, ipset там, а хто там не прописаний, того не пускають.

Allow & deny

Щоб швидко рятувати світ або швидко когось відключати, на початку всіх ланцюжків ми зробили два ipset: rules_allow и rules_deny. Як це працює?

Наприклад, хтось ботами створює навантаження на наш Web. Раніше потрібно було знайти по логах його IP, віднести мережевим інженерам, щоб вони знайшли джерело трафіку та його забанили. Нині це виглядає інакше.

Consul + iptables = :3

Відправляємо в Consul, чекаємо на 2,5 с, і готово. Оскільки Consul за рахунок P2P швидко розподіляє, то працює скрізь у будь-якій частині світу.

Якось я якось повністю зупинив WOT, помилившись із файрволом. rules_allow - Це наша страховка від таких випадків. Якщо ми десь помилились із файрволом, щось десь заблокується, ми завжди можемо відправити умовний 0.0/0щоб швидко все підняти. Вже потім ми все полагодимо руками.

Інші мережі

Можна додавати будь-які інші мережі в просторі $IPSETS$.

Consul + iptables = :3

Навіщо? Іноді комусь потрібні ipset, наприклад, щоб емулювати відключення якоїсь частини кластера. Кожен може принести будь-які мережі, їх назвати і вони забиратимуться з Consul. При цьому мережі можуть як брати участь у правилах iptables, так і бути командою NOOP: консистентність підтримуватиметься демоном

користувачі

Раніше було так: користувач підключався до мережі та через домен отримував параметри. До появи файрвол нового покоління Cisco не вміла розуміти, де користувач, а де IP. Тому доступ видавався лише через hostname-машини.

Що ми зробили? Вклинилися у момент отримання адреси. Зазвичай це dot1x, Wi-Fi чи VPN – все йде через RADIUS. Для кожного користувача створюємо групу на ім'я користувача і поміщаємо до неї IP з TTL, який дорівнює його dhcp.lease - як тільки він закінчиться, правило зникне.

Consul + iptables = :3

Тепер ми можемо відкривати доступ до сервісів, як і до інших груп, за username. Ми позбулися болю з hostname, коли вони змінюються, і зняли навантаження з мережевих інженерів, тому що їм більше не потрібно Cisco. Тепер інженери самі прописують доступи на серверах.

Ізоляція

Паралельно ми почали розбирати ізоляцію. Сервіс-менеджери зробили інвентаризацію, а ми проаналізували всі наші мережі. Розкладемо їх у такі ж групи, але в потрібних серверах групи додали, наприклад, в deny. Тепер та сама ізоляція стейджингу потрапляє в rules_deny у продакшн, але не в сам продакшн.

Consul + iptables = :3

Схема працює швидко і просто: знімаємо всі ACL із серверів, розвантажуємо залізниці, знижуємо кількість ізольованих VLAN.

Контроль цілісності

Раніше у нас працював спеціальний тригер, який повідомляв, коли хтось міняв руками правило файрвола. Я писав величезний лінтер перевірки правил файрвола, це було складно. Наразі цілісність контролює BEFW. Він ревно стежить, щоб правила, які він робить, не змінювалися. Якщо хтось змінити правила файрвола, він поверне все назад. "Я тут швидко підняв проксі, щоб з дому працювати" - таких варіантів більше немає.

BEFW контролює ipset із сервісів та списку в befw.conf, правила сервісів у ланцюжку BEFW. Але не стежить за іншими ланцюжками та правилами та іншими ipset.

Захист від аварій

BEFW завжди зберігає останній вдалий стан прямо в бінарній структурі state.bin. Якщо щось пішло не так, він завжди відкочується назад до цього state.bin.

Consul + iptables = :3

Це страховка від нестабільної роботи Consul, коли він не надіслав дані або хтось помилився та використав правила, які не можуть бути застосовані. Щоб ми не залишилися без файрвола, BEFW відкотиться на останній стан, якщо на якомусь етапі станеться помилка.

У критичних ситуаціях це гарантія, що ми залишимось із робочим файрволом. Ми відкриваємо всі сірі мережі, сподіваючись, що адмін прийде і полагодить. Колись я це винесу в конфіги, але зараз у нас просто три сірих мережі: 10/8, 172/12 та 192.168/16. В рамках нашого Consul це важлива особливість, яка допомагає розвиватись далі.

Демо: під час доповіді Іван демонструє демо-режим роботи BEFW. Демонстрацію зручніше дивитися на відео. Вихідний код демо доступний на GitHub.

Підводні камені

Розповім про баги, з якими ми зіткнулися.

ipset add set 0.0.0.0/0. Що трапиться, якщо додати до ipset 0.0.0.0/0? Додадуться всі IP? Відкриється доступ до Інтернету?

Ні, ми отримаємо баг, який коштував нам дві години простою. Причому баг не працює з 2016 року, лежить у RedHat Bugzilla під номером #1297092, а знайшли ми його випадково зі звіту розробника.

Тепер у BEFW стоїть жорстке правило, що 0.0.0.0/0 перетворюється на дві адреси: 0.0.0.0/1 и 128.0.0.0/1.

ipset restore set <file. Що робить ipset, коли ви кажете йому restore? Ви думаєте, він працює так само, як iptables? Чи відновить дані?

Нічого подібного він робить merge, і старі адреси нікуди не подіються, доступ ви не закриваєте.

Баг ми виявили, коли тестували ізоляцію. Тепер там досить складна система – замість restore проводиться create temp, потім restore flush temp и restore temp. В кінці swap: для атомарності, тому що якщо спочатку проводити flush і в цей момент прийде якийсь пакет, він буде відкинутий і щось піде не так. Тож там трохи чорної магії.

consul kv get -datacenter=other. Як я вже казав, ми думаємо, що запитуємо якісь дані, але отримаємо дані або помилку. Ми можемо це робити через Consul локально, але й у цьому випадку зависне і те, й інше.

Локальний Consul-клієнт це обгортка над HTTP API. Але він просто висне і не відповідає ні на Ctrl+C, ні на Ctrl+Z, ні на що, тільки на kill -9 у сусідній консолі. Ми зіткнулися з цим, коли будували великий кластер. Але рішення у нас поки що немає, ми готуємося виправляти цю помилку в Consul.

Consul leader не відповідає. У нас не відповідає майстер у дата-центрі, ми думаємо: "Напевно, зараз спрацює алгоритм перевибору?"

Ні, не спрацює, і моніторинг нічого не покаже: Consul скаже, що commitment index є, лідера знайдено, все добре.

Як ми з цим боремося? service consul restart у cron щогодини. Якщо у вас 50 серверів – не страшно. Коли їх буде 16 тисяч, ви зрозумієте, як це працює.

Висновок

У результаті ми отримали такі переваги:

  • 100% покриття всіх Linux машин.
  • Швидкість.
  • Автоматизація.
  • Звільнили залізо та мережевих інженерів від рабства.
  • З'явилися можливості щодо інтеграції, які практично безмежні: хоч із Kubernetes, хоч із Ansible, хоч із Python.

Мінуси: Consul, з яким нам тепер жити, і дуже висока ціна помилки Як приклад, один раз я о 6-й вечора (прайм по Росії) щось правил у списках мереж. Ми тоді будували ізоляцію на BEFW. Я десь помилився, здається, вказав не ту маску, але все впало за дві секунди. Загоряється моніторинг, вдається чергова підтримка: «У нас все лежить!» Начальник департаменту посивів, коли пояснював бізнесу чому так сталося.

Ціна помилки така висока, що ми придумали власну складну процедуру профілактики. Якщо ви це впроваджуватимете на великому продакшн, не треба давати майстер-токен над Consul усім підряд. Це погано скінчиться.

Вартість. Я писав код 400 годин наодинці. На підтримку моя команда із 4 осіб витрачає 10 годин на місяць на всіх. Порівняно з ціною будь-якого файрвола нового покоління це безкоштовно.

Плани. Довгостроковий план — це пошук альтернативного транспорту замість додатково до Consul. Можливо, це буде Kafka чи щось подібне. Але найближчими роками ми будемо жити на Consul.

Найближчі плани: інтеграція з Fail2ban, моніторинг, nftables, можливо, з іншими дистрибутивами, метрики, розширений моніторинг, оптимізація. Підтримка Kubernetes теж десь у планах, бо зараз у нас є кілька кластерів та бажання.

Ще із планів:

  • пошук аномалій у трафіку;
  • керування карткою мережі;
  • підтримка Kubernetes;
  • збирання пакетів під усі системи;
  • Web-UI.

Постійно працюємо над розширенням конфігурації, збільшенням метрик і оптимізацією.

Приєднуйтесь до проекту. Проект вийшов крутим, але, на жаль, це поки що проект однієї людини. Приходьте на GitHub і спробуйте щось зробити: закоммітити, потестувати, запропонувати, дати свою оцінку.

Тим часом ми готуємось до Saint HighLoad++, який відбудеться 6 та 7 квітня у Санкт-Петербурзі, та запрошуємо розробників високонавантажених систем подати заявку на доповідь. Досвідчені спікери і так знають, що робити, а новачкам у виступах рекомендуємо хоча б спробувати. Участь у конференції як спікера має низку переваг. Яких, можна почитати, наприклад, наприкінці цієї статті.

Джерело: habr.com

Додати коментар або відгук