Приложения 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. Обратите внимание, что в выносках на диаграммах отображается место, где решение для рефакторинга обрабатывает соответствующие функции мейнфрейма.
Скачайте файл Visio для этой архитектуры.
Рабочий процесс
Обычно входные данные поступают либо через Azure ExpressRoute с удаленных клиентов, либо из других приложений Azure. В любом случае подключения TCP/IP являются основным средством подключения к системе. Доступ пользователей к веб-приложениям осуществляется через порт TLS 443. Вы можете оставить пользовательский интерфейс веб-приложений прежним, чтобы минимизировать переобучение конечных пользователей, или обновить его, используя современные интерфейсные платформы. Бастион Azure предоставляет административный доступ к виртуальным машинам, повышая безопасность за счет минимизации количества открытых портов.
В Azure доступ к вычислительным кластерам приложения осуществляется через подсистему балансировки нагрузки Azure. Такой подход позволяет масштабируемым ресурсам вычислений обрабатывать входные данные. В зависимости от входных данных можно сбалансировать нагрузку на уровне приложения или на уровне сетевого протокола.
Advanced поддерживает развертывание в контейнерах, на виртуальных машинах или в масштабируемых наборах виртуальных машин. Контейнеры и масштабируемые наборы виртуальных машин, в отличие от собственно виртуальных машин, могут быстро масштабироваться. Переход на контейнеры как единицу масштабирования оптимизирует использование инфраструктуры.
Серверы приложений получают входные данные в вычислительных кластерах и совместно используют состояние и данные приложения с помощью Кэша Azure для Redis или прямого доступа к памяти (RDMA).
Службы данных в кластерах приложений поддерживают несколько подключений к постоянным источникам данных. Возможные источники данных:
- База данных SQL Azure.
- Azure Cosmos DB.
- Базы данных на виртуальных машинах, например Oracle или DB2.
- Репозитории больших данных, например Azure Databricks и Azure Data Lake.
- Службы потоковой передачи данных, например Kafka и Azure Stream Analytics.
Серверы приложений размещают различные программы приложений на основе возможностей языка, таких как классы Java или программы COBOL.
В службах данных используется сочетание следующих компонентов:
Высокопроизводительное хранилище: SSD ценовых категорий "Премиум" и Ultra.
Хранилище файлов: Azure NetApp Files и Файлы Azure.
Хранилище уровня "Стандартный": Хранилище BLOB-объектов Azure, архивация и резервное копирование. Резервное копирование может выполняться в:
- Локально избыточное хранилище (LRS).
- Хранилище, избыточное между зонами (ZRS).
- Гео-избыточное хранилище (GRS).
- Хранилище, геоизбыточное между зонами (GZRS).
Дополнительные сведения см. в статье Избыточность службы хранилища Azure.
Службы данных PaaS (платформа как услуга) Azure предоставляют масштабируемое и высокодоступное хранилище данных для совместного использования в нескольких ресурсах вычислений в кластере. Они также могут быть географически избыточными.
Фабрика данных Azure может принимать данные и выполнять синхронизацию с несколькими источниками данных как в Azure, так и из внешних источников. Хранилище BLOB-объектов Azure — это общая целевая зона для внешних источников данных.
Azure Site Recovery обеспечивает аварийное восстановление виртуальных машин и компонентов кластера контейнеров.
Приложения подключаются к частным конечным точкам различных служб 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.
- Воспользуйтесь калькулятором цен, чтобы оценить расходы на реализацию этого решения.
Соавторы
Эта статья поддерживается корпорацией Майкрософт. Первоначально он был написан следующими участниками.
Автор субъекта:
- Бхаскар Бандам | Старший TPM
Чтобы просмотреть недоступные профили LinkedIn, войдите в LinkedIn.
Следующие шаги
- Дополнительные сведения см. в этом случае legacy2azure@microsoft.com.
- Платформа модернизации как услуга (ModPaaS)
- Решение Automated COBOL Refactoring от Advanced
- Пример. Модернизация при переходе в облако: обгоняя время.