편집

다음을 통해 공유


Advanced를 사용하여 메인프레임 애플리케이션 리팩터링

Azure 파일
Azure Load Balancer
Azure SQL Database
Azure Storage
Azure Virtual Machines

Advanced의 자동화된 COBOL 리팩터링 솔루션은 COBOL 애플리케이션뿐만 아니라 CA-Gen, CA-Telon, Natural, ADSO 및 기타 레거시 언어로 작성된 애플리케이션을 리팩터링하여 레거시 애플리케이션과 기능적으로 동일한 클라우드 지원 애플리케이션 및 데이터베이스를 제공합니다. 이렇게 하면 비용이 절감되고, 더욱 심층 통합이 가능하며, 사용자 지정으로 비즈니스 요구 사항을 충족할 수 있습니다. 또한 자동화된 테스트부터 품질 보증에 이르기까지 품질과 확장성의 새로운 세계를 제시하고 Docker 및 Kubernetes를 사용한 컨테이너화된 배포 및 오케스트레이션의 이점을 활용할 수 있는 기능을 제공합니다.

메인프레임 아키텍처

다음은 자동화된 팩터링을 사용할 수 있는 예제 시스템입니다.

레거시 언어 애플리케이션을 포함하는 메인프레임 시스템을 보여 주는 아키텍처 다이어그램

워크플로

A. 사용자는 TN3270, HTTP 및 HTTPS와 같은 프로토콜을 사용하여 TCP/IP를 통해 입력을 제공합니다.

B. 입력은 표준 메인프레임 프로토콜을 사용하여 도착합니다.

C. Batch 및 온라인 애플리케이션은 입력을 처리합니다.

D. COBOL, PL/I, 어셈블러 및 호환되는 언어는 사용 가능한 환경에서 실행됩니다.

E. 파일 및 데이터베이스는 데이터 스토리지를 제공합니다. 데이터베이스 유형에는 계층, 네트워크 및 관계형이 포함됩니다.

F. 서비스는 애플리케이션에 대한 작업을 수행합니다. 일반적으로 사용되는 서비스에는 프로그램 실행, I/O 작업, 오류 검색 및 보호가 포함됩니다.

G. 미들웨어 및 유틸리티 서비스에서는 테이프 스토리지, 큐, 출력 및 웹 지원과 같은 작업을 관리합니다.

H. 운영 체제는 엔진과 엔진이 실행되는 소프트웨어 간의 인터페이스를 제공합니다.

9\. 파티션은 별도의 워크로드를 실행하거나 환경 내에서 작업 유형을 분리합니다.

Azure 아키텍처

Azure용으로 리팩터링할 때 위에 표시된 예제 시스템의 아키텍처입니다. 다이어그램의 문자 설명선은 리팩터링된 솔루션이 해당 메인프레임 기능을 처리하는 위치를 표시합니다.

리팩터링 후 Azure의 시스템을 보여 주는 아키텍처 다이어그램

이 아키텍처의 Visio 파일을 다운로드합니다.

워크플로

  1. 입력은 일반적으로 원격 클라이언트 또는 다른 Azure 애플리케이션에서 Azure ExpressRoute를 통해 제공됩니다. 두 경우 모두 TCP/IP 연결은 시스템에 연결하는 기본 수단입니다. 웹 애플리케이션에 대한 사용자 액세스는 TLS 포트 443을 통해서 이루어집니다. 웹 애플리케이션의 UI를 동일하게 유지하여 최종 사용자 재학습을 최소화하거나 최신 UX 프레임워크를 사용하여 업데이트할 수 있습니다. Azure Bastion은 VM(가상 머신)에 대한 관리자 액세스를 제공하여 열린 포트를 최소화하여 보안을 극대화합니다.

  2. Azure에서 애플리케이션 컴퓨팅 클러스터에 대한 액세스는 Azure 부하 분산 장치를 통해서 이루어집니다. 이 방법을 사용하면 스케일 아웃 컴퓨팅 리소스가 입력 작업을 처리할 수 있습니다. 입력에 따라 애플리케이션 수준 또는 네트워크 프로토콜 수준에서 부하를 분산할 수 있습니다.

  3. Advanced은 컨테이너, VM 또는 Virtual Machine Scale Sets의 배포를 지원합니다. 컨테이너 및 Virtual Machine Scale Sets는 VM과 달리 빠르게 스케일 아웃할 수 있습니다. 크기 조정 단위를 컨테이너로 전환하면 인프라 사용률이 최적화됩니다.

  4. 애플리케이션 서버는 컴퓨팅 클러스터의 입력을 수신하고 Azure Cache for Redis 또는 RDMA(원격 직접 메모리 액세스)를 사용하여 애플리케이션 상태 및 데이터를 공유합니다.

  5. 애플리케이션 클러스터의 데이터 서비스는 영구 데이터 원본에 대한 여러 연결을 허용합니다. 가능한 데이터 원본은 다음과 같습니다.

    • Azure SQL Database.
    • Azure Cosmos DB
    • Oracle 및 Db2와 같은 VM의 데이터베이스.
    • Azure Databricks 및 Azure Data Lake와 같은 빅 데이터 리포지토리.
    • Kafka 및 Azure Stream Analytics와 같은 스트리밍 데이터 서비스.
  6. 애플리케이션 서버는 Java 클래스 또는 COBOL 프로그램과 같은 언어의 기능에 따라 다양한 애플리케이션 프로그램을 호스트합니다.

  7. 데이터 서비스는 다음의 조합을 사용합니다.

    1. 고성능 스토리지: Azure 프리미엄 SSD 및 Azure Ultra Disk Storage.

    2. 파일 스토리지: Azure NetApp Files 및 Azure Files.

    3. 표준 스토리지: Azure Blob Storage, 보관 및 백업 백업은 다음과 같습니다.

      1. LRS(로컬 중복 스토리지).
      2. ZRS(영역 중복 스토리지).
      3. GRS(지역 중복 스토리지).
      4. GZRS(지역 영역 중복 스토리지)

      중복성에 대한 자세한 내용은 Azure Storage 중복성을 참조하세요.

  8. Azure PaaS(Platform as a Service) 데이터 서비스는 클러스터의 여러 컴퓨팅 리소스에서 공유할 수 있는 확장 가능한 고가용성 데이터 스토리지를 제공합니다. 지역이 중복될 수도 있습니다.

  9. Azure Data Factory는 데이터를 수집하고 Azure 내 및 외부 출처의 여러 데이터 원본과 동기화할 수 있습니다. Azure Blob Storage는 외부 데이터 원본에 대한 일반적인 방문 영역입니다.

  10. Azure Site Recovery는 VM 및 컨테이너 클러스터 구성 요소의 재해 복구를 제공합니다.

  11. 애플리케이션은 다양한 PaaS 서비스의 프라이빗 엔드포인트에 연결됩니다.

구성 요소

