Модернизация работающей системы
Система меняется почти без простоя, шагами, у каждого из которых есть план отката.
Ситуация
Есть часть системы, которую никто не хочет открывать. Она работает. Работает годами. Люди, которые её собирали, давно ушли, и о том, что она делает, известно одно: пока ничего не упало.
Любая правка рядом с ней оценивается в недели, и половина этого срока — страх.
Что происходит
Сначала записывается, потом меняется. То, что система делает сегодня, фиксируется до того, как у кого-то появятся мнения о том, как надо. Нельзя безопасно убрать то, что не записано.
Дальше она движется маленькими шагами, при живом продакшене. Целевая архитектура сама по себе не причина переписывать: каждый шаг обязан окупиться сам и обязан откатываться отдельно от остальных.
То, что не болит достаточно, остаётся как есть. Две разные шины рядом дешевле, чем одна шина плюс переходник, которым никто не владеет. Модернизация, которая приводит к одному виду ради красоты схемы, делает хозяйство опрятнее, а команду не быстрее.
Что вы получаете
Систему, которая продолжает обслуживать людей, пока меняется — простой близок к нулю. И шаги, которые можно остановить в любой точке: у каждого есть план отката, не оставляющий хозяйство переделанным наполовину.
Как это было
Полсотни приложений, собранных между 2005 и 2010 годом, и пятеро людей на всех. Больше шестидесяти процентов переписано, перевезено или построено заново — шагами, при спокойных инцидентах.
Потом среда сменила требования, и всё хозяйство понадобилось перевезти. Сами приложения почти не сдвинулись: поменялась одна тонкая прослойка, одинаково у всех, кого это коснулось. Первое изменение сделал самый дорогой человек в команде, остальные повторили самые дешёвые.
Чего здесь нет
Не переписывание. Не миграция с заморозкой. И не обещание, что всё станет одинаковым, — часть намеренно не станет.
С чего начать
Двух вещей достаточно: какая часть дорога в обращении и одна цифра, которую можно измерить, — часы, деньги, доля отказов, просрочки по SLA. По ней потом нам обоим будет видно, сработало ли.