Modernizing Legacy Applications to Microsoft Azure - Steve Read - E-Book

Modernizing Legacy Applications to Microsoft Azure E-Book

Steve Read

0,0
32,39 €

-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.

Mehr erfahren.
Beschreibung

Organizations have varying circumstances, objectives, and prerequisites when contemplating a hyper-scale cloud solution transformation to a platform such as Azure. Modernizing Legacy Applications to Microsoft Azure uncovers potential scenarios and provides choices, methodologies, techniques, and prospective possibilities for transitioning from legacy applications to the Microsoft Azure environment.
You’ll start by understanding the legacy systems and the main concerns regarding migration. Then, you’ll investigate why distributed architectures are compelling and the various components of the Azure platform needed during migration. After that, you’ll explore the approaches to modernizing legacy applications and the Rs of modernizing (i.e., rehost, refactor, rearchitect, and retire). You’ll also learn about integration approaches and potential pitfalls.
By the end of this book, you’ll be well equipped to modernize your legacy workloads while being aware of pitfalls and best practices.

Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:

EPUB

Seitenzahl: 290

Veröffentlichungsjahr: 2023

Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Modernizing Legacy Applications to Microsoft Azure

Plan and execute your modernization journey seamlessly

Steve Read

Larry Mead

BIRMINGHAM—MUMBAI

Modernizing Legacy Applications to Microsoft Azure

Copyright © 2023 Packt Publishing

All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.

Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the authors, nor Packt Publishing or its dealers and distributors, will be held liable for any damages caused or alleged to have been caused directly or indirectly by this book.

Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.

Group Product Manager: Preet Ahuja

Publishing Product Manager: Preet Ahuja

Senior Editor: Runcil Rebello

Technical Editor: Irfa Ansari

Copy Editor: Safis Editing

Project Coordinator: Ashwin Kharwa

Proofreader: Safis Editing

Indexer: Hemangini Bari

Production Designer: Jyoti Kadam

Marketing Coordinator: Rohan Dobhal

First published: September 2023

Production reference: 1180823

Published by Packt Publishing Ltd.

Grosvenor House

11 St Paul’s Square

Birmingham

B3 1RB

ISBN 978-1-80461-665-9

www.packtpub.com

I would like to acknowledge all the people who helped put this book together, especially Bob Ellsworth, who provided the foreword, and the excellent technical reviewers.

– Steve Read

To my grandchildren, for giving me inspiration for the future as we move from legacy systems to the new era of technology.

– Larry Mead

Foreword

Customers have been modernizing legacy applications for over 50 years. The pace of modernization has accelerated due to an increasing focus on business drivers, improvements in modernization technology and services, and new cloud deployment options, such as Azure.

Each customer is faced with one or more drivers to migrate, modernize, or transform. These drivers include increasing costs, decreasing skills, lack of deployment options, and lack of agility to be responsive to changing business requirements. As these drivers increase, more and more pressure is placed on Information Technology (IT) organizations to modernize their legacy applications.

With the increase in customer demand, migration tool vendors have invested in their technology to address this demand. This includes improving their tools to increase the level of automation and reduce manual intervention. Testing tools have also improved to accelerate the testing effort. These improvements result in lower costs, quicker migrations, and lower risk.

The cloud has been a positive revolutionary disruptor for IT. The ability to quickly deploy workloads at lower costs has accelerated the availability and adoption of new solutions to support businesses. What started as the ability to deploy virtual machines in the cloud expanded to include business and sales tools, such as Microsoft 365, Customer Relationship Management (CRM), and Enterprise Resource Planning (ERP). Cloud credibility has increased, ensuring that customers’ most critical business applications can be cost-effectively deployed with low risk and at scale. New solutions, such as OpenAI, will continue to increase the number of customers who have embraced a cloud-first strategy. This strategy will increasingly be applied to legacy systems.

Depending on your current legacy system, a modernization project can be complex and risky. While there have been tens of thousands of successful modernization projects, some projects have failed. To ensure a successful modernization, you must understand your current legacy system, the Azure cloud platform, and options for modernizing your current applications and systems. To facilitate this process, it is best to seek advice from experts who have decades of experience in modernizing legacy applications and systems.

The modernization knowledge and advice provided in this book provide the first step in the successful modernization of your legacy applications. Once you understand these concepts, you will be ready to engage with the right legacy transformation technology and service providers in order to accelerate your modernization journey.

Bob Ellsworth

President, Mainframe Transformation Consulting

Contributors

About the authors

Steve Read currently works at Microsoft as a Global Black Belt. In this position, he helps customers migrate their legacy workloads to Azure. He has been at Microsoft for 24 years in various technical roles, focusing on application and database development. Before joining Microsoft in 1999, he was a developer on both mainframe and UNIX platforms in the banking, healthcare, and government industries.

I would like to thank all of the people who made this book a reality. It is quite an effort to publish a book like this and it takes a village to make it happen. I would like to thank the folks at Packt, who were a pleasure to work with, Bob Ellsworth and Larry Mead, for being mentors to me, and especially the technical reviewers, whose expertise helped make this book more impactful.

Larry Mead is a principal technical program manager in Microsoft Azure Core engineering. Larry has over 45 years of experience developing mission-critical systems, starting with mainframes and mid-range systems, continuing with distributed systems, and now with cloud-based systems. Larry specializes in systems for financial services, but he also has experience with retail, manufacturing, transportation, and government systems. Currently, Larry specializes in how to develop Azure services for mission-critical systems.

I would like to thank co-author Steve Read and my colleagues from my time at Microsoft, who helped review and revise the content of this book.

About the reviewers

Harri Jaakkonen is a Microsoft Valuable Professional within the security category and targets identity and access management. He is mainly focused on Microsoft technologies but also deals with network devices, load balancing, disaster recovery, and other non-Microsoft solutions. He has 27 years of experience in these areas.

Amethyst George Solomon is a senior engineering architect with the Microsoft Azure database product engineering group and collaborates with multiple product and service owners to build customer-oriented services on Azure to run mission-critical systems. He has been working with mainframe and mid-range modernization for more than a decade and has worked with customers on architecting the workload modernization strategy with the right technology. He drives product feature specifications across Azure platform products, which helps accelerate the adoption of Azure services by unblocking and accelerating complex workload migrations such as mainframes and making customer migrations successful on Azure.

Thanks to my family and friends who have been supportive throughout this time. Their support allowed me to concentrate and spend an adequate amount of time validating and adding value to this book. I would also like to thank the team behind maintaining Microsoft’s documentation, for keeping it up to date, and the product group, for keeping the information precise.

Roy de Milde has been working in the field of infrastructure and application development for over 15 years for different IT companies. He has experience and knowledge in modernizing applications to leverage the latest and greatest technology and generate more business value. For the last eight years, he has been focusing on application modernization and innovation with public cloud technology for enterprise customers.

Philip Brooks holds a B.Sc. degree in computer science from Shippensburg University, as well as a PMP certificate from the Project Management Institute. He serves as a director and secretary for the SHAPE Foundation. Philip started his 34+ year career with what became Unisys as an on-site systems mainframe support analyst for the US Army under Sperry Univac. He has been active in the IT client and system support arena since 1983. He has been an operator, installer, trainer, systems internalist, and trusted consultant, and provided program and sales support across a broad spectrum of IT services and clients during his 40 years in the IT industry. Since 2020, Mr. Brooks has been part of the Microsoft Azure Core Legacy Team.

Bhaskar Bandam is an experienced professional in technology. He has been part of Microsoft’s Azure Core engineering team for over three years, assisting customers with legacy workload migration to Azure. Previously, Bhaskar worked as a federal contractor, specializing in on-premises workload migration. With a career span of nearly 25 years, Bhaskar has honed his expertise in mainframe systems. He started as a mainframe developer and progressively advanced into key positions such as DevOps and digital transformation manager. Bhaskar holds a master’s degree in information systems, and an MBA, strengthening his technology foundation and managerial skills.

Bhuvi Vatsey is a seasoned modernization professional with over 14 years of industry experience across the hospitality, retail, healthcare, and telecom domains as an application developer, architect, solution lead, and program manager. She has hands-on experience in transforming mission-critical applications into cloud-first and cloud-native distributed systems. She has successfully led projects with multimillion-dollar spending on migration, enhancement, and modernization of mainframe systems with customers and partners. In her current role, she is responsible for helping enterprise customers meet/exceed their modernization objectives with the right strategy and underlying solutions on Azure.

Ricardo Galvan is a senior technical program manager on the Azure Core engineering team. Ricardo provides technical assistance in migrating mainframe and mid-range applications to Azure. Before joining Microsoft, he built software tools to automate the conversion of source code of applications and databases. Ricardo specializes in converting Cobol of IBM/Unisys mainframes and IBM i (AS/400), RPG, CL, ALGOL, and other programming languages to C# and Java, among others. He is a full stack developer covering a wide range of mainframe, mid-range, and Linux/Windows programming languages, database engines, and web frameworks. He completed his first Unisys MCP mainframe COBOL and LINC banking application migration to HP-UX back in 1994.

Table of Contents

Preface

Part 1: Legacy Estate Options

1

Understanding Your Legacy Environment – the Modernization Journey

Current legacy hardware and operating system

IBM and Unisys mainframes

IBM Midrange

Enterprise Unix

Other legacy estates

The current state of legacy applications

Scope of the legacy application estate

Languages used in the current estate

Third-party (COTS) applications

Utilities (tools) used by applications

Operating system services

Application-specific SLAs

What are the goals of moving to a hyperscale cloud such as Microsoft Azure?

Cost-related

Application development-related

Hardware-related

The need to choose a target architecture

Azure Landing Zones

Consider your constraints

Time constraints

Resource constraints

Funding constraints

How do you declare success for a legacy modernization to Azure?

Identify the first workload to modernize to Azure

Determine if modernization can be a multi-step process

Establish hybrid and integration requirements

Establish repeatable processes

Summary

2

Strategies for Modernizing IBM and Unisys Mainframes

IBM mainframes

z/OS – The most common IBM mainframe operating system

z/VSE – Similar to z/OS, but usually for smaller workloads

z/VM – Z-series virtualization

z/TPF – For high-volume transaction workloads

z/Linux – Linux that can run under z/VM

Specialty engines – IFL and zIIP

Unisys

Libra – From the Burroughs MCP line

Dorado – From the Sperry OS/2200 operating system

Summary

3

Midrange to Azure

What is a midrange system?

POWER systems

IBM iSeries

OS/400 overview

Applications

Data

Control Language

ISV versus homegrown solutions

Administration

IBM AIX

AIX overview

AIX versus Linux — what’s the difference?

Applications

Azure Spring Cloud

Data

COTS applications

Administration

Summary

4

Modernizing Legacy UNIX Systems

The current UNIX landscape

BSD System 4.3 versus System V

Old UNIX versus modern UNIX

UNIX scripts

Applications

Migrating Solaris

SPARC versus x86

Emulation options

Converting to Linux

Converting to PaaS services

Hosting in Azure

Migrating HP-UX

PA-RISC versus Itanium

Emulation options

Converting to Linux

Converting to Azure PaaS

Hosting in Azure

Other UNIX variants

Summary

Part 2: Architecture Options

5

An Overview of the Microsoft Azure Cloud Platform

A brief history of Azure

Azure Regions

Azure Stack

Azure compute

Azure storage

Azure networking

Understanding internal Azure networking services

Looking at Azure networking services for connection to on-premises data centers

Azure databases

Azure security and identity

Understanding the Azure approach to hybrid

Deploying and maintaining systems on Azure

Looking at cloud native, serverless computing, and microservices

Summary

6

Azure Cloud Architecture Overview for Mission-Critical Workloads

What is mission-critical?

Understanding Azure at a high level

Understanding Azure’s approach to availability and resiliency

Looking at redundancy in Azure

Looking briefly at Azure SLAs and the nines of availability

Looking at redundancy within a region

Looking at redundancy across regions

Looking at Azure’s approach to IaaS

Looking at IaaS for data

Looking at IaaS for applications

Discussing firewalls versus network security groups

Using Azure PaaS features

Looking at database PaaS

Looking at PaaS for applications

Understanding Azure’s features for integration

Understanding Azure features for backup and recovery

Looking at a sample Azure deployment for a mainframe workload

Summary

7

Behold the Monolith – Pros and Cons of a Monolithic Architecture

What is a monolith?

How did most mainframe applications become monoliths?

What about iSeries and Enterprise UNIX?

What are the monolith’s advantages?

What are the monolith’s disadvantages?

Why are born-in-the-cloud applications not typically monoliths?

Can you migrate a monolith to Azure?

What if you want to transform a monolith to cloud native?

The tyranny of locality

The database-centric nature of a monolith

The paradigm shift

What makes an application cloud native?

How do microservices fit into the picture?

Decomposition patterns

Summary

Part 3: Azure Deployment and Future Considerations

8

Exploring Deployment Options in Azure

What exactly do we mean by deployment options?

Good ol’ VMs

Benefits

Things to consider

ASF

Benefits

Things to consider

Azure Functions

Benefits

Things to consider

Containers

Azure App Service

Benefits

Things to consider

Azure Stack

Summary

9

Modernization Strategies and Patterns – the Big Picture

Data center exit – how to get to Azure as quickly as possible

Moving to emulators on VMs

Deploying the VMs that use ISV tools

Deploying to containers and PaaS

Redesigning for Azure – completely changing the application

Staged modernization strategy – taking a multi-step approach

Creating a modernization factory approach

Summary

10

Modernizing the Monolith - Best Practices

Understanding how we got here – the evolution of application development

A deeper dive into microservices

What is the Saga pattern?

What is the Strangler Fig pattern?

Introducing Dapr

Other essential microservices components

Azure API Management gateways

Event-driven architecture versus traditional batch processing

The rise of Apache Kafka

In modernization, one size does not fit all

Best practices for modernizing the monolith

Summary

11

Integration – Playing Friendly in a Cloud-Native World

Technical requirements

The role of integration in a cloud-native world

Data integration

Application integration

Monitoring and management integration

Application operations integration

The different types of integration

Integration with the existing legacy estate

Integration with other Azure-based systems

Integration with other clouds

Integration with third-party systems

How integration fits into the bigger picture

Strategies for playing friendly

How to avoid not playing friendly

Summary

12

Planning for the Future – Trends to Be Aware of

Where we are today

What to expect in the near term

What to expect in the long term

Areas of modernization innovation for Azure

OpenAI and ChatGPT

Azure Arc

Azure Migrate

Azure Data Factory

Azure Logic Apps and Azure Power Apps

Microsoft Fabric

Where do Azure partners fit in?

Where does Microsoft fit in?

The advent of multicloud

Summary

Index

Other Books You May Enjoy

Preface

Hello all. This book will provide the background, options, and project planning for moving a legacy state on mainframes, mid-range, and Enterprise UNIX to the Azure cloud. This book is intended for IT architects, program managers, and project managers (alongside business groups) to understand the scope of modernization.

Who this book is for

The book will cover topics to help legacy personnel understand services in Azure, and will also help Azure personnel understand the legacy environment that is the source of the migration.

What this book covers

Chapter 1, Understanding Your Legacy Environment - the Modernization Journey, looks at existing legacy environments to get a baseline on the scope of modernization.

Chapter 2, Strategies for Modernizing IBM and Unisys Mainframes, specifically looks at IBM and Unisys mainframes, and the options for migrating these to Azure.

Chapter 3, Midrange to Azure, looks at options for systems that run on IBM Power, including iSeries and AIX.

Chapter 4, Modernizing Legacy UNIX Systems, looks at options for Enterprise UNIX systems, such as Solaris and HP-UX.

Chapter 5, An Overview of the Microsoft Azure Cloud Platform, looks at the various options of the Azure Cloud platform as related to migrating legacy applications.

Chapter 6, Azure Cloud Architecture Overview for Mission-Critical Workloads, looks at the capabilities and approaches for creating mission-critical systems on Azure.

Chapter 7, Behold the Monolith – Pros and Cons of a Monolithic Architecture, looks at why many legacy applications are monoliths, and the options for moving to Azure.

Chapter 8, Exploring Deployment Options in Azure, looks at strategies for actually moving the legacy applications and data to Azure.

Chapter 9, Modernization Strategies and Patterns - the Big Picture, covers strategies for moving to Azure. This includes rehosting, refactoring, and rewriting. Additionally, we cover the big bang or phased approach.

Chapter 10, Modernizing the Monolith - Best Practices, specifically looks at the challenges of modernizing monolith applications to Azure.

Chapter 11, Integration - Playing Friendly in a Cloud-Native World, looks at best practices for running in the Azure cloud.

Chapter 12, Planning for the Future - Trends to Be Aware of, looks at trends for future Azure features, and how these trends may affect your modernization.

To get the most out of this book