이 예제에서는 다음 Azure 구성 요소를 제공합니다. 이러한 구성 요소 및 워크플로 중 일부는 시나리오에 따라 교환 가능하거나 선택 사항입니다.

  • Azure ExpressRoute는 연결 공급자의 전용 파이버 연결을 통해 온-프레미스 네트워크를 Azure로 확장합니다. ExpressRoute는 Azure 및 Microsoft 365와 같은 Microsoft 클라우드 서비스에 대한 연결을 설정합니다.
  • Azure Bastion은 TLS(전송 계층 보안)를 통해 Azure Portal에서 가상 네트워크 VM으로 원활한 RDP(원격 데스크톱 프로토콜) 또는 SSH(보안 셸) 연결을 제공합니다. Azure Bastion은 열린 포트를 최소화하여 관리자 액세스 보안을 최대화합니다.
  • Azure Load Balancer는 들어오는 트래픽을 컴퓨팅 리소스 클러스터에 분산합니다. 트래픽을 분산하는 규칙 및 기타 조건을 정의할 수 있습니다.
  • AKS(Azure Kubernetes Service)는 컨테이너화된 애플리케이션을 배포하고 관리하는 완전 관리형 Kubernetes 서비스입니다. AKS는 서버리스 Kubernetes, CI/CD(연속 통합 및 지속적인 업데이트) 환경, 엔터프라이즈급 보안 및 거버넌스를 제공합니다.
  • Azure Virtual Machines는 다양한 크기 및 온디맨드 유형의 확장성 있는 컴퓨팅 리소스를 제공합니다. Azure VM을 사용하면 물리적 하드웨어를 구입하고 유지 관리하지 않아도 가상화의 유연성을 얻을 수 있습니다.
  • Azure Virtual Network는 Azure 개인 네트워크의 기본 구성 요소입니다. 가상 네트워크 내의 VM은 서로 간에 그리고 인터넷 및 온-프레미스 네트워크와도 안전하게 통신할 수 있습니다. 가상 네트워크는 기존의 온-프레미스 네트워크와 비슷하지만 확장성, 고가용성 및 격리와 같은 Azure 인프라 이점을 제공합니다.
  • Azure Private Link는 가상 네트워크에서 Azure 서비스로의 비공개 연결을 제공합니다. 프라이빗 링크는 공용 인터넷 노출을 제거하여 네트워크 아키텍처를 간소화하고 Azure 엔드포인트 간의 연결을 보호합니다.
  • Azure Cache for Redis는 빠른 캐싱 계층을 애플리케이션 아키텍처에 추가하여 많은 볼륨을 고속으로 처리합니다. Azure Cache for Redis는 완전 관리형 서비스의 이점을 통해 간단하고 비용 효율적으로 성능을 확장합니다.
  • Azure Storage는 모든 데이터, 애플리케이션 및 워크로드에 대해 확장 가능하고 안전한 클라우드 스토리지입니다.
    • Azure Disk Storage는 중요 비즈니스용 애플리케이션을 위한 고성능 지속형 블록 스토리지입니다. Azure 관리 디스크는 Azure VM에서 Azure가 관리하는 블록 수준 스토리지 볼륨입니다. 사용 가능한 디스크 스토리지 유형은 Ultra Disk Storage, 프리미엄 SSD, 표준 SSD 및 표준 HDD입니다. 이 아키텍처는 프리미엄 SSD 또는 Ultra Disk Storage를 사용합니다.
    • Azure Files는 산업 표준 SMB(서버 메시지 블록) 프로토콜을 통해 액세스할 수 있는 클라우드에서 완전히 관리되는 파일 공유를 제공합니다. 클라우드 및 온-프레미스 Windows, Linux 및 macOS 배포는 파일 공유를 동시에 진행할 수 있습니다.
    • Azure NetApp Files는 NetApp에서 제공하는 엔터프라이즈급 Azure 파일 공유를 제공합니다. Azure NetApp Files를 사용하면 엔터프라이즈에서 코드 변경 없이 복잡한 파일 기반 애플리케이션을 쉽게 마이그레이션하고 실행할 수 있습니다.
    • Azure Blob Storage는 보관, 데이터 레이크, 고성능 컴퓨팅, 기계 학습 및 클라우드 네이티브 워크로드를 위한 확장 가능하고 안전한 개체 스토리지입니다.
  • Azure 데이터베이스는 최신 애플리케이션 요구 사항에 맞게 완전히 관리되는 관계형 및 NoSQL 데이터베이스를 선택할 수 있습니다. 자동화된 인프라 관리는 확장성, 가용성 및 보안을 제공합니다.
    • Azure SQL Database는 완전 관리형 PaaS 데이터베이스 엔진입니다. SQL Database 항상 안정적인 최신 버전의 SQL Server 및 고가용성을 갖춘 패치된 OS에서 실행됩니다. 기본 제공 PaaS 데이터베이스 관리 기능에는 업그레이드, 패치, 백업 및 모니터링이 포함됩니다. 도메인별 중요 비즈니스용 데이터베이스 관리 및 최적화에 집중할 수 있습니다.
    • Azure Database for PostgreSQL은 오픈 소스 PostgreSQL 관계형 데이터베이스 엔진을 기반으로 하는 완전 관리형 데이터베이스입니다. 하이퍼스케일(Citus) 배포 옵션은 더 큰 규모와 성능이 필요한 애플리케이션에 대해 분할을 사용하여 여러 머신에서 쿼리를 조정합니다.
    • Azure Cosmos DB는 모든 규모의 개방형 API가 포함된 빠른 완전 관리형 NoSQL 데이터베이스입니다.
  • Azure Site Recovery는 Azure 데이터 센터가 실패하는 경우 빠른 장애 조치(failover) 및 데이터 복구를 위해 Azure VM을 보조 Azure 지역에 미러링합니다.
  • Azure Data Factory는 스케일 아웃, 서버리스 데이터 통합 및 데이터 변환을 위한 ETL(추출, 변환 및 로드) 서비스입니다. 코드가 필요 없는 UI로 직관적 작성 및 단일 창을 통한 모니터링 및 관리를 지원합니다.

시나리오 정보

여전히 일반적인 COBOL 기반 메인프레임 애플리케이션에 대한 대안을 찾는 여러 가지 이유가 있습니다.

  • COBOL 및 CA-Gen/Natural/Telon/ASDO 개발자는 사용 중지되고 아무도 이를 대체할 수 있는 교육을 받지 않으며, 그 결과 인재 풀이 꾸준히 감소합니다. 인재 부족이 증가함에 따라 COBOL 및 기타 레거시 언어에 의존하는 비용과 위험이 증가합니다.
  • 애플리케이션은 최신 IT용으로 설계되지 않았기 때문에 통합이 어렵고 유연성이 제한되었습니다.
  • IBM 메인프레임 하드웨어 및 소프트웨어는 비용이 많이 들고 보조 메인프레임 애플리케이션 및 데이터베이스에 대한 라이선스 및 유지 관리 비용이 증가하고 있습니다.

Advanced의 자동화된 COBOL 리팩터링 솔루션은 COBOL 애플리케이션뿐만 아니라 다른 레거시 언어로 작성된 애플리케이션을 리팩터링하여 레거시 애플리케이션과 기능적으로 동등한 클라우드 지원 애플리케이션 및 데이터베이스를 제공합니다. 이렇게 하면 비용이 절감되고, 더욱 심층 통합이 가능하며, 사용자 지정으로 비즈니스 요구 사항을 충족할 수 있습니다. 또한 자동화된 테스트부터 품질 보증에 이르기까지 품질과 확장성의 새로운 세계를 제시하고 Docker 및 Kubernetes를 사용한 컨테이너화된 배포 및 오케스트레이션의 이점을 활용할 수 있는 기능을 제공합니다.

리팩터링된 애플리케이션:

  • 원본과 기능적으로 동일합니다.
  • 유지 관리가 용이합니다. SonarQube A 등급을 획득하고 개체 지향 개념 및 패러다임을 따릅니다.
  • 원본만큼 수행할 뿐만 아니라, 원본보다 더 나은 결과를 가져다줍니다.
  • 표준 DevOps 도구 체인 및 모범 사례를 사용하여 클라우드가 준비되고 제공됩니다.

리팩터링 프로세스에는 흐름 정규화, 코드 재구성, 데이터 계층 추출, 데이터 리모델링 및 재구성을 위한 패키징이 포함됩니다. 이 프로세스는 복제된 코드를 식별하고 공유된 대체 개체를 만들어 유지 관리 및 관리 효율성을 간소화합니다. 복잡한 데이터 및 제어 종속성 분석은 데드 코드를 찾아서 제거합니다.

Advanced 솔루션이 COBOL 애플리케이션 및 관련 데이터베이스를 리팩터링하면 Java 및 C# 개발자는 표준 DevOps 도구 및 CI/CD 개념을 사용하여 애플리케이션 기능을 확장할 수 있습니다. 리팩터링 프로세스는 비즈니스 논리를 유지하고 성능을 최적화합니다. 추가 이점에는 탄력성, 세분화된 서비스 정의 및 클라우드 네이티브 서비스와의 간편한 통합이 포함됩니다.

자동화된 COBOL 리팩터링은 z/OS, OpenVMS 및 VME를 비롯한 대부분의 COBOL 언어 및 플랫폼에서 사용할 수 있습니다.

잠재적인 사용 사례

