Обновить
Сначала показывать
Порог рейтинга
Уровень сложности

Как мы внедряли SLO в платформу, которая отвечает за наблюдаемость в банке

Уровень сложностиПростой
Время на прочтение13 мин
Охват и читатели5.7K

Привет, Хабр! Я Руслан Боярский, SRE-инженер в Т-Банке, где мы строим и поддерживаем Sage — внутреннюю платформу наблюдаемости для 7 000+ инженеров. У нас собираются миллионы метрик в секунду, работают десятки тысяч алертов, и на нас завязаны решения о стабильности критически важных сервисов.

В какой-то момент мы задались вопросом: насколько на самом деле надежна наша платформа? У нас были SLA, но не было уверенности, что они отражают реальные ожидания пользователей.

В статье по мотивам моего доклада на DevOpsConf 2025 — наш путь от гипотез и «галлюцинаций» до рабочих SLO: как мы с помощью глубинных интервью с клиентами перестали гадать о надежности и начали измерять ее по-настоящему.

Читать далее

Новости

Как Angular v22 решил проблему дублирующихся host directives

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели7K

Привет, Хабр! Я Святослав Зайцев, занимаюсь разработкой Angular-приложений и внутренних библиотек компонентов в Т-Банке.

Недавно в Angular v22 появилось изменение, которое прошло почти незаметно на фоне более громких новинок. Тем не менее оно снимает одно из ключевых ограничений Directive Composition API.

Если вы используете hostDirectives для переиспользования поведения между директивами и компонентами, то могли сталкиваться с ситуациями, когда вполне логичная композиция внезапно заканчивалась ошибкой NG0309.

В статье разберем, почему так происходило раньше, что изменилось в Angular v22 и как новый механизм дедупликации host directives влияет на архитектуру компонентов и дизайн-систем.

Читать далее

Что делать, когда твои системы становятся legacy

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели8.9K

Всем привет. На связи Дмитрий Немчин из Т-Банка. Снова буду говорить про Greenplum, но в необычном контексте.

С 2015 года занимаюсь Greenplum: развитием, эксплуатацией, автоматизацией и всем, что обычно появляется вокруг большой аналитической платформы. Когда я пришел, у нас было два production-кластера Greenplum и десятки терабайтов данных. Сейчас production-кластеров около 20 и объемы данных измеряются петабайтами. За это время Greenplum прошел путь от небольшого DWH до центра крупной Дата Платформы. И сейчас это система, которая все еще держит большую часть нагрузки, но постепенно перестает быть точкой будущих инвестиций. 

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

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

Читать далее

Как я стал Scala-разработчиком в Иннополисе

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели7.1K

Привет, Хабр! Я Иван Лягаев, Staff Scala Developer в Т-Банке. Живу и работаю в Иннополисе — самом молодом городе России, — рядом с Казанью.

Моя статья — часть проекта к 20-летию Т-Банка «20 в 20», в котором мы рассказываем об ИТ-хабах в разных городах и о людях, которые живут в этих инженерных сообществах.

Казань и Иннополис для нас — важная точка на ИТ-карте. В регионе сильная образовательная база: Университет Иннополис, КФУ, ИТИС, ИВМиИТ и другие технические школы. Здесь сформировался конкурентный рынок, работают крупные ИТ-компании, а вокруг развивается активное профессиональное сообщество.

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

В статье рассказываю, как так получилось.

Читать далее

Как мы сломали модель данных из-за TTL в Cassandra

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели6.9K

Привет! Я Павел Кокошников, главный разработчик в контактных политиках Т-Банка. Расскажу про кейс с Cassandra. Базу мы выбрали неслучайно: под наш профиль нагрузки, модель доступа и требования к TTL она подходила хорошо. Уже в работе обнаружилась одна особенность TTL, которую мы упустили на этапе проектирования. Из-за нее в полностью исправной базе появлялись логически битые строки.

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

Читать далее

Java Digest # 36: график выхода JDK 27, Spring Framework 7 в деталях и постмортем OOMKill после миграции на JDK 17

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели8.2K

Всем привет! 👋👋👋👋👋 Мы — Java-разработчики Т-Банка: Андрей, Арсений, Роман, Константин и Константин. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки и делимся этим со всем сообществом.

В этом выпуске разбираем, почему G1 в JDK 27 окончательно прописывается дефолтным сборщиком мусора, и смотрим, что там с очередным, двенадцатым по счету инкубатором Vector API (спойлер: все по-прежнему ждем Valhalla). Заглянем в Netflix, посмотрим, как раскатили AOT из Project Leyden в прод и срезали время старта сервисов на 15—20%. Поговорим про то, как снимать heap-дампы с прода и не получить по шапке от безопасников, а заодно разберемся, зачем вообще были нужны гибкие конструкторы из Java 25. Посмотрим обзор фич Java 26 от Николая Парлога. Из любопытного — статья, где автор 18 месяцев гонял на проде два одинаковых сервиса на Spring Boot и Node.js и в итоге насчитал разницу в 24 тысячи долларов. Ну и пробежимся по свежим релизам: Micronaut 5.0, Quarkus 3.35 и 3.36, Spring AI и не только. Поехали!

Читать далее

Scala Digest. Выпуск 41

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели6K

Привет, Хабр! Мы Настя, Эвелина и Михаил — бэкенд-разработчики Т-Банка, пишем код на Scala и горим желанием его популяризировать. Мы собираем и агрегируем новости из разных источников, включая Scala Times, блог Petr Zapletal и канал Scala Nishtyaki, добавляем дополнительные материалы и собственные комментарии. Мотивацию черпаем из желания развиваться и делиться полученными знаниями.

Поздравляем читателей с первым днем лета, желаем кайфовой разработки, интересных материалов и комфортных перерывов под летним солнцем!

Приветствуем любую обратную связь! (づ ◕‿◕ )づ

Читать сорок первый выпуск

Велосипед для жрицы Трои, или как мы переизобретали Outbox для нетранзакционной базы данных

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели6.4K

Привет, Хабр! На связи системный аналитик Илья Глазунов и разработчик Захар Корсаков. Мы работаем с платформой карточного хранилища Т-Банка.

Когда данных становится много, а архитектура обязана оставаться простой, классические решения начинают упираться в ограничения стека. В нашем случае нужно было организовать асинхронную доставку событий из Cassandra, но без CDC, без отдельного брокера и без разрастания зоопарка технологий. Так мы пришли к Non-transactional Outbox — схеме, которая по духу напоминает Kafka Inside the Database, но живет в рамках наших ограничений и требований к отказоустойчивости.

В статье покажем, что такое Outbox, с чем его едят и как готовят. Расскажем допущения по реализации в нашем случае, вытекающие из отличий от классического паттерна Outbox. Обрисуем ту реализацию, которую сделали своими руками, и покажем бенчмарки нагрузочного тестирования. В конце поделимся списком вопросов, которые возникали чаще всего при обсуждении решения внутри банковского сообщества Apache Cassandra.

Читать далее

Как мы четыре раза переписали Outbox

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели8.8K

Привет! Я Ильдус Тукаев, разработчик в команде образовательной платформы Т-Банка. Мы помогаем школьникам, студентам, молодым специалистам и сотрудникам получать знания и качать свои софт и хард навыки. Основной язык у нас Go, но сегодня расскажу больше про архитектурную тему: как у нас в команде использовался паттерн Outbox и как он эволюционировал.

За полтора года реализация Outbox прошла четыре итерации. По пути мы ловили VACUUM, который останавливал сервис на три часа, теряли 5% событий за полтора дня и заваливали поддержку обращениями. Расскажу, какие реализации мы пробовали, на какие грабли наступали и почему остановились на варианте, который сами же не считаем идеальным.

Читать далее

Окружение помогает расти: как в челябинском ИТ-хабе инженер техподдержки стал руководителем проектов

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели9.4K

Привет, Хабр! Я Алексей Шишкун, руководитель проектов в Т-Банке. Моя история — часть проекта «20 в 20» в честь 20-летия компании. Двадцать специалистов из двадцати городов делятся своими историями в серии статей, чтобы показать ИТ-хабы в разных городах и рассказать о людях, которые в них выросли.

Мой путь не был прямой линией «университет → стажировка → разработка». Я начинал как инженер техподдержки и долго верил в миф: чтобы попасть в ИТ, нужно только писать код. Оказалось, точек входа гораздо больше. 

Расскажу, как смещался мой фокус от железа к процессам, почему «переписать все с нуля» — это ловушка и как среда ИТ-хаба в Челябинске помогала расти быстрее, чем удаленка.

Читать далее

Техники GenAI в Spring AI

Уровень сложностиСредний
Время на прочтение26 мин
Охват и читатели11K

В статье рассмотрим ряд техник GenAI, реализованных в модуле Spring AI, и ответим на вопрос: является ли ChatClient лишь тонкой оберткой над API провайдеров LLM или предоставляет функциональные возможности, которые имеет смысл применять в реальных проектах. В качестве примера будем итеративно разрабатывать приложение, интегрированное с Anthropic, и разбирать возникающие по ходу проблемы.

Читать далее

Java Digest #35

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели10K

Всем привет! 👋👋👋👋👋

Мы — Java-разработчики Т-Банка: Андрей, Арсений, Роман, Константин и Константин. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки и делимся этим со всем сообществом.

В этом выпуске рассказываем, когда ждать релиз Java 27 и как Oracle планирует регулировать использование генеративного ИИ при написании кода. Посмотрим детальное интервью о Spring Framework 7 и Spring Boot 4 с самой командой создателей Spring. Почитаем, как безопасно работать с нативной памятью в многопоточной среде с помощью VarHandle. А еще изучим любопытный постмортем, посвященный расследованию раздувания памяти в контейнерах после перехода на JDK 17. Приятного чтения!

Читать 35 выпуск

Иннерсорс: строим культуру открытого кода в большой компании

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели9.8K

Привет! Я Владимир Потехин, разработчик в Т-Банке в ИТ-хабе Нижнего Новгорода. Моя статья — первая в спецпроекте «20 в 20» к 20-летию Т-Банка. Двадцать специалистов из двадцати городов расскажут свои истории в серии статей, чтобы показать, как выглядит наша распределенная ИТ-карта. За эти годы Т-Банк сильно вырос, вместе с ним выросла и инженерная среда: команды работают в разных городах, но остаются частью одного большого процесса.

Я много времени уделяю работе с опенсорсом и искренне за него радею. Люблю опенсорс за ощущение общего дела: когда код не просто пишешь, а вместе с другими улучшаешь, обсуждаешь, докручиваешь и делаешь полезнее.

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

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

Читать далее

Ближайшие события

Scala Digest. Выпуск 40

Время на прочтение5 мин
Охват и читатели13K

Привет, Хабр! Мир! Труд! Май! Мы — Настя, Эвелина и Михаил — бэкенд-разработчики Т-Банка, пишем код на Scala и горим желанием его популяризировать. Поздравляем всех с майскими праздниками! Желаем всем хорошенько отдохнуть и, конечно, найти время и инвестировать его в нашу любимую Scala. 

Приветствуем любую обратную связь! (づ ◕‿◕ )づ

Читать сороковой выпуск

Interceptors и SourceGenerators: отказываемся от IL-инъекций

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели8.1K

Привет! Я Дмитрий Сипаков, ведущий разработчик в Госсервисах Т-Банка. Расскажу про относительно новую фичу .NET — Interceptors: как они работают вместе со Source Generators и как с их помощью можно избавиться от бойлерплейта без IL-инъекций и сторонней магии.

Читать далее

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

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели5.5K

Привет, Хабр и коллеги-техписы! Я Оля Исхакова, работаю техническим писателем в Т-Банке. Мы с командой занимаемся развитием документации для внутренних продуктов, пишем коммуникации, анализируем пользовательский путь и предлагаем идеи по улучшению интерфейсов. 

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

Читать далее

Как команда технических писателей начала мерить качество документации. Эволюция редакции на примере человечества

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели6.9K

Привет! Я Оля Коршунова, лид первой редакции технических писателей в Т-Банке. Боль технических писателей — как определить влияние текста? Как оцифровать его в бизнес-результат?

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

В статье расскажу, с чего команда начинала работу и как пришла к метрикам документации.

Читать далее

Я календарь переверну — и снова 5 апреля: CPU-утилизация во имя интернационализации

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели7.5K

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

В начале года мы запустили миграцию сервиса в новое хранилище PostgreSQL с существующего NoSQL-решения. Сервис среднестатистический, не High-Load, но занимает ключевое место в обработке бизнес-процессов, отвечает за генерацию заданий для коммуникаций с клиентами. Без проблем держит поступающие 30 RPS, ежедневно обрабатывает около миллиона джобов, хранит сотни миллионов строк данных и в среднем потребляет 125ms CPU.

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

Читать далее

Java Digest # 34

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели7.4K

В этом выпуске мы узнаем, как Java 26 меняет правила игры с десятком новых JEP - от долгожданного шестого превью Structured Concurrency до похорон апплетов и поддержки HTTP/3. Увидим, как IntelliJ IDEA становится умнее с ИИ-агентами, Spring Debugger с отображением бинов и поддержкой Git worktrees. Обсудим Spring AOT, версионирование API в Spring Boot 4.0. Плюс, как всегда, свежие релизы Spring, Gradle, Micronaut, LangChain4j и бенчмарки Quarkus против Spring. Будет интересно!

Читать далее

Scala Digest. Выпуск 39

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели6.4K

Привет, Хабр! Мы — Настя, Эвелина и Михаил — бэкенд-разработчики Т-Банка, пишем код на Scala и горим желанием его популяризировать.

Приветствуем любую обратную связь! (づ ◕‿◕ )づ

Читать тридцать девятый выпуск
1
23 ...