To get the most out of this book, we recommend that you have a background in a specific legacy environment, such as IBM or Unisys mainframe, Midrange, or Enterprise UNIX environment. Additionally, it would be helpful to have an application or system in mind for moving to Azure, or you want to build an overall strategy for moving to Azure. Finally, it would be helpful to have a background in the service-level agreement (SLA) mission-critical systems you might want to migrate.

Conventions used

There are a number of text conventions used throughout this book.

Bold: Indicates a new term, an important word, or words that you see onscreen. For instance, words in menus or dialog boxes appear in bold. Here is an example: “Azure Web App for Containers is technically part of what is known collectively as Azure App Service.”

Tips or important notes

Appear like this.

Get in touch

Feedback from our readers is always welcome.

General feedback: If you have questions about any aspect of this book, email us at [email protected] and mention the book title in the subject of your message.

Errata: Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you have found a mistake in this book, we would be grateful if you would report this to us. Please visit www.packtpub.com/support/errata and fill in the form.

Piracy: If you come across any illegal copies of our works in any form on the internet, we would be grateful if you would provide us with the location address or website name. Please contact us at [email protected] with a link to the material.

If you are interested in becoming an author: If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, please visit authors.packtpub.com.

Share Your Thoughts

Once you’ve read Modernizing Legacy Applications to Microsoft Azure, we’d love to hear your thoughts! Please click here to go straight to the Amazon review page for this book and share your feedback.

Your review is important to us and the tech community and will help us make sure we’re delivering excellent quality content.

Download a free PDF copy of this book

Thanks for purchasing this book!

Do you like to read on the go but are unable to carry your print books everywhere?

Is your eBook purchase not compatible with the device of your choice?

Don’t worry, now with every Packt book you get a DRM-free PDF version of that book at no cost.

Read anywhere, any place, on any device. Search, copy, and paste code from your favorite technical books directly into your application.

The perks don’t stop there, you can get exclusive access to discounts, newsletters, and great free content in your inbox daily

Follow these simple steps to get the benefits:

Scan the QR code or visit the link below

https://packt.link/free-ebook/9781804616659

Submit your proof of purchaseThat’s it! We’ll send your free PDF and other benefits to your email directly

Part 1: Legacy Estate Options

In order to understand the options for moving a legacy application to Azure, we must first look at the options for the various types of legacy estates.

This part contains the following chapters:

Chapter 1, Understanding Your Legacy Environment – the Modernization JourneyChapter 2, Strategies for Modernizing IBM and Unisys MainframesChapter 3, Midrange to AzureChapter 4, Modernizing Legacy UNIX Systems

1

Understanding Your Legacy Environment – the Modernization Journey

Before you choose the right option to move your legacy estate to a hyperscale cloud provider such as Azure, you need to understand the current environment of your legacy estate to know the options that might exist. This chapter will focus on the areas you should consider. Also, while many of the concepts that we will discuss can be applied to other hyperscale clouds, this book will focus on Azure. So, let’s start with a list of topics that we will cover in this chapter to help you understand your current legacy estate:

Current legacy hardware and operating systemThe current state of legacy applicationsWhat are the goals of moving to a hyperscale cloud such as Microsoft Azure?The need to choose a target architectureConsider your constraintsHow do you declare success for a legacy modernization to Azure?

Having been involved in many modernizations of legacy environments to Azure, understanding these fundamentals will both increase the likelihood of a successful modernization and provide you with an Azure estate that exceeds the capabilities of your current legacy environment.

Current legacy hardware and operating system

Many people think of mainframes when the term legacy estate is used. However, the term mainframe does not have the same meaning for all people. Additionally, there are non-mainframe systems that can either make up or surround a legacy estate. This section will focus on four types of legacy estates:

IBM and Unisys mainframesIBM midrangeEnterprise UnixOther legacy estates

IBM and Unisys mainframes

IBM mainframes have been around for over 50 years and have the largest share of the mainframe market. The current version is called the z series. Several operating systems can run on z hardware, including z/OS, z/VSE, z/TPF, and z/VM. Currently, IBM mainframes can also run Linux and specialty engines such as the z Integrated Information Processor (zIIP) and Integrated Facility for Linux (IFL). The most common operating environment we see is z/OS, which might also include zIIPs and IFLs in the same environment. This will be the type of IBM mainframe environment we will look at in this book for modernizing to Azure.

