惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
Securelist
Cisco Talos Blog
Cisco Talos Blog
Y
Y Combinator Blog
L
LINUX DO - 热门话题
D
Docker
N
News and Events Feed by Topic
T
Troy Hunt's Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
B
Blog RSS Feed
W
WeLiveSecurity
Project Zero
Project Zero
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Martin Fowler
Martin Fowler
N
Netflix TechBlog - Medium
www.infosecurity-magazine.com
www.infosecurity-magazine.com
AI
AI
T
Tenable Blog
TaoSecurity Blog
TaoSecurity Blog
P
Proofpoint News Feed
Application and Cybersecurity Blog
Application and Cybersecurity Blog
M
MIT News - Artificial intelligence
MongoDB | Blog
MongoDB | Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
WordPress大学
WordPress大学
AWS News Blog
AWS News Blog
小众软件
小众软件
P
Proofpoint News Feed
博客园 - 叶小钗
Hacker News - Newest:
Hacker News - Newest: "LLM"
I
Intezer
MyScale Blog
MyScale Blog
K
Kaspersky official blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
V
V2EX
量子位
GbyAI
GbyAI
A
Arctic Wolf
N
News and Events Feed by Topic
Blog — PlanetScale
Blog — PlanetScale
Hugging Face - Blog
Hugging Face - Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
P
Privacy International News Feed
博客园 - 【当耐特】
H
Heimdal Security Blog
Apple Machine Learning Research
Apple Machine Learning Research
Recorded Future
Recorded Future
Microsoft Security Blog
Microsoft Security Blog
T
The Blog of Author Tim Ferriss
Google DeepMind News
Google DeepMind News

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
Что делать, когда твои системы становятся legacy
Дмитрий Немчин · 2026-06-15 · via Все публикации подряд на Хабре

Средний

9 мин

0

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

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

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

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

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

Что такое legacy

Под legacy я понимаю не мертвую систему и не то, что завтра нужно выключить (строго говоря legacy != EOL). В нашем случае Greenplum продолжает работать, на нем остаются критичные процессы, пользователи запускают запросы, а команда отвечает за доступность и производительность.

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

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

Greenplum — великий и ужасный

Greenplum был хорошим выбором для своего времени. Мы искали MPP СУБД, которая могла обрабатывать большие объемы данных и выдерживать тяжелые аналитические запросы, и Greenplum был отличным ответом на наш запрос. По сравнению с предыдущими подходами, это был серьезный шаг вперед: появилась горизонтальная масштабируемость, больше возможностей для роста нашего DWH, нормальная база для ETL и аналитики.

Сначала архитектура выглядела прямолинейно. Были источники данных, загрузка и Greenplum как основной движок обработки, поверх него строились ELT-процессы, витрины, отчеты, пользовательская аналитика. В общем, «сюда данные заливаем, тут перемешиваем, отсюда забираем». По мере роста компании росли и данные, и число пользователей, и количество сценариев.

Потом кластеров стало больше. Появились сложные механизмы доставки данных между ними (с подписками и информацией об актуальности, все для людей). Появилась автоматизация, внутренние инструменты для мониторинга, эксплуатации, балансировки, работы с инцидентами. Greenplum перестал быть просто базой данных в центре DWH, а стал ядром большой платформенной экосистемы.

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

Почему Greenplum начал становиться ограничением

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

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

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

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

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

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

Если пользователи живут на разных кластерах, а данные нужны одним и тем же командам, объекты начинают дублироваться. Популярные таблицы и витрины приходится раскладывать по нескольким местам. В отдельных случаях число копий становится само по себе проблемой: дублировать данные до 20(!) раз не самое бюджетное решение. Растет объем хранения, усложняется обновление, труднее контролировать свежесть и консистентность.

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

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

Отдельно проявился рост самих объектов данных. Некоторые таблицы становились настолько большими, что с трудом помещались в один GP-кластер без дополнительных компромиссов по хранению и скорости обработки данных.

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

Технологический аспект 

Когда технология начинает ограничивать рост, есть несколько вариантов.

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

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

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

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

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

Именно этот путь мы выбрали как целевой. Не буду подробно разбирать новую архитектуру: это отдельная большая тема. Зафиксируем само направление перехода.

Новая архитектура платформы

Старая модель начала ограничивать нас из-за того, что вся платформа была завязана на Greenplum: ingest приходил в GP-кластеры, внутри них жили ETL и основные вычисления, оттуда данные расходились в notebooks, отчетность и другие сервисы. На таком устройстве в одном контуре оказываются хранение, вычисления и разные типы нагрузки. Пока масштаб умеренный, это работает. При росте платформы начинаются знакомые проблемы: конкуренция разных нагрузок (уже в рамках отдельных групп пользователей), предел масштабирования отдельных кластеров, дублирование данных между кластерами и сложная доставка объектов туда, где они нужны.

Архитектура Дата Платформы Т до внедрения LakeHouse

Архитектура Дата Платформы Т до внедрения LakeHouse

Рядом с Greenplum растет DLH (DataLakeHouse) — общий слой хранения и новые движки обработки, а Greenplum продолжает обслуживать существующую нагрузку.

Текущая архитектура Дата Платформы

Текущая архитектура Дата Платформы

Мы идем к тому, что DLH становится центральным звеном нашей платформы, забирая эту роль у Greenplum. Данные выносятся в общий слой хранения, а обработка распределяется между разными движками под разные профили нагрузки. Это позволяет отдельно масштабировать хранение, отдельно — вычисления, аккуратнее разводить ETL, интерактивные запросы и другие сценарии.

Новая архитектура T Data Platform

Новая архитектура T Data Platform

Подробно устройство DLH и саму миграцию разберем уже в другой статье.

Человеческий аспект

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

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

Поэтому переход технологии в legacy может восприниматься людьми как риск остаться за бортом. Если сказать только «теперь развиваем другое», часть команды услышит: прошлый опыт больше не нужен. Это опасная трактовка. На практике опыт Greenplum-команды остается ценным, потому что речь идет не только о знании конкретной базы. Речь идет об умении работать с большой платформой: нагрузкой, отказами, производительностью, пользователями, эксплуатацией и сложными зависимостями. И не в последнюю очередь — с тем, как устроено все это именно у нас в компании со всеми «так принято» и «исторически сложилось».

Главная управленческая задача в таком переходе — не потерять накопленные знания и опыт. Greenplum нельзя просто выключить: на нем остается критичная нагрузка. При этом нельзя делать вид, что ничего не меняется. Нужно честно разделить задачи.

Есть критическая поддержка: доступность, инциденты, безопасность, регуляторные требования, стабильность пользовательского сервиса. Это нельзя бросать, даже если технология постепенно уходит из фокуса развития.

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

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

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

Отдельно нужно готовить людей к новой платформе. Это не значит, что все должны одномоментно бросить Greenplum и стать экспертами по новому стеку. Лучше работает постепенный переход: новые инструменты, общие практики разработки, CI/CD, IaC, наблюдаемость, работа с другими compute-движками, участие в миграционных задачах.

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

Заключение

Greenplum не стал для нас плохой технологией. Он сделал свою работу: помог платформе вырасти, выдержал рост данных, пользователей и внутренних инструментов. Именно поэтому вокруг него возникла большая экосистема, которую теперь нельзя заменить быстро и безболезненно. Даже сейчас при некоторых условиях я бы вполне мог рекомендовать Greenplum (или его open-source-аналоги) к внедрению в компаниях.

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

Переход в legacy в такой ситуации — не приговор, а смена режима управления. 

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