**DevOops Podcast #5 // Kafka в K8s: от хаоса к контролю / Дмитрий Баскаков и Кирилл Протопопов — Transcript & Summary | SozAI**
Source: https://sozai.app/transcript/kafka-k8s-chaos-control/

Обсуждение использования Kafka в Kubernetes, выбор операторов, проблемы конфигурации и опыт команды MindBx.

## Key Takeaways

- Переход на Kubernetes с операторами упрощает управление Kafka и снижает нагрузку на разработчиков.
- Выбор open source оператора Streamzi оказался оптимальным с точки зрения функционала и поддержки.
- Обновления операторов проходят без влияния на кластеры, но мажорные обновления требуют планирования.
- Большое количество кластеров Kafka связано с разделением доменов и требованиями надежности.
- Автоматизация и тестирование, включая хаос-тесты, критичны для стабильной работы Kafka в Kubernetes.

## What the video covers

- Гости подкаста — Дмитрий Баскаков и Кирилл Протопопов из MindBx обсуждают опыт внедрения Kafka в Kubernetes.
- Рассматривается переход с виртуальных машин на Kubernetes для управления Kafka-кластерами.
- Обсуждается выбор оператора для Kafka: Streamzi, Banzai, оператор от Confluent и собственная разработка.
- Подробно рассказывается про автоматизацию, конфигурационный дрейф и когнитивную нагрузку на разработчиков.
- Обсуждаются хаос-тесты и тестирование операторов для обеспечения стабильности и обновлений.
- Рассматривается вопрос обновления операторов и кластеров Kafka без влияния на работу сервисов.
- Обсуждается проблема большого количества Kafka-кластеров и их версий, а также подходы к миграции.
- Говорится о разделении доменов и оптимизации использования Kafka в продукте MindBx.
- Обсуждается опыт исправления багов в open source операторе Streamzi и взаимодействие с сообществом.
- Затрагиваются темы мониторинга, SLA и управления топиками и пользователями через оператора.

## Chapters

1. 00:00 Введение и знакомство с гостями
2. 03:17 Выбор оператора Kafka и хаос-тесты
3. 06:18 Обновление операторов и управление кластерами
4. 09:12 Проблемы с версиями Kafka и миграция
5. 12:38 Анализ большого количества кластеров и разделение доменов
6. 15:58 Конфигурация, нагрузочное тестирование и управление параметрами
7. 18:58 Мониторинг, SLA и производительность
8. 21:26 Управление топиками и пользователями через Streamzi
9. 24:27 Опыт исправления багов и взаимодействие с сообществом
10. 26:15 Заключение и планы на будущее

Answers

## Questions about this video

Почему MindBx перешли с виртуальных машин на Kubernetes для Kafka?

Переход был вызван необходимостью снизить когнитивную нагрузку на разработчиков, устранить конфигурационный дрейф и автоматизировать управление Kafka с помощью операторов Kubernetes.

Какой оператор Kafka был выбран и почему?

Выбран open source оператор Streamzi, так как он предоставлял необходимую автоматизацию, наблюдение за состоянием кластера и был лучше других вариантов с точки зрения функционала и стоимости.

Как MindBx решает вопросы обновления операторов и кластеров Kafka?

Обновления операторов проходят без влияния на кластеры, однако мажорные обновления требуют поэтапного обновления кластеров Kafka и затем оператора для обеспечения совместимости.

## Full Transcript — Download SRT & Markdown

00:00

Speaker A

Увидим. [музыка] И вот мы онлайн, коллеги. Всем привет. На связи подкаст. Это пятый выпуск. И сегодня с нами коллеги из Майнбокса — Дима Баскаков и Кирилл Протопов. И говорить мы сегодня будем про Кавку. И Кавку в Кубернетисе. Ещё ретроспективно

00:27

Speaker A

посмотрим, а что изменилось за год. И вернём в тему, а как MindBx готовит своих спикеров к выступлению.

00:35

Speaker A

Начнём мы, наверное, задавать странные вопросы тебе, Дим, а как автору оригинального доклада про кавку, грефневые и вот это вот всё. И будем вспоминать, а как оно было-то год назад, собственно. А помню, один из основных тейков доклада был в том, что всё

00:49

Speaker A

[откашливается] началось из какого-то хаоса, когда сотня кафок, виртуалок, всё развёрнуто руками и так далее, и надо было всё это дело причёсывать. И решили вы ехать в Кубернетис. У меня как всегда начало с провокационного вопроса, несмотря на то, что у меня даже нимп

01:03

Speaker A

есть. Вот зачем вам понадобился Кубернетис, если были виртуалки? Ну и там как будто бы всё работало.

01:11

Speaker A

Э всё так, э, были виртуалки, всё работало. При этом отмечу, что даже была автоматизация, была, ну, описана там инфраструктура скот, то есть был раформ плюсиible, но при этом работало не до конца. Первое — был configuration drift на самих кластерах кафок. То есть конфигурацию

01:34

Speaker A

правили разработчики, она там перекопипащивалась, при этом у разработчиков там не хватало контекста. И это всё нас подводило к истории, к тому, что надо эту когнитивную нагрузку с разработчиков снять. И в итоге мы пришли к тому, что надо сделать полноценный сервис по

01:55

Speaker A

кавке, где разработчик делал бы клик-клик, и у него всё работало. И для этого идеально подходит бер с его операторами.

02:06

Speaker A

Погоди, парирую. Ну, у тебя есть виртуалки, у тебя есть, возможно, терорафом, чтобы их катать, у тебя есть, прости, Господи, напиши ты большой скрипт, который тебе будет создавать кусок ролей или переменных, и разработчику дай два параметра. Почему бы и нет?

02:22

Speaker A

Э, всё так, э, но по факту ты будешь писать, э, тот же оркестратор, который выльется в то, что это будет какой-то недокубер, управление там виртуалками.

02:36

Speaker A

И написанный на баше, да, и написанный на баши. И недооператор ещё поверх, который будет ещё как-то конфигурациями рулить. Ну, знаешь, как минусов-то на самом деле особо и нет.

02:46

Speaker A

Зато на всю жизнь ты в майнбоксе, всё у тебя прекрасно и хорошо. О'кей. А, смотри, выбрали подход, появилась кавка в Кубернетисе, решили всё это дело развивать. Тут сразу начинается вопрос. Понятное дело, что есть всеми любимый стримзи, про который мы много

03:05

Speaker A

говорили на докладе, но помимо стримзи есть ещё куча всего, и в том числе и романифесты. А расскажи, пожалуйста, а как вот происходил выбор, как происходили тесты там и так далее?

03:17

Speaker A

Потому что я даже знаю, что у вас есть и хаос-тесты для всего этого добра.

03:21

Speaker A

Да. А ой, как это давно всё было. Сейчас попробую вспомнить. Значит, э, 2 года назад, да, так как сам доклад был год назад, была какая история? Ну, был по факту какой выбор перед нами? Первое — это попробовать э взять какие-нибудь

03:39

Speaker A

чарты покавки, ну, я не знаю, там в Бьтнаме, да, тот же самый самый популярный, но в нём не хватало, ну, автоматизации, которые бы там наблюдали за состоянием кластера и прочее, прочее.

03:52

Speaker A

-Э, там было ещё ряд, ну, как бы чартов, не будем говорить. Второй выбор — взять какой-нибудь open source оператор. Вот один из них был Стримзи, который мы в итоге выбрали. Был ещё Банзай, насколько я помню, и оператор от Конфлюенса. Ну,

04:10

Speaker A

Конфлюенс был прекрасный, но за бабки. У Банзая были недостатки. Ну, и в итоге выбрали стримзи. И при этом был ещё третий путь — это взять и написать самим оператора, как делают некоторые компании.

04:23

