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:
- Lingkungan Compute Engine
- Lingkungan VMware vSphere
- Lingkungan Microsoft Azure VM
- Lingkungan Amazon Elastic Compute Cloud (Amazon EC2)
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 menawarkan manfaat berikut:
- Modernisasi workload: memberikan kemampuan berikut:
- Microservice dalam container, yang memiliki ukuran image dasar lebih kecil
- Penemuan layanan
- Elastisitas, dengan menggunakan Deployment dan HorizontalPodAutoscaler
- Cloud Logging
- Cloud Monitoring
- 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:
Kerangka kerja yang diilustrasikan dalam diagram sebelumnya memiliki empat fase:
- Menilai: Anda menilai lingkungan sumber, menilai aplikasi yang ingin dimigrasikan ke Google Cloud, dan menilai aplikasi Tomcat mana yang cocok untuk migrasi.
- Paket: Anda membuat infrastruktur dasar untuk Migrate to Container, seperti menyediakan hierarki resource dan menyiapkan akses jaringan.
- Men-deploy: Anda memigrasikan aplikasi Tomcat dari lingkungan sumber ke GKE, GKE Autopilot, Cloud Run, atau GKE Enterprise dengan Migrate to Containers.
- 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:
- Buat inventaris aplikasi Anda yang komprehensif.
- Buat katalog aplikasi Anda sesuai dengan properti dan dependensinya.
- Latih dan ajari tim Anda di Google Cloud.
- Buat eksperimen dan bukti konsep di Google Cloud.
- Hitung total biaya kepemilikan (TCO) lingkungan target.
- 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:
- Pengalihan SSL: Penghentian komunikasi terenkripsi sebelum meneruskan permintaan ke server backend yang diinginkan. Pemindahan SSL dapat diganti dengan membuat Ingress dengan sertifikat yang dikelola Google.
- Menyimpan data ke dalam cache: Menyimpan data ke dalam cache salinan lokal respons dapat mengurangi beban pada server backend dan mengurangi waktu respons untuk panggilan berikutnya. Menyimpan data ke cache dapat diganti dengan membuat BackendConfig dengan Cloud CDN.
- Kompresi: Mengompresi respons server akan mengurangi
persyaratan bandwidth jaringan. Ingress GKE default
tidak mengompresi atau mendekompresi respons. Anda dapat menggunakan
pengontrol Ingress kustom,
seperti
pengontrol Ingress NGINX,
dan mengaktifkan kompresi gzip dengan menyetel opsi
use-gzip
ke
true
.
- 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:
- Pastikan workload Tomcat dan lingkungan sumber Anda memenuhi prasyarat untuk memigrasikan workload Tomcat.
- 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:
- 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.
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.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 lingkunganCATALINA_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:
- Build image container aplikasi: Build image container aplikasi untuk workload yang dimigrasikan. Untuk mengetahui petunjuknya, lihat Mem-build image container.
- Men-deploy aplikasi yang dimigrasikan di lingkungan target:
- Untuk men-deploy aplikasi yang dimigrasikan ke GKE, GKE Autopilot, atau GKE Enterprise, ikuti petunjuk dalam Men-deploy beban kerja Tomcat ke cluster target.
- Untuk men-deploy aplikasi yang dimigrasikan ke Cloud Run, ikuti petunjuk dalam artikel Men-deploy ke Cloud Run.
- 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.
- 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:
- Pastikan Anda memiliki semua referensi ke artefak yang dihasilkan oleh Migrate to Container selama migrasi.
- 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
ataustderr
. Selanjutnya, log disimpan, dianalisis, dan dikueri melalui backend khusus, seperti Cloud Logging. Anda dapat menggunakan perubahan yang direkomendasikan Migrate to Containers di artefak arsiplogConfigs
atau mengubah konfigurasi logging secara manual untuk menulis log kestdout
ataustderr
. - 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
- Coba panduan langkah demi langkah untuk memigrasikan aplikasi Tomcat ke container.
- Coba panduan langkah demi langkah untuk memigrasikan beberapa aplikasi Tomcat yang berjalan di belakang reverse proxy ke container.
- Baca praktik terbaik untuk membangun dan mengoprasikan container.
- Pelajari praktik terbaik untuk menjalankan aplikasi Kubernetes yang hemat biaya di GKE.
- Pelajari Arsitektur microservice
- Memigrasikan VM ke container dengan Migrate to Containers.
- Memigrasikan aplikasi WebSphere ke container dengan Migrate to Containers.
- Pelajari arsitektur referensi, diagram, dan praktik terbaik tentang Google Cloud. Lihat Cloud Architecture Center kami.