Pull to refresh

Technotext

Планируем GPU-нагрузку в Kubernetes: от стандартных механизмов до кастомных решений

Level of difficultyMedium
Reading time27 min
Reach and readers6.7K

Привет, Хабр! Меня зовут Макарий, и как Senior SRE в Yandex Cloud я не только участвовал в разработке Managed Service for Kubernetes, но и всегда любил в свободное время посмотреть, что интересного понавыпускали для «кубика». Kubernetes, как де‑факто стандарт оркестрации контейнеров, предлагает базовые механизмы для управления вычислительными ресурсами. Однако стандартный планировщик Kubernetes (kube‑scheduler) разрабатывался с учётом общих принципов балансировки нагрузки и не специализирован для уникальных особенностей рабочих GPU‑нагрузок.

Предлагаю рассмотреть весь спектр возможностей — от встроенных механизмов шедулинга K8s до специализированных планировщиков, таких как Volcano, Apache YuniKorn и KAI‑Scheduler. Проанализирую конкретные сценарии, в которых каждый из этих инструментов демонстрирует свои преимущества, и предложу рекомендации по выбору оптимального решения для ваших рабочих GPU‑нагрузок.

Читать далее

Знакомство со Stencil или уроки шаблонного общения

Level of difficultyMedium
Reading time9 min
Reach and readers7.1K

Что любят все разработчики? Конечно, автоматизировать рутинные повторяющиеся действия! Я расскажу, как в этом может помочь язык Stencil, широко известный в узких кругах iOS-разработчиков.

Читать далее

if err != nil: почему мы (не) любим обработку ошибок в Go? Обзор предложений по её улучшению

Level of difficultyEasy
Reading time27 min
Reach and readers52K

Привет, Хабр! Меня зовут Павел Агалецкий, я ведущий инженер в платформе Авито. Эта статья на одну из самых холиварных тем, о которой вы могли слышать или читать множество раз. При обсуждении Go, особенно новичками или представителями других языков программирования, камнем преткновения обычно становится проверка ошибок — if err != nil.

Рассказываю, какие есть особенности и нюансы, сравниваю обработку ошибок в Go и других языках. Говорим о подходах к изменению обработки ошибок и обсуждаем последний proposal от Яна Тейлора. А еще разбираемся, почему все предложения отклонялись.

Читать далее

Руководство по восстановлению удаленных сообщений и медиаданных в Telegram

Level of difficultyEasy
Reading time7 min
Reach and readers90K

Удаление сообщений и файлов в Telegram часто воспринимается как необратимый процесс, но способ вернуть потерянные данные все же есть.

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

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

Восстановить!

Почему Go такой странный, и ещё 8 холиварных тем про Golang

Level of difficultyEasy
Reading time16 min
Reach and readers43K

Привет, Хабр! Это Вадим из команды AvitoTech. Весной мы собрали в московском офисе более сотни разработчиков, чтобы обсудить самые актуальные для Go-комьюнити темы: начиная со сложностей при переходе на язык Go и заканчивая извечным вопросом о пользе хард- и софт-скиллов. Выбрали девять самых «горячих» тем, поговорили с модераторами соответствующих дискуссий дринкапа, выделили главное и принесли вам в этой статье. Призываем ваши мнения в комментарии!

Читать далее

Как мы построили речевую аналитику для кол-центров и начали анализировать тысячи звонков

Level of difficultyMedium
Reading time9 min
Reach and readers15K

Привет! Я Артём Юрченко — DS-инженер в команде Недвижимости Авито. Наши кол-центры совершают до 30 000 звонков в день, и вручную можно проверить лишь небольшую часть из них. Расскажу, как мы начали строить систему речевой аналитики и разработали первую модель, которая автоматически находит в звонках возражения клиентов и анализирует, как операторы их отрабатывают. 

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

Читать далее

Зависимости, которых не существует: как фильтрация искажает данные и что такое коллайдеры

Level of difficultyEasy
Reading time7 min
Reach and readers5.3K

График, который вы видите очевидно показывает отрицательную зависимость между a и b, однако этой зависимости не существует. Да, зависимости между a и b нет, а видите вы коллайдер - одну из самых коварных ошибок статистики. Коварную потому, что прячется за здравый смысл. Мы делаем вполне разумные действия, а получаем связи между независимыми данными.

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

Читать далее

Policy as Code в Apache Kafka: опыт внедрения Open Policy Agent

Level of difficultyMedium
Reading time24 min
Reach and readers3.8K

Статья рассматривает внедрение Open Policy Agent (OPA) для управления авторизацией в кластерах Apache Kafka на bare metal‑серверах.

В рамках статьи проанализированы ограничения стандартных ACL и предложено решение на основе Open Policy Agent (OPA), обеспечивающее декларативное управление доступом через Policy as Code (PaaC). Особое внимание уделено обновлению OPA Kafka Plugin: создан pull request, в котором устранены уязвимости привносимые в OPA библиотекой Guava и реализован переход на более производительную библиотеку Caffeine. Описан процесс интеграции OPA с Kafka, включая автоматизацию доставки политик через Bundle API и S3-хранилище.

Читать далее

Великий крестовый поход в мире контента: стратегия human-first против AI-first

Reading time11 min
Reach and readers8.3K

Привет, Хабр! Меня зовут Андрей Аврамчук, я редактор блога МТС. За последние два года с интересом наблюдаю, как старые правила, принципы создания материалов либо очень сильно меняются, либо перестают работать. И за все это спасибо GenAI.

Досталось всем, но текстовый контент оказался самым уязвимым. С одной стороны, звучат призывы к внедрению GenAI в рабочие процессы, перестройку пайплайнов и срочное изучение LLM, RAG и вот этого всего. Мол, раз мир меняется, то и нам надо перестраиваться вместе с ним, иначе останемся в хвосте. С другой — возмущения падением качества контента и призывами остановиться. Только люди, только хардкор.

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

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

Читать далее

Интеграция бытового тепловизора с FPV-квадрокоптером

Level of difficultyMedium
Reading time15 min
Reach and readers17K

Привет, сегодня будет ещё одна статья о любительском дроностроении.

Дисклеймер: автором решения являюсь не я, а британский блоггер @catch22mania, решивший использовать вместо обычных (дорогих и имеющих суженный угол обзора) тепловизионных камер для FPV связку Raspberry Pi Zero 2W с тепловизором Infiray P2 Pro. Замысел показался мне интересным и я реализовал его вслед за автором, тем более, что по стечению обстоятельств у меня было всё необходимое.

Читать далее

Мобильная связь под Невой: как я прошел 500 километров по тоннелям петербургского метро, чтобы там появилась связь

Reading time8 min
Reach and readers17K

 В 2012 году перед МТС встала нетривиальная задача: обеспечить питерскую подземку мобильной связью. В дальнейшем этот проект стал одним из самых масштабных в моей карьере. Было важно выбрать оборудование, которое прослужит лет 20–30, смонтировать его, запустить, а также подстроиться по времени выполнения работ в тот небольшой интервал, когда метро закрыто.

Меня зовут Сергей Бородин, я эксперт в отделе развития сети МТС в Санкт-Петербурге. Занимаюсь планированием, реализацией и технической поддержкой систем, обеспечивающих работу мобильной связи внутри зданий и сооружений. Это торговые комплексы, бизнес-центры, аэропорты, стадионы. Итак, под катом — немного фото и мой рассказ, зачем нужна связь в тоннелях и как я накрутил по синей и оранжевой веткам метро 500 километров пешком.

Читать далее

C#: использование Unit test с Apache Ignite

Level of difficultyMedium
Reading time7 min
Reach and readers1.7K

Привет всем! Меня зовут Артём, я работаю в t2 разработчиком .Net и по собственному опыту знаю, что одним из ключевых показателей качества кода является покрытие кода тестами. В этой статье поговорим конкретно о Unit-тестах и разберёмся, как покрыть юнит тестами код, имеющий зависимости от внешнего ресурса со статическими методами.

Интересно? Пойдём под кат!

VictoriaMetrics, разделяй и агрегируй! Оптимизация хранения метрик

Level of difficultyMedium
Reading time10 min
Reach and readers21K

Так ли нужно хранить 3 ТБ метрик за 180 дней? Устали от компромисса между детализацией мониторинга и размером storage?
В статье разберём, как разделить метрики на два независимых потока без Multi Retention из Enterprise-версии. Solution inside: простое, но эффективное решение с сохранением детализации для оперативного мониторинга и разумным использованием дискового пространства. Идём организовывать хранение сырых метрик на 30 дней и агрегированных — на 180!

Интересно? Переходите под кат!

Зумеры на работе: почему мы уходим на обед и не возвращаемся. Якобы просто так

Reading time8 min
Reach and readers53K

Всем привет! Меня зовут Соня, я продакт-оунер в молодежном продукте МТС: формирую стратегию, занимаюсь дискавери и оптимизирую CJM. Параллельно учусь в Вышке. Мне нравится работа: нет рутины и конфликтов, руководитель эмпатичный, а задачи дают возможность расти.

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

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

«Есть большое количество новоиспеченных разработчиков/аналитиков/тестировщиков/продактов (дополните список) с весьма скромным опытом (и нередко сомнительным качеством работы), которые готовы работать только 2–3 часа в день, принимать ванну из смузи, играть в плойку, на которых категорически нельзя повышать голос, которые требуют себе огромную зарплату, которые, чтобы прийти на офлайн-интервью, просят прислать за ними вертолет».

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

Читать далее

«Никогда такого не было, и вот опять»: разбираем атаку c эксплуатацией уязвимости в подключаемом модуле Bitrix

Level of difficultyEasy
Reading time7 min
Reach and readers12K

Привет, Хабр! Меня зовут Никита Полосухин, я старший системный аналитик центра мониторинга и реагирования на кибератаки RED Security SOC. В этом материале я хочу снова поднять тему важности своевременных обновлений и актуализации версий CMS и их компонентов. В мире ИБ про это знают почти все, но вот коллегам из администрирования и бизнеса, я думаю, может быть полезно увидеть, почему хотя бы раз в год надо уделять время проверке и устранению уязвимостей.

В СМИ периодически появляется информация об массовых атаках на сайты на базе Bitrix с использованием уязвимостей в сторонних модулях — например, недавно компания предупреждала об уязвимости в подключаемых модулях от eSolutions и «Маяк».

Мы в центре мониторинга и реагирования на киберугрозы RED Security SOC тоже регулярно видим такие атаки. В этой статье покажем, как они выглядят in the wild, как их выявлять и блокировать их развитие.

Читать далее

Плох тот Джун, который не мечтает стать Сеньором. Но еще хуже тот, кто мечтает бездумно и без поддержки коллег

Reading time7 min
Reach and readers26K

Привет, Хабр! Меня зовут Артем Грищенко, я middle iOS-разработчик продуктов Future Crew в МТС. Если ты начинающий разработчик — скорее всего, у тебя есть мечта: вырасти, перестать быть «новичком» и почувствовать уверенность в своих силах. Чаще всего говорят: «Это долгий процесс, наберись терпения». И действительно, путь у каждого свой. Но у всех карьерных путей есть общее: рост возможен только при увеличении зоны ответственности. Об этом часто забывают, годами просиживая на одном месте. 

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

Читать далее

Управление командой в эпоху перемен

Reading time9 min
Reach and readers6.4K

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

Задача руководителя в этих условиях — уменьшить стресс сотрудникам да и самому себе.

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

Читать далее

Как допилить GitLab CI/CD и перестать переписывать пайплайны

Reading time9 min
Reach and readers21K

С подключением, хабровчане! Меня зовут Роман Волков, я Senior DevOps в МТС Web Services. Последние несколько лет мне приходилось создавать и адаптировать конвейеры на базе GItLab-CI, изменяя процесс автоматизации под каждую новую команду, стек, продукт и окружения эксплуатации. Чтобы облегчить жизнь себе и коллегам, я сделал небольшой внутренний фреймворк — FundaPipe, значительно упрощающий создание, развитие, переиспользование и применение самих конвейеров разработчиками.

Читать далее

CognitiveOS: операционная система с модульной архитектурой для интеграции LLM в роботов

Reading time8 min
Reach and readers9.6K

Роботы развиваются — всем хочется, чтобы они стали умнее и могли размышлять, запоминать, учиться, рассуждать и кооперироваться. А еще реагировали на команды типа: «Стань в Дьюрин день у серого камня, когда прострекочет дрозд и заходящее солнце бросит последний луч на дверную скважину».

Все это уже умеют LLM. Например, трансформенные модели GPT, Claude или Gemini могут принять на вход изображения, распознать и описать на них объекты — это позволяет использовать их для восприятия окружающей среды.

Встроить одну или несколько LLM в робота — задача интересная и сложная. Ее можно реализовать с применением масштабируемой модульной когнитивной архитектуры. Она позволяет интегрировать новые способности через модули, которые добавляются, отключаются или апгрейдятся без необходимости переписывать систему целиком.

Меня зовут Артем Лыков, я ведущий RnD-разработчик в МТС Web Services. В Лаборатории интеллектуальной космической робототехники Сколтеха мы реализовали CognitiveOS — когнитивную операционную систему для роботов. В этом материале я познакомлю вас с ней и расскажу, какие проблемы она решает, как устроена и как позволяет справляться с реальными задачами.

Читать далее