Speaker A

Я те уже предлагал на баше бахнуть. Да, да, да. Мы посчитали инвестиции, которые нам надо в этот оператор вложить, и решили, что мы всё-таки попробуем стартануть со стримзи. И кажется, что, ну, там с течением времени этот выбор был правильным.

04:38

Speaker A

Угу. О'кей. А мы же понимаем, что вот open source, все дела, люди пользуются, но даже в open source есть косяки, баги, и приходится нырять очень глубоко. Скажи, пожалуйста, что-то ли вы правили внутри самого стримзи-оператора? Что мешало вам жить или, наоборот, стало вам после

04:56

Speaker A

этого лучше жить? Ох, ээ, давай так отвечу, что 999,9 нет. Э, был, по-моему, какой-то от насю, ээ, сейчас уже не вспомню, который мы заносили в стримзи и который они принимали.

05:12

Speaker A

Угу. И в [откашливается] итоге поправили или нет? Да, поправили, но там какая-то буквально мелочь.

05:20

Speaker A

Ага. О'кей. Итак, сейчас мы в той точке реальности, когда у нас есть Кубернетис с кавкой и стримзи.

05:26

Speaker A

А как вы решаете, например, вопросы обновления, например, того же самого стримзи? Ну, версия-то новые операторы выходят, а мало ли что они притащат к новым кавкам.

05:36

Speaker A

А тут до инцидента недалеко. Да, слушай, ну я, наверное, кратенько, да, дам про какую-то базу по стримзи о том, что стримзи по факту это, ну, полноценная экосистема покавки, можно так сказать. То есть она закрывает все там Zero Day Operations, Zero One Day

05:57

Speaker A

Operations, Zero2, да? То есть она позволяет там ставить, обновлять, э-э, там менять балансировку, менять конфигурацию, там что-то настраивать по секюрити. И при этом у неё там есть обсервабилити из коробки. Поэтому, когда мы говорим про, например, обновление оператора, с этим вообще нет никаких

06:18

Speaker A

проблем. Ты просто берёшь и обновляешь оператор. На сами кластера это никак не влияет. Понятно, что когда мы говорим э о мажорных версиях, да, ну, у тебя может быть такая ситуация, что я не знаю, там кавка версии три, ты хочешь бампнуть э

06:34

Speaker A

на версию четыре сразу, но там уже версия поддерживаемых кафок только там, ну, я не знаю, там с 3.8, поэтому тебе надо сначала кавки доапгрейдить, а потом апгрейднуть оператор.

06:46

Speaker A

Ага, прикольно. А давай сделаем опять степэк, да, когда я спрашивал, почему не виртуалки и так далее. Ну, понятное дело, всё это накрутили, пришли в стримзи в Кубернетис, но я вот прямо чувствую, что из там десятков сотен кафок очень

07:01

Speaker A

большая часть была категорически разной, даже не по конфигу, а по версии. Вот. [фыркает] А что вы с этим делали, если такое было?

07:09

Speaker A

М к счастью, такого не было. Ну, тут как, знаешь, как и к счастью, и не к счастью. А версия была, да, просто [смех] все кавки были старые.

07:22

Speaker A

Версия 2.8. [откашливается] При этом на тот момент, да, когда у нас версия Кавки 2.8, при этом они там все плюс-минус разные, ну, я не знаю, там 2.8.0, 2.8.1, что-то типа такого было. На тот момент актуальной версии Кавки была

07:37

Speaker A

версия 3.8. То есть прям, ну, большая разница на кучу минорных версий, прямо на кучу.

07:44

Speaker A

А ещё привет разрыв мажоры. Да, и разрыв. И там, на самом деле, много чем менялось. Вот. Но при этом концептуально миграцию, которую мы делали, для неё [откашливается] неважно было какая-то версия, там 2.8.0 или 2.8.1.

08:01

Speaker A

Угу. О'кей. Сотни кафок разных версий. Вообще песня. Смотри, а вы же наверняка делали какой-то анализ перед этим приключением, да? Они наталкивались ли вы на мысль, идею или там какую-то архитектурную ошибку из разряда, что кафок стало слишком много, а столько нам и не надо,

08:18

Speaker A

и местами используется она как, ну, неправильная технология. Может, её юзают не как там распределённый лог или очередь, а как базу вообще, да. Это была первая мысль, на самом деле, с которой мы начинали. Типа почему у нас вообще столько кафок? Ну, то есть

08:34

Speaker A

я сейчас сходу не вспомню, но мне кажется, их было порядка вот 150. Это, по-моему, ближе к 200. 180, по-моему, где-то было.

08:43

Speaker A

Ну да, около того. Э, и мы, ну, там пошли естественно пообщались с разработкой и осознали. Вот что.

08:52

Speaker A

Во-первых, продукт Майбокса, он очень большой. Вот. И разработка начала разделять домены в рамках э истории по надёжности, так как мы, у нас есть публичный слей, мы очень хотим быть максимально надёжными для наших клиентов, поэтому они начали там э

09:12

Speaker A

разделять домены, в том числе вынося кавки из для каких-то критичных компонентов. В итоге — э ну стало такое количество кафок. При этом действительно были моменты, когда, ну, например, Кавка использовалась там с маленьким РПСом, но мы подсветили это разработке, и дальше

09:33

Speaker A

они уже сами принимали решение, ну, там, помёржить это с какими-то другими.

09:45

Speaker A

То есть вы, скажем так, подсветили, да, но не склоняли их, скажем так, к оптимизации радикальной, да, потому что у нас разработка заведует своим бюджетом, и они могут тратить деньги, как им хочется, если Главное, чтобы они приносили при этом пользу бизнеса и деньги тоже.

10:04

Speaker A

Ну, справедливо, да. Сейчас будет опять очень странный тейк. Э, как будто бы мы говорим на промежутке времени год тире два назад, да, пока вот проходило всё вот это дело. И тейк мой из разряда: "Может кавка вообще не нужна? У нас же

10:18

Speaker A

там есть стильно модный молодёжный Red Pанда. А если покопаться в интернетах есть ещё что-то, что не на Джаве, например, и выглядит интересней".

10:28

Speaker A

Ох, вот это ты накинул тейк про РД Панду. Э, сразу отвечу так, мы смотрели только Редпанду. Больше кроме неё, на самом деле, альтернатив-то нормальных Кавки нету. Вот, вот я только Редпандой вспомнил сходу.

10:46

Speaker A

Ээ ну, во-первых, мы осознали, что переход на неё прямо будет очень тяжёлым, а во-вторых, что на мой взгляд ээ самое важное, Red Panda очень сырой продукт. А, безусловно, в своих бенчмарках она там хвалит, ну, там поёт себе одда о том, что, блин, мы самые

11:05

Speaker A

лучшие лучше кавки и прочего. Но когда, да, ты начинаешь разбирать кейс, оказывается, что вот здесь проблемки есть, а вот здесь проблемки есть. Мы протестили, по-моему, два профиля нагрузки, столкнулись с проблемами и дальше даже это раскачивать не стали, потому что

11:21

Speaker A

минусы стали очевидны. Угу. Я, кстати, вспомнил ещё один инструмент Яндекс Database. Яндексу привет. Они тоже хвастались тем, что запилили туда, ну, как бы паттерны, как для работы с кавкой. Вот.

11:38

Speaker A

И раз доступно это только в рамках облака да? Нет, нет, нет. Ты можешь себе поставить, ээ, покрутить, но они просто это сделали чуть позже. Вот.

11:47

Speaker A

Угу. Ага. Не, ну прикольно то, что подошли как бы серьёзно к, собственно, вопросу выбора. Э, о'кей, нормально, по-моему, вполне себе здравое решение. Приходим, значится, мы к кубернетису, к хаос-тестам и так далее. Смотри, ты говорил, вы проверяли профили нагрузки.

