Strategi migrasi aplikasi mainframe

Ketika sebagian besar tim memigrasikan aplikasi dari lingkungan mainframe ke Azure, mereka umumnya mengikuti pendekatan pragmatis: gunakan kembali di mana pun dan jika memungkinkan. Kemudian, mereka memulai penyebaran bertahap di mana aplikasi ditulis ulang atau diganti.

Migrasi aplikasi biasanya melibatkan satu atau lebih strategi berikut:

  • Rehost: Pindahkan kode, program, dan aplikasi yang ada dari mainframe. Kompilasi ulang kode untuk dijalankan di emulator mainframe yang dihosting dalam instans cloud. Pendekatan ini biasanya dimulai dengan memindahkan aplikasi ke emulator berbasis cloud, dan kemudian memigrasikan database ke database berbasis cloud. Beberapa rekayasa dan refaktor diperlukan dengan strategi ini, bersama dengan konversi data dan file.

    Atau, Anda dapat melakukan hosting ulang menggunakan penyedia hosting tradisional. Salah satu keuntungan utama dari cloud adalah mengalihdayakan manajemen infrastruktur. Temukan penyedia pusat data yang menghosting beban kerja mainframe Anda untuk Anda. Model ini dapat membeli beberapa waktu, mengurangi kunci vendor, dan menghasilkan penghematan biaya sementara.

  • Pensiun: Menghentikan aplikasi yang tidak lagi diperlukan sebelum migrasi.

  • Membangun ulang: Beberapa organisasi memilih untuk sepenuhnya menulis ulang program menggunakan teknik modern. Mengingat biaya tambahan dan kompleksitas pendekatan ini, hal itu tidak umum seperti pendekatan lift-and-shift. Seringkali setelah jenis migrasi ini, masuk akal untuk mulai mengganti modul dan kode menggunakan mesin transformasi kode.

  • Mengganti: Pendekatan ini menggantikan fungsi mainframe dengan fitur yang setara di cloud. Software as a service (SaaS) adalah salah satu opsi. Dengan Saas, Anda menggunakan solusi yang dibuat khusus untuk perhatian perusahaan, seperti keuangan, sumber daya manusia, manufaktur, atau perencanaan sumber daya perusahaan. Selain itu, banyak aplikasi khusus industri sekarang tersedia untuk menyelesaikan masalah yang digunakan solusi mainframe kustom untuk diselesaikan sebelumnya.

Mulailah dengan merencanakan beban kerja yang awalnya ingin Anda migrasikan, lalu tentukan persyaratan untuk memindahkan aplikasi terkait, basis kode warisan, dan database.

Emulasi mainframe di Azure

Layanan Azure dapat meniru lingkungan mainframe tradisional. Anda kemudian dapat menggunakan kembali kode dan aplikasi mainframe yang ada. Anda dapat meniru komponen server umum seperti pemrosesan transaksi online (OLTP), batch, dan sistem penyerapan data.

Sistem OLTP

Banyak mainframe memiliki sistem OLTP yang memproses ribuan atau jutaan pembaruan untuk sejumlah besar pengguna. Aplikasi ini sering menggunakan pemrosesan transaksi dan perangkat lunak penanganan bentuk layar, seperti Sistem Kontrol Informasi Pelanggan (CICS), Sistem Manajemen Informasi (IMS), dan Prosesor Antarmuka Terminal (TIP).

Saat Anda memindahkan aplikasi OLTP ke Azure, emulator untuk pemantauan pemrosesan transaksi mainframe (TP) dapat berjalan sebagai infrastruktur sebagai layanan (IaaS) menggunakan komputer virtual (VM) di Azure. Server web juga dapat menerapkan penanganan layar dan fungsionalitas formulir. Gabungkan pendekatan ini dengan API database, seperti ActiveX Data Objects (ADO), Open Database Koneksi ivity (ODBC), dan Java Database Koneksi ivity (JDBC) untuk akses dan transaksi data.

Pembaruan batch berbatas waktu

Banyak sistem mainframe melakukan pembaruan bulanan atau tahunan dari jutaan catatan akun, seperti yang digunakan dalam perbankan, asuransi, dan pemerintah. Mainframe menangani jenis beban kerja ini dengan menawarkan sistem penanganan data throughput tinggi. Pekerjaan batch mainframe biasanya bersifat serial dan bergantung pada operasi input dan output per detik (IOPS) yang disediakan oleh tulang punggung mainframe untuk performa.

