Стратегии переноса приложений с мейнфреймов

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

Для переноса приложений обычно применяется одна или несколько из следующих стратегий:

  • Повторное размещение: перемещение существующего кода, программ и приложений из мейнфрейма. Перекомпилируйте код для запуска в эмуляторе мейнфрейма, размещенном в облачном экземпляре. Как правило, при этом подходе сначала приложения перемещаются в облачный эмулятор, а затем базы данных переносятся в облачную базу данных. Некоторые инженерные и рефакторинг требуются с этой стратегией, а также преобразования данных и файлов.

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

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

  • Перестройка. Некоторые организации принимают решение полностью переписать программы с использованием современных методик. Учитывая дополнительные затраты и сложность этого подхода, он применяется реже, чем lift-and-shift. Если вы также выбрали этот подход, рекомендуем заменить модули и код с помощью механизмов преобразования кода после миграции.

  • Замена. Этот подход заключается в замене функциональных возможностей мейнфреймов на аналогичные функции в облаке. Программное обеспечение как услуга (SaaS) — один из вариантов. При использовании Saas вы используете решение, созданное специально для корпоративной проблемы, например финансов, кадров, производства или планирования корпоративных ресурсов. Кроме того, многие отраслевые приложения теперь доступны для решения проблем, которые ранее использовались для решения пользовательских решений мейнфреймов.

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

Эмуляция мейнфрейма в Azure

Службы Azure могут эмулировать традиционные среды мейнфреймов. Затем можно повторно использовать существующий код мейнфрейма и приложения. Вы можете эмулировать общие компоненты сервера, такие как обработка транзакций в сети (OLTP), пакетные и системы приема данных.

Системы OLTP

Многие мейнфреймы имеют системы OLTP, обрабатывающие тысячи или миллионы обновлений для большого количества пользователей. В этих приложениях часто применяется программное обеспечение для обработки транзакций и экранных форм, например системы управления информацией клиента (CICS), системы управления информацией (IMS) и интерфейсный процессор терминала (TIP).

При перемещении приложений OLTP в Azure эмуляторы для мониторинга транзакций мейнфрейма могут выполняться как инфраструктура как услуга (IaaS) с помощью виртуальных машин (виртуальных машин) в Azure. Веб-серверы также могут реализовать функции обработки экрана и формы. Объедините этот подход с API базы данных, такими как объекты данных ActiveX (ADO), open Database Подключение ivity (ODBC) и База данных Java Подключение ivity (JDBC) для доступа к данным и транзакций.

Пакетные обновления, ограниченные по времени

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

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

Системы приема данных

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

Кроме среды эмуляции, Azure предоставляет службы PaaS (платформа как услуга) и аналитики, которые позволяют улучшить существующие среды мейнфреймов.

Перенос рабочих нагрузок OLTP в Azure

Подход lift-and-shift позволяет быстро перенести существующие приложения в Azure без изменения их кода. Каждое приложение переносится как есть, что обеспечивает преимущества облака без рисков или затрат на внесение изменений в код. С этой целью для мониторов обработки транзакций (TP) мейнфрейма в Azure применяется эмулятор.

Мониторы обработки транзакций предоставляются различными поставщиками и работают на виртуальных машинах (инфраструктура как услуга (IaaS) в Azure). На следующих схемах показаны до и после онлайн-приложения, поддерживаемого IBM DB2, реляционная система управления базами данных (СУБД) на мейнфрейме IBM z/OS. В DB2 для z/OS файлы метода доступа к виртуальному хранилищу (VSAM) и индексно-последовательный метод доступа (ISAM) применяются для хранения неструктурированных файлов. В этой архитектуре CICS также используется для мониторинга транзакций.

Diagram of a

В Azure среды эмуляции выполняют диспетчер TP и пакетные задания, использующие JCL. На уровне данных DB2 заменяется База данных SQL Azure, хотя вы также можете использовать Microsoft SQL Server, DB2 LUW или Базу данных Oracle. Эмулятор поддерживает IMS, VSAM и SEQ. Средства управления системой мейнфрейма заменяются службами Azure и программным обеспечением сторонних поставщиков, которое запускается на виртуальных машинах.

Веб-серверы обычно реализуют функции обработки экрана и записи форм, которые можно объединить с API базы данных, такими как ADO, ODBC и JDBC для доступа к данным и транзакций. Полный перечень IaaS-компонентов Azure зависит от операционной системы, которую вы предпочитаете использовать. Например:

  • ВМ под управлением Windows. Internet Information Server (IIS) вместе с ASP.NET для обработки экрана и бизнес-логики. Для доступа к данным и транзакций используйте стандарт ADO.NET.

  • Виртуальные машины под управлением Linux: серверы приложений на основе Java, такие как обработка экрана процесса Apache Tomcat и функциональные возможности бизнеса на основе Java. Для доступа к данным и транзакций используйте стандарт JDBC.

Перенос пакетных рабочих нагрузок в Azure

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

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

Службы вычислений

Используйте:

  • Виртуальные машины с высокой тактовой частотой процессора. Приложения мейнфреймов часто являются однопоточными и ЦП мейнфреймов имеют высокую скорость часов.

  • Виртуальные машины с большим объемом памяти для кэширования данных и рабочих областей приложений.

  • Виртуальные машины с виртуальными ЦП более высокой плотности, позволяющие использовать преимущества многопоточной обработки, если приложение поддерживает многопоточность.

  • Параллельную обработку. Azure легко масштабируется для параллельной обработки, обеспечивая большую вычислительную мощность для выполнения пакетных операций.

Хранилище

Используйте:

Сеть

Наблюдение

  • Используйте средства мониторинга, Azure Monitor, Аналитика приложений и журналы Azure. Эти средства помогают отслеживать превышение производительности пакетных запусков и уменьшать узкие места.

Перенос сред разработки

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

Компонент Варианты с использованием Azure
z/OS Windows, Linux или UNIX
CICS Службы Azure, предлагаемые Micro Focus, Oracle, GT Software (Fujitsu), TmaxSoft, Raincode и NTT DATA. Также можно переписать решение с использованием Kubernetes.
IMS Службы Azure, предлагаемые Micro Focus и Oracle
Assembler Службы Azure, предлагаемые Raincode и TmaxSoft; COBOL, C или Java; сопоставление с функциями операционной системы
JCL JCL, PowerShell или другие средства для работы со скриптами
COBOL COBOL, C или Java
Natural Natural, COBOL, C или Java
FORTRAN и PL/I FORTRAN, PL/I, COBOL, C или Java
REXX и PL/I REXX, PowerShell или другие средства для работы со скриптами

Перенос баз данных и данных

Как правило, при переносе приложений требуется повторное размещение приложения на уровне данных. Вы можете перенести SQL Server, открытый исходный код и другие реляционные базы данных в полностью управляемые решения в Azure. С помощью Azure Database Migration Service можно использовать Управляемый экземпляр SQL Azure, База данных Azure для PostgreSQL и База данных Azure для MySQL.

К примеру, вы можете перенести приложение, если на уровне данных мейнфрейма используются:

  • База данных IBM DB2 или IMS. Воспользуйтесь базой данных Azure SQL, SQL Server, DB2 LUW или Oracle Database в Azure.

  • VSAM и другие неструктурированные файлы. Воспользуйтесь неструктурированными файлами с индексно-последовательным методом доступа (ISAM) для Базы данных SQL Azure, SQL Server, DB2 LUW или Oracle.

  • Группы даты создания (GDG). Перенесите в Azure файлы, для которых используется соглашение об именовании и расширение имени файла, обеспечивающие аналогичные функциональные возможности для GDG.