12:06

Speaker A

А помимо хаос-тестов делаете ли вы, например, нагрузочное тестирование кафо? Ну разработка наверное хочет понимать, сколько PS Кавка переживёт там по Да, слушай, я тут сде сделаю степэк. Вот мы там говорим: "Кавка, кавка, кавка". Я в начале говорил, что мы хотели сделать

12:20

Speaker A

именно продукт. Вот мы, когда стрим здесьделали, мы поняли, что он из коробки тебе продукт не даёт. И мы, на самом деле, протратили много сил, времени на то, чтобы его в этот продукт превратить. И одним из шагов по превращению в продукт было то, что мы

12:38

Speaker A

часть контекста, э, с разработки по конфигурированию снимали. И конфигурирование, в том числе завязано на условные тиры, как мы их назвали. это некие конфигурации для кавки, размерность. И под эту размерность мы делали специальное нагрузочное тестирование, да? То есть, ээ, мы там

12:59

Speaker A

выделили ряд параметров, через которые там нагружали кавку, и потом, когда разработчик, ээ, ну, там хочет создать кавку, у него есть, условно там, ну, там сейчас четыре тира. И у каждого тира есть описание, что если у тебя планируемая нагрузка такая-то, возьми

13:17

Speaker A

вот такой тир. Если такая-то, возьми другой и так далее. Угу. Отлично. А если, например, разработчику нужен какой-то тир, например, сильно меньший, представим, что разработчик осознанно к этому идёт или сильно больше верхнего тира, а что происходит, ну, с продуктом с точки

13:33

Speaker A

зрения каких-то продуктовых историй? Что про, ну, продуктовый истории я подразумеваю, например, какой-то саппорт, там какие-то процедуры типа обновления, обновлений и так далее.

13:44

Speaker A

Да, смотри, отвечая на твой вопрос, в рамках продукта мы даём ещё и на кавку.

13:50

Speaker A

То есть мы гарантируем разработчикам, что вот если он взял такую кавку в рамках тех параметров утера, что мы указали, оно будет соблюдаться. И если будут возникать какие-то ошибки, мы эти ошибки будем решать. Вот если же он хочет что-то

14:07

Speaker A

иное, да, иную конфигурацию от тира, он у него есть возможность оверайднуть эти значения, и тогда он гарантии по надёжности теряет. При этом радикально теряет.

14:20

Speaker A

Радикально теряет, да. Дальше надёжность переходит к нему. Сразу скажу, что такие есть, но их прямо реально единицы. При этом мы с разработчиками общаемся, ну да, собирая с них фидбэк. И когда мы видим, что, ну, есть определённый запрос на определённую конфигурацию, мы это

14:38

Speaker A

просто себе в бэклог докладываем и потом эту конфигурацию рожаем, и у разработчиков появляется новый тир.

14:44

Speaker A

Ага. То есть это как бы не сра Ну вы открыты к новым тирам, например, для продукта скорее вот так сформулировать.

14:50

Speaker A

Конечно, конечно, конечно. А и о'кей. А часто ли появляются новые тиры? Ну, понятно, всё зависит от разработки, потому что они запрашивают, да? Ну, вообще в целом нет. за всё время вот сейчас появился только, ну, не сейчас, а за это время

15:06

Speaker A

появился плюс один тир. Ну вот, возможно, появится ещё плюс второй. Ага. Больше, меньше, так, ради интереса.

15:14

Speaker A

Ну, по размерности. Ну, давай, наверное, я отвечу. Тут, скорее всего, учитывая работу кавки и то, как команда её используют, а потом поведения приложений совершенно разные. где-то там создаёт миллион коннектов, груп миллион там консюмер групп, и здесь растёт дикое потребление CPO.

15:38

Speaker A

Где-то не нужно столько консюмер группы, не наоборот, там поток просто сообщений большой, памяти надо побольше.

15:45

Speaker A

Вот в свою очередь здесь пришли к тому, что необходимо иметь тиры, ну вот как мы в облаке создаём, там, допустим, high CPU, там memory optimized либо что-то такое.

15:55

Speaker A

Угу. Вот выглядит так, что текущие тире необходимо просто сделать некие промежуточные, а, которые где-то будет перекос в CPU, где-то будет перекос в память.

16:08

Speaker A

Слушай, да, это выглядит разумно, но концептуально концептуально там так называемых эластик тиров, где мы динамически можем расширяться, на данный момент у нас нет.

16:20

Speaker A

Угу. О'кей. А что бывает в той ситуации, когда, например, разработчик взял какой-то тир, да, ну, возьмём средний, а наверняка там забиндено некоторое количество брокеров, ну, например, три, да, и разработчик на дистанции понимает, что ему, а, нужен ещё, например, один

16:37

Speaker A

брокер, да, но это не переход в следующий тир, например. Ну, как он расширяет кавку?

16:46

Speaker A

Ну, смотри, а у нас есть такой замечательный параметр, называется из custom true, который свою очередь снимает.

16:56

Speaker A

Угу. Ну, и позволяет разработчику поменять какие-либо параметры. Но надо тоже понимать, что зоны доступности у нас три и делать четыре брокера.

17:09

Speaker A

Ну, понятно. Да, да, да. Я как бы не очень хорошо будет просто пример тебе привожу, что вот надо вот так типа разработки, и они осознают, что они делают. А, да, я тебов расширю ответ Кирилла. А Кирилл всё правильно говорит. Ну мы, ну

17:24

Speaker A

как бы за за ребят продумываем. При этом нужно понимать, что, э, эластичные, ну, как бы расширения, они очень тяжелы, потому что на любые эластичные расширения у тебя должны, ну, как бы эластично расширяться и ограничения, которые мы зашиваем в каждой тире,

17:45

Speaker A

так как мы даём гарантии, что разработчик не может разломать кавку. Вспоминая, да, начало нашего разговора, я говорил о том, что у нас были инциденты, и они были связаны с тем, что, ну, я не знаю, разработчик создал 10.000 топиков,

18:02

Speaker A

да, и Кавку разорвало после этого. При этом это, ну, я знаю кейсы, когда это было просто из-за бага. Ну, ребята где-то не досмотрели и забыли, как это добавить место, где после создания топиков, после каких-то операций эти топики зачищаются.

18:22

Speaker A

Ну и конец. Ну, как говорится, быстро поднятое упавшим не считается. Тоже нормально. Кстати, коллеги, кто с нами в онлайне, я напоминаю, что можно задавать свои вопросы в комментариях. Мы их всех видим и постараемся на них ответить. О'кей. А

18:37

Speaker A

кавка продукт есть SLA. А как SLA считаете? У меня есть ощущение, что это не просто там ЦПУ 70% хорошо, оперативка 70%, с дисками и сетью всё классно. Я думаю, процесс там всё-таки немножко сложнее.

18:51

Speaker A

Давай я кратенько отвечу, а потом Кирилл продолжит. Вот. Ну то есть как это вспомним начало, да, там то, что я на конфе рассказывал, что есть паттерн апдекса. А-э, это когда, ну, вы по факту делаете endtoend тест к своему

19:08

Speaker A

приложению. В нашем случае это кавка. И в нашем случае это когда вы, э, продюсете сообщение, консюмите его и время измеряете, да, через которое оно прошло. То есть вы понимаете и lety, ну, там, и пропускную способность. Э, мы там

19:25

Speaker A

попробовали пару инструментов, взяли комниion, и вначале это, ну, как бы работало. Но потом возникли приколы. И вот тут вот Кирилл расскажет какие.

19:36

Speaker A

Да, приколы-то возникли. Ну, мериться-то, на самом деле, нужно путь пользователя, а не то, что мы там синтетику какую-то подняли и мерим там.

