Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Bermigrasi dari Oracle WebLogic ke Apache Tomcat (ToMee) di Amazon ECS
Anya Epishcheva dan Harshad Gohil, Amazon Web Services
Ringkasan
Pola ini membahas langkah-langkah untuk memigrasikan sistem Oracle Solaris SPARC lokal yang menjalankan Oracle WebLogic ke instalasi berbasis kontainer Docker yang menjalankan Apache ToMee (Apache
Untuk informasi tentang migrasi database yang terkait dengan aplikasi yang Anda migrasi dari Oracle WebLogic ke Tomcat, lihat pola migrasi database dalam katalog ini.
Praktik terbaik
Langkah-langkah untuk memigrasi aplikasi web Java dan Java Enterprise Edition (Java EE) bervariasi, tergantung pada jumlah sumber daya khusus kontainer yang digunakan oleh aplikasi. Aplikasi berbasis pegas biasanya lebih mudah untuk dimigrasi, karena mereka memiliki sejumlah kecil dependensi pada wadah penerapan. Sebaliknya, aplikasi Java EE yang menggunakan Enterprise JavaBeans (EJBs) dan sumber daya kontainer terkelola seperti kumpulan thread, Java Authentication and Authorization Service (JAAS), dan Container-Managed Persistence (CMP) memerlukan lebih banyak usaha.
Aplikasi yang dikembangkan untuk Oracle Application Server sering menggunakan suite Oracle Identity Management. Pelanggan yang bermigrasi ke server aplikasi open-source sering memilih untuk mengimplementasikan kembali identitas dan manajemen akses menggunakan federasi berbasis SAML. Orang lain menggunakan Oracle HTTP Server Webgate untuk kasus ketika bermigrasi dari Oracle Identity Management suite bukanlah pilihan.
Aplikasi web Java dan Java EE adalah kandidat yang bagus untuk penerapan pada layanan AWS yang berbasis Docker, seperti AWS Fargate dan Amazon ECS. Pelanggan sering memilih gambar Docker dengan versi terbaru dari server aplikasi target (seperti ToMee) dan Java Development Kit (JDK) yang sudah diinstal sebelumnya. Mereka menginstal aplikasi mereka di atas image Docker dasar, mempublikasikannya di registri Amazon Elastic Container Registry (Amazon ECR), dan menggunakannya untuk penerapan aplikasi mereka yang dapat diskalakan di AWS Fargate atau Amazon ECS.
Idealnya, penerapan aplikasi bersifat elastis; yaitu, jumlah instance aplikasi masuk atau keluar, tergantung pada lalu lintas atau beban kerja. Ini berarti bahwa instance aplikasi harus online atau dihentikan untuk menyesuaikan kapasitas permintaan.
Saat memindahkan aplikasi Java ke AWS, pertimbangkan untuk membuatnya tanpa kewarganegaraan. Ini adalah prinsip arsitektur utama AWS Well-Architected Framework yang akan memungkinkan penskalaan horizontal menggunakan kontainerisasi. Misalnya, sebagian besar aplikasi web berbasis Java menyimpan informasi sesi pengguna secara lokal. Untuk bertahan dari penghentian instans aplikasi karena penskalaan otomatis di Amazon Elastic Compute Cloud EC2 (Amazon) atau karena alasan lain, informasi sesi pengguna harus disimpan secara global sehingga pengguna aplikasi web dapat terus bekerja dengan lancar dan transparan tanpa menghubungkan kembali atau masuk kembali ke aplikasi web. Ada beberapa opsi arsitektur untuk pendekatan ini, termasuk Amazon ElastiCache untuk Redis, atau menyimpan status sesi dalam database global. Server aplikasi seperti ToMee memiliki plugin, yang memungkinkan penyimpanan dan manajemen sesi melalui Redis, database, dan penyimpanan data global lainnya.
Gunakan alat logging dan debugging yang umum dan terpusat yang mudah diintegrasikan dengan Amazon CloudWatch dan AWS X-Ray. Migrasi memberikan kesempatan untuk meningkatkan kemampuan siklus hidup aplikasi. Misalnya, Anda mungkin ingin mengotomatiskan proses build sehingga perubahan mudah dilakukan menggunakan pipeline continuous integration dan continuous delivery (CI/CD). Ini mungkin memerlukan perubahan pada aplikasi sehingga dapat digunakan tanpa downtime.
Prasyarat dan batasan
Prasyarat
Akun AWS yang aktif
Sumber kode Java dan JDK
Aplikasi sumber yang dibangun dengan Oracle WebLogic
Solusi yang ditetapkan untuk manajemen identitas dan akses (SAMP atau Oracle Webgate)
Solusi yang ditetapkan untuk manajemen sesi aplikasi (pindah like-for-like atau dengan Amazon ElastiCache, atau membuat aplikasi tanpa kewarganegaraan jika diperlukan)
Gambar ToMee yang diperkeras berdasarkan persyaratan keamanan Anda
Gambar kontainer dengan ToMee target yang sudah diinstal sebelumnya
Remediasi aplikasi disetujui dan diimplementasikan jika diperlukan (misalnya, logging debug build, otentikasi)
Versi produk
Oracle WebLogic OC4 J, 9i, 10g
Tomcat 7 (dengan Java 1.6 atau lebih baru)
Arsitektur
Tumpukan teknologi sumber
Aplikasi web yang dibangun menggunakan Oracle WebLogic
Aplikasi web menggunakan otentikasi Oracle Webgate atau SAMP
Aplikasi web terhubung ke Oracle Database versi 10g dan yang lebih baru
Tumpukan teknologi target
Arsitektur target

Alat
Untuk beroperasi di ToMee, aplikasi Java harus dibangun kembali menjadi file.war. Dalam beberapa kasus, perubahan aplikasi mungkin diperlukan untuk mengoperasikan aplikasi di ToMee; Anda harus memeriksa untuk memastikan bahwa opsi konfigurasi yang diperlukan dan properti lingkungan didefinisikan dengan benar.
Selain itu, pencarian Java Naming and Directory Interface (JNDI) dan ruang nama JavaServer Pages (JSP) harus didefinisikan dengan benar. Pertimbangkan untuk memeriksa nama file yang digunakan oleh aplikasi untuk menghindari tabrakan penamaan dengan pustaka T bawaan. Misalnya, persistence.xml adalah nama file yang digunakan oleh kerangka Apache OpenJPA (yang dibundel dengan OpenEJB di ToMe) untuk tujuan konfigurasi. File persistence.xml di PUI berisi deklarasi kacang kerangka Spring.
ToMee versi 7.0.3 dan yang lebih baru (Tomcat 8.5.7 dan yang lebih baru) mengembalikan respons HTTP 400 (permintaan buruk) untuk mentah (tidak dikodekan) dengan karakter khusus. URLs Respons server muncul sebagai halaman kosong untuk pengguna akhir. Versi ToMee dan Tomcat sebelumnya memungkinkan penggunaan karakter khusus tertentu yang tidak dikodekan URLs; Namun, itu dianggap tidak aman, seperti yang dinyatakan di situs web CVE-2016-6816.
Setelah Anda menyebarkan file.war di ToMee, pantau log mulai ke Linux cat untuk setiap pustaka bersama yang hilang dan ekstensi khusus Oracle untuk menambahkan komponen yang hilang dari pustaka Tomcat.
Prosedur umum
Konfigurasikan aplikasi di ToMee.
Mengidentifikasi dan mengkonfigurasi ulang file konfigurasi khusus server aplikasi dan sumber daya dari sumber ke format target.
Identifikasi dan konfigurasi ulang sumber daya JNDI.
Sesuaikan namespace dan pencarian EJB ke format yang diperlukan oleh server aplikasi target (jika ada).
Konfigurasikan ulang peran keamanan khusus wadah aplikasi JAAS dan pemetaan prinsip (jika ada).
Package aplikasi dan library bersama ke dalam file.war.
Terapkan file.war di ToMee dengan menggunakan wadah Docker yang disediakan.
Pantau log awal untuk mengidentifikasi pustaka bersama yang hilang dan ekstensi deskriptor penerapan. Jika ada yang ditemukan, kembali ke tugas pertama.
Uji aplikasi yang diinstal terhadap database Amazon RDS yang dipulihkan.
Luncurkan arsitektur lengkap dengan load balancer dan Amazon ECS cluster dengan mengikuti petunjuk di Deploy
Docker Containers. Perbarui URLs untuk menunjuk ke penyeimbang beban.
Perbarui database manajemen konfigurasi (CMDB).
Epik
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
| Lakukan penemuan aplikasi (jejak keadaan saat ini dan garis dasar kinerja). | BA, Pimpinan Migrasi | |
| Validasi versi dan mesin basis data sumber dan target. | DBA | |
| Validasi desain aplikasi sumber dan target (identitas dan manajemen sesi). | DBA, Insinyur Migrasi, Pemilik Aplikasi | |
| Identifikasi persyaratan perangkat keras dan penyimpanan untuk instance server target. | DBA, SysAdmin | |
| Pilih jenis instans yang tepat berdasarkan kapasitas, fitur penyimpanan, dan fitur jaringan. | DBA, SysAdmin | |
| Identifikasi persyaratan keamanan akses jaringan untuk basis data sumber dan target. | DBA, SysAdmin | |
| Identifikasi strategi dan perkakas migrasi aplikasi. | DBA, Pimpinan Migrasi | |
| Lengkapi desain migrasi dan panduan migrasi untuk aplikasi. | Bangun Pimpinan, Pimpinan Migrasi | |
| Lengkapi runbook migrasi aplikasi. | Membangun Timbal, Cutover Lead, Testing Lead, Migration Lead |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
| Buat cloud pribadi virtual (VPC). | SysAdmin | |
| Buat grup keamanan. | SysAdmin | |
| Konfigurasikan dan mulai instans Amazon RDS DB. | DBA, SysAdmin | |
| Konfigurasikan penerapan Amazon ECS. | SysAdmin | |
| Package aplikasi Anda sebagai image Docker. | SysAdmin | |
| Dorong gambar ke registri Amazon ECR (atau lewati langkah ini dan dorong ke cluster Amazon ECS). | SysAdmin | |
| Konfigurasikan definisi tugas untuk aplikasi dan opsi layanan Amazon ECS. | SysAdmin | |
| Konfigurasikan klaster Anda, tinjau setelan keamanan, dan setel peran AWS Identity and Access Management (IAM). | SysAdmin | |
| Luncurkan penyiapan Anda dan jalankan pengujian sesuai dengan runbook migrasi aplikasi Anda. | SysAdmin |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
| Dapatkan izin tim jaminan keamanan Anda untuk memindahkan data produksi ke AWS. | DBA, Insinyur Migrasi, Pemilik Aplikasi | |
| Buat dan dapatkan akses ke titik akhir untuk mengambil file cadangan database. | DBA | |
| Gunakan mesin database asli atau alat pihak ketiga untuk memigrasikan objek dan data database. | DBA | |
| Jalankan pengujian yang diperlukan dari runbook migrasi aplikasi untuk mengonfirmasi migrasi data yang berhasil. | DBA, Insinyur Migrasi, Pemilik Aplikasi |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
| Buat permintaan perubahan (CR) untuk migrasi. | Timbal Cutover | |
| Dapatkan persetujuan CR untuk migrasi. | Timbal Cutover | |
| Ikuti strategi migrasi aplikasi dari runbook migrasi aplikasi. | DBA, Insinyur Migrasi, Pemilik Aplikasi | |
| Tingkatkan aplikasi (jika diperlukan). | DBA, Insinyur Migrasi, Pemilik Aplikasi | |
| Fungsional lengkap, non-fungsional, validasi data, SLA, dan tes kinerja. | Menguji Lead, Pemilik Aplikasi, Pengguna Aplikasi |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
| Dapatkan tanda tangan dari aplikasi atau pemilik bisnis. | Timbal Cutover | |
| Jalankan latihan topik tabel untuk berjalan melalui semua langkah runbook cutover. | DBA, Insinyur Migrasi, Pemilik Aplikasi | |
| Alihkan klien aplikasi ke infrastruktur baru. | DBA, Insinyur Migrasi, Pemilik Aplikasi |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
| Matikan sumber daya AWS sementara. | DBA, Insinyur Migrasi, SysAdmin | |
| Meninjau dan memvalidasi dokumen proyek. | Pimpinan Migrasi | |
| Kumpulkan metrik di sekitar waktu untuk bermigrasi,% manual vs. alat, penghematan biaya, dll. | Pimpinan Migrasi | |
| Tutup proyek dan berikan umpan balik. | Pemimpin Migrasi, Pemilik Aplikasi |
Sumber daya terkait
Referensi
Tutorial dan video
Praktik Terbaik untuk Menjalankan Database Oracle di Amazon RDS
(re:Invent 2018 presentasi)