Advanced 리팩터링은 다음을 포함해 다양한 시나리오에서 이점이 있습니다.

  • 다음을 수행하려는 기업:
    • 인프라를 현대화하고 메인프레임의 높은 비용과 제한 사항, 경직성에서 벗어납니다.
    • 클라우드 네이티브 및 DevOps를 진행하여 레거시 시스템 및 애플리케이션에 대한 기술 부족과 관련된 위험을 방지합니다.
    • 운영 및 자본 지출 비용을 줄입니다.
  • 비용이 많이 들고 오류가 발생하기 쉬운 수동 재작성이 없이 메인프레임 워크로드를 클라우드로 마이그레이션하려는 조직.
  • 다른 온-프레미스 애플리케이션과의 연속성을 유지하면서 중요 비즈니스용 애플리케이션을 마이그레이션해야 하는 조직.
  • Azure에서 제공하는 수평 및 수직 확장성을 찾고 있는 팀.
  • 재해 복구 옵션이 있는 솔루션을 선호하는 기업.

고려 사항

가용성이 높은 보안 시스템을 위해 Microsoft Azure Well-Architected Framework의 다음 핵심 요소를 통합합니다.

가용성

  • 이 아키텍처는 Azure Site Recovery를 사용하여 Azure 데이터 센터가 실패하는 경우 빠른 장애 조치(failover) 및 재해 복구를 위해 Azure VM을 보조 Azure 지역에 미러링합니다.
  • Azure 자동 장애 조치(failover) 그룹 복제는 데이터베이스 복제 및 보조 지역으로의 장애 조치(failover)를 관리합니다.

작업

리팩터링하면 더 빠른 클라우드의 채택을 지원할 뿐만 아니라 DevOps 및 Agile 작업 원칙의 채택도 촉진됩니다. 개발 및 프로덕션 배포 옵션에 대한 모든 유연성이 있습니다.

보안

이 솔루션은 Azure 네트워크 보안 그룹을 사용하여 Azure 리소스 간의 트래픽을 관리합니다. 자세한 내용은 네트워크 보안 그룹을 참조하세요.

Azure SQL Database용 프라이빗 링크는 Azure VM에서 Azure SQL Database로 Azure 네트워킹 백본으로 격리된 프라이빗 직접 연결을 제공합니다.

Azure Bastion은 열린 포트를 최소화하여 관리자 액세스 보안을 최대화합니다. Bastion은 TLS를 통해 Azure Portal에서 직접 가상 네트워크 VM에 대한 안전하고 원활한 RDP/SSH 연결을 제공합니다.

복원력

복원력은 부하 분산 장치를 통해 이 솔루션에 기본 제공됩니다. 하나의 프레젠테이션 또는 트랜잭션 서버가 실패하면 부하 분산 장치 뒤에 있는 다른 서버는 규칙 및 상태 프로브에 따라 워크로드를 실행할 수 있습니다. 가용성 집합 및 지역 중복 스토리지를 사용하시기를 강력히 권장합니다.

비용 최적화

Azure는 정확한 리소스 종류 수를 식별하고, 시간 경과에 따른 지출을 분석하고, 초과 지출 없이 비즈니스 요구 사항을 충족하도록 크기를 조정하여 불필요한 비용을 피합니다.

  • Azure는 VM에서 실행되어 비용 최적화를 제공합니다. VM이 사용되지 않을 때 VM을 끄고 알려진 사용 패턴에 대한 일정을 스크립트로 제출할 수 있습니다. VM 인스턴스의 비용 최적화에 대한 자세한 내용은 Azure Well-Architected Framework를 참조하세요.
  • 이 아키텍처의 VM은 프리미엄 SSD 또는 Ultra Disk Storage 사용합니다. 디스크 옵션 및 가격 책정에 대한 자세한 내용은 관리 디스크 가격 책정을 참조하세요.
  • SQL Database 자동으로 크기가 조정되는 서버리스 컴퓨팅 및 하이퍼스케일 스토리지 리소스를 사용하여 비용을 최적화합니다. SQL Database 옵션 및 가격에 대한 자세한 내용은 Azure SQL Database 가격 책정을 참조하세요.
  • 가격 계산기를 사용하여 이 솔루션의 구현 비용을 예측합니다.

참가자

Microsoft에서 이 문서를 유지 관리합니다. 원래 다음 기여자가 작성했습니다.

보안 주체 작성자:

비공개 LinkedIn 프로필을 보려면 LinkedIn에 로그인합니다.

다음 단계