Рефакторинг приложений мейнфреймов с помощью решения Advanced

Файлы Azure
Azure Load Balancer
База данных SQL Azure
Хранилище Azure
Виртуальные машины Azure

Приложения COBOL для автоматического рефакторинга решения COBOL advanced, а также те, которые написаны в CA-Gen, CA-Telon, Natural, ADSO и других устаревших языках для доставки облачных приложений и баз данных, которые функционально эквивалентны их устаревшим аналогам. Это позволяет сократить затраты, обеспечивает более глубокую интеграцию, а также настройку в соответствии с бизнес-требованиями. Кроме того, это решение открывает совершенно новый мир качества и масштабируемости — от автоматизированного тестирования до контроля качества, а также возможность воспользоваться преимуществами контейнерного развертывания и оркестрации с помощью Docker и Kubernetes.

Архитектура мейнфреймов

Ниже приведен пример системы, в которой можно использовать автоматическую факторизацию.

Схема архитектуры, показывающая систему мейнфрейма, включающую устаревшие языковые приложения.

Рабочий процесс

А. Пользователи предоставляют входные данные по протоколу TCP/IP с помощью таких протоколов, как TN3270, HTTP и HTTPS.

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

C. Пакетные и веб-приложения обрабатывают входные данные.

D. COBOL, PL/I, Assembler или совместимые языки выполняются в средах с их поддержкой.

Е. Служба "Файлы" и СУБД предоставляют хранилище данных. К типам баз данных относятся иерархические, сетевые и реляционные.

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

G. ПО промежуточного слоя и вспомогательные службы управляют такими задачами, как ленточное хранилище, очереди, вывод и веб-службы.

H. Операционные системы предоставляют интерфейс между подсистемой и программным обеспечением, которое он запускает.

I. Секции выполняют отдельные рабочие нагрузки или разделяют типы заданий в среде.

Архитектура Azure

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

Схема архитектуры, показывающая систему в Azure после рефакторинга.

Скачайте файл Visio для этой архитектуры.

Рабочий процесс

  1. Обычно входные данные поступают либо через Azure ExpressRoute с удаленных клиентов, либо из других приложений Azure. В любом случае подключения TCP/IP являются основным средством подключения к системе. Доступ пользователей к веб-приложениям осуществляется через порт TLS 443. Вы можете оставить пользовательский интерфейс веб-приложений прежним, чтобы минимизировать переобучение конечных пользователей, или обновить его, используя современные интерфейсные платформы. Бастион Azure предоставляет административный доступ к виртуальным машинам, повышая безопасность за счет минимизации количества открытых портов.

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

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

  4. Серверы приложений получают входные данные в вычислительных кластерах и совместно используют состояние и данные приложения с помощью Кэша Azure для Redis или прямого доступа к памяти (RDMA).

  5. Службы данных в кластерах приложений поддерживают несколько подключений к постоянным источникам данных. Возможные источники данных:

    • База данных SQL Azure.
    • Azure Cosmos DB.
    • Базы данных на виртуальных машинах, например Oracle или DB2.
    • Репозитории больших данных, например Azure Databricks и Azure Data Lake.
    • Службы потоковой передачи данных, например Kafka и Azure Stream Analytics.
  6. Серверы приложений размещают различные программы приложений на основе возможностей языка, таких как классы Java или программы COBOL.

  7. В службах данных используется сочетание следующих компонентов:

    1. Высокопроизводительное хранилище: SSD ценовых категорий "Премиум" и Ultra.

    2. Хранилище файлов: Azure NetApp Files и Файлы Azure.

    3. Хранилище уровня "Стандартный": Хранилище BLOB-объектов Azure, архивация и резервное копирование. Резервное копирование может выполняться в:

      1. Локально избыточное хранилище (LRS).
      2. Хранилище, избыточное между зонами (ZRS).
      3. Гео-избыточное хранилище (GRS).
      4. Хранилище, геоизбыточное между зонами (GZRS).

      Дополнительные сведения см. в статье Избыточность службы хранилища Azure.

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

  9. Фабрика данных Azure может принимать данные и выполнять синхронизацию с несколькими источниками данных как в Azure, так и из внешних источников. Хранилище BLOB-объектов Azure — это общая целевая зона для внешних источников данных.

  10. Azure Site Recovery обеспечивает аварийное восстановление виртуальных машин и компонентов кластера контейнеров.

  11. Приложения подключаются к частным конечным точкам различных служб PaaS.

Компоненты