На уровне данных IBM есть несколько основных компонентов, которые также необходимо перенести. Например, при переносе базы данных переносится и коллекция c данными в пулах, каждый из которых содержит "dbextents" — наборы данных VSAM z/OS. При миграции нужно указать каталог, определяющий расположения данных в пулах носителей. Кроме того, в плане миграции необходимо учесть журнал базы данных с записями операций, выполняемых в базе данных. База данных может иметь один, два (двойных или альтернативных) или четыре (двойных и альтернативных) журнала.

При переносе базы данных необходимо также перенести следующие компоненты:

  • Диспетчер баз данных. Предоставляет доступ к данным в базе данных. Диспетчер базы данных запускается в отдельном разделе в среде z/OS.
  • Обработчик запросов приложений. Принимает запросы от приложений перед их передачей на сервер приложений.
  • Адаптер подключенного ресурса. Включает компоненты обработчика запросов приложения для использования в транзакциях CICS.
  • Адаптер ресурса пакетной службы. Реализует компоненты обработчика запросов приложения для пакетных приложений z/OS.
  • Интерактивный SQL (ISQL): выполняется как приложение И интерфейс CICS и позволяет пользователям вводить инструкции ИЛИ команды оператора SQL.
  • Приложение CICS. Выполняется под управлением CICS с использованием доступных ресурсов и источников данных в CICS.
  • Приложение пакетной службы. Запускает логику процесса без интерактивного взаимодействия с пользователями, например, для создания массовых обновлений данных или отчетов из базы данных.

Оптимизация масштаба и пропускной способности для Azure

Как правило, мейнфреймы масштабируется, а облако масштабируется. Чтобы оптимизировать масштаб и пропускную способность приложений в стиле мейнфреймов, работающих в Azure, важно понять, как мейнфреймы отделяют и изолируют приложения. Чтобы изолировать ресурсы определенного приложения и управлять ими в одном экземпляре, в мейнфрейме z/OS используется функция логических разделов (LPARS).

Например, в мейнфрейме можно использовать один логический раздел (LPAR) для региона CICS со связанными программами COBOL, а второй LPAR — для базы данных DB2. Другие LPAR часто используются для разработки, тестирования и промежуточной среды.

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

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

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

Diagram of a possible Azure deployment using a primary and a secondary site.

Выполнение поэтапной миграции в Azure

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

Распространенный сценарий — перенос приложения в Azure с сохранением данных, используемых приложением, на мейнфрейме. Конкретное программное обеспечение позволяет приложениям в Azure получать доступ к данным из мейнфрейма. К счастью, широкий выбор решений обеспечивает интеграцию между Azure и существующими средами мейнфреймов, поддержку гибридных сценариев и поэтапную миграцию. Партнеры корпорации Майкрософт, независимые поставщики программного обеспечения и системные интеграторы, смогут помочь вам реализовать такое взаимодействие.

Одним из вариантов является сервер интеграции с узлом Майкрософт. Это решение предоставляет архитектуру распределенной реляционной базы данных (DRDA), необходимую для приложений в Azure. Он позволяет приложениям получать доступ к данным в DB2, которые остаются на мейнфрейме. Для других вариантов интеграции мэйнфреймов в Azure используются решения IBM, Attunity, Codit и других поставщиков, а также решения с открытым исходным кодом.

Решения партнеров

Если вы рассматриваете миграцию мейнфреймов, партнерская экосистема может помочь.

Azure предоставляет проверенную, высокодоступную и масштабируемую инфраструктуру для систем, которые сейчас работают на мейнфреймах. Некоторые рабочие нагрузки могут переноситься с относительной легкостью. Вы можете повторно разместить другие рабочие нагрузки, зависящие от устаревшего системного программного обеспечения, например CICS и IMS. Используйте партнерские решения и перенесите их в Azure с течением времени. Независимо от того, какой выбор вы выбрали, корпорация Майкрософт и наши партнеры могут помочь вам оптимизировать для Azure при сохранении функциональных возможностей системного программного обеспечения мейнфреймов.

Подробнее

Дополнительные сведения см. на следующих ресурсах: