Ну что, коллеги, спасибо за эфир и за эти месяцы нашей совместной работы.
Мне было очень приятно быть у руля канала Слёрма про Kubernetes, мне нравится аудитория, которая здесь собралась. Ребята, вы очень крутые!🔥
Уверен, что с Виталием канал будет ещё лучше, и что я принял правильное решение, потому что мой текущий стек работы не позволяет рассказывать вам какие-то интересные штуки по кубам.
Не прощаемся! Увидимся с вами на вебинарах и эфирах, которые я буду вести (спойлер: ближайший уже в январе).
Передаю канал в руки Виталия Лихачёва и кота Маркуса.
До встречи!
Мне было очень приятно быть у руля канала Слёрма про Kubernetes, мне нравится аудитория, которая здесь собралась. Ребята, вы очень крутые!🔥
Уверен, что с Виталием канал будет ещё лучше, и что я принял правильное решение, потому что мой текущий стек работы не позволяет рассказывать вам какие-то интересные штуки по кубам.
Не прощаемся! Увидимся с вами на вебинарах и эфирах, которые я буду вести (спойлер: ближайший уже в январе).
Передаю канал в руки Виталия Лихачёва и кота Маркуса.
До встречи!
🔥13❤6❤🔥1👍1
Привет! Прежде чем начнем говорить о кубах, предлагаю познакомиться поближе. Меня зовут Виталий Лихачев, и я SRE в большом голландском тревелтехе.
➡️ Мой путь в айти начался до того, как это стало модно. Концепция DevOps только зарождалась, а сеньоры ещё не получали 300к в наносекунду. Я начал с дисков с Ubuntu, которые можно было бесплатно заказать обычной почтой (признавайтесь, кто помнит?)
Интернет был медленным и дорогим, о безлимитах ещё не слышали. Играть в GTA и CS мне надоело, а разобраться, как работает компьютер, хотелось. Чуть позже была куплена книга «Запускаем linux, 4-е издание», и пошло-поехало.
Интернет был медленным и дорогим, о безлимитах ещё не слышали. Играть в GTA и CS мне надоело, а разобраться, как работает компьютер, хотелось. Чуть позже была куплена книга «Запускаем linux, 4-е издание», и пошло-поехало.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥3⚡2☃1🐳1🎄1
Еще 10 лет назад я активно продвигал внедрение чего-то нового. Не кривя душой, могу сказать, что в первую очередь для наработки опыта, а уже потом для решения конкретных технических задач, стоящих в конторе (когда вместо «зарплата» сказал «получка» 👨🏼🦳)
Я инициировал переход с устаревшей АТС от Samsung, на FreeSWITCH, а позже — на Asterisk из-за его более широкой модульной экосистемы. Параллельно заменили почтовый сервер, внедрили Zabbix для мониторинга, и это стало первым опытом системной модернизации инфраструктуры.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4❤3
Параллельно изучал фронтенд. Работал с React и Vue.js, создавал сложные SPA с динамичными интерфейсами. Одним из самых интересных проектов было приложение с картой на основе Leaflet, интеграцией нескольких провайдеров карт (Google Maps, OpenStreetMap и другие). Здесь я разобрался в производительности фронтенда, оптимизации рендеринга сотен тысяч элементов на карте и нюансах работы с WebSocket.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥2
Например, для реализации одной функции потребовалось несколько месяцев не из-за сложности кода, а из-за необходимости понять распределение ответственности между десятками разных сервисов и 5-10 командами. Так что теперь я могу аргументированно пояснять пацанам за микросервисы vs монолит 😎
Накопленный опыт в разработке крупных систем на Go, а также переход с PHP и Python, вдохновили меня создать собственный курс, где я не только объясняю множество нюансов работы с go, но и рассказываю про разработку больших систем, включая тестирование и оптимизацию, но канал конечно не об этом.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3❤2👍2
А ещё у меня есть кот. Его зовут Маркус — те, кто были на наших вебах, с ним уже знакомы. Он будет регулярно появляться в канале и пояснять за кубы (поверьте, у него огромный опыт).
Мне интересно узнать больше о моей аудитории. Поделитесь в комментариях своим бэкграундом, и чем вы занимаетесь сейчас? Фото питомцев приветствуются)))
Please open Telegram to view this post
VIEW IN TELEGRAM
❤14❤🔥8🔥3😱2
k8s: когда одних метрик недостаточно
K8s, куб, кубер, кубик — не просто инструмент оркестрации (как бы вычурно это ни звучало), а полноценная экосистема (спасибо, кэп, а то мы не догадывались 😒)
Если серьезно, то знать кубы для современного инженера так же важно, как раньше было важно понимать системы виртуализации для сисадмина/инженера виртуализации, устройство БД для DBA, настройку сети для сетевого инженера и так далее. Абстракций становится все больше, и мы все дальше от железа.
20 лет назад IT-системы были проще на порядок, а количество пользователей таких систем могло исчисляться тысячами, а не сотнями миллионов. Тогда ментальную модель работы IT-системы, будь то веб-сайт, или десктопное приложение, или интеграция нескольких разрозненных систем, было гораздо проще построить в уме, и на основе этого знания ее поддерживать и развивать.
➡️ Сейчас длительность полноценного честного онбординга в большую инфраструктуру может занимать от полугода, когда ты начинаешь более-менее понимать как все устроено. И все равно за разные части системы будут отвечать разные команды, и ты будешь ходить к ним с запросами, требуемыми для решения твоих задач. Такова реальность в бигтехе.
K8s, куб, кубер, кубик — не просто инструмент оркестрации (как бы вычурно это ни звучало), а полноценная экосистема (спасибо, кэп, а то мы не догадывались 😒)
Если серьезно, то знать кубы для современного инженера так же важно, как раньше было важно понимать системы виртуализации для сисадмина/инженера виртуализации, устройство БД для DBA, настройку сети для сетевого инженера и так далее. Абстракций становится все больше, и мы все дальше от железа.
20 лет назад IT-системы были проще на порядок, а количество пользователей таких систем могло исчисляться тысячами, а не сотнями миллионов. Тогда ментальную модель работы IT-системы, будь то веб-сайт, или десктопное приложение, или интеграция нескольких разрозненных систем, было гораздо проще построить в уме, и на основе этого знания ее поддерживать и развивать.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤2🔥1
Возвращаясь к кубам: я сам постоянно изучаю, что там есть в самом кубе и вокруг него. Ландшафт инструментов меняется чуть ли не каждый год, неудачные решения, которые были приняты при разработке k8s, заменяются на более удачные (привет, structured auth configuration или создание CSI для выселения плагинов работы с дисками из основной кодовой базы).
👉 В конце концов, k8s — такой же программный продукт, как и ядро linux, как и PostgreSQL, как и Apache Kafka, etc.
Относительно глубокое погружение в Golang позволяет с некоторой степенью уверенности залезать в код k8s, чтобы разбираться как что работает изнутри, а в дальнейших постах мы посмотрим под капот абстракций, которые обычно используются AS IS. Это нормально и абсолютно валидно до тех пор, пока все работает как ожидается. Ну, а когда ломается, тогда остается только молиться, если ни у кого нет понимания, что происходит внутри.
К сожалению там тоже бывают проблемы, и из-за непонимания того, что происходит внутри, не всегда принимаются взвешенные решения. Да и баги в k8s и сторонних инструментах, написанных под него, никто не отменял. Идеальный код — ненаписанный код.
Относительно глубокое погружение в Golang позволяет с некоторой степенью уверенности залезать в код k8s, чтобы разбираться как что работает изнутри, а в дальнейших постах мы посмотрим под капот абстракций, которые обычно используются AS IS. Это нормально и абсолютно валидно до тех пор, пока все работает как ожидается. Ну, а когда ломается, тогда остается только молиться, если ни у кого нет понимания, что происходит внутри.
К сожалению там тоже бывают проблемы, и из-за непонимания того, что происходит внутри, не всегда принимаются взвешенные решения. Да и баги в k8s и сторонних инструментах, написанных под него, никто не отменял. Идеальный код — ненаписанный код.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤1
Приведу пример, когда понимание работы системы важно (хотя бы на уровне стрелочек и квадратиков), а так же понимание работы k8s крайне желательно. Пример вымышленный и не имеет отношения ни к одной реальной инфраструктуре, все совпадения случайны и являются вымыслом автора.
👉 Как-то один большой проект со многими тысячами RPS прилег отдохнуть, и никто не понимал, почему: по метрикам не было явных аномалий. Долго добры молодцы искали причину (десятки минут в больших инцидентах кажутся часами), но смогли найти лишь после прикладывания подорожника.
Вкратце суть: есть N-ое кол-во подов, отвечающих за терминирование websocket соединений. Самих соединений у каждого уважающего себя проекта может быть одновременно X миллионов. Это нормально, когда ты строишь продукт, где требуется что-то похожее на реалтайм взаимодействие (да, настоящий реалтайм вообще не про это, а про гарантированное время отклика, поэтому ни k8s, ни linux к настойщему realtime отношения не имеют).
И поды сервиса, терминирующего вебсокеты, ходят в другой сервис в момент подключения клиента к вебсокету для валидации запроса (а точно ли Иван предоставил валидную авторизационную куку). Больше взаимодействие этих сервисов не пересекается и они абсолютно валидно разделены по разным бизнес доменам и разным командам.
Вкратце суть: есть N-ое кол-во подов, отвечающих за терминирование websocket соединений. Самих соединений у каждого уважающего себя проекта может быть одновременно X миллионов. Это нормально, когда ты строишь продукт, где требуется что-то похожее на реалтайм взаимодействие (да, настоящий реалтайм вообще не про это, а про гарантированное время отклика, поэтому ни k8s, ни linux к настойщему realtime отношения не имеют).
И поды сервиса, терминирующего вебсокеты, ходят в другой сервис в момент подключения клиента к вебсокету для валидации запроса (а точно ли Иван предоставил валидную авторизационную куку). Больше взаимодействие этих сервисов не пересекается и они абсолютно валидно разделены по разным бизнес доменам и разным командам.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2🔥1
Конечно же клиенты начали переподключаться. Естественно с учетом лучших практик, с exponential backoff в случае ошибки подключения, но это не спасло. Сервис проверки корректности кук Ивана (назовем его СПККИ) не выдержал такого резкого всплеса трафика (приблизительно в 3000 раз от обычной нагрузки) и лег кверху лапками. Эту проблему в итоге поправили, но осадочек остался. Систему подняли, внеся некие хотфиксы, чтобы поток запросов снизился.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤1
А почему не понимали источника проблемы? Потому что в метриках и дашбордах СПККИ не было такого большого всплеска трафика! Я вас обманул 😅
На самом деле в СПККИ все было довольно штатно и не было увеличения нагрузки в 3000 раз. Был всплеск, но не приведший к такой серьезной деградации. Поэтому пришлось походить по дашбордам разных сервисов и разных команд для понимания проблемы.
А почему не было такого всплеска? Трафик просто не долетал. Ответ - cpu throttling.
Сервис с вебсокетами просто так сильно начал троттлиться по CPU, что бОльшая часть запросов проверки кук просто таймаутилась, не успев даже отправить запрос.
Вот такая история, малята. Конечно же проблему разными трюками с рейт лимитерами на уровне внешних балансировщиков залечили, ну и добавили в дашборды СПККИ метрики вебсокетов, чтобы очи увидели аномалии, если те возникнут.
Если у вас есть такие же захватывающие истории, оставляйте в комментариях! Маркус их очень ждёт :)
На самом деле в СПККИ все было довольно штатно и не было увеличения нагрузки в 3000 раз. Был всплеск, но не приведший к такой серьезной деградации. Поэтому пришлось походить по дашбордам разных сервисов и разных команд для понимания проблемы.
А почему не было такого всплеска? Трафик просто не долетал. Ответ - cpu throttling.
Сервис с вебсокетами просто так сильно начал троттлиться по CPU, что бОльшая часть запросов проверки кук просто таймаутилась, не успев даже отправить запрос.
Вот такая история, малята. Конечно же проблему разными трюками с рейт лимитерами на уровне внешних балансировщиков залечили, ну и добавили в дашборды СПККИ метрики вебсокетов, чтобы очи увидели аномалии, если те возникнут.
Если у вас есть такие же захватывающие истории, оставляйте в комментариях! Маркус их очень ждёт :)
🔥9❤7👍2
30 декабря — день, когда можно и нужно подводить итоги года.
Команда Слёрма не стала нарушать традиции и подготовила карточки, которыми я хочу поделиться с вами👆
Расскажите в комментариях, как прошёл ваш год? У меня он был очень насыщенный, сделаю отдельный пост об этом))
Команда Слёрма не стала нарушать традиции и подготовила карточки, которыми я хочу поделиться с вами
Расскажите в комментариях, как прошёл ваш год? У меня он был очень насыщенный, сделаю отдельный пост об этом))
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🎄4❤2👍1🔥1
Media is too big
VIEW IN TELEGRAM
Мы с командой Слёрма поздравляем вас с наступающим Новым годом! 🎄 🥂
Пусть он будет полон новых свершений и карьерных взлётов.
До встречи в 2025!
Пусть он будет полон новых свершений и карьерных взлётов.
⚡️ В январе ждите от меня полезный материал про лимиты и реквесты.
Разберем, как работают requests/limits изнутри и как не перегрузить ноды так сильно, что kubelet начнет выселять поды для сохранения ресурсов.
До встречи в 2025!
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉10❤3👍2
Как работают requests/limits изнутри
#полезный_материал
Пока кто-то доедает салаты, а кто-то вовсю дежурит, мы с вами немного взбодримся и посмотрим, как работают лимиты и реквесты.
Подготовил для вас материал, в котором разобрал, как не перегрузить ноды так сильно, что kubelet начнет выселять поды для сохранения ресурсов.
Вы узнаете, что такое node-pressure eviction, и как он может повлиять на стабильность работы вашего проекта под нагрузкой.
👉 Посмотреть можно ТУТ.
А после прочтения предлагаю ответить на вопрос:
Ответы пишите в комментариях👇
#полезный_материал
Пока кто-то доедает салаты, а кто-то вовсю дежурит, мы с вами немного взбодримся и посмотрим, как работают лимиты и реквесты.
Подготовил для вас материал, в котором разобрал, как не перегрузить ноды так сильно, что kubelet начнет выселять поды для сохранения ресурсов.
Вы узнаете, что такое node-pressure eviction, и как он может повлиять на стабильность работы вашего проекта под нагрузкой.
А после прочтения предлагаю ответить на вопрос:
Можно ли задать значение limits больше, чем самая большая нода в кластере, и запустится ли такой под?
Ответы пишите в комментариях
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥4⚡2❤1
Сегодня, как и обещал, расскажу, как у меня 2024 прошел.
Честно говоря, за один год как будто пять лет прошло: очень много изменений, и в основном позитивных. За этот год я успел пожить в 2-х странах: Армения и Нидерланды. А посетить и того больше: Грузия, Болгария.
На самом деле все началось довольно давно, еще до глобальных потрясений, о которых все вы и без меня знаете.
Поработать в международном бигтехе над проектами, которыми пользуются сотни миллионов человек ежегодно, было недостижимой мечтой. Кажущийся недостаток технического опыта останавливал, и в первую очередь шла работа над тем, чтобы вырасти в профессиональном плане на проектах в РФ.
Благодаря работе в Epam, а затем и в Авито, был получен достаточный технический уровень, чтобы эпплаиться в международные компании, но тут небольшой, крошечный нюанс.
Честно говоря, за один год как будто пять лет прошло: очень много изменений, и в основном позитивных. За этот год я успел пожить в 2-х странах: Армения и Нидерланды. А посетить и того больше: Грузия, Болгария.
На самом деле все началось довольно давно, еще до глобальных потрясений, о которых все вы и без меня знаете.
Поработать в международном бигтехе над проектами, которыми пользуются сотни миллионов человек ежегодно, было недостижимой мечтой. Кажущийся недостаток технического опыта останавливал, и в первую очередь шла работа над тем, чтобы вырасти в профессиональном плане на проектах в РФ.
Благодаря работе в Epam, а затем и в Авито, был получен достаточный технический уровень, чтобы эпплаиться в международные компании, но тут небольшой, крошечный нюанс.
❤3👍2
Очень многие не шли на диалог, потому что не были готовы предоставлять визу, не были готовы перевозить, а нанимали исключительно в случае, если у вас уже есть разрешение на работу в нужной стране. К тому же есть много нюансов с использованием в процессе рекрутинга автоматических инструментов фильтрации, которые твое резюме отправят в никуда на основе настроенных фильтров, будь ты хоть трижды сеньор.
Усугубляло процесс личное ограничение на желание работать и жить именно в Нидерландах по совокупности разных причин, которые были заранее изучены и согласованы с семьей. Не самая хайповая страна для релокации в 2024, прямо скажем. Сербия, Испания, Португалия, Кипр и так далее кажутся больше на слуху, по крайней мере в моем информационном пузыре. Да и проще в получении разрешения на работу.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍2