Поговорим о легаси и интересном проекте
Небольшое отступление вместо предисловия
Всем привет.
Давно не писал, почти год. Я жив, здоров, у меня все хорошо.
Идея писать в телеграмм-канале меня захватила больше. Я стал вести дневник в телеге, что меня весьма захватило. А на большие статьи, как-то не мог разродиться. При этом, основная направленность этого блога – техническая, а в дневничке я пишу обо всем, что со мной происходит.
Но забрасывать блог, тоже не дело. Поэтому сейчас я займусь тем, что сяду и напишу интересную статью. Хотя бы попытаюсь.
Ну, поехали, с богом.
Поговорим о легаси
Почему о легаси? Да слово больно популярное. В различных вакансиях нашей специфики(в данном случае речь идет о клавд инженерах) либо требуется опыт работы с легаси, либо наоборот, обещают, что работы с легаси не будет(что очень часто – неправда).
А что это слово вообще означает?
Давайте разберемся.
Предположим, что я клавд-инженер, которому предлагают интересный проект с интересными задачами, но в конце мелким шрифтом написано “работа с легаси”. А я не знаю, что это такое, я знаю слова облака, aws, serverless, lambda, IaC, Terraform, Packer и так далее, а про легаси ничего не знаю.
Но я же умный, я разберусь. И первым делом я пойду гуглить.
Захожу в гугл, вбиваю legacy и первым делом получаю перевод.
Ага, становится понятнее. Значит, legacy – это что-то, что досталось в наследство от кого-то.
Понятно, да не совсем. Много разных ссылок и все ведут на разные темы. Как визуал, пойду посмотрю картинки.
Первая картинка
Ага, становится еще понятнее. Как субарист, сразу понял, что легаси, это что-то старое, но до сих пор работает. (Как мой четверть-вековой форестер).
Значит легаси – это то, что досталось по наследству, старое, но до сих пор работает.
Вторая картинка
Какой-то сериал, на постере которого видно, что пролилась кровушка.
Ага, становится еще понятнее, значит легаси – это то, что досталось по наследству, старое, рабочее, но при работе кровушки попьет.
Отлично, пойдем дальше.
Третья картинка.
Ага, какая-то игра, про Хогвартс.
Вот и стало все на свои места. Легаси – это, что досталось по наследству, с чем сложно работать, старое, но работающее, а как работает – никто не знает, магия(с).
Определимся с определением
Легаси:
- Досталось по наследству (если что-то от кого-то достается по наследству, то обычно этого человека уже нет и связаться с ним без использования чего-либо типа спиритизма – невозможно, то есть спросить не у кого)
- Старое (технологии, код, язык, фреймворк, архитектура, оборудование)
- Работает (и с этим придется работать)
- Сложное (потому, что никто не знает, как с этим работать)
- Магия (никто не знает, как оно вообще работает и как это изменять, более того, и почитать об этом практически негде)
Правда интересный проект? А будет еще интереснее…
Вот я, как клавд инженер, смог с помощью гугла определиться с тем, что такое легаси. И у меня в голове сложилось предположение, что, скорее всего – это приложение, которое надо перегнать в облако. Не зря же на этот интересный проект зовут именно клавд инженера.
Пусть будет так.
Тащим приложение в облако
Я, как клавд инженер, с большим опытом в AWS предполагаю, что это будет какое-то приложение, которое я перетащу в облако. Я еще не знаю, что конкретно это будет, но начинаю строить план и, первым делом, я вспоминаю про наши любимые 6 R миграции приложения в облако.
1. Re-host.
Ну или взяли и потащили. Предположим, что там какое-нибудь веб-приложение на условном ПэХаПэ. Что же, это не столь сложно. Первое, что приходит в голову, что на проекте будет какая-то виртуалочка, которую мы экспортнем и импортнем в aws на ec2. И не сьедая нам мозг оно вполне заработает. А можем, например, самостоятельно развернуть рантайм на том же ec2 и скопировать код. Или еще проще, в пару кликов развернуть свежий рантайм в том же LightSail, это еще дешевле выйдет, учитывая то, что в LightSail еще и траффик дешевле и больше.
2. Re-platform
Ладно, а что делать, если там например, ну не ПэХаПэ, а какая-нибудь старая веб-сфера. Это был такой апликейшн-сервер от IBM, и лет 20 назад случалось мне с ним работать. Ну ок, тоже в принципе есть варианты. Перетащим на Apache Tomcat, мануалы есть. Все будет супер. Сначала запихнем это все добро на EC2, а потом будем думать, что делать дальше.
3. Re-purchase
Окей, тоже вариант. Правда мы еще не знаем, что там такое крутится на интересном проекте, но если это какая-то древняя CRM система или одинЭска лохматых годов, то вполне можно уговорить клиента перейти на SaaS версию того же продукта, а если его нет – то на аналог. Тут будет интересно провести миграцию, выровнять данные и так далее. Что тоже весьма интересно. Понадобится какая-то шина, которую можно будет запихнуть в тот же амазон, чтобы смапить данные.
4. Re-factor.
Вот это сложный вариант. И одним клавд-инженером тут не обойтись. Тут уже потребуется большая команда, обладающая высокой компетенцией. Надо будет:
a) разобраться, как это работает и задокументировать
b) разобраться, как это должно работать и тоже задокументировать
с) выбрать стек
d) написать код
e) затащить это все добро в облако
А дальше, как фишка ляжет
5. Retire
Уговорить клиента избавиться от этого старого хлама. Увы, если бы клиенту этот хлам был не нужен, он бы меня не позвал. Этот вариант остается на самый край.
6. Retain
Оставить все, как есть. Плохой вариант. Может быть клиенту он и подходит, но так денег точно не заработать. И у клиента расходы останутся высокие, и я, как клавд инженер, ничего не получу.
Супер, звучит, как план.
Да, капитан! План действий есть. Готовы приступать.
Идем к клиенту
Окей, я крутой клавд инженер, я иду к клиенту решать все его проблемы. Прихожу, и, как говорит моя дочь, ЛОЛШТО?, вижу это:
Ау, ребят, я клавд инженер, я работаю с облаками, каттинг-эдж технолоджис и все такое. А это что такое вообще? Оно появилось еще до моего рождения, на нем еще небось сам Ленин работал.
Но, если быть честным, я утрирую. Во-первых, я профессионал, и привык работать с тем, что есть. Так даже интереснее, получится или нет. Во-вторых, я знаю, что это. Это ни что иное, как мейнфрейм. И да, с более современными версиями я даже успел поработать.
Опрашиваем клиента и узнаем, что система написана и запущена в 70х годах прошлого века и с тех пор работает. Проблема в том, что обслуживание всего этого добра обходится слишком дорого, а система нужна. Что мы имеем – легаси операционку, легаси архитектуру, легаси железо и, что более характерно, даже архитектуру процессоров мы имеем совершенно другую, с совершенно другим набором инструкций, легаси бд, легаси код, на языке, на котором уже никто не кодит лет 50 и полное отсутствие документации.
Интересный проект? 🙂
Безусловно. Если реализовать этот проект – это будет такой кейс, который будет только у нескольких компаний, таким образом, при наличии спроса можно будет предлагать целую услугу. И если вы думаете, что это бред сивой кобылы, то спешу вас разочаровать. Это не бред.
На удивление, в забугорске, в основном, конечно же в Штатах, ситуация “работает – не трогай” встречается довольно часто.
Доходит до того, что есть места, где до сих пор используют компьютеры на перфокартах в продакшене. Об этом тут можно почитать. А уж мейнфреймы, вообще ух… хотя об этом чуть позже.
А есть ли спрос?
Я тут давеча вспомнил, что что-то подобное мне уже где-то попадалось. Поискал на ютубе и нашел.
На re:Invent в 2017 году Aaron Bawcom рассказывает как раз про такой кейс, как они двигали Мейнфрейм в AWS. И, что характерно, передвинули. У них все получилось. Рекомендую посмотреть, видео короткое, но тем не менее интересное.
Больше всего понравилась та часть истории, где они привлекли для работы 75-и летнюю пенсионерку, так как больше они не могли найти специалистов, обладающих необходимыми знаниями.
Так вот, было это в далеком 2017 году, то есть семь лет назад. Когда это все было супер сложно и делалось исключительно ручками.
А как сейчас?
А сейчас у AWS есть целая платформа по миграции мейнфреймов в AWS – AWS Mainframe Modernization, которая позволяет автоматизировать некоторые шаги миграции мейнфреймов в AWS.
Так вот, задумайтесь, если бы не было спроса, стали бы инженера AWS делать для этого платформу. Вопрос риторический.
Для чего вообще нужна эта информация?
Не знаю, вам решать. А в целом, если вдруг вы живете в штатах, или работает на зарубежные компании, которые могут столкнуться с подобным кейсом, есть неплохая возможность овладеть “тайными знаниями” и стать уникальным специалистом, который знает то, о чем многие даже не подозревают. За счет чего кратно увеличить свой ценник. А может и нет, тут как фишка ляжет.
На этом все. Спасибо за внимание.
P.S. С удовольствием получил бы фидбек в телегу @mykola7799. Напишите, что вам понравилось, а что нет.