19:47

Speaker A

Ну, понятно, кодовая база совершенно разная а разные типы ребалансировки consюмер group. Ну и, следовательно, могут возникнуть ситуации, когда ты смотришь, Айслот у тебя красивый, а клиент страдает.

20:00

Speaker A

Вот. И к чему пришли? Пришли к тому, что необходимо иметь честную свой экспортер, который по сути плюс-минус повторяет то, как делает N2Nтест тот же самый комменниion, но он должен быть основан на библиотеке, которая использует все микросервисы, которые взаимодействуют с каждого. И

20:21

Speaker A

тогда, если кто-то принёс какой-то регресс в эту там либо, мы это сразу же увидим. Ну там отвалится у клиента, отвалится и на S.

20:31

Speaker A

А SL по сути мерен на основе плюс количество ошибок, которые могут произойти в окне.

20:40

Speaker A

Ага, я понял. А слушай, смотри, вы написали свой экспортер, да, который меряет апдекс. А в каких попугаях происходят измерения? Ну там единицы какие.

20:50

Speaker A

Ну там максимально - это единица или максимально? Смотри, первоначально с разработкой договорились, так что с идеальное сообщение должно проходить за 80 мскунд.

21:04

Speaker A

Угу. Край - это 320. Ну вот, следовательно, имея данные два порога, мы можем рассчитать.

21:12

Speaker A

Угу. Ну и также зная ту гарантию, которую мы гарантируем, ну там те проценты, которые мы гарантируем, там тричетыре девятки, а [фыркает] мы можем себе позволить одну ошибку в 30 секунд, по сути.

21:26

Speaker A

Понял. Короче, вы рассчитали и там всё нормально. А ясно. О'кей. Просто птичка мне напела однажды, что у вас апдекс считался больше единицы. То есть когда это в будущем у разработчика всё было хорошо.

21:40

Speaker A

Баг, я так понимаю, тут нашли и поправили в своё время. Было дело, было дело. Не помню. [смех] Я я помню, да. Это вот как раз было в первых версиях, когда мы только там запустили апдекс ну и всё. И такие: "Ну, о'кей,

21:57

Speaker A

работает". А потом в какой-то момент приходит разработчик и говорит: "Ребята, я что-то не понял, а почему у нас апдекс больше единицы?" Вот если, [фыркает] блин, сейчас какой же инструмент-то? А, всё, я вспомнил. Мы использовали в начале, мы тестили инструмент от самого

22:12

Speaker A

Стримзи. Он, по-моему, так и назывался. Что-то Стримзи сло. Вот. И, ну, мы Да, он умер после того, как мы начали использовать. [смех] Мы сделали сделал всё правильно. Он посчитал, он посчитал всё как правильный бухгалтер и умер.

22:31

Speaker A

Ну а что? Почему нет? Да. А [фыркает] Стрим The Canри он назывался по-моему. Да, да, да, точно, точно. Всё. Так, и мы после этого начали тестить и другие инструменты. На самом деле у него было там много разных проблем. И в итоге

22:44

Speaker A

перешли на каминин, да. И и потом буквально пару месяцев и стримзи его деприкейтнул. Бывает, что до этого он сам умер, предыдущий продукт, а потом его деприкейтнули.

22:56

Speaker A

О'кей. У нас есть кавка продукт, SL, гарантии, все дела. А что у нас там на земле? Классический вопрос. Три кавки по разным а зонам доступности или одна растянутая по а зонам. Что лучше выбрать и что вы используете?

23:13

Speaker A

Ну, у нас облака, три зоны доступности и вы кавки отдельно растягиваете. Ну, ну да, мы кавки, следовательно, растягиваем. Мы гарантируем, что мы можем потерять, естественно, там афенити, вот это все дела. Размазываемся по зонам и гарантируем, что 1/3 мы можем потерять.

23:32

Speaker A

Следовательно, ну, плюс ко всему у нас не Fenarget, а Ask all используем мы, ну, гарантия доставки нам необходима. И репликация топика троечка. Угу.

23:47

Speaker A

А, и, следовательно, мина минимальное количество, да? Ми син - это два. Угу. О'кей. Короче, не просто встречается такой паттерн, когда даже какой-то там суперзрелый кластерный продукт, который может жить там какой-то в двадцати зонах доступностях, ну, условно, да, а люди приходят к тому, что

24:09

Speaker A

мы лучше 20 экземпляров бахнем, как-то их синхронизируем между собой и будем жить типа очень отказоустойчиво. Ну, к этому тоже, конечно же, есть вопрос.

24:18

Speaker A

О'кей. тебе тогда придётся на уровне приложения пилить вот эти вот cрлбрейкеры между этими а экземплярами.

24:27

Speaker A

А плюс а если у тебя зоны разъехались, одна ну у тебя микросервис в одной зоне живёт с кавкой, с одной общается, другой живёт в других зонах, с другими общается. Ну там развалился, допустим, межзонами взаимодействия. Как это потом всё мачить между собой?

24:44

Speaker A

Ну, знаешь, как ты, как мужик пошёл и написал свой какой-то балансир, да? Написал модуль на плюса. На плюсах написал модуль для Нжинкса и поехали. А что бы и нет?

24:53

Speaker A

О'кей. Да, растянутая кавка по зонам. Хаос-тесты. Расскажи, пожалуйста, какие тесты гоняете и как часто, ну, в каких-то условных попугаях какие результаты получаете и что потом с этим делаете?

25:09

Speaker A

Ну, хаус-тесты стандартные, это там несколько уровней у него есть. Это, ну, понятно, самый верхний уровень - это отказ зоны. Мы бахаем зону вообще в облаке, в кубере, и смотрим, что происходит. Либо мы бахаем в одной зоне какие-то брокеры

25:29

Speaker A

определённой кафки, а, либо мы можем также какой-нибудь один из брокеров убить. Дефолтно все хаус-тесты [откашливается] зашиты в чат, в котором вставляется и развёртывается карка.

25:44

Speaker A

Вот. Ну что мы на этом ловим? Ловим, ну бывают интересные вещи, связанные как с самой кавкой. Ну так и то, как наша либо, ну почему мы перешли от синтетики от камениона к своему экспортеру.

26:01

Speaker A

То, что мы поведение либо при хаусттестах, ну совершенно разное, не такое, как с уминили.

26:10

Speaker A

Дадада. Мы ожидали, что будет всё красиво. У нас там по синтетике всё прекрасно, а разработка точит ножи, потому что у них не очень всё хорошо.

26:20

Speaker A

Вот. И вот здесь вот конфликт возникал. Ну и плюс ко всему вопросы конфигурирования, потому что, ну, кавка-то прекрасно, когда она там на статических нодах, вот это всё, а Кубер занёс там свои абстракции взаимодействия там тех же самых ну аа

26:40

Speaker A

ну в кубике много движущихся частей. Согласен. Дада. И типа какие-то вещи это какие-то ограничения может наложить на тебя облако. Для тебя это, ну, тупо чёрный ящик, и тебе как-то с этим надо жить. Вот.

26:54

Speaker A

Ну, как всегда, с Божьей помощью. На самом деле, ты вот сейчас рассказываешь нам, а как всё это сделать красиво и хорошо, и, наверное, боишься спойлернуть свой будущий доклад, да?

27:03

Speaker A

Ну, есть такое дело, да? Ладно, о'кей. Ты просто говорит, типа, пацаны, оно работает, но расскажу я на докладе [смех] об этом. Да, ещё подкину тут, что Кирилл расскажет о том, как улучшить результаты, потому что если вы возьмёте кавку из коробки и убьёте в ней

27:22

Speaker A

