Особенности миграции c RISC на х86 в России: теперь нас держит старый банковский софт времён DOS и Netware



    Подозреваю, что довольно значимая часть читателей поста младше, чем эти операционные системы. Но на них в закромах Родины ещё бегает наш российский (и не только) софт. Да и вы наверняка нет-нет, да видели DOS-приклад на рабочих местах Сбербанка или в больницах.

    Есть такие Power-машины, которые предназначены для расчётов больших и тяжёлых штук. На них работает приклад, который не может быть запущен в обычном кластере, как правило — банковские системы и всякие биржевые штуки. Проблема в том, что современные гипервизоры создают виртуальную машину не больше, чем физический сервер, где они стоят. А один физический x86-сервер для таких задач мелковат. Поэтому и используется архитектура x64 (RISC).

    Одинаковые по суммарной производительности системы на x86 и x64 отличаются по цене в десятки и сотни раз. Казалось бы, никаких проблем: надо переписать софт так, чтобы он мог работать в сотни потоков и встать в кластер или облако, да?

    Ага, сейчас! Программистов, кто это писал, уже нет. Исходники обычно утеряны или же написаны на языках времён мезозоя. Даже документации обычно нет. Поэтому знаете, что мы делаем? Мы заворачиваем гипервизор в гипервизор. О, это отдельная песня. Сейчас расскажу.

    Куски мамонта


    Да, чёрт побери, заворачиваем гипервизор в гипервизор. Типичная задача — нужно отмигрировать что-то на тот же Huawei х86. Вообще, коммерческих архитектур, которые позволяют получать реально очень большие кластеры, хорошо подходящие для таких задач, всего три — это Супердом, кластер Фуджитсу и кластер Huawei. Отдельно есть ещё решения, но у этих трёх архитектуры похожи и близки к оптимальным по масштабированию. В нашем случае Huawei оказался выбран под проект по двум причинам:

    — Цена при заданной стабильности.
    — Совместимость со старыми ОС на уровне драйверов и т. п., то есть возможность миграции.



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

    На очереди на тестовые внедрения Huawei стоят два крупных заказчика, поэтому тема очень горячая.

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

    При этом обратите внимание это не значит, что они не переносят ничего. Те же базы с AIX’а P-серии на Linux x86 они очень быстро переделывают и накатывают — это уже отработанная процедура во многих банках.

    Боль в прикладе и СУБД. Не всегда внешние NIX’ы могут работать с СУБД из-за отличия хранимых процедур и кучи других проблем совместимости. Как следствие, начинается допиливание до консистентного состояния. Если RISC-машины уже давно в этом плане устоялись, то разработчики кластеров х86 в сфере новички, и наступили ещё не на все грабли. Главное — не поддерживают фичи глубоко старого NIX, а в банках или промышленности иногда стоят совсем старые версии.

    И именно в этот момент мы начинаем заворачивать гипервизор в гипервизор, Джонни! Не всегда, конечно, а только тогда, когда принимается решение, что конкретно этот приклад лучше не трогать, а то все помрут. Выглядит это так:

    1. Находим последнюю стабильную версию ОС, где работает приклад. Чтобы вы понимали всю боль — иногда это Novell Netware 4.x. Это где основной сетевой протокол — IPX/SPX, а TCP/IP рассматривается как фантазия из будущего, но на всякий случай поддерживается. В одном банке это чудо до сих пор работает с данными архивов. И иногда она реально нужна для глубокого поиска по финансовым данным.
    2. Находим гипервизор, который поддерживает эту стабильную версию ОС и приклад. Запускаем в нём. Получается, например, некий старый Linux.
    3. Находим гипервизор (скорее всего, уже свежую Вмвару), который поддерживает этот старый Linux. Запускаем ВМ с ВМ на нём.

    Получается дом, который построил Джек.

    Понятное дело, приклад от этого страдает по производительности, но деваться особо некуда. Знаю одну историю о попытке ухода с Нетвары. Лет 10 как разработчиков просто нет. Все хваленые виртуализаторы не поддерживают никак и никогда. В итоге кое-как умудрились подняться с 4 на 6,5 потом её уже в гипервизоре.

    Кстати, если вы думаете, что это всё очень редкие случаи, присмотритесь к принтерам в отделениях банков, где вы бываете. Есть шанс встретить матричные принтеры на подключении к LPT-портам. Это даже не универсальные COM-порты, нет, которые можно встретить сегодня в мутированном виде клавиатурных гнёзд. Старый добрый LPT! В этих же банках отчёты сдают на 3,5-дюймовых дискетах. Даже у нас есть пара дисководов на случай горячей замены на складе. Там же ещё лежат суперсовременные ZIP-дисководы. Хорошо хоть 5,25 и 8 дюймов не встречали пока в практике. Хотя саму «грампластинку» — гибкий магнитный диск формата 8 дюймов в конверте — я ещё встречал в хранилищах ЗИП. Дисководы — нет.

    Из современной истории в регионах можно часто повсеместно встретить старые компаковские сервера. Которые лет 10 назад поставлялись. Это ещё 2004-й, до слияния с HP.

    А что Huawei?


    А их разработка допиливает драйвера и прочее. Производитель железа должен поддерживать целевую ось аппаратно. Старые х86 были на интеловых чипсетах — это небольшие машины. У хьюллета — 16 ядер и выше. И железо у них для разруливания нестандартное. Поэтому не всё так просто, как может показаться. Те же менеджеры памяти очень нетривиальны для старых систем.

    В итоге на выпуске нового сервера в начале список совместимости из одной ОС. Позже допиливают. Сейчас хотят больше глубоких NIX. Выбор-то простой: либо ПО системное переделывать, либо работать с операционной. Поэтому второе проще, потому что в банках распространён тот же Центос бесплатный (и даже не Редхат), и если дать совместимость — клиентов на х86 сразу станет больше.

    Естественно, миграция может привести к переписыванию всей системы. И этого никто не хочет особо. Чаще всего разрабы потерялись, потому что системе 11 лет, нет актуальной документации или она не ведется. Найти хотя бы точки интеграции — стандартная проблема. Хранимые процедуры тоже добавляют радости. Ну и напоследок, 90% диалогов:

    — У вас процедура принятия в эксплуатацию есть?
    — Конечно!
    — А документация по ней нужна?
    — Абсолютно.
    — Так, а эта процедура соблюдается?
    — Нет, конечно, вы чего, с ума сошли?

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

    Так что только переход на суперкластеры с совместимостью со старыми ОС.

    Тесты


    За 2 месяца мы протестировали для заказчиков 5 платформ. Обследовать по сути нечего, вопросы только по стабильности и возможности миграции. Никаких синтетических тестов, потому что результаты каждый раз разительно отличаются от реальных. Причём в обе стороны.

    Будущее


    В далёком будущем, возможно, таких танцев с бубном не будет. Самая главная беда, когда нам нужна вертикальная масштабируемость (увеличение количества процессоров и памяти в рамках одной машины), так как единую базу Оракл просто так нельзя разбить на несколько частей, она должна быть единой. А это хотят сделать все, чтобы перейти в облака и просто втыкать блейды в своё удовольствие. Сейчас большие СУБД на AIX единые и очень жирные. Поэтому вертикальный масштаб — для х86 сейчас это 32 процессора, по 16 ядер.

    Сейчас все идут в сторону in-memory-вычислений, поэтому параллелить в любом случае будут. Вопрос в том, когда.
    КРОК 501,79
    №1 по ИТ-услугам в России
    Поделиться публикацией
    Комментарии 64
    • 0
      «LTP-портам» только они LPT ;-) А так да, видел в банках совсем недавно досовский софт. И, что характерно, банк тот работал лучше новомодных, с которыми я имел дело.
      • +8

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

        • +1

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

          • 0
            Грамотно спроектированный GUI, IMHO, можно использовать и без мыши в типовых случаях. Порядок обхода элементов по TAB можно задать…
            • +7
              У современных UI/UX экспертов грамотно проектировать — не модно. Скучаю по несовременным GUI-шникам.
              • +9
                У современных GUI этот TAB зачастую и не работает вообще.
              • 0
                Вообще ни разу не сравнимо. Проблема даже не в TAB'ах и мышке, а в очереди сообщений.

                В TUI я могу спокойно вбивать данные, окрывать и закрывать окошки (опираясь на мускульную память, да) — вообще не глядя на экран! Более того, на экране может отображаться экран номер два, когда я с клавиатуры задаю данные уже для экрана номер 5. Проснёться, просрётся, отгрюкает дисководом, сделает — пока я буду перелистывать странички договора или с клиентом разговаривать.

                В GUI — так нельзя. Вы не знаете, куда попадут ваши нажатия и что они сделают, если не следите за происходящим. Это и производить ощущение «безумного отзывчивого текстового интерфейса» и «жутких GUI-тормозов».
                • 0
                  Сдаётся мне, что у некоторых современных фронтендщиков и TUI тормозить начнёт.
              • +1
                Досих пор используем софт ещё из мамонтового периода.
                Сейчас пробуем перейти на что-то посовременнее (чисто из за того что мамонты писавшие это вымерли), проблем имеем массу из за перехода.
                Если старый софт писался для решения конкретных бизнес задач, то современные разработчика пытаются просто прогнуть бизнес под то что у них уже есть — просто у них уже куча легаси которое дорого переписывать
                Mumps :)
                • 0
                  да и в целом даже непрошаренный человек может легко обмениваться информацией со скоростью 150 байт/мин через текстовый интерфейс, а через графический добиться такой скорости сложнее
                  • 0
                    Участвовал в разработке системы управления оптово-розничными предприятиями — Gestori. Так вот, там псевдографический интерфейс (в терминале), без поддержки мыши, но с горячими клавишами. Операционисты набивали документы с такой скоростью, которая пользователям, например, 1с даже не снилась.
                  • 0
                    В большинстве случаев это именно и есть Netware x.x. о котором говорится в статье
                    Т.е. корни там не в DOS а именно в ОС которая дает сеть и управляемость на простой клиентской ОС удаленных терминалов, работающей на слабом железе.
                    • 0
                      Да у топ 10 продуктового ритейла тоже много такого, пусть и не DOS, но консольного много.
                      А вот IPX… это жесть. Несколько месяцев назад, приглашали к небольшому ритейлу посмотреть на сервак, в начале не мог понять, зачем меня кличут… Novell Netware там стояло… и как понял без админа последние лет 5 работало без проблем, просто на серваке винт начал глючить, а там еще первые SCSI :))) посмотрел на дату производства винта… 14 лет!!! Сейчас столько не живут.
                    • +9
                      >Подозреваю, что довольно значимая часть читателей поста младше, чем эти операционные системы. Но на них в закромах Родины ещё бегает наш российский (и не только) софт.

                      /усмехаясь/
                      В закромах не-родины, внезапно, сплошь и рядом всё еще археологичней.
                      • +2
                        LTP это несколько не то, что Line Print Terminal более известный как Centronix (о боже, я еще помню это без всяких там гуглов)…
                        • +3
                          У нас на ЖД вокзалах, в кассах стоят компы в АТ корпусах, с новыми мониторами (их периодически меняют), и на них работает софт с текстовым интерфейсом, таким, ортодоксально текстовым — чёрный фон, серые символы, никакой псевдографики. Не знаю что это, дос или юникс, или ещё что-то, но выглядит очень круто.
                          При чём у них есть вполне себе современная система продажи билетов через сайт, электронные билеты, сканеры QR-кодов у проводников. Вот такое вот совмещение технологий прошлого и настоящего.
                          • +1
                            У нас тож есть парачка таких черно-серых (Иногда с синим) терминалов.
                            Тут фокус был в том, что работают они на FreeDOS, которая и бесплатна и работает даже на «Калькуляторе».
                            Словом — экономия денег получается весьма некислая.
                            • +2
                              Видел такой в Киеве. Там настолько текстовый интерфейс, что курсор перемещается по всему экрану, а не только по полям ввода, и чтобы ввести что-либо, оператору нужно «доехать» до нужного поля ввода.
                              • +1
                                Только что посмотрел билет который выдают в кассе, если верить надписи на нём, то это АСУ «Экспресс»
                              • +1
                                Там данные передаются в виде текста. Так что перейти на новое не составило труда.
                                Сейчас там стоит на ПАК РМК Windows 7 Emded (там где рабочие места обновили).
                                И даже в новой оболочке — эмуляция старой стилизованная.
                                • 0
                                  то есть там, где можно было бы не платить за лицензии на винду, за них всё же заплатили?
                                  • 0
                                    Да это так.
                                    Старые версии работали на какой-то разновидности Linux.
                              • 0

                                Помнится у Вернора Винджа археологи — это не те кто копают руины как Индиана Джонс, а те кто копаются в старом софте написанном века назад. :)


                                PS на ГикТаймс даже есть про это статья https://geektimes.ru/post/262836/

                                • 0

                                  Что-то совсем нет от Вернона новинок. Случайно наткнулся на его произведения. Все прочитал залпом. "Глубина в небе" просто класс.

                                • 0
                                  <вопрос про крысу/>
                                  • +2
                                    Есть переходники USB-LPT и аппаратные принт-сервера с портами LPT.
                                    • +3
                                      Физически они есть, а по факту legasy код работает с ними криво, либо от слова «совсем», что легче отлавливается, либо глючит в рандомные периоды времени, что гораздо печальнее.
                                      Недавно сталкивались с промышленным резаком, требовалось купить к нему новый управляющий комп. Программа работает только на WinXP и да, только через аппаратный LPT порт. Пробежались по граблям, когда на матери LPT порт задекларирован, но представляет собой не D-sub 25, а гребенку на плате, причем шлейфа на D-sub в комплекте нет. Ну и вишенка на торт — ни у кого из современных матерей нет дров под WinXP.
                                      • 0
                                        Виртуалка, с PCI и USB LPT портом. Отлично работает в аналогичном случае.
                                    • +4
                                      Приклад это программа? Первый раз вижу, чтобы настолько коверкали слово.
                                      • 0
                                        Это сокращение от «Прикладное программное обеспечение», что, собственно, и означает «Программа» (Только с какимито там уточнениями — вики в помощь)
                                        • +3
                                          Wiki ещё не в курсе такого модного значения старого слова!

                                        • +2
                                          <irony mode on>
                                          Редко читаете <a href=«https://www.google.com/search?q=»приклад"+site:https://habrahabr.ru">хабр
                                          Это старинное слово, его используют, когда говорят об очень-очень серьезном, старом,
                                          дорогом ПО!
                                        • +3
                                          Поэтому и используется архитектура x64 (RISC).

                                          Что тут имелось в виду? x64 — это CISC.
                                          • –1
                                            Так как сейчас в чистом виде нет CISC и RISC имелись в виду не интел системы преимущественно на процессорах Power, а они ближе к RISC

                                            • +4
                                              x64 aka AMD64 — это система команд, программистская архитектура. Это CISC, независимо от деталей реализации. А Power — это не x64, очевидно. Может имелся в виду просто 64-битный RISC?
                                              • –1
                                                имеется в виду 64-битный RISC
                                                • 0

                                                  Я четыре года назад как-то попытался разъяснить путаницу с именами архитектур. Если кратко:


                                                  • x86 — Intel архитектура для 32-битных ПК, который сама Intel называет IA-32.
                                                  • x64, x86_64, x86-64 — расширение AMD64 для x86, сейчас идущее в большинстве процессоров для ПК.

                                                  Всё остальное надо называть своими правильными именами (POWER(3,4,5,…), IA-64, ARMv(7,8)), иначе очень сильно сбивает. Я вот, например, эту статью до конца прочитать не смог, потому что постоянно сбивался, куда и на что мигрируют, так и плюнул.

                                                  • 0
                                                    нет, x64 — это Itanium, которую сам интел называет IA-64.
                                                    x86_64, x86-64 — это AMD64, да
                                                    • +1
                                                      нет, x64 — это Itanium, которую сам интел называет IA-64.
                                                      Таки да. Это, правда, изобретение Microsoft, которому нужно было придумать как «это» назвать не использовав ни вариант Intel'а, ни вариант AMD, но таки x64 — это то же самое, что и x86-64.
                                                • 0
                                                  Я как-то думал, что x64 скорее про итаниумы, а то, что вы сказали — x86_64.
                                          • 0
                                            ничего не понял. а чем отличается железячка x86 от x64? вроде 10 лет назад x64 именовали x86-64, подчеркивая что там и то и другое одновременно. и не понятно, что за проблема оракл в кластере масштабировать. oracle rac неплохо масштабируется.
                                            • 0
                                              Это разные платформы. Чистый Оракл в Кластере масштабировать большой проблемы не составляет. Но в реальности СУБД Оракл часть ИТ-систем и на уровне приложений возможны вопросы, хотя Оракл и заявляет, что использование RAC прозрачно для приложения. Кроме того RAC не бесплатен и достаточно дорог.
                                              • 0
                                                это одна платформа. Huawei x86 это обычный xeon, как у всех.
                                                если код писали не совсем индусы, оно нормально будет бегать и на oracle rac, там есть нюансы у высоконагруженных систем с мульоном транзакций но это явно про то что товарищи меняют на виртуалки. что бы там ни было на rac оно будет много надежней и быстрее, чем на китайская дребедень в виртуалке на виртуалке.
                                              • +1
                                                Автор наверное имеет в виду IA64. Которая разработана Интелом, но не имеет ничего общего с x86-64 (которую разработали в AMD).
                                                • +2
                                                  Типичная задача — нужно отмигрировать что-то на тот же Huawei х86. Вообще, коммерческих архитектур, которые позволяют получать реально очень большие кластеры, хорошо подходящие для таких задач, всего три — это Супердом, кластер Фуджитсу и кластер Huawei.


                                                  сложно сказать что именно путает автор, потому что huawei вроде не делал никогда на платформе ia-64, а супердом всегда был ia-64 и только в последнее время стал обычным x86-64 (x64)
                                              • 0
                                                А действительно ли имеет смысл усугублять костыли таким образом? При прочтении вспомнилась статья о том как сейчас американские айтишники в банковской системе страдают, перетаскивая всё с программ написанных на COBOL'е и работающих на старых мейнфреймах.
                                                • +1
                                                  В данной ситуации нет другого варианта. Всегда есть наследуемые системы и функционал, которые на данный момент не развиваются, но отказаться от которого невозможно
                                                  • 0
                                                    Ну те же американцы, насколько я слышал, последние годы как раз таки возятся над тем, чтобы с этого всего слезть, чтобы в итоге наконец отказаться. Разве нет?
                                                    Возможно, есть какие-то варианты, предположим, параллельной разработки аналогов на современных платформах? Ну и само собой, их документирования, чтобы в будущем не возникло таких же вот ситуаций…
                                                    • +2
                                                      Эти последние годы длятся уже лет 50, и быстрее умрут те американцы, которые возятся, чем сами программы.
                                                    • +2
                                                      Другой вариант есть.
                                                      Но люди, от которых зависит принятие решений и выделение средств — не смотрят вперед, а руководствуются видением краткосрочной перспективы.
                                                      Там, где процедуры тщательно документированы, процессы описаны, нет экономии на спичках — миграция — это лишь вопрос компетентности приглашенных специалистов.
                                                      А в грамотно и полно составленной документации специалист разберется.
                                                      Если он — специалист.
                                                      • 0
                                                        Конторы, в которых системы сделаны, документированы и поддерживаются разумно, имеют на 2 порядка меньше проблем с апгрейдом и если и станут клиентами крока, то на уровне либо предзакупочного выбора/сравнения вендоров, либо в качестве наемного склада комплектухи и аутсорсинга команды быстрого реагирования на внешние риски.
                                                  • –1
                                                    Про новелл — интересно конечно, с х86 проблем обычно нет, емнип с 5й версии он канонично виртуализируется вмварью, вводите новую виртуалку в имеющийся кластер нетвари, потихонечку перетаскиваете сервисы, которые развернуты на железных машинах на виртуальные и так в спокойном режиме без авралов спокойно все переезжает в облако.

                                                    А вообще конечно археология увлекательная штука =) Попалась мне как-то давно ось пополам 3й версии с древнейшим рейдом и hpfs на нем, с какой-то апликухой + websphere, вполне себе развернулась на вмваре (не смотря на отсутствие офф поддержки 3.х версий) а потом и апгрейднулась до 4-й уже в гипервизоре, что б комфортнее жилось. И нормально, крутится там себе, что-то считает…
                                                    • 0
                                                      Написано задорно, однако, как быть с pSeries железками старыми под AIX (специально про pSeries)? Или «чудо-железо» и это может?
                                                      P.S. В 2014 вывели из эксплуатации RS/6000 последний — конец эпохи!
                                                      • +1
                                                        Если на нем еще oracle9, который просто так не перенесешь, кстате да, как можно корректно на x86 перенести?
                                                        • 0
                                                          оракл это не ibm, у него одна субд на всех платформах. база данных со всем pl/sql кодом переноситься банальным imp/exp
                                                          проблема может быть если там люди извращались с каким-нибудь PRO*COBOL, PRO*C…
                                                          • 0
                                                            В том то и дело, много особенностей именно под ту версию, exp/imp не все корректно переносит
                                                            • 0
                                                              да, вокруг exp/imp нужны танцы с бубном, но никаких особенностей в этом плане на фоне других версий не было. начиная с 9.2.0.4 все работало стабильно относительно. у оракла много особенностей в R1 релизах, но те кто покупают rs/6000 об этом в курсе обычно.
                                                      • 0
                                                        У нас тоже Novell 5 на железке которой лет 12 был, померла, пришлось в VmWare переносить. Так там и живет, никто трогать не хочет )) Гдеж специалиста по novell сейчас надешь…
                                                        • 0
                                                          1. Novell это ещё ничего, Вы скотину (SCO Unixware) не виртуализировали ))
                                                          2. В Хуавэй КунЪЛунЪ разве уже ставится Intel E7-8800 v4 или Intel Skylake?
                                                          3. Хлебнут ещё радости полным черпаком с поддержкой HW… Может в России и выстроили поддержку, но как нибудь пришлют очередного роскосого на стажировку из Африки, и начнется оптимизация...
                                                          • 0
                                                            Следующий шаг — матрёшка из трёх гипервизоров. Сколько всего делал с VMware, но ни разу так и не запихнул виртуалку внутрь виртуалки, но мысли были :)

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

                                                            Самое читаемое