If you do have an IBM mainframe estate running z/OS, there are several other factors that you need to take into account before proceeding with an Azure cloud modernization. These include the mainframe size, features in use, and Service Level Agreements (SLAs). All of these factors need to be considered when modernizing to Azure.

The second largest mainframe market share belongs to Unisys. As with IBM mainframes, Unisys mainframes come in multiple versions. These include Libra (MCP) and Dorado (2200). To understand the differences, it is important to look at their history. Unisys is the result of a merger of two companies, Burroughs and Sperry. Libra comes from the Burroughs lineage. Dorado comes from the Sperry lineage. Keep in mind these are separate operating systems and require different modernization strategies.

As with IBM mainframes, you also need to take into account sizing, features, and SLAs.

IBM Midrange

For this book, we will consider IBM midrange systems to be POWER-based hardware that runs the iSeries OS. The IBM iSeries platform has been in existence for over 30 years and has included systems such as AS/400, System 36, and System 38. Many users of the iSeries platform also run mainframe systems. However, the iSeries is a distinct operating environment versus the IBM z series. As the name implies, midrange systems are typically smaller than mainframes. These systems may run mission-critical applications that require high performance. The iSeries operating system is tightly integrated with the POWER hardware to provide this high level of performance. Unlike the z systems, the iSeries is the only operating system for midrange. There are multiple versions of the iSeries in use today. But these share a common ancestry.

The POWER hardware can also run a Unix variant (AIX). This will be discussed separately in Chapter 3. Sizing, features, and SLAs are also factors for modernizing the iSeries.

Enterprise Unix

While there are several versions of Unix, for this book, we will concentrate on AIX, Solaris, and HP-UX. Unix systems are very different than mainframe and midrange environments. Unix systems were one of the first operating system environments that promised the option of Open Systems. However, as it turns out, the Unix of Open Systems meant the operating system could run on multiple hardware platforms, not that applications developed for one platform could run without modification on another platform. Unix systems are still widely used in several systems. However, each major variant requires a different approach.

IBM AIX systems on POWER hardware are widely used and provide high performance and availability. Solaris is also widely used. Solaris can currently run on x86 but also continues to run on Sparc hardware. HP-UX is still available on HP Epic (Itanium)-based hardware. Enterprise Unix systems were developed over 30 years ago but are more closely related to today’s distributed and cloud systems. Enterprise Unix still has some legacy problems such as proprietary hardware/OS and agility.

Other legacy estates

Just to cover other legacy environments, there are several legacy operating systems and hardware. These include other z operating systems, such as z/TPF and z/VSE, other midrange systems such as Dec VAX, other mainframes such as Bull and NCR, and specialized operating systems such as HPE NonStop. While we will not go into detail about moving these environments to Azure, here are some options you can use for these environments that are similar to the areas we will cover:

z/TPF: Similar to approaches for Enterprise Unix, but specialized throughput and availabilityz/VSE: Similar to approaches for z/OSVAX: Similar approach to Enterprise UnixBull and NCR: Similar to the approach for UnisysHPE NonStop: Similar to z/OS, but with special attention to redundancy

These operating systems provide scale-up functionality similar to IBM and Unisys mainframes, and applications on these systems are typically written in legacy languages such as COBOL. This chapter will reference these systems in sections where features provided by them are discussed.

The current state of legacy applications

As with legacy hardware and operating systems, the current condition of applications that use your legacy estate is important to consider when you move to Azure. Here are the topics we will cover related to the current application estate:

Scope of the legacy application estateLanguages used in the current estateThird-party (COTS) applicationsUtilities (tools) usedOperating system servicesApplication-specific SLAs

Scope of the legacy application estate

While we recommend that you also do a detailed inventory and tools-based assessment of your legacy source code, there are some general rules of thumb you can use to scope out how to both accelerate modernization to Azure and take advantage of Azure services in the process.

For example, the total number of lines of source code is a good indicator of the effort needed to modernize to Azure. Lines of code are not necessarily a measure of complexity, as source code can often be converted using automated tools. However, lines of code will likely indicate the effort needed to test code once converted to Azure.

Another measure of complexity or effort deals with code interdependency. This is important as modules run independently and can usually be converted separately, thus simplifying the testing process. Otherwise, the interdependent code module will likely need to convert at the same time. For performance and testing, we advise using Azure tools such as Azure Monitor and Application Insights to assist with performance testing.

Another thing to consider is the possibility of unused code in your legacy estate. Many of your legacy applications were written across multiple decades. This means that your application may be full of dead code that is no longer used. Rather than converting and testing the dead code, running code analysis tools to identify code that is never called can accelerate modernization.

Identifying the data associated with an application you want to modernize to Azure is very important. For example, if you modernize the application code to Azure without also moving the associated data for that application, you are likely introducing latency that may not be acceptable to access that data.

Finally, identifying if you have all the source code and the current version is extremely important. A lack of source code will limit the modernization options you have.

Languages used in the current estate

Since legacy systems were developed over decades, there may be some obscure development languages that it might be hard to find cloud versions for or are simply no longer supported. More commonly, however, you will find older languages such as Cobol or PL/I that are not supported with common tools and IDEs in Azure without third-party Independent Software Vendor (ISV) compiler software.

In particular, if your goal is to move to Azure-native managed code solutions for your legacy applications, you may find the need to integrate your managed code (for example, Java or C#) with unmanaged code in C/C++ or other managed executables.

Third-party (COTS) applications

Another possibility is the presence of third-party software in the legacy environment. Since most legacy applications not written in Java or C# (or another managed language) are not compatible with Azure, we need to find whether the third-party ISV provides a version that is compatible with Azure. For example, a commercial off-the-shelf (COTS) application that currently runs on AIX may have a version that runs on x86 Linux. In that case, moving the COTS application to Azure is typically not a technical problem. There may be licensing issues that need to be addressed. But it’s not a technical problem. If that is not the case, you will likely need to find an alternative for the COTS application. In some cases, such as POWER platforms, running the COTS application as-is on Azure might be an option. Otherwise, an alternative application that runs in Azure will need to be found.

Utilities (tools) used by applications

Many applications depend on utilities that provide services by the operating system to function. This includes things such as queuing, transactions, data replication, scheduling, monitoring, backup, and printing. For example, many applications use queuing provided by MQSeries. When moving to Azure, you will need to decide if you wish to continue to use MQ, which is available in Azure, or use a native Azure queuing server such as Service Bus.

We recommend mapping all the utilities currently used by your legacy application with utilities available in Azure. In some cases, these may be native Azure services such as Service Bus, Azure Monitor, and Azure Data Factory. In other cases, third-party tools might be required for things such as printing and virtual tape.

Operating system services

A special type of utility deals with operating system services. This is particularly true for IBM mainframes and midrange. This includes features on the mainframe such as CICS, IMS DC, and Coupling Facility. When we look at these features further, CICS and IMS DC are really like application servers on the mainframe. So, on Azure, we need to look at things such as App Services or Tomcat hosted in Azure Kubernetes Service to provide similar functionality.

On the midrange, the operating system provides tight coupling with the database for applications, and integration with scripting using CL. For this type of functionality, we need to extract these functions from the applications and put them in the database, scripting language, or other utility functions on Azure.

Application-specific SLAs

The SLAs provided natively by Azure for virtual machines (VMs) and data solutions will likely meet the availability and recovery requirements for most legacy systems. However, there are some specific cases where that may not be the case.

Applications that were developed by legacy programmers often depend on proprietary features of the operating system to achieve high availability and resilience. An example would be COBOL applications run in a CICSPlex and use Db2 that runs in a Parallel Sysplex. In this type of scenario, the applications themselves are unaware of the underlying system software that provides application resilience and limits data loss. Application redundancy and data resilience in cloud systems such as Azure typically rely on scale-out redundancy to meet similar availability. The scale-out approach usually relies on the application to be able to restart. That logic might not be present in the legacy code being converted.

There are mitigating approaches that can be followed, such as using a caching service such as Redis Cache on Azure. However, either the ISV software being used for the application layer, or the application code itself, would need to be Redis Cache-aware.

Mainframe applications were typically developed as monoliths (single system, not distributed). This section covered the various requirements Azure needs to provide to offer the same type of robustness and features.

What are the goals of moving to a hyperscale cloud such as Microsoft Azure?

So, what are the reasons behind deciding on a migration or rewrite of an application or ecosystem of applications to Microsoft Azure? The answer to that question will no doubt be different for everyone. Typically, the reasons can be broken down into three general categories.

Cost-related

The following are the cost-related factors:

Elastic scalability