зону, ну, кавка будет работать, но она восстановится за какое-то время. А так как, как я говорил, что мы там топим за надёжность и скорость восстановления, то тут придётся некоторые моментики потюнить, о чём Кирилл и расскажет на докладе. Ну, типа, да, у нас наше наше

27:41

Speaker A

ожидание, типа, ну, 2 минуты брокер восстанавливается ладно типа нормально, со всеми договорились. Ожидание разработки 30 секунд - это край. [смех] Нормально. Ну что, песня получается.

27:56

Speaker A

А, о'кей, как бы есть улучшения, все дела. Адекс всё-таки стремится к единичке или чуть большему значению. А если вот мы сделаем, короче, степэк прямо сильно назад, да, к началу нашего подкаста и представим себе ситуацию, что в какой-то точке реальности вы такие

28:12

Speaker A

будем автоматизировать на виртуалках. Представим, что сделали типа хорошо по красоте со всеми вот этими штуками, которые сейчас есть в кубернете, сестрим и так далее. Вот чисто гипотетически, насколько это вообще жизнеспособное приключение?

28:28

Speaker A

И пошли бы вы в эту, а, историю, ну, с виртуалками и кавкой, зная, что результат будет такой же хороший, например?

28:36

Speaker A

Слушай, тут нужно, чтобы ты подкинул, а что такое жизнеспособные приключения? Ну, то есть, наверное, можно, безусловно, всё можно сделать вопрос стоимости.

28:49

Speaker A

А, угу. Ну да, как бы тут классический тезис, который, о котором ты и перебил, собственно, [смех] мой вопрос. У нас же ж Кубернеств, да-да, у нас же Кубернетист-то снимает, собственно, что половина рутинных каких-то задач, но добавляет своих приколов, с которыми мы живём. Ну, как

29:06

Speaker A

будто бы всё прекрасно и хорошо. О'кей. А продукт конфигурации ямлики. Вопрос. А, понятное дело, тиры, да, но тиры же они не ограничены только там, условно количеством брокеров и количеством оперативкой, диском, там, процами и так далее. Внимание, вопрос.

29:23

Speaker A

Есть конфиги, например, а, топиков, и наверняка там ещё что-то можно навертеть. А это тоже находится в тирах, да, или и насколько глубоко, если разработчики могут, они могут залезть в конфигурирование именно внутрянки катки?

29:41

Speaker A

Ну, смотри, какие-то вещи они могут поправить какие-то вещи. А, [откашливается] но основные, скажем так, кор, назовём их так, кор параметры кавки, это там размер сообщения, там размер твича, ещё какие-то там буферы, они поправить не могут. Ну, потому что это очень сильно

30:05

Speaker A

влияет на надёжность кавки. Ну, и, следовательно, они не могут поменять байтрей, который мы гарантируем для каждого брокера. Как раз-таки он выставляется у каждого тероя. Угу. Окей.

30:18

Speaker A

Ну и Max Partitions мы тоже типа максимальное количество партиций в зависимости от размера брокера у нас тоже это выставляется.

30:28

Speaker A

Ага. И причём развивая тему дальше, ну, типа клиент в свою очередь, когда они взаимодействуют с кавкой, клиент знает, какие у него лимиты.

30:39

Speaker A

Там микросервис знает, какие лимиты. Он там через сервис Discovery видит параметры своей кавки. И если возникает такая ситуация: "Я хочу создать там миллион партиций", он себе такого позволить не может. Он просто, ну, тебя будет ошибка, как говорится. Вот он мир ограничений,

30:59

Speaker A

как говорится, да. О'кей. А смотри, вот классическая история, да, как создавать пользаков, как создавать топики. Мы у себя, я рассказывал, приветформ, привет API, потом мы всё это затащили в IDP и так далее. Как у вас вот базовая операция?

31:15

Speaker A

Создать пользователя, создать топик, как у вас это происходит? А, смотри, по, ну, стримзи позволяет тебе создавать статических поль, ну, создавать пользователей, управлять ими через Intти оператор. Также ты можешь создавать топики, если ты их опишешь в конфигурации. Чарт у нас это всё дело

31:36

Speaker A

позволяет. Также ты можешь пользователя создать как с паролем, без пароля, вот это всё можно создать.

31:43

Speaker A

Угу. Аа первоначально мы разработчикам разрешали, ну, настроечка у нас была стояла, если топика нет, Кавка его создавала, но в конечном итоге всех перевели на, а, безусловное создание топиков. У тебя все топики создаются из кода.

32:04

Speaker A

Угу. Создание там бесконечное, создание топика, которого нет, невозможно. И сейчас это прямо железно забито. И кавка не позволяет себе создать топик, которого нет.

32:15

Speaker A

Согласен так, точнее запулить сообщение, запушить запу запушить сообщение в топик, которого нет. Топик долже.

32:24

Speaker A

Да, я ещё добавлю, что мы разработчиков заставили там часть кода, связанную с этим переписать, потому что во многих местах они такие: "Да пофиг, про дюйсем сообщеньку топик создастся". Нет, надо из кода явно указывать, что ты хочешь создать топик.

32:40

Speaker A

Не, ну это правильно. Зато бардака будет меньше. Ну да, с этим мы боролись. А, о'кей. История, всякие партиции, ребалансировки и, например, какие-нибудь бэкапы, прости, Господи, как говорится. То есть, а все вот эти вот Day 2, Day3 операции, да, которые уже операции обслуживания,

33:02

Speaker A

как они реализованы и что там происходит? Ну смотри нас бэкапами мы пренебрегли, учитывая, что у нас, а, распределённая по зонам кластер, да, распределённый по зонам кластер, у нас есть репликация.

33:21

Speaker A

И, насколько я помню, не было такого запроса, что мы хотим выкапить капку. Угу. Вот не видели в этом необходимости.

33:30

Speaker A

То есть прямо железобетонно, да? То есть я понимаю кластер, не кластер, все дела. Это железобетонно, как бы всем объявлено, что всё хорошо.

33:38

Speaker A

Ну да, типа всё хорошо, быка. Всё хорошо, бкапов нет. Всё хорошо, бэкапов нет, потому что кавка - это там нереляционная БД, там бэкапы не нужны. Это у тебя стримингшина, ты же не можешь там бесконечно снимать состояние. У тебя

33:54

Speaker A

летят там, ну, не знаю, там может лететь миллион рпсов. То есть тебе как вот снима снимать бэкапы?

34:03

Speaker A

Вот. Ну, ребалансировка. Ну, в стрим у него есть крузкорол. Угу. Ты тоже через чарт можешь, мы у нас есть возможность указать параметры какие-то, там фул ребалансировка стротлингом, без стротлинга, добавление там новых брокеров. Ну, потому что когда новые брокеры появляются, у тебя там новые

34:27

Speaker A

партицы кавка не ребалансинёт всё сама. Ну, если только там новые топики не начнут создаваться.

34:34

Speaker A

Вот. А через как раз-таки круизконтрол. Ну нормально, что как будто выглядит как рабочий вариант.

34:41

Speaker A

Да, выглядит, да. Но, к сожалению, не всегда разработчики хотят следить за качеством данных. Ну, это я называю только качество данных, а за балансировкой в кавке и вот этим всем. Хотя алерты на это есть.

34:55

Speaker A

Часть команд, да, этим занимается, но всё больше и больше приходим к тому, что все вот эти обслуживающие операции должны для них проходить, ну, типа [фыркает] автоматически. Они ничего этого видеть не должны. И кавка всегда должна быть в неком там идеальном для

35:11

Speaker A

себя состоянии. Какая-то привет. Вы построили не платформу, точнее, нет, не так. Вы построили платформу, в рамках которой, как это, cloud кавка появилась.

35:22

Speaker A

