Memigrasikan aplikasi Tomcat ke container dengan Migrate to Containers

Last reviewed 2022-06-17 UTC

Dokumen ini ditujukan untuk pemilik aplikasi dan arsitek cloud. Dokumen ini menjelaskan cara memigrasikan aplikasi Java yang berjalan di Tomcat ke container yang berjalan di Google Kubernetes Engine (GKE), GKE Autopilot, Cloud Run, atau GKE Enterprise. Anda dapat menggunakan proses ini untuk memigrasikan aplikasi Tomcat dari lingkungan lokal, lingkungan hosting pribadi, atau penyedia cloud lainnya. Artikel ini juga menyoroti manfaat penggunaan Migrate to Containers untuk mengotomatiskan migrasi Anda.

Dokumen ini mengasumsikan bahwa Anda sudah memahami produk berikut:

  • Aplikasi Java yang di-deploy di server aplikasi Tomcat dan berjalan di mesin virtual (VM) Linux.
  • Konsep Kubernetes dan penggunaan dasar alat command line Kubernetes.

Dokumen ini adalah bagian dari rangkaian tentang memigrasikan ke Google Cloud. Untuk mengetahui ringkasan seri, lihat Memigrasikan ke Google Cloud: Memilih jalur migrasi.

Baca dokumen ini untuk memigrasikan aplikasi Tomcat yang kompatibel dari lingkungan sumber yang didukung ke lingkungan GKE, GKE Enterprise, atau Cloud Run, dengan menggunakan Migrate to Containers. Lingkungan sumber ini dapat mencakup hal berikut:

Migrate to Containers menggunakan alat penilai kesesuaian untuk menemukan, memeriksa, dan memigrasikan semua aplikasi Tomcat di VM Linux Anda. Alat ini membagi aplikasi Tomcat ke dalam container aplikasi Tomcat individual. Setelah migrasi, Anda dapat mengelompokkan beberapa atau semua aplikasi ke dalam image penampung bersama. Diagram berikut menunjukkan cara Migrate to Containers terpisah dan memigrasikan aplikasi:

Migrate to Containers membagi dan memigrasikan aplikasi Tomcat.

Migrate to Containers menawarkan manfaat berikut:

  • Modernisasi workload: memberikan kemampuan berikut:
  • Lingkungan dalam container: memasukkan aplikasi berbasis VM yang sudah ada ke dalam container. Lihat Manfaat bermigrasi ke container.
  • Image Tomcat resmi: menggunakan image resmi Tomcat secara default, atau Anda dapat mengupdate migrasi atau Dockerfile untuk menggunakan image Anda sendiri. Image resmi Docker menghadirkan praktik terbaik Docker ke image dasar Anda.
  • Pemisahan aplikasi otomatis: secara otomatis menyarankan pemisahan setiap aplikasi yang ditemukan ke dalam container individual dengan mempertahankan konfigurasi asli Tomcat.
  • Pengelolaan rahasia: menemukan keystore, truststore, dan sertifikat yang digunakan oleh server Tomcat Anda, serta otomatis membuat Kubernetes primitif untuk mengeksternalkan dan memasangnya sebagai Secret Kubernetes singkat ini.
  • Perubahan logging yang direkomendasikan: otomatis menemukan file konfigurasi framework logging Java umum (seperti log4j2, log4j, dan logback), serta menyarankan perubahan agar selaras dengan logging di Kubernetes.

Memigrasikan aplikasi Tomcat ke container menggunakan Migrate to Containers adalah salah satu langkah di perjalanan modernisasi workload Anda. Migrasi membantu Anda mengubah aplikasi Tomcat agar berjalan di lingkungan cloud. Hal ini juga membantu Anda menghindari penulisan ulang yang mahal.

Kandidat migrasi ideal adalah aplikasi yang berjalan pada versi Tomcat dan Java terdukung yang dimodernisasi melalui penulisan ulang lengkap terlalu mahal atau terlalu sulit.

Mendesain migrasi ke Google Cloud

Guna memigrasikan aplikasi Tomcat dari lingkungan sumber ke container yang berjalan di Google Cloud, ikuti framework yang dijelaskan dalam seri Migrasi ke Google Cloud.

Diagram berikut menggambarkan jalur perjalanan migrasi Anda:

Jalur migrasi dengan empat fase.

Kerangka kerja yang diilustrasikan dalam diagram sebelumnya memiliki empat fase:

  1. Menilai: Anda menilai lingkungan sumber, menilai aplikasi yang ingin dimigrasikan ke Google Cloud, dan menilai aplikasi Tomcat mana yang cocok untuk migrasi.
  2. Paket: Anda membuat infrastruktur dasar untuk Migrate to Container, seperti menyediakan hierarki resource dan menyiapkan akses jaringan.
  3. Men-deploy: Anda memigrasikan aplikasi Tomcat dari lingkungan sumber ke GKE, GKE Autopilot, Cloud Run, atau GKE Enterprise dengan Migrate to Containers.
  4. Pengoptimalan: Anda mulai memanfaatkan teknologi dan kemampuan cloud.

Menilai lingkungan sumber dan aplikasi

Pada fase penilaian, Anda mengumpulkan informasi tentang lingkungan sumber dan aplikasi yang ingin dimigrasikan. Hal ini membantu Anda menyesuaikan ukuran resource yang dibutuhkan untuk migrasi dan lingkungan target.

Pada tahap penilaian, Anda dapat melakukan hal-hal berikut:

  1. Buat inventaris aplikasi Anda yang komprehensif.
  2. Buat katalog aplikasi Anda sesuai dengan properti dan dependensinya.
  3. Latih dan ajari tim Anda di Google Cloud.
  4. Buat eksperimen dan bukti konsep di Google Cloud.
  5. Hitung total biaya kepemilikan (TCO) lingkungan target.
  6. Pilih aplikasi yang ingin Anda migrasikan terlebih dahulu.

Bagian berikut didasarkan pada Migrasi ke Google Cloud: Menilai dan menemukan workload Anda. Namun, metode tersebut memberikan informasi yang khusus untuk menilai aplikasi Tomcat yang ingin Anda migrasikan ke container dengan Migrate to Containers.

Membangun inventaris Anda

Untuk menentukan cakupan migrasi, Anda harus memahami lingkungan Tomcat Anda. Untuk memahami lingkungan Anda, kumpulkan informasi tentang aplikasi Anda dan dependensinya.

Membuat inventaris aplikasi Anda menjelaskan cara membuat inventaris workload dan dependensi di lingkungan Tomcat Anda. Ikuti panduan tersebut dan buat inventaris Anda. Setelah Anda selesai dengan pekerjaan itu, lanjutkan membaca dokumen ini.

Setelah membuat inventaris workload dan dependensinya, Anda akan meningkatkan inventaris. Nilai aspek dan fitur yang menarik bagi organisasi Anda saat memigrasikan aplikasi Tomcat-nya dengan Migrate to Containers.

Sebelum menilai lingkungan Tomcat Anda untuk migrasi, selesaikan tugas penilaian dalam Memigrasikan VM ke container dengan Migrate to Containers dan Migrasi ke Google Cloud: Menilai dan menemukan workload Anda. Setelah Anda menyelesaikan pekerjaan itu, selesaikan inventaris workload Anda.

Untuk menyelesaikan inventaris workload Anda, pertimbangkan hal berikut:

  • Sistem operasi yang berjalan di instance Tomcat Anda: Kumpulkan informasi tentang sistem operasi dan lisensinya yang berjalan di instance Tomcat Anda, dan pastikan sistem operasi tercantum di Sistem operasi dan versi Kubernetes yang kompatibel.
  • Versi Tomcat yang menjalankan aplikasi Anda: Mengumpulkan informasi tentang versi Tomcat yang menjalankan aplikasi Anda, dan memastikan kompatibilitasnya dengan Migrate to Containers.
  • Aplikasi yang di-deploy di instance Tomcat Anda: Menilai aplikasi yang di-deploy di setiap instance Tomcat. Kemudian, petakan dependensi antara aplikasi Anda dan antara aplikasi Anda dengan layanan eksternal. Selanjutnya, kumpulkan informasi tentang sumber konfigurasi aplikasi Anda, yang dapat mencakup konfigurasi berikut:
    • Variabel lingkungan
    • Jalur penginstalan Tomcat non-standar
    • Registry pengguna LDAP
    • Koneksi Java Database Connectivity (JDBC)
    • Proxy Tomcat
    • Proxy Java
  • Skor yang sesuai Migrate to Containers: Menilai apakah aplikasi Tomcat Anda sesuai untuk dimigrasikan dengan Migrate to Containers. Migrate to Containers menyediakan alat penilaian kesesuaian yang harus Anda jalankan di VM yang menghosting instance Tomcat Anda untuk menghitung skor yang sesuai dan merekomendasikan proses migrasi. Migrate to Container menggunakan sekumpulan aturan penilaian agar berhasil memigrasikan aplikasi Tomcat.
  • Pengelompokan Tomcat: Pengelompokan Tomcat memungkinkan replikasi sesi di semua node Tomcat dalam cluster tersebut. Beberapa implementasi pengelompokan, termasuk penyedia keanggotaan McastService bawaan, tidak berfungsi dengan baik di Kubernetes karena kurangnya dukungan untuk multicast tingkat jaringan. Artinya, mengonfigurasi pengelompokan Tomcat memerlukan beberapa konfigurasi manual selama migrasi. Untuk mengetahui informasi selengkapnya, lihat ClusteringCloud di wiki Apache Tomcat.
  • Proxy Tomcat: Dalam banyak skenario dunia nyata, Tomcat mungkin dikonfigurasi untuk berjalan di belakang proxy terbalik. Penggunaan utama proxy terbalik mencakup:
  • Proxy Java: Jika menggunakan server proxy untuk mengontrol traffic keluar dari aplikasi Tomcat dan Java, Anda dapat menonaktifkan setelan proxy Java. Hapus setelan proxy dari opsi command line Java virtual machine (JVM). Kemudian, konfigurasikan gateway egress Anthos Service Mesh (ASM) untuk mengontrol jaringan keluar dari container Tomcat Anda.

Selesaikan penilaiannya

Setelah membangun inventaris yang terkait dengan lingkungan dan workload Tomcat Anda, selesaikan aktivitas fase penilaian lainnya yang didokumentasikan dalam Migrasi ke Google Cloud: Menilai dan menemukan workload Anda. Setelah Anda menyelesaikan pekerjaan itu, lanjutkan membaca dokumen ini.

Merencanakan dan membangun fondasi Anda

Setelah mengikuti panduan dalam Merencanakan dan membangun fondasi, selesaikan fondasi Tomcat Anda:

  1. Pastikan workload Tomcat dan lingkungan sumber Anda memenuhi prasyarat untuk memigrasikan workload Tomcat.
  2. Untuk menyelesaikan fase pengumpulan data, jalankan mfit pada VM yang menjalankan instance Tomcat Anda. Untuk mengetahui informasi selengkapnya, lihat Menggunakan alat penilaian kesesuaian.

Untuk menyediakan dan mengonfigurasi Migrate to Containers dan dependensinya, lihat Menyiapkan Migrate to Container.

Setelah Anda menyelesaikannya lanjut dengan membaca dokumen ini.

Memigrasikan aplikasi Tomcat Anda ke container

Pada fase deployment, gunakan milestone berikut sebagai panduan Anda.

Membuat dan meninjau rencana migrasi

Membuat rencana migrasi Migrate to Containers untuk aplikasi Tomcat Anda:

  1. Konfigurasi lingkungan sumber sebagai sumber migrasi Migrate to Containers: Untuk memigrasikan aplikasi Tomcat Anda, Migrate to Containers memerlukan informasi tentang lingkungan sumber tempat VM Anda berjalan. Anda mengumpulkan informasi tersebut dengan melakukan tugas yang dijelaskan di bagian Membuat inventaris dalam dokumen ini. Untuk informasi selengkapnya tentang mengonfigurasi lingkungan sumber, lihat Menambahkan sumber migrasi.
  2. Membuat rencana migrasi: Untuk menentukan aplikasi Tomcat yang ingin Anda migrasikan dari lingkungan sumber ke lingkungan target yang didukung, buat rencana migrasi. Misalnya, Anda dapat mengonfigurasi tempat Anda ingin menyimpan data persisten.

    Untuk informasi selengkapnya tentang membuat dan memantau rencana migrasi, lihat Membuat migrasi. Guna membuat rencana migrasi untuk aplikasi Tomcat, Anda dapat menggunakan alat command line migctl seperti yang dijelaskan dalam Menjalankan migrasi.

  3. Meninjau dan menyesuaikan rencana migrasi: Setelah membuat rencana migrasi untuk setiap VM yang ingin dimigrasikan, tinjau dan sesuaikan setiap rencana untuk memastikan bahwa rencana tersebut sesuai dengan kebutuhan Anda. Untuk informasi selengkapnya tentang cara menyesuaikan rencana migrasi, lihat Menyesuaikan rencana migrasi.

Membuat artefak migrasi dan deployment descriptor

Untuk membuat artefak Tomcat target untuk aplikasi Anda, Migrate to Containers akan mengekstrak aplikasi yang berjalan di VM yang dikonfigurasi dalam rencana migrasi. Langkah ini kemudian membuat beberapa artefak dan menempatkannya di bucket Cloud Storage. Migrate to Containers juga menghasilkan deskriptor deployment yang dapat Anda sesuaikan dan gunakan untuk men-deploy instance image container di lingkungan target.

Untuk setiap aplikasi yang dimigrasikan, Migrate to Containers buat folder yang berisi hal berikut:

  • Dockerfile
  • Biner aplikasi
  • File konfigurasi Tomcat
  • Skrip build
  • YAML Skaffold, untuk mem-build dan men-deploy
  • (Opsional) Skrip secrets.sh
  • (Opsional) arsip logging

Anda dapat memantau progres artefak container yang Anda buat dan migrasikan. Untuk informasi selengkapnya tentang pemantauan migrasi, lihat Memantau workload yang dimigrasikan.

Memverifikasi dan memvalidasi resource dan deskripsi yang dihasilkan

Setelah Anda membuat artefak container dan deskripsi deployment dengan Migrate to Containers, tinjau dan perbarui artefak dan deskripsi tersebut untuk memastikan bahwa artefak dan deskripsi tersebut memenuhi persyaratan Anda. Misalnya, pertimbangkan aspek berikut:

  • Deskripsi image container: Tinjau deskripsi image container yang Anda buat dengan Migrate to Containers dan pastikan deskripsi tersebut memadai untuk workload container. Jika Anda perlu mengupdate image container dasar, perbarui nilai FROM di Dockerfile yang dibuat. Anda Anda juga dapat mengubah variabel lingkungan CATALINA_OPTS di Dockerfile untuk menetapkan atau mengubah variabel lingkungan JVM.
  • Logging tingkat aplikasi: Migrate to Container secara otomatis menghasilkan arsip logging termodifikasi, yang dapat Anda gunakan untuk memodifikasi setelan logging untuk menulis log ke konsol, bukan file lokal.

Untuk mengetahui informasi selengkapnya tentang cara meninjau artefak container dan deskriptor deployment, baca artikel Meninjau artefak.

Men-deploy dan memvalidasi workload dalam container ke GKE, GKE Autopilot, Cloud Run, atau GKE Enterprise

Saat deskripsi deployment untuk workload sudah siap, Anda dapat melakukan tugas berikut:

  1. Build image container aplikasi: Build image container aplikasi untuk workload yang dimigrasikan. Untuk mengetahui petunjuknya, lihat Mem-build image container.
  2. Men-deploy aplikasi yang dimigrasikan di lingkungan target:
  3. Memantau workload yang dimigrasikan: Setelah men-deploy container aplikasi Tomcat Anda, Anda dapat mengumpulkan data tentang performanya di lingkungan target. Untuk informasi selengkapnya, lihat Memantau workload yang dimigrasikan.
  4. Integrasikan workload yang dimigrasikan: Setelah workload Anda di-deploy di lingkungan target, integrasikan proses pembuatan artefak container dan proses deployment dari workload dengan proses deployment dan deployment Anda pipeline. Jika Anda tidak menerapkan proses deployment otomatis dan men-deploy workload Anda secara manual, sebaiknya lakukan migrasi dari deployment manual ke deployment otomatis.

Meng-uninstal Migrate to Containers

Setelah Anda menyelesaikan migrasi workload dengan Migrate to Containers, sebaiknya lakukan tindakan berikut:

  1. Pastikan Anda memiliki semua referensi ke artefak yang dihasilkan oleh Migrate to Container selama migrasi.
  2. Uninstal Migrate to Containers.

Mengoptimalkan lingkungan Anda setelah migrasi

Untuk menyelesaikan migrasi Anda, lihat Mengoptimalkan lingkungan Anda.

Anda dapat melakukan pengoptimalan khusus Tomcat ini untuk aplikasi Tomcat Anda yang dimigrasikan:

  • Sesuaikan logging Anda: Tidak seperti VM yang biasanya file log ditulis ke sistem file lokal, log Kubernetes biasanya di-streaming ke stdout atau stderr. Selanjutnya, log disimpan, dianalisis, dan dikueri melalui backend khusus, seperti Cloud Logging. Anda dapat menggunakan perubahan yang direkomendasikan Migrate to Containers di artefak arsip logConfigs atau mengubah konfigurasi logging secara manual untuk menulis log ke stdout atau stderr.
  • Mengamankan data sensitif Anda: Masukkan sandi dan data sensitif lainnya ke dalam Kubernetes Secrets. Menggunakan secret Kubernetes untuk mengganti placeholder konfigurasi saat container dimulai.
  • Menyesuaikan profil resource Anda: Untuk membantu Kubernetes menjadwalkan Pod Anda secara efisien, sesuaikan batasan resource untuk permintaan dan batas. Menyesuaikan resource agar selaras dengan ukuran heap JVM juga penting untuk menghindari pengecualian memori (OOM).
  • Mengontrol penempatan Pod: Jika aplikasi Tomcat yang dimigrasikan sering berkomunikasi satu sama lain, Anda dapat menjadwalkannya untuk dijalankan di node yang sama. Jika mengontrol penempatan pod akan bermanfaat bagi aplikasi yang dimigrasikan, lihat Menetapkan Pod ke Node.

Langkah selanjutnya