В этом примере используются следующие компоненты Azure. Некоторые из этих компонентов и рабочих процессов взаимозаменяемы или необязательны (в зависимости от сценария).

  • Azure ExpressRoute расширяет ваши локальные сети в Azure по частному, выделенному оптоволоконному подключению от поставщика подключений. ExpressRoute устанавливает подключения к облачным службам Майкрософт, например к Azure и Microsoft 365.
  • Бастион Azure предоставляет прозрачные подключения RDP и SSH к виртуальным машинам в виртуальной сети с портала Azure по протоколу TLS. Бастион Azure повышает защиту административного доступа, сводя к минимуму число открытых портов.
  • Azure Load Balancer распределяет входящий трафик по кластерам вычислительных ресурсов. При этом вы можете определить правила и другие критерии для распределения трафика.
  • Служба Azure Kubernetes (AKS) — это полностью управляемая служба Kubernetes для развертывания и администрирования контейнерных приложений. AKS предоставляет бессерверную платформу Kubernetes со встроенными возможностями непрерывной интеграции и непрерывной поставки,а также функции безопасности и управления корпоративного уровня.
  • Служба Виртуальные машины Azure предлагает предоставляемые по запросу масштабируемые вычислительные ресурсы разных размеров и типов. С Виртуальными машинами Azure вы получаете преимущества гибкой виртуализации без необходимости покупать и обслуживать физическое оборудование.
  • Виртуальная сеть Azure — это основной строительный блок частных сетей Azure. Виртуальные машины в виртуальных сетях могут безопасно обмениваться данными друг с другом, с Интернетом и локальными сетями. Виртуальная сеть похожа на традиционную локальную сеть, но с преимуществами инфраструктуры Azure, такими как масштабируемость, высокий уровень доступности и изолированность.
  • Приватный канал Azure обеспечивает частное подключение из виртуальной сети к службам Azure. Приватный канал исключает доступ к публичному интернету, упрощая архитектуру сети и обеспечивая безопасность подключений между конечными точками Azure.
  • Кэш Azure для Redis добавляет быстрый уровень кэширования в архитектуру приложений, что позволяет обрабатывать значительные объемы данных с большой скоростью. Кэш Azure для Redis просто и экономично масштабирует производительность, имея все преимущества полностью управляемой службы.
  • Служба хранилища Azure предлагает масштабируемое и защищенное облачное хранилище для данных, приложений и рабочих нагрузок.
    • Хранилище дисков Azure представляет собой высокопроизводительное, надежное блочное хранилище для критических важных для бизнеса приложений. Управляемые диски Azure — это тома хранилища на уровне блоков, управляемые Azure на виртуальных машинах Azure. Доступные типы дискового хранилища: SSD ценовых категорий "Ультра", "Премиум" и "Стандартный", а также HDD ценовой категории "Стандартный". В этой архитектуре используются диски SSD ценовой категории "Премиум" или "Ультра".
    • Служба "Файлы Azure" предоставляет полностью управляемые общие файловые ресурсы в облаке, доступ к которым можно получить с помощью стандартного отраслевого протокола SMB. Облачные и локальные развертывания Windows, Linux и macOS могут параллельно подключать общие папки.
    • Azure NetApp Files предоставляет общие папки Azure корпоративного класса на основе NetApp. Azure NetApp Files упрощает предприятиям перенос и выполнение сложных приложений на основе файлов, не требуя каких-либо изменений кода.
    • Хранилище BLOB-объектов Azure — это масштабируемое и защищенное хранилище объектов для архивов, озер данных, высокопроизводительных вычислений, машинного обучения и облачных рабочих нагрузок.
  • Базы данных Azure предлагают полностью управляемые реляционные базы данных и базы данных NoSQL для удовлетворения потребностей современных приложений. Автоматизированное управление инфраструктурой обеспечивает масштабируемость, доступность и безопасность.
    • База данных SQL Azure представляет собой полностью управляемое ядро СУБД в режиме PaaS. База данных SQL всегда работает на последней стабильной версии SQL Server и исправленной ОС с высоким уровнем доступности. Встроенные возможности управления базами данных PaaS включают обновление, установку исправлений, резервное копирование и мониторинг. Вы же можете сосредоточиться на управлении и оптимизации критически важных для бизнеса баз данных в определенных областях.
    • База данных Azure для PostgreSQL — это полностью управляемая база данных на основе ядра реляционной СУБД PostgreSQL с открытым кодом. Гипермасштабирование (Citus) — это вариант развертывания, который позволяет масштабировать запросы между несколькими компьютерами с использованием сегментирования. Это решение предназначено для приложений, которым требуется более высокая масштабируемость и производительность.
    • Azure Cosmos DB — это полностью управляемая, быстрая база данных NoSQL с открытыми API для использования в любом масштабе.
  • Azure Site Recovery зеркалирует виртуальные машины Azure во вторичный регион Azure для быстрой отработки отказа и аварийного восстановления в случае сбоя центра обработки данных Azure.
  • Фабрика данных Azure — это служба для извлечения, преобразования и загрузки данных, с помощью которой можно интегрировать и преобразовывать данные бессерверных вычислений в горизонтальном масштабе. Эта служба предоставляет пользовательский интерфейс без кода для интуитивно понятной разработки с возможностью мониторинга и управления с единой панели.

Подробности сценария

Существует множество причин для поиска альтернатив распространенным до сих пор приложениям для мэйнфреймов на базе COBOL:

  • COBOL и CA-Gen/Natural/Telon/ASDO разработчики уходят в отставку, и никто не обучен заменить их, что приводит к постоянному снижению пула талантов. По мере роста нехватки талантов затраты и риски полагаться на COBOL и другие устаревшие языки увеличиваются.
  • Приложения разрабатывались не для современных информационных технологий, что привело к сложностям интеграции и ограничению гибкости.
  • Оборудование и программное обеспечение мейнфреймов IBM стоят дорого, а стоимость лицензирования и обслуживания вспомогательных приложений и баз данных мейнфреймов растет.

Автоматическое рефакторинг решения для рефакторинга решения COBOL advanced, а также написанные на других устаревших языках для доставки облачных приложений и баз данных, которые функционально эквивалентны их устаревшим аналогам. Это позволяет сократить затраты, обеспечивает более глубокую интеграцию, а также настройку в соответствии с бизнес-требованиями. Кроме того, это решение открывает совершенно новый мир качества и масштабируемости — от автоматизированного тестирования до контроля качества, а также возможность воспользоваться преимуществами контейнерного развертывания и оркестрации с помощью Docker и Kubernetes.

Приложения после рефакторинга:

  • функционально эквивалентны исходным;
  • просты в обслуживании — они получают высшие оценки по шкале SonarQube и следуют объектно-ориентированным концепциям и парадигмам;
  • работают так же хорошо, как исходные приложения, или даже лучше;
  • готовы к работе в облаке и предоставляются с помощью стандартных цепочки инструментов и рекомендаций DevOps.

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

После того как решение Advanced выполнит рефакторинг приложений COBOL и связанных с ними баз данных, разработчики Java и C# смогут использовать стандартные инструменты DevOps и концепции CI/CD для расширения функциональности приложений. Процесс рефакторинга сохраняет бизнес-логику и оптимизирует производительность. Дополнительные преимущества: эластичность, определение детализированной службы и простая интеграция с ориентированными на облако службами.

Решение Automated COBOL Refactoring доступно для большинства диалектов и платформ COBOL, включая z/OS, OpenVMS и VME.

Потенциальные варианты использования

Расширенный рефакторинг полезен во многих сценариях, включая следующие.

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

Рекомендации

Включите следующие элементы Платформы Microsoft Azure с продуманной архитектурой для создания высокодоступной и безопасной системы.

Availability

  • С помощью службы Azure Site Recovery архитектура зеркалирует виртуальные машины Azure в дополнительный регион Azure для быстрой отработки отказа и аварийного восстановления в случае сбоя центра обработки данных Azure.
  • Репликация группы автоматической отработки отказа Azure управляет репликацией базы данных и отработкой отказа в дополнительный регион.

Операции

Рефакторинг не только позволяет быстрее внедрить облачные технологии, но и способствует применению принципов DevOps и Agile. Вы можете выбрать любой подход к разработке и развертыванию в рабочей среде.

Безопасность

Это решение использует группу безопасности сети Azure для управления трафиком между ресурсами Azure. Дополнительные сведения см. в разделе Группы безопасности сети.

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

Бастион Azure повышает защиту административного доступа, сводя к минимуму число открытых портов. Бастион предоставляет защищенные и прозрачные подключения RDP/SSH к виртуальным машинам виртуальной сети прямо с портала Azure по протоколу TLS.

Устойчивость

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

Оптимизация затрат

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

  • Azure обеспечивает оптимизацию затрат благодаря выполнению задач на виртуальных машинах. Вы можете отключить виртуальные машины, если они не используются, и запланировать их запуск в соответствии с известными тенденциями использования. Дополнительные сведения об оптимизации затрат для экземпляров виртуальных машин см. в статье Azure Well-Architected Framework.
  • Виртуальные машины в этой архитектуре используют диски SSD цен. категории "Премиум" или диски SSD цен. категории "Ультра". Дополнительные сведения о вариантах дисков и ценах на них см. в статье Цены на Управляемые диски.
  • База данных SQL оптимизирует затраты с помощью бессерверных вычислений и ресурсов хранилища с Гипермасштабированием, которые масштабируются автоматически. Дополнительные сведения о вариантах Баз данных SQL и ценах на них см. в статье Цены на Базу данных SQL Azure.
  • Воспользуйтесь калькулятором цен, чтобы оценить расходы на реализацию этого решения.

Соавторы

Эта статья поддерживается корпорацией Майкрософт. Первоначально он был написан следующими участник.

Автор субъекта:

Чтобы просмотреть недоступные профили LinkedIn, войдите в LinkedIn.

Следующие шаги