Ну, типа того. Да. Да. Ну твои ожидания, что типа разработчики будут следить за своей кавкой, а ожидание разработчиков, что кавка будет работать хорошо.

35:32

Speaker A

Их можно понять. Они хотят писать код и просто использовать скавку. Слушай, нормальная тема, кстати говоря.

35:38

Speaker A

Вот Mindbox там свой продукт сделал, а сабпродукт - это кавка, как сервис, который тоже можно продавать. Что бы и нет. О'кей, всё, Кавку мы окультурили, продукт с и прочие апдекс, все дела.

35:50

Speaker A

Ребалансировкой разобрались. И мы в той точке реальности, когда Кавка второй версии на виртуалках и их надо мигрировать. Расскажи, пожалуйста, какие были, наверное, самые сложные са сш самые весёлые кейсы по миграции, как в целом была устроена миграция.

36:07

Speaker A

А миграция как была строена? Ну, первоначально мы сделали некий ранбук, а подготовили всю инфраструктуру, там чарты и всевозможное, чтобы можно было там, грубо говоря, там одним параметром указать э откуда переливать данные и как-то сконфигурировали. Ну, чтобы у тебя

36:29

Speaker A

топики назывались так же, как они назывались в старой кавке, чтобы у тебя в сет переезжал, вот это всё.

36:37

Speaker A

Ну, и отдали разработчикам. Ну, естественно, разработчики от этого всего взвыли, и в конечном итоге нам пришлось всё самим мигрировать. А-а, что самое весёлое скрылось? Скрылось то, что, ну, так как мы делали бесшовную миграцию, тебе в один момент времени необходимо

36:53

Speaker A

было писать в одну кавку в старую, а читать из новой. Ну, ты сначала переключаешь консюмеров, потом продюсеров. Вот. А не везде кот умел так делать. Они было много, где ребята просто один conneнеctionстн использовали и писали и читали туда. Ну, пришлось

37:12

Speaker A

оптимизи актуализировать немножко код. Переливка топиков. А, ну вроде было всё хорошо, но как Дима говорил, что каждая команда занималась своей кавкой и куда-то какие- параметры там вписывали.

37:29

Speaker A

Вот это всё. А наше ожидание было, что у кавки дефолтные параметры стоят. и переедут лишь пара, ну, мирмейкер перевезёт себе параметры топиков.

37:40

Speaker A

Но открою, но, к сожалению, жизнь выглядит иначе. Часть кафок была сконфигурирована прямо параметры для топиков были прописаны на брокерах. И, следовательно, когда у тебя переехало всё в новую Кавку, там применились совсем другие параметры. И было так, что у нас

37:58

Speaker A

в один в одной из какзорлось количество консюмер групп. Там, по-моему, для до нескольких сотен тысяч их доходило, но потому что там ретенtion стоял дефолтный у нас, по-моему, сейчас 3 дня стоял. А у у команды, которая эксплуатировала свою кавку старую, у них они там дефолтно

38:19

Speaker A

прописали там то ли час, то ли там полчаса, но у них там динамически всё дико там создаётся, и у нас мониторинг просто в космос улетел из-за этого. Вот. Ну, быстро поправили.

38:31

Speaker A

говорится, заводите новый тир. Да. Дада. А так как была старая кавка, там можно было создавать топики с названием, которое сейчас зарезервировано, как технические некие топики. А как? Ну, пришлось городить Миромекер первый для того, чтобы можно было перевести вот эти

38:52

Speaker A

топики, потому что ради интереса ты не узнавал команды, да, типа, ребят, а вот чем вы руководствовались, когда создавали топик, который вот просто гипотетически даже выглядит как технический по названию?

39:05

Speaker A

Слушай, на тот момент вопрос такой не возникало. Возникало вопрос типа: "А как мы это перевезём?" Потому что, ну, благо нам повезло, и ребятам не нужно было там сохранить офсет и вот это всё. И мы спокойно мирмейкером первым просто перевезли эти

39:24

Speaker A

данные в новый топик, и они их перечитали, и всё было по какая. Угу. Короче, миграция, скажем так, удалась. Ну, понятное дело, там очистили ресурсы, вот это вот всё. У нас сейчас вроде как бы это двадцать шестой год на

39:37

Speaker A

дворе. Напоминаю на всякий случай Крафт и Кавка четвёртой версии. А какие планы? Ну какие планы? Или может вы уже там мы с самого начала переезжали на крафт, а мысли о том, чтобы ехать на зукипер не возникало.

39:57

Speaker A

Первый раз крафт когда у нас появился? Он, по-моему, то ли в 36, то ли в 37. Но мы поехали сразу на 37 кавку. А просто prodдакшн он стал там, по-моему, чуть ли не в 4:0 или в 3:9, как бы. Нет, нет,

40:10

Speaker A

нет. Нет, он стал обязательным. А, да-да. Да. А продакшн R он, по-моему, там не сильно посередине стал. Там тоже был гэп, короче. О'кей.

40:20

Speaker A

Ну, это хорошее решение. То есть, в принципе, там уже всё работало, нормально выбрали. А, продолжаем мой вопрос. Кавка 4:0.

40:29

Speaker A

А мы уже на 4:1. [смех] Ну, это я скорее, знаешь, про мажорки три и четыре там.

40:35

Speaker A

Дадада. Но на самом деле на самом деле переобновление какого-то там чего-то сверх такого мы там не заметили. Единственное, что для нас было открытием, что для того, чтобы тебе обновить кавку, тебе нужно, ну, точнее, тебе надо обновить оператор, потом обновить кавку, потом обновить

40:58

Speaker A

оператор, вот это всё. Вот это такой каскад. А, плюс ко всему, когда ты обновляешь оператор, у тебя все кавки сальта выполняют. Ну, там ролинт.

41:07

Speaker A

Угу. Потому что, ну, каждому оператору прибиты свои версии кавки с скриптами там внутри самих образов. Ну, логично.

41:17

Speaker A

Вот. И, скажем так, обновление нескольких версий для нас. Ну, мы прыгали с версии 3.7 до версии 4.0. Ну, это было болезненно. Ну, учитывая, что у тебя сотни кластеров и тебе надо там без влияния всё это сделать, такое себе.

41:34

Speaker A

Ну, как бы ночь со среды на пятницу тире субботу, как будто бы нормально можно всё это [смех] дело перевести.

41:42

Speaker A

О'кей. А минут минутка вопросов в сторону от Кавки. Ну, Кавка продукт, опять же, я ещё подчёркиваю, да, наверное, скажем так, обкатали продуктовый подход к инфра каким-то штукам. А появилось ли ещё что-то? Ну, например, с похожим паттерном, когда там

41:59

Speaker A

апдекс считаете, упаковываете, даёте тиры сле и так далее. Да, мы делаем разные инфрапродукты, которые делаются в общей концепции.

42:12

Speaker A

Про то, чтобы снять с разработчиков дополнительный контекст, дать с и сделать сам продукт костэффективным и при этом навесить какие-то ограничения, чтобы у тебя с нормально могло работать.

42:32

Speaker A

Ну, в том плане, чтобы мы могли выполнять Сло, которое дали разработке, потому что без ограничений можно сломать любой продукт со стороны разработки и сжечь бюджет. Фьють.

42:44

Speaker A

О'кей. Наверное, знаете, а, предлагаю перейти к самой весёлой части нашего с вами подкаста. Это инциденты за прошедший год.

42:55

Speaker A

Было ли что-то действительно интересное, что-то, может быть, весёлое, о чём хотелось бы рассказать? Сейчас не заспойлерив что-то в докладе на буду.

43:03

Speaker A

Давай я сначала накину старое, пока Кирилл думает о новом. Вот, э, я говорил там про ограничения и один из инцидентов, э, который уже говорил, это про то, что ребята, э, насоздавали топиков, да, и там кавку положили. При этом эта история, она была м растянутой

43:23

Speaker A

во времени. Ну, то есть это не было так, что вот я не знаю, там за одну минутку быстро бахнули и всё развалилось. Нет.

43:32

Speaker A

То есть количество топиков там росло в течение, по-моему, 3х дней, и потом это, ну, там в моменте не быстро чинили. То есть это заняло какие-то десятки минут.

43:45

Speaker A

[откашливается] Вот. И буквально через год после переезда, когда мы впилили ограничение, кейс повторился. Да, опять где-то разработчик случайно забыл что-то в коде убрать, и опять начали создаваться топики. Но в итоге пострадал только его сервис, потому что в моменте, когда он

44:03

Speaker A

упёрся в ограничении, ну, как бы наша автоматика этот сервис отстрелила, сказав: "Ну всё, ты как бы впёрся в Кавку, как бы, ну, больше нельзя создавать, сорян". Вот. Разработчик, естественно, пришёл к нам. Мы ему показали: "Смотри, друг, вот алерты, вот

44:21

Speaker A

всё ранбуки иди и Кавка выжила. Чиняй. Угу. Да, чиняй. Все счастливые. Да, функциональность этого сервиса деградировала, но при этом работоспособность остальной системы осталась живой". Вот так. Не, ну это бы это было очень забавно. Пока Кирилл ещё думает, второй кейс накину, о

44:47

Speaker A

котором мы подумали заранее. Э, надеюсь, там зрителям будет полезно. О том, что разработчики периодически могут делать странные штуки, например, удалять свои инфра сущности. Ну, в нашем случае это Кавку.

45:06

Speaker A

И мы такой кейс заранее предусмотрели. И когда, ну, мы такой кейс, ну, реализовывали, мне ребята, инженеры в целом спрашивали, говорит: "Дим, а зачем нам это делать? Ну, какой разработчик будет сам себе как бы, ну, там удалять, это минусы будут. Хочу, не могу

45:24

Speaker A

стрельнуть в ногу. [смех] Запретите мне это делать." Это это это это же нелогично. Я говорю: "Ребята, давайте сделаем". Ну, как бы не случится, ну, и хорошо. [фыркает] Вот. И тоже там прошёл, мне кажется, год. Э-э, и как бы и у нас защита от этого, ну,

45:40

Speaker A

ставится следующим образом. Ээ кавку разработчик просто может удалить, условно по кнопке, но если он хочет удалить данные, прямо данные, ему надо прямо поставить галочку в чекбоксе: "Хочу удалить данные". Вот. А если он не ставит, диски сохраняются. При этом тут

45:57

Speaker A

важный момент, да, что если вы просто, ну, там дома попробуете в лабе воизвести такой эксперимент, удалите кавку, диски останете, оставите, накатите новую версию, ну, как бы опять поднимете кластер, он к этим дискам не подцепится, там надо чуть-чуть, [смех]

46:14

Speaker A

да, чуть-чуть автоматизировать, но мы это проделали, да, и тогда всё станет хорошо. И как, ну, там такой кейс случился. Разработчик случайно, ну, там у него несколько кафок, он удалил случайно не ту, сразу прибежал, говорит: "Ребята, что делать?" И он был уже

46:31

Speaker A

морально готов потерять все данные и принять кару ээ от его лида. Но как бы мы говорим: "Вот, пожалуйста, у тебя есть кнопка, всё, она всё восстановит".

46:41

Speaker A

И он был очень счастлив, и нам от этого было очень радостно. Ну, видите, как реализовали крутой функционал, как говорится. Знаете, как стопкран в поезде. Иногда разок-то его всё равно дёрнут на протяжении жизни, скажем так, поезда. И вот тут он помог,

46:54

Speaker A

да, но при этом больше таких кейсов я вспомнить не могу. Но ради этого кейса это стоило сделать.

46:59

Speaker A

Ну я же тебе говорю, как стопкран. Ну, Кирилл, вспомнил что-нибудь. Ну, основное это борьба за село.

47:08

Speaker A

А, а там вся вся вся наша это типа как Франсис Кавка. Это моя борьба. Вот. Да, весь год это была борьба за с, за все те приколы, которые могут возникать как в облаке, так и в той же самой библиотеки.

47:26

Speaker A

Угу. Что мы с этим делали, [откашливается] какие мы принимали, ну, точнее, были моменты, которые нам надо было управлять тем же самым роллатом Кавки, как мы это обходили, потому что, ну, стримзе, по сути, тебе не позволяет управлять ролаутом. Угу.

47:42

Speaker A

Вот. А мы не могли себе позволить, а, ну, скажем так, взять и бахнуть подряд все брокера.

47:49

Speaker A

Погоди, ты говоришь стримзи не позволяет управлять ролатом, и пришлось это обходить. Правильно ли я тебя понял сейчас? Да, точнее, ну, скажем так, э, не то, что обходить, по сути, нам надо было раздвинуть это окно [смех] типа, чтобы в тебя это входило

48:06

Speaker A

постепенно, да? Там ты, как и лягушку, надо варить это на медленном огне. Здесь нам необходима была такая ситуация. Это выглядит как кейс, как раз хочу себе выстрелить в ногу, не могу и решаю задачу. Как именно там всё, там всё чётко.

48:21

Speaker A

Понял. О'кей. Наверное, у меня уже заканчиваются душные вопросы и странные про кавку. Коллеги, кто нас смотрит в онлайне, на всякий случай расскажу. А Mindbox как компания, она достаточно активная и выступает постоянно на конференциях и делает, собственно, свои.

48:35

Speaker A

И один из поинтов, о которых мы хотели бы там поговорить, это то, как происходит подготовка докладов и подготовка спикеров к конференциям. Вот Кирилл как раз у нас проходит такой вот этап подготовки, да, мы же в октябре-то, собственно, уже встречаемся, выступаем.

48:50

Speaker A

Кирилл, расскажи, как готовишься, как пишешь доклад прогоны и, кстати говоря, немножечко можно поспойлерить, о чём будет твой доклад.

48:59

Speaker A

Ну как, готовлюсь, я, наверное, разбираю. У нас есть прекрасная система, называется [откашливается] дефекты. Если что-то происходит у тебя с твоим продуктом, у тебя автоматически генерится дефект. В свою очередь, э, по дефектам мы можем посмотреть рудкозы, которые возникали, и то, что мы делали с

49:18

Speaker A

этим. Ну, и плюс в репозитории в том же самом у нас чейнги все ведутся. Вот. Ну и вспоминаю то, что происходило, а, смотрю на дефекты. разбираю, а а во что мы вляпались, как мы это обходили, а какая мотивация была всего этого дела.

49:38

Speaker A

Вот. И собирай все такие интересные кейсы, которые вроде бы кажутся простые, а на самом деле не простые и могут приводить к каким-то там непонятным ситуациям.

49:49

Speaker A

Плюс какие-то вещи в стримзе, они там могут быть не описаны. И, ну, ты, скажем так, не то, что ты не ожидаешь этого.

49:58

Speaker A

Угу. А здесь оно вот так, а здесь вот так. И недокументированная возможность, короче. Ну, не то, что недокументированная, наверное, документация-то там хорошая, просто она объёмная, и ты, ну, вроде бы сделал и логично, что будет работать, а потом ты такой: "Опа". А работает

50:14

Speaker A

немножко не так, как надо. Ну или не так. Ну и плюс ко всему, точнее, не то, что не так, как надо, а скорее ограничения облака накладываются на то, как работает кавка, накладывается на то, как работает стримзи, на то, какие могут

50:29

Speaker A

совершать ошибки те же самые разработчики либо не разработчики, либо неважно кто. А вот как-то всё это надо скомпилировать и собрать [откашливается] кучуть, да, собрать кучу и выдать базу.

50:47

Speaker A

Согласен. Не, ну, кстати, ты сейчас рассказал очень интересный момент о том, что формируются дефекты и так далее, и там куча различной автоматики. На самом деле это выглядит суперкруто, да, потому что чтобы не надо не чтобы не искать потом пост мартема, который тебе надо

51:00

Speaker A

заполнять. Ха-ха. Вот. Слушай, а больше более прикладная какая-то вот история про подготовку, да, а там, не знаю, о'кей, базовая презентация, потом базовые прогоны, там, прочее, может, какое-нибудь общение с тренером по выступлениям. Ну, то есть более такие вот прикладные истории.

51:19

Speaker A

Не, ну, естественно, как удержать аудиторию, как формировать, точнее, как правильно писать те же самые доклады и вот это всё. А, добрый вечер, YouTube. Также The Devops приглашал тренера. Тоже можно, я тоже планирую погрузиться ещё раз посмотреть для того,

51:44

Speaker A

чтобы что-то скорректировать. Плюс ко всему, а в майнбоксе у нас есть как дизайнер, так и, боже, кто [откашливается] деврил редактор.

51:54

Speaker A

Редактор, точно отсмотрит и даст комментарии, как правильно говорить, а не на инженерном. Ну вот это, кстати, вот у меня сейчас проблема есть такая, короче, мне надо сделать выступление на 20 минут из как это выступление только про инженерку, но

52:15

Speaker A

в зале не будет ни одного инженера. И надо рассказать, короче, на пальцах, чтобы всё поняли. Буду думать, рассказывать, что такое бебернетис.

52:24

Speaker A

Как-то примерно так. Знаешь, мне, кстати вот извини, Дим, что перебил. Вот я всегда, знаешь, вот для таких вещей я всегда представляю некую бабу Клау бухгалтера, и примеряю на неё её шкуру на себя, типа, а как бабе Клаве для бабы Клавы

52:42

Speaker A

будет звучать вот это вот, ну, типа Кубернетис и вот это всё. Это из истории, когда ты пытаешься там знакомо рассказать, чем ты занимаешься.

52:51

Speaker A

Ну, знаешь, как баба Клава тебе про Кавку Грефневую сама расскажет, [смех] как говорится. О'кей. Короче, подготовка идёт полным ходом. Кстати говоря, забавный факт. Я вроде давно выступаю, как бы, ну, поднабил немножко руку, и как-то я случайно меня загнали на одной

53:07

Speaker A

из конференций пообщаться с тренером-спикеров. [фыркает] Вообще оказалось максимально полезная история. Я задавал вопрос, оказывается, а что так можно было? Он говорит: "А ты что, не делал так ни разу?" Я говорю: "Нет, первый раз слышу". Ну, там какие-то определённые

53:19

Speaker A

теки мне там рассказали, подсказали и так далее. И это, короче, интересно и полезно. Все, кто готовится или будет выступать, если есть такая возможность, настоятельно рекомендую.

53:29

Speaker A

О'кей. У меня, наверное, будет последний вопрос. Ну и мы, наверное, всё обсудили уже, собственно, что могли. А говорили про, а, всякую автоматику, инциденты, там, прочее, постмортемы. Двадцать шестой год и в каждый двор, каждый дом, хоть в утюг и так далее. Как у вас дела

53:47

Speaker A

с Иивки, инцидентами? Вот это вот всё, как и у всех. Как дела, Кирал? Всё прекрасно. [смех] Ну, смотри, применяем. Ну, яишечка применяется, ну, практически везде. Мне кажется, она сейчас везде применяется. Вот. Ну, разбор тех же самых Ну, у нас есть MCPхи, у нас

54:10

Speaker A

понятный ландшафт. Мы у нас есть ботик, который мы можем вызвать в том же самом алерте. А мы можем натравить ботика там на документацию. MCP есть. Натравить на кодовую базу, натравить на логи, где у нас находятся метрики. В свою очередь он

54:29

Speaker A

какие-то родкозы что-то может нам выдать. И зачастую выдаёт прямо нормальные осмысленные вещи. Угу. Вот.

54:37

Speaker A

Ну как будто это выглядит так, что на докладе надо про это вспомнить. Ну да. И я давай, да, давай я чуть-чуть подраскрою. Э бот очень крутой. Потому что бот хорошо понимает код он сорса. Вот Кирилл там приводил разные примеры, да,

54:57

Speaker A

например, там про системные топики. Мы сами копали ну там репозитории, сами разбирали код. Это заняло как бы долгосрочное время.

55:09

Speaker A

Сейчас, когда ты сталкиваешься с какой-то непонятной вещью, очень полезно, э, взять репу стримзи вашей версии, э, сказать боту посмотри. Ну, желательно заложить это, конечно, в автоматику, да. И он, когда не находит какой-то паттерн, он, ну, собрал диагно диагноз инфу, там метрики, логи, пошёл в

55:35

Speaker A

репу, прочитал код, как это реализается, и, ну, реализуется, и смачал это, и потом тебе принёс и такой: "Ага, а вот оно как". И это очень сильно помогает.

55:48

Speaker A

Ну да, в принципе, сложно тут спорить, потому что, ну, привет, я не джавист, отправь меня разбирать исходный код стрим. Ну, я там могу погрязнуть надолго. Мы мермемкер разбирали нормально, как бы.

56:01

Speaker A

Как это? И всё ещё живы. О'кей. Не, ну я думаю про вот эту историю с ботом, да, наверное, стоит немножечко рассказать в докладе.

56:08

Speaker A

Коллегам точно будет интересно. Итак, господа, а как будто мы, наверное, с вами всё обсудили. Мы даже с вами сегодня супер в тайминге. А Сергей, наверное, где-то уже рядом с нами. За сим я, наверное, предлагаю заканчивать наши приятнейшие подкасты, приятнейшие

56:25

Speaker A

пятничной посиделки. Коллеги, спасибо, что откликнулись и пришли и были сегодня с нами. Пока-пока. Кстати, кстати говоря, последняя новость от меня. Мне тут пишут, пишет моя дорогая редакция. А у нас будет новая активность в этом сезоне на конференции.

56:41

Speaker A

У нас будут тестовые сабесы для девопсов, которые будет вести Даша. А всех, кто будет непосредственно на конфе, обязательно приходите. И ещё вы можете записаться на участие в тестовых сабесах. Приходите, будет тоже весело.

56:56

Speaker A

И, кстати говоря, мне опять редакция напоминает, мы продолжаем нашу активность. Многие, наверное, помнят или участвовали. У нас был fail Meetup. Это будет фул открытый микрофон. Вы можете сами записаться и стать спикером.

57:10

Speaker A

Никакой записи. исключительно внутрянка общение, где вы можете рассказать про любой свой самый грустный или самый весёлый а фейл, да, к чему это привело, какие выводы сделали. Напомню, что это была очень крутая активность прошлого сезона. Мы её продолжаем.

57:27

Speaker A

Подтверждаю, это будет не под камеру, поэтому Да, это не Это всегда не под камеру, это исключительно обмен опытом и так далее.

57:36

Speaker A

Вот теперь точно всё, [смех] коллеги. Спасибо, что были со мной. Пока. Пока-пока. Пока [фыркает]

Topics: Kafka Kubernetes Streamzi оператор Kafka автоматизация хаос-тесты миграция Kafka конфигурационный дрейф MindBx SLA


---
This is the markdown twin of https://sozai.app/transcript/kafka-k8s-chaos-control/ — the same content, without the markup.
Published by SozAI (https://sozai.app). Reuse and quotation are allowed with attribution and a link back.
Machine-readable index: https://sozai.app/llms.txt · data API: https://sozai.app/api/
