Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Dalam artikel ini, Anda mempelajari cara menggunakan modernisasi aplikasi GitHub Copilot untuk menilai, memulihkan, membuat kontainer, dan menyebarkan aplikasi Java ke Azure Container Apps. Modernisasi aplikasi GitHub Copilot adalah asisten bertenaga AI yang menggabungkan GitHub Copilot dengan alat sumber terbuka seperti OpenRewrite mengotomatiskan langkah-langkah peningkatan dan migrasi yang kompleks.
Alat ini mendukung proyek Maven dan Gradle, menargetkan peningkatan antara Java versi 8, 11, 17, dan 21, dan berfokus pada modernisasi aplikasi Spring Boot. Ini menyediakan tugas yang telah ditentukan sebelumnya untuk skenario migrasi umum dan menggabungkan praktik terbaik untuk menjalankan aplikasi di Azure Container Apps.
Prasyarat
- Sebuah akun Azure dengan langganan aktif. Buat akun gratis.
- Akun GitHub dengan langganan GitHub Copilot aktif dalam paket apa pun.
- Salah satu editor berikut:
- Versi terkini dari Visual Studio Code. Harus versi 1.106 atau yang lebih baru.
- GitHub Copilot dalam Visual Studio Code. Untuk petunjuk penyiapan, lihat Menyiapkan GitHub Copilot di Visual Studio Code. Pastikan untuk masuk ke akun GitHub Anda dalam Visual Studio Code.
- Modernisasi aplikasi GitHub Copilot. Mulai ulang Visual Studio Code setelah penginstalan.
- Versi terbaru IntelliJ IDEA. Harus versi 2023.3 atau yang lebih baru.
- GitHub Copilot. Harus versi 1.5.59 atau yang lebih baru. Untuk petunjuk selengkapnya, lihat Menyiapkan GitHub Copilot di IntelliJ IDEA. Pastikan untuk masuk ke akun GitHub Anda dalam IntelliJ IDEA.
- Modernisasi aplikasi GitHub Copilot. Mulai ulang IntelliJ IDEA setelah penginstalan.
- Versi terkini dari Visual Studio Code. Harus versi 1.106 atau yang lebih baru.
- Java 21 atau yang lebih baru.
- Maven atau Gradle untuk membangun proyek Java.
- Docker diinstal dan berjalan (untuk kontainerisasi).
- Azure CLI diinstal dan dikonfigurasi.
Nota
Jika Anda menggunakan Gradle, hanya pembungkus Gradle versi 5 atau yang lebih baru yang didukung. Kotlin Domain Specific Language (DSL) tidak didukung. Fungsi My Tasks ini belum didukung untuk IntelliJ IDEA.
Meningkatkan versi JDK dan kerangka kerja
Sebelum Anda bermigrasi ke Azure Container Apps, pastikan aplikasi Java Anda berjalan pada versi JDK yang didukung dan up-to-date. Meningkatkan JDK dan kerangka kerja Anda terlebih dahulu memastikan bahwa langkah-langkah migrasi berikutnya menargetkan basis kode modern.
Ada dua cara untuk meningkatkan versi JDK Anda. Kedua cara menggunakan panel modernisasi aplikasi GitHub Copilot, yang dapat Anda akses dari bar samping di Visual Studio Code.
- Pilih
Upgrade Runtime & Frameworks di bagianQUICKSTART . - Atau, jalankan tugas Java Runtime yang Ditingkatkan di bagian TUGAS - Tingkatkan Tugas .
Untuk meningkatkan kerangka kerja Spring atau dependensi non-Microsoft, jalankan tugas Tingkatkan Kerangka Kerja Java di bagian TUGAS - Tingkatkan Tugas .
Menilai kesiapan cloud untuk Azure Container Apps
Penilaian mengidentifikasi tantangan kesiapan cloud di basis kode Anda dan menilai dampaknya. Ini memberikan rekomendasi khusus untuk Azure Container Apps.
Mengonfigurasi penilaian
Sebelum menjalankan penilaian, konfigurasikan dengan memilih Konfigurasi penilaian di panel Penilaian modernisasi aplikasi GitHub Copilot.
Untuk Azure Container Apps, gunakan konfigurasi berikut:
appcat:
- target:
- azure-container-apps
os:
- linux
mode: source-only
Jalankan penilaian
Gunakan langkah-langkah berikut untuk menjalankan penilaian:
Di bar samping, pilih panel modernisasi aplikasi GitHub Copilot lalu pilih Migrasi ke Azure atau Jalankan Penilaian di bagian PENILAIAN .
Jendela obrolan GitHub Copilot dengan mode agen terbuka untuk memanggil penilai modernisasi. Pilih Lanjutkan untuk mengonfirmasi.
Penilai modernisasi memverifikasi lingkungan lokal Anda terlebih dahulu. Jika AppCAT dan dependensinya tidak diinstal, agen membantu Anda menginstalnya. Setelah penginstalan, agen memanggil AppCAT untuk menilai proyek Anda. Langkah ini dapat memakan waktu beberapa menit untuk diselesaikan.
Setelah penilaian selesai, penilai modernisasi menghasilkan tampilan kategoris masalah kesiapan cloud dalam Laporan Penilaian.
Menginterpretasikan laporan penilaian
Laporan penilaian memberikan hasil analisis yang komprehensif. Laporan ini terdiri dari beberapa bagian utama:
- Informasi Aplikasi: Informasi dasar termasuk versi Java, kerangka kerja, alat build, struktur proyek, dan layanan Azure target.
- Ringkasan Masalah: Gambaran umum masalah migrasi yang dikategorikan berdasarkan domain dengan persentase kekritisan.
-
Analisis Terperinci diatur ke dalam empat tab:
- Masalah: Daftar kesiapan cloud yang dikategorikan dan masalah peningkatan Java yang perlu Anda atasi.
- Dependensi: Semua dependensi paket Java ditemukan dalam aplikasi.
- Teknologi: Teknologi yang dikelompokkan menurut fungsi yang ditemukan dalam aplikasi yang dianalisis.
- Wawasan: Detail-detail dan informasi file untuk membantu Anda memahami teknologi yang terdeteksi.
Laporan mengategorikan masalah berdasarkan tingkat kekritisan berikut:
| Kritis | Deskripsi |
|---|---|
| Wajib | Masalah yang harus Anda perbaiki untuk migrasi ke Azure Container Apps. |
| Potensi | Masalah yang mungkin memengaruhi migrasi dan perlu ditinjau. |
| Fakultatif | Masalah berdampak rendah. Memperbaikinya disarankan tetapi opsional. |
Anda dapat memperluas setiap masalah yang dilaporkan untuk melihat daftar file yang terkena dampak dan deskripsi terperinci termasuk masalah, solusi yang diketahui, dan dokumentasi pendukung.
Mengelola laporan penilaian
Ekstensi ini mendukung impor, ekspor, dan penghapusan laporan penilaian sehingga Anda dapat berbagi temuan dengan tim Anda atau mengatur ruang kerja Anda.
- Impor: Pilih Impor di bagian penilaian untuk mengimpor laporan dari hasil AppCAT CLI, laporan yang diekspor, atau file konteks aplikasi.
- Ekspor: Klik kanan Laporan Penilaian dan pilih Ekspor untuk berbagi laporan dengan orang lain.
- Hapus: Klik kanan Laporan Penilaian dan pilih Hapus untuk menghapus laporan.
Memulihkan masalah migrasi
Setelah Anda menyelesaikan penilaian, perbaiki masalah yang diidentifikasi dengan menggunakan tugas yang telah ditentukan atau kustom. Modernisasi aplikasi GitHub Copilot menyediakan dua pendekatan: tugas yang telah ditentukan sebelumnya yang menangani pola migrasi umum, dan tugas kustom yang Anda tentukan untuk kebutuhan spesifik organisasi Anda.
Pilih agen AppModernization
Agen AppModernization memberikan pengalaman terbaik untuk tugas migrasi dan modernisasi aplikasi Java. Untuk memilihnya:
- Buka jendela obrolan Copilot dengan memilih ikon obrolan di Bilah Aktivitas.
- Di jendela obrolan, temukan menu dropdown pemilih agen di bagian atas kotak input obrolan dan pilih AppModernization dari daftar.
Nota
Di Visual Studio Code, modernisasi aplikasi menggunakan AppModernization agen kustom dengan model yang direkomendasikan yang dipilih secara default untuk hasil terbaik. Anda dapat mengubah model dengan memilih Konfigurasikan Agen Kustom dari menu Agen.
Dengan agen AppModernization dipilih, gunakan perintah bahasa alami sederhana untuk melakukan tugas migrasi:
- Migrasi database:
migrate to Managed Identity for Azure SQL Database -
Migrasi penyimpanan:
migrate from AWS S3 to Azure Storage Blob -
Migrasi pesan:
migrate from RabbitMQ to Azure Service Bus -
Manajemen rahasia:
migrate secrets to Azure Key Vault -
Migrasi autentikasi:
migrate to Microsoft Entra ID authentication
Menjalankan tugas migrasi yang telah ditentukan sebelumnya
Fitur modernisasi aplikasi GitHub Copilot mendukung tugas yang telah ditentukan sebelumnya berikut untuk migrasi Azure Container Apps:
| Tugas | Deskripsi |
|---|---|
| Spring RabbitMQ ke Azure Service Bus | Mengonversi Spring AMQP/JMS dengan RabbitMQ ke Azure Service Bus, mempertahankan pola olahpesan, dan mengaktifkan autentikasi yang aman. |
| Identitas Terkelola untuk migrasi Database | Menyiapkan basis kode Anda untuk autentikasi Identitas Terkelola ke Azure SQL Server, Azure Database for MySQL, Azure Database for PostgreSQL, Azure Cosmos DB for Cassandra API, dan Azure Cosmos DB for MongoDB. |
| Identitas Terkelola untuk Migrasi Kredensial | Mengubah aplikasi Java Anda untuk menggunakan autentikasi Azure Managed Identity untuk layanan olahpesan seperti Azure Event Hubs dan Azure Service Bus, menghilangkan string koneksi. |
| AWS S3 ke Azure Storage Blob | Mengonversi kode yang berinteraksi dengan AWS S3 menjadi kode yang beroperasi dengan Azure Storage Blob, mempertahankan semantik yang sama. |
| Pengelogan ke file lokal | Mengonversi pengelogan berbasis file ke pengelogan berbasis konsol, membuatnya siap untuk integrasi dengan Azure Monitor. |
| I/O file lokal ke mount share file di Azure Storage | Mengonversi pembacaan dan penulisan file lokal ke akses jalur pemasangan terpadu, memungkinkan pemasangan berbagi File Azure Storage di Azure Container Apps. Untuk informasi selengkapnya, lihat Gunakan pemasangan penyimpanan di Azure Container Apps. |
| Java Mail ke Azure Communication Service | Mengonversi aplikasi yang mengirim email melalui SMTP untuk menggunakan Azure Communication Services, yang sepenuhnya kompatibel dengan hosting Azure Container Apps. |
| Manajemen Rahasia dan Sertifikat ke Azure Key Vault | Memigrasikan rahasia yang dikodekan secara permanen dan sertifikat TLS/mTLS lokal ke Azure Key Vault. Untuk informasi selengkapnya, lihat Mengelola rahasia di Azure Container Apps. |
| Autentikasi pengguna ke ID Microsoft Entra | Transisi mekanisme autentikasi pengguna lokal (seperti berbasis LDAP) ke ID Microsoft Entra untuk autentikasi. Untuk informasi selengkapnya, lihat Autentikasi dan otorisasi di Azure Container Apps. |
| Dialek SQL: Oracle ke PostgreSQL | Mengonversi kueri, jenis data, dan fungsi SQL khusus Oracle ke setara PostgreSQL untuk digunakan dengan Azure Database for PostgreSQL. |
| AWS Secret Manager ke Azure Key Vault | Mengubah semua aspek manajemen rahasia dari AWS Secret Manager ke Azure Key Vault. |
| ActiveMQ ke Azure Service Bus | Mengonversi produsen pesan ActiveMQ, konsumen, pabrik koneksi, dan interaksi antrean/topik ke setara Azure Service Bus. |
| AWS SQS ke Azure Service Bus | Menerjemahkan konstruksi kode khusus SQS ke padanan Azure Service Bus, sambil mempertahankan semantik pengiriman pesan. |
Menerapkan tugas yang telah ditentukan sebelumnya dari penilaian
- Di Laporan Penilaian, pilih solusi yang diinginkan di bawah masalah yang terdeteksi dan pilih Jalankan Tugas.
- Jendela obrolan Copilot terbuka dengan Mode Agen. Agen menghasilkan
plan.mddanprogress.md, dan Anda dapat meninjau rencana sebelum melanjutkan. - Masukkan
continuesecara manual untuk mengonfirmasi dan memulai proses migrasi. - Sebelum Anda membuat perubahan kode, agen memeriksa status sistem kontrol versi dan memeriksa cabang baru.
- Berulang kali pilih atau input Lanjutkan untuk mengonfirmasi penggunaan alat dan tunggu hingga perubahan kode selesai.
Meninjau hasil validasi
Setelah Anda menyelesaikan perubahan kode, agen menjalankan perulangan validasi otomatis yang menyertakan pemeriksaan berikut:
- Validasi-CVE: Mendeteksi Kerentanan Umum dan Paparan dalam dependensi saat ini dan memperbaikinya.
- Build-Project: Mencoba mengatasi kesalahan build apa pun.
- Validasi Konsistensi: Menganalisis kode untuk konsistensi fungsi.
- Run-Test: Menjalankan pengujian unit dan secara otomatis menghasilkan rencana untuk memperbaiki kegagalan.
- Validasi Kelengkapan: Menangkap item migrasi yang terlewatkan dalam migrasi kode awal dan memperbaikinya.
Setelah semua pemeriksaan selesai, masukkan continue untuk menghasilkan ringkasan migrasi. Tinjau perubahan kode dan konfirmasi dengan memilih Simpan.
Membuat tugas kustom
Selain tugas yang telah ditentukan sebelumnya, Anda dapat membuat tugas kustom berdasarkan pola migrasi khusus organisasi Anda. Tugas kustom menggunakan referensi dari commit Git, tautan eksternal, atau file teks untuk mengarahkan agen migrasi.
Buat tugas kustom dari commit Git
Di bar samping Aktivitas, buka panel ekstensi modernisasi aplikasi GitHub Copilot, arahkan mouse ke bagian TUGAS , lalu pilih Buat Tugas Kustom.
Dalam file yang dibuka
task.md, masukkan nama tugas dan perintah tugas.Pilih Tambahkan Referensi lalu pilih Penerapan Git dalam kotak dialog pop-up.
Cari dan pilih komit yang relevan, lalu pilih OK.
Pilih Simpan. Tugas kustom Anda sekarang muncul di bagian TUGAS - Tugas Saya .
Membuat tugas kustom dari tautan eksternal dan file teks
task.mdBuka file dan masukkan nama tugas dan perintah. Contohnya:-
Nama Tugas:
Expose health endpoint via Spring Boot Actuator -
Perintah Tugas:
You are a Spring Boot developer assistant, follow the Spring Boot Actuator documentation to add basic health endpoints for Azure Container Apps deployment.
-
Nama Tugas:
Pilih Tambahkan Referensi, pilih Tautan eksternal, lalu tempelkan referensi URL. Pilih Tambahkan Referensi lagi, pilih File Teks, lalu tambahkan file dengan instruksi tambahan.
Pilih Simpan untuk membuat tugas.
Berbagi tugas kustom
Anda dapat berbagi tugas kustom dengan anggota tim lain dengan berbagi folder tugas.
Untuk berbagi tugas kustom, salin folder di bawah .github/appmod/custom-tasks dan bagikan dengan penerima yang dimaksudkan. Penerima menempelkan folder tugas ke .github/appmod/custom-tasks direktori dan memilih Refresh Tugas di panel ekstensi.
Menjalankan tugas kustom
Pilih Jalankan di bagian bawah file tugas, atau temukan tugas Anda di bagian TUGAS - Tugas Saya dan pilih Jalankan Tugas. Jendela obrolan Copilot terbuka dalam Mode Agen dan secara otomatis menjalankan alur kerja migrasi.
Jika aplikasi Anda menggunakan database Oracle, lanjutkan ke bagian berikutnya. Jika tidak, lewati ke Containerize aplikasi Anda.
Migrasi dari Oracle ke PostgreSQL
Nota
Bagian ini hanya berlaku jika aplikasi Anda menggunakan database Oracle. Jika aplikasi Anda tidak menggunakan Oracle, lewati ke Kontainerkan aplikasi Anda.
Modernisasi aplikasi GitHub Copilot menyediakan tugas migrasi khusus untuk skenario Oracle ke Azure Database for PostgreSQL yang mencakup:
- Alat migrasi database yang didukung AI: Untuk informasi selengkapnya, lihat Apa itu ekstensi PostgreSQL untuk pratinjau Visual Studio Code?.
- Konversi Smart SQL dalam kode aplikasi: Fungsionalitas konversi SQL bawaan dalam modernisasi aplikasi GitHub Copilot, terintegrasi dengan mulus sebagai bagian dari alur kerja tugas terpadu.
Menggunakan tugas migrasi Oracle ke PostgreSQL
Jalankan penilaian aplikasi seperti yang dijelaskan dalam Menilai kesiapan cloud untuk Azure Container Apps.
Setelah penilaian selesai, tinjau laporan. Jika aplikasi Anda menggunakan Oracle, laporan mengungkapkan masalah terkait Oracle Migrasi Database (Oracle) dengan solusi default Bermigrasi dari Oracle DB ke PostgreSQL.
Secara opsional, periksa apakah
coding_notes.mdada di.github/postgre-migrations/*/results/application_guidance/folder. Jika ada, modernisasi aplikasi mereferensikan catatan ini untuk konversi SQL berkualitas lebih tinggi. Jika tidak, hubungi tim database Anda untuk menghasilkannya dengan menggunakan ekstensi Visual Studio Code PostgreSQL.Pilih Jalankan Tugas untuk menjalankan migrasi.
Membuat kontainer aplikasi Anda
Setelah Anda menyelesaikan migrasi kode, kontainerisasi aplikasi Java Anda untuk menyiapkannya untuk penyebaran ke Azure Container Apps.
Pastikan Anda telah menginstal dan menjalankan Docker.
Di Visual Studio Code, buka proyek yang dimigrasikan.
Di bar samping Aktivitas, buka panel ekstensi modernisasi aplikasi GitHub Copilot.
Di bagian Tugas, buka Java, lalu buka Tugas Kontainerisasi dan pilih Aplikasi Kontainer.
Konfirmasi setiap tindakan alat dengan memilih Lanjutkan saat diminta.
Copilot melalui langkah-langkah berikut:
- Memeriksa apakah Docker diinstal dan berjalan.
- Memeriksa apakah kode aplikasi siap dijalankan dalam kontainer.
- Membuat Dockerfile untuk setiap proyek.
- Membangun gambar Docker untuk setiap proyek.
- Membuat ringkasan hasil kontainerisasi.
Nota
Untuk hasil terbaik, gunakan model terbaru yang direkomendasikan yang ditunjukkan dalam pengaturan agen ekstensi. Copilot mungkin memerlukan beberapa iterasi untuk memperbaiki kesalahan kontainerisasi.
Untuk informasi selengkapnya tentang alat kontainerisasi, lihat repositori containerization-assist di GitHub.
Menyebarkan ke Azure Container Apps
Setelah Anda membuat kontainer aplikasi, sebarkan ke Azure Container Apps.
Di Visual Studio Code, buka proyek yang dimigrasikan.
Di bar samping Aktivitas, buka panel ekstensi modernisasi aplikasi GitHub Copilot.
Di bagian Tugas , buka Java, lalu buka Tugas Penyebaran dan pilih salah satu opsi penyebaran berikut:
- Sebarkan ke Infrastruktur Azure yang Ada: Copilot meminta grup sumber daya yang ada dan menyebarkan ke sumber daya yang sesuai.
- Provisikan Infrastruktur dan Sebarkan ke Azure: Copilot membuat sumber daya Azure baru dan menyebarkan proyek Anda.
Konfirmasi setiap tindakan alat dengan memilih Lanjutkan saat diminta, dan berikan informasi yang diperlukan, seperti langganan dan grup sumber daya.
Copilot mengikuti langkah-langkah berikut:
- Menghasilkan file markdown rencana penyebaran dengan tujuan penyebaran, informasi proyek, arsitektur sumber daya Azure, sumber daya Azure, dan langkah-langkah eksekusi.
- Mengikuti langkah eksekusi yang terdapat dalam rencana.
- Memperbaiki semua kesalahan penyebaran.
- Menghasilkan file ringkasan yang menjelaskan hasil penyebaran.
Nota
Untuk hasil terbaik, gunakan model terbaru yang direkomendasikan yang ditunjukkan dalam pengaturan agen ekstensi. Mungkin Copilot memerlukan beberapa iterasi untuk memperbaiki kesalahan dalam penyebaran.
Praktik terbaik pascamigrasi
Setelah Anda memigrasikan aplikasi Java ke Azure Container Apps, pertimbangkan praktik terbaik berikut:
- Mengonfigurasi pemeriksaan kesehatan: Siapkan pemeriksaan kesehatan untuk memungkinkan Azure Container Apps memantau kesehatan aplikasi Anda.
- Menyiapkan pengelogan: Mengonfigurasi pengelogan berbasis konsol untuk diintegrasikan dengan Azure Monitor untuk agregasi dan analisis log terpusat.
- Mengonfigurasi aturan penskalakan: Siapkan aturan penskalakan berdasarkan lalu lintas HTTP, CPU, memori, atau metrik kustom untuk menangani berbagai beban kerja.
- Mengelola rahasia: Gunakan manajemen rahasia Azure Container Apps atau Azure Key Vault untuk menyimpan dan mengakses nilai konfigurasi sensitif dengan aman.
- Menyiapkan alur CI/CD: Mengotomatiskan alur penyebaran Anda menggunakan GitHub Actions atau Azure Pipelines untuk integrasi dan pengiriman berkelanjutan.
- Aktifkan penyebaran biru-hijau: Gunakan revisi dan pemisahan lalu lintas untuk menerapkan penyebaran waktu henti nol.
- Mengonfigurasi domain kustom: Siapkan domain dan sertifikat kustom untuk lalu lintas produksi.
- Pantau dengan metrik dan pemberitahuan: Gunakan metrik dan pemberitahuan untuk memantau kesehatan dan performa aplikasi secara proaktif.
- Mengaktifkan redundansi zona: Mengonfigurasi redundansi zona untuk ketersediaan tinggi di seluruh zona ketersediaan.