Kontainerisasi beban kerja mainframe yang telah dimodernisasi oleh Blu Age - AWS Prescriptive Guidance

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Kontainerisasi beban kerja mainframe yang telah dimodernisasi oleh Blu Age

Richard Milner-Watts, Amazon Web Services

Ringkasan

Pola ini menyediakan lingkungan wadah sampel untuk menjalankan beban kerja mainframe yang telah dimodernisasi dengan menggunakan alat Blu Age. Blu Age mengubah beban kerja mainframe lama menjadi kode Java modern. Pola ini menyediakan pembungkus di sekitar aplikasi Java sehingga Anda dapat menjalankannya dengan menggunakan layanan orkestrasi kontainer seperti Amazon Elastic Container Service (Amazon ECS) Service Elastic Container (Amazon ECS) atau Amazon Elastic Kubernetes Service (Amazon EKS).

Untuk informasi selengkapnya tentang memodernisasi beban kerja Anda dengan menggunakan layanan Blu Age dan AWS, lihat publikasi AWS Prescriptive Guidance ini:

Untuk bantuan menggunakan Blu Age untuk memodernisasi beban kerja mainframe Anda, hubungi tim Blu Age dengan memilih Hubungi pakar kami di situs web Blu Age. Untuk bantuan dalam memigrasikan beban kerja modern Anda ke AWS, mengintegrasikannya dengan layanan AWS, dan memindahkannya ke produksi, hubungi manajer akun AWS Anda atau isi formulir AWS Professional Services.

Prasyarat dan batasan

Prasyarat

  • Aplikasi Java modern yang dibuat oleh Blu Age. Untuk tujuan pengujian, pola ini menyediakan contoh aplikasi Java yang dapat Anda gunakan sebagai bukti konsep.

  • Lingkungan Docker yang dapat Anda gunakan untuk membangun wadah.

Batasan

Bergantung pada platform orkestrasi kontainer yang Anda gunakan, sumber daya yang dapat disediakan untuk wadah (seperti CPU, RAM, dan penyimpanan) mungkin terbatas. Misalnya, jika Anda menggunakan Amazon ECS dengan AWS Fargate, lihat dokumentasi Amazon ECS untuk batasan dan pertimbangan.

Arsitektur

Tumpukan teknologi sumber

  • Usia Blu

  • Java

Tumpukan teknologi target

  • Docker

Arsitektur target

Diagram berikut menunjukkan arsitektur aplikasi Blu Age dalam wadah Docker.

Aplikasi Blu Age dalam wadah Docker
  1. Titik masuk untuk wadah adalah skrip pembungkus. Skrip bash ini bertanggung jawab untuk mempersiapkan lingkungan runtime untuk aplikasi Blu Age dan memproses output.

  2. Variabel lingkungan dalam wadah digunakan untuk mengonfigurasi variabel dalam skrip pembungkus, seperti nama bucket Amazon Simple Storage Service (Amazon S3) dan kredenal database Simple Storage Service (Amazon S3). Variabel lingkungan disediakan oleh AWS Secrets Manager atau Parameter Store, kemampuan AWS Systems Manager. Jika Anda menggunakan Amazon ECS sebagai layanan orkestrasi kontainer, Anda juga dapat melakukan hardcode variabel lingkungan dalam definisi tugas Amazon ECS.

  3. Skrip pembungkus bertanggung jawab untuk menarik file input apa pun dari bucket S3 ke dalam wadah sebelum Anda menjalankan aplikasi Blu Age. AWS Command Line Interface (AWS CLI) diinstal di dalam container. Ini menyediakan mekanisme untuk mengakses objek yang disimpan di Amazon S3 melalui titik akhir gateway virtual private cloud (VPC).

  4. File Java Archive (JAR) untuk aplikasi Blu Age mungkin perlu berkomunikasi dengan sumber data lain, seperti Amazon Aurora.

  5. Setelah selesai, skrip pembungkus mengirimkan file keluaran yang dihasilkan ke dalam bucket S3 untuk diproses lebih lanjut (misalnya, oleh layanan CloudWatch logging Amazon). Pola ini juga mendukung pengiriman file log zip ke Amazon S3, jika Anda menggunakan alternatif untuk CloudWatch logging standar.

Alat

Layanan AWS

Alat

  • Docker adalah platform perangkat lunak untuk membangun, menguji, dan menyebarkan aplikasi. Docker mengemas perangkat lunak ke dalam unit standar yang disebut kontainer, yang memiliki semua yang dibutuhkan perangkat lunak untuk dijalankan, termasuk perpustakaan, alat sistem, kode, dan runtime. Anda dapat menggunakan Docker untuk menyebarkan dan menskalakan aplikasi ke lingkungan apa pun.

  • Bash adalah antarmuka bahasa perintah (shell) untuk sistem operasi GNU.

  • Java adalah bahasa pemrograman dan lingkungan pengembangan yang digunakan dalam pola ini.

  • Blu Age adalah alat modernisasi mainframe AWS yang mengubah beban kerja mainframe lama, termasuk kode aplikasi, dependensi, dan infrastruktur, menjadi beban kerja modern untuk cloud.

Repositori kode

Kode untuk pola ini tersedia di repositori wadah sampel GitHub Blu Age.

Praktik terbaik

  • Eksternalisasi variabel untuk mengubah perilaku aplikasi Anda dengan menggunakan variabel lingkungan. Variabel-variabel ini memungkinkan solusi orkestrasi kontainer untuk mengubah lingkungan runtime tanpa membangun kembali wadah. Pola ini mencakup contoh variabel lingkungan yang dapat berguna untuk aplikasi Blu Age.

  • Validasi dependensi aplikasi apa pun sebelum Anda menjalankan aplikasi Blu Age Anda. Misalnya, verifikasi bahwa database tersedia dan kredensialnya valid. Tulis tes dalam skrip pembungkus untuk memverifikasi dependensi, dan gagal lebih awal jika tidak terpenuhi.

  • Gunakan logging verbose dalam skrip pembungkus. Berinteraksi langsung dengan wadah yang sedang berjalan dapat menjadi tantangan, tergantung pada platform orkestrasi dan berapa lama pekerjaan itu berlangsung. Pastikan bahwa output yang berguna ditulis STDOUT untuk membantu mendiagnosis masalah apa pun. Misalnya, output mungkin termasuk isi direktori kerja aplikasi baik sebelum dan sesudah Anda menjalankan aplikasi.

Epik

TugasDeskripsiKeterampilan yang dibutuhkan

Opsi 1 - Bekerja dengan Blu Age untuk mendapatkan file JAR aplikasi Anda.

Wadah dalam pola ini membutuhkan aplikasi Blu Age. Atau, Anda dapat menggunakan contoh aplikasi Java yang disediakan dengan pola ini untuk prototipe.

Bekerja dengan tim Blu Age untuk mendapatkan file JAR untuk aplikasi Anda yang dapat dipanggang ke dalam wadah. Jika file JAR tidak tersedia, lihat tugas berikutnya untuk menggunakan aplikasi sampel sebagai gantinya.

Arsitek awan

Opsi 2 - Bangun atau gunakan file JAR aplikasi sampel yang disediakan.

Pola ini menyediakan file JAR sampel prebuilt. File ini mengeluarkan variabel lingkungan aplikasi STDOUT sebelum tidur selama 30 detik dan keluar.

File ini diberi nama bluAgeSample.jar dan terletak di folder docker repositori. GitHub

Jika Anda ingin mengubah kode dan membangun versi file JAR Anda sendiri, gunakan kode sumber yang terletak di. /java_ sample/src/sample _java_app.java di repositori. GitHub Anda dapat menggunakan skrip build di. /java_sample/build.sh untuk mengkompilasi sumber Java dan membangun JAR fie baru.

Pengembang aplikasi
TugasDeskripsiKeterampilan yang dibutuhkan

Kloning GitHub repositori.

Kloning repositori kode sampel dengan menggunakan perintah:

git clone https://github.com/aws-samples/aws-blu-age-sample-container
AWS DevOps

Gunakan Docker untuk membangun wadah.

Gunakan Docker untuk membangun wadah sebelum Anda mendorongnya ke registri Docker seperti Amazon ECR:

  1. Dari terminal yang Anda pilih, arahkan ke docker folder di dalam GitHub repositori lokal Anda.

  2. Gunakan perintah ini untuk membangun wadah:

    docker build -t <tag> .

    di <tag> mana nama wadah yang ingin Anda gunakan.

AWS DevOps

Uji wadah Blu Age.

(Opsional) Jika perlu, uji wadah secara lokal dengan menggunakan perintah:

docker run -it <tag> /bin/bash
AWS DevOps

Otentikasi ke repositori Docker Anda.

Jika Anda berencana untuk menggunakan Amazon ECR, ikuti petunjuk dalam dokumentasi Amazon ECR untuk menginstal dan mengonfigurasi AWS CLI dan mengautentikasi CLI Docker ke registri default Anda.

Kami menyarankan Anda menggunakan get-login-password perintah untuk otentikasi.

catatan

  Konsol Amazon ECR menyediakan versi pra-isi dari perintah ini jika Anda menggunakan tombol perintah tekan Lihat. Untuk informasi selengkapnya, lihat dokumentasi Amazon ECR.

aws ecr get-login-password --region <region> | docker login --username AWS --password-stdin <account>.dkr.ecr.<region>.amazonaws.com

Jika Anda tidak berencana untuk menggunakan Amazon ECR, ikuti petunjuk yang diberikan untuk sistem registri kontainer Anda.

AWS DevOps

Buat repositori kontainer.

Buat repositori di Amazon ECR. Untuk petunjuknya, lihat pola Menerapkan lingkungan untuk aplikasi Blu Age dalam kontainer menggunakan Terraform.

Jika Anda menggunakan sistem registri kontainer lain, ikuti instruksi yang diberikan untuk sistem itu.

AWS DevOps

Tandai dan dorong wadah Anda ke repositori target.

Jika Anda menggunakan Amazon ECR:

  1. Tandai gambar Docker lokal dengan registri dan repositori Amazon ECR, sehingga Anda dapat mendorongnya ke repositori jarak jauh Anda:

    docker tag <tag>:latest <account>.dkr.ecr.<region>.amazonaws.com/<repository>:<versionNumber>
  2. Dorong gambar ke repositori jarak jauh:

    docker push <account>.dkr.ecr.<region>.amazonaws.com/<repository>:<versionNumber>

Untuk informasi selengkapnya, lihat Mendorong gambar Docker di Panduan Pengguna Amazon ECR.

AWS DevOps

Sumber daya terkait

Sumber daya AWS

Sumber daya tambahan