Lingkungan batch berbasis cloud menggunakan komputasi paralel dan jaringan berkecepatan tinggi untuk performa. Jika Anda perlu mengoptimalkan performa batch, Azure menyediakan berbagai opsi komputasi, penyimpanan, dan jaringan.

Sistem penyerapan data

Mainframe memproses sejumlah besar batch data dari retail, jasa keuangan, manufaktur, dan solusi lain untuk pemrosesan. Dengan Azure, Anda dapat menggunakan utilitas baris perintah sederhana seperti AzCopy untuk menyalin data ke dan dari lokasi penyimpanan. Anda juga dapat menggunakan layanan Azure Data Factory , untuk menyerap data dari penyimpanan data yang berbeda dan untuk membuat dan menjadwalkan alur kerja berbasis data.

Selain lingkungan emulasi, Azure menyediakan platform as a service (PaaS) dan layanan analitik yang dapat meningkatkan lingkungan mainframe yang ada.

Memigrasikan beban kerja OLTP ke Azure

Pendekatan lift-and-shift adalah opsi tanpa kode untuk memigrasikan aplikasi yang ada dengan cepat ke Azure. Setiap aplikasi bermigrasi apa adanya, yang memberikan manfaat cloud tanpa risiko atau biaya membuat perubahan kode. Menggunakan emulator untuk monitor pemrosesan transaksi mainframe (TP) di Azure mendukung pendekatan ini.

Monitor TP tersedia dari berbagai vendor dan berjalan pada mesin virtual, opsi infrastruktur sebagai layanan (IaaS) di Azure. Diagram berikut menunjukkan sebelum dan sesudah aplikasi online yang didukung oleh IBM DB2, sistem manajemen database relasional (DBMS), pada mainframe IBM z/OS. DB2 untuk z/OS menggunakan file Metode Akses Penyimpanan Virtual (VSAM) untuk menyimpan data dan Metode Akses Berurutan Terindeks (ISAM) untuk file datar. Arsitektur ini juga menggunakan CICS untuk pemantauan transaksi.

Diagram of a

Di Azure, lingkungan emulasi menjalankan manajer TP dan pekerjaan batch yang menggunakan JCL. Di tingkat data, DB2 digantikan oleh Azure SQL Database, meskipun Anda juga dapat menggunakan Microsoft SQL Server, DB2 LUW, atau Oracle Database. Emulator mendukung IMS, VSAM, dan SEQ. Alat manajemen sistem mainframe digantikan oleh layanan Azure, dan perangkat lunak dari vendor lain, yang berjalan di mesin virtual.

Server web biasanya menerapkan penanganan layar dan fungsionalitas entri formulir, yang dapat Anda gabungkan dengan API database, seperti ADO, ODBC, dan JDBC untuk akses dan transaksi data. Line-up yang tepat dari komponen infrastruktur sebagai layanan Azure untuk digunakan tergantung pada sistem operasi yang Anda sukai. Contohnya:

  • Mesin virtual berbasis Windows: Server Informasi Internet (IIS) bersama dengan ASP.NET untuk penanganan layar dan logika bisnis. Gunakan ADO.NET untuk transaksi dan akses data.

  • VM berbasis Linux: Server aplikasi berbasis Java, seperti penanganan layar proses Apache Tomcat dan fungsionalitas bisnis berbasis Java. Gunakan JDBC untuk transaksi dan akses data.

Memigrasikan beban kerja batch ke Azure

Operasi batch di Azure berbeda dengan lingkungan batch umum pada mainframe. Tugas batch mainframe biasanya bersifat serial dan bergantung pada IOPS yang disediakan oleh backbone mainframe untuk performa. Lingkungan batch berbasis cloud menggunakan komputasi paralel dan jaringan berkecepatan tinggi untuk performa.

Untuk mengoptimalkan optimalkan batch menggunakan Azure, pertimbangkan opsi komputasi, penyimpanan, jaringan, dan pemantauan sebagai berikut.

Compute

Gunakan:

  • Mesin virtual dengan kecepatan jam tertinggi. Aplikasi mainframe sering berutas tunggal dan CPU mainframe memiliki kecepatan jam yang tinggi.

  • Mesin virtual dengan kapasitas memori besar untuk memungkinkan penembolokan data dan area kerja aplikasi.

  • Mesin virtual dengan vCPU kepadatan yang lebih tinggi untuk memanfaatkan pemrosesan multi-utas jika aplikasi mendukung beberapa utas.

  • Pemrosesan paralel, karena Azure dengan mudah melakukan peluasan skala untuk pemrosesan paralel, memberikan lebih banyak daya komputasi untuk eksekusi batch.

Penyimpanan

Gunakan:

  • SSD Premium Azure atau Penyimpanan Disk Ultra Azure untuk IOPS maksimum yang tersedia.

  • Striping dengan beberapa disk untuk lebih banyak IOPS per ukuran penyimpanan.

  • Pemartisian untuk penyimpanan guna menyebarkan I/O melalui beberapa perangkat Azure Storage.

Jaringan

Pemantauan

  • Gunakan alat pemantauan, Azure Monitor, Application Insights, dan log Azure. Alat-alat ini membantu Anda memantau eksekusi batch yang dilakukan secara berlebihan dan mengurangi hambatan.

Memigrasikan lingkungan pengembangan

Arsitektur terdistribusi cloud bergantung pada seperangkat alat pengembangan yang berbeda yang memberikan keuntungan dari praktik modern dan bahasa pemrograman. Untuk memudahkan transisi ini, gunakan lingkungan pengembangan dengan alat lain yang dirancang untuk meniru lingkungan IBM z/OS. Daftar berikut menunjukkan opsi dari Microsoft dan vendor lainnya:

Komponen Opsi Azure
z/OS Windows, Linux, atau Unix
CICS Layanan Azure yang ditawarkan oleh Micro Focus, Oracle, GT Software (Fujitsu), TmaxSoft, Raincode, dan NTT DATA, atau tulis ulang menggunakan Kubernetes
IMS Layanan Azure yang ditawarkan oleh Micro Focus dan Oracle
Assembler Layanan Azure dari Raincode dan TmaxSoft; atau COBOL, C, atau Java, atau peta ke fungsi sistem operasi
JCL JCL, PowerShell, atau alat pembuatan skrip lainnya
COBOL COBOL, C, atau Java
Natural Natural, COBOL, C, atau Java
Fortran dan PL/I Fortran, PL/I, COBOL, C, atau Java
REXX dan PL/I REXX, PowerShell, atau alat pembuatan skrip lainnya

Memigrasikan database dan data

Migrasi aplikasi biasanya melibatkan hosting ulang tingkat data. Anda dapat memigrasikan SQL Server, sumber terbuka, dan database relasional lainnya ke solusi yang dikelola sepenuhnya di Azure. Anda dapat menggunakan Azure SQL Managed Instance, Azure Database for PostgreSQL, dan Azure Database for MySQL dengan Azure Database Migration Service.

Misalnya, Anda dapat bermigrasi jika tingkat data mainframe menggunakan:

  • IBM DB2 atau database IMS, menggunakan Azure SQL Database, SQL Server, DB2 LUW, atau Oracle Database di Azure.

  • VSAM dan file datar lainnya, menggunakan file datar Metode Akses Berurutan Terindeks (ISAM) untuk Azure SQL Database, SQL Server, DB2 LUW, atau Oracle.

  • Grup tanggal pembuatan (GDG), bermigrasi ke file di Azure yang menggunakan konvensi penamaan dan ekstensi nama file yang menyediakan fungsionalitas serupa dengan GDG.

Tingkat data IBM mencakup beberapa komponen utama yang juga harus Anda migrasikan. Misalnya, ketika Anda memigrasikan database, Anda juga memigrasikan kumpulan data yang terkandung dalam kumpulan, masing-masing berisi dbextents, yang merupakan kumpulan data VSAM z/OS. Migrasi Anda harus menyertakan direktori yang mengidentifikasi lokasi data di kumpulan penyimpanan. Selain itu, rencana migrasi Anda harus mempertimbangkan log database, yang berisi catatan operasi yang dilakukan pada database. Database dapat memiliki satu, dua (ganda atau alternatif), atau empat (ganda dan alternatif) log.

Migrasi database juga mencakup komponen-komponen berikut:

  • Manajer database: Menyediakan akses ke data dalam database. Manajer database berjalan di partisinya sendiri dalam lingkungan z/OS.
  • Pemohon aplikasi: Menerima permintaan dari aplikasi sebelum meneruskannya ke server aplikasi.
  • Adapter sumber daya online: Menyertakan komponen pemohon aplikasi untuk digunakan dalam transaksi CICS.
  • Adapter sumber daya batch: Menerapkan komponen pemohon aplikasi untuk aplikasi batch z/OS.
  • SQL Interaktif (ISQL): Berjalan sebagai aplikasi dan antarmuka CICS dan memungkinkan pengguna memasukkan pernyataan SQL atau perintah operator.
  • Aplikasi CICS: Berjalan di bawah kendali CICS, menggunakan sumber daya dan sumber data yang tersedia di CICS.
  • Aplikasi batch: Menjalankan logika proses tanpa komunikasi interaktif dengan pengguna untuk, misalnya, menghasilkan pembaruan data massal atau menghasilkan laporan dari database.

Mengoptimalkan skala dan throughput untuk Azure

Secara umum, mainframe meningkat, sementara cloud meluas. Untuk mengoptimalkan skala dan throughput aplikasi bergaya mainframe yang berjalan di Azure, penting untuk memahami bagaimana mainframe memisahkan dan mengisolasi aplikasi. Mainframe z/OS menggunakan fitur yang disebut partisi logis (LPAR) guna mengisolasi dan mengelola sumber daya untuk aplikasi tertentu pada satu instans.

Misalnya, mainframe mungkin menggunakan satu LPAR untuk wilayah CICS dengan program COBOL terkait, dan LPAR terpisah untuk DB2. LPAR lain sering digunakan untuk lingkungan pengembangan, pengujian, dan penahapan.

Di Azure, mesin virtual terpisah lebih umum digunakan untuk melakukan tujuan ini. Arsitektur Azure biasanya menyebarkan mesin virtual untuk tingkat aplikasi, satu set mesin virtual terpisah untuk tingkat data, satu set lain untuk pengembangan, dan seterusnya. Anda dapat mengoptimalkan setiap tingkat pemrosesan menggunakan jenis VM dan fitur yang paling cocok untuk lingkungan tersebut.

Selain itu, setiap tingkatan juga dapat memberikan layanan pemulihan bencana yang sesuai. Misalnya, VM produksi dan database mungkin memerlukan pemulihan yang panas atau hangat, sementara VM pengembangan dan pengujian mendukung pemulihan dingin.

Gambar berikut menunjukkan kemungkinan penyebaran Azure menggunakan situs primer dan sekunder. Di situs utama, VM produksi, penahapan, dan pengujian disebarkan dengan ketersediaan tinggi. Situs sekunder adalah untuk pencadangan dan pemulihan bencana.

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

Melakukan migrasi bertahap ke Azure

Memindahkan solusi dari mainframe ke Azure mungkin melibatkan migrasi bertahap. Anda memindahkan beberapa aplikasi terlebih dahulu, sementara yang lain tetap berada di mainframe sementara atau permanen. Pendekatan ini biasanya memerlukan sistem yang memungkinkan aplikasi dan database beroperasi antara mainframe dan Azure.

Skenario umum adalah memindahkan aplikasi ke Azure sambil menyimpan data yang digunakan oleh aplikasi pada mainframe. Perangkat lunak tertentu memungkinkan aplikasi di Azure mengakses data dari mainframe. Untungnya, berbagai solusi menyediakan integrasi antara Azure dan lingkungan mainframe yang ada, dukungan untuk skenario hibrida, dan migrasi dari waktu ke waktu. Mitra Microsoft, vendor perangkat lunak independen, dan integrator sistem dapat membantu dalam perjalanan Anda.

Salah satu opsinya adalah Microsoft Host Integration Server. Solusi ini menyediakan arsitektur database relasional terdistribusi (DRDA) yang diperlukan untuk aplikasi di Azure. Ini memungkinkan aplikasi mengakses data di DB2 yang tetap berada di mainframe. Opsi lain untuk integrasi mainframe-ke-Azure menyertakan solusi dari IBM, Attunity, Codit, vendor lain, dan opsi sumber terbuka.

Solusi mitra

Jika Anda mempertimbangkan migrasi mainframe, ekosistem mitra dapat membantu.

Azure menyediakan infrastruktur yang terbukti, sangat tersedia, dan dapat diskalakan untuk sistem yang saat ini berjalan pada mainframe. Beberapa beban kerja dapat bermigrasi dengan relatif mudah. Anda dapat menghosting ulang beban kerja lain yang bergantung pada perangkat lunak sistem warisan, seperti CICS dan IMS. Gunakan solusi mitra dan migrasikan ke Azure dari waktu ke waktu. Terlepas dari pilihan yang Anda buat, Microsoft dan mitra kami dapat membantu Anda mengoptimalkan Azure sambil mempertahankan fungsionalitas perangkat lunak sistem mainframe.

Pelajari lebih lanjut

Untuk informasi selengkapnya, lihat sumber daya berikut: