Sesuaikan rencana modernisasi saat Anda menggunakan fitur modernisasi GitHub Copilot

Artikel ini menjelaskan cara menyesuaikan rencana modernisasi yang dihasilkan oleh modernisasi GitHub Copilot untuk memigrasikan aplikasi Java dan .NET ke Azure.

Anda dapat memulai sesi modernisasi dengan membuat rencana pada laporan penilaian dengan memilih beberapa masalah, atau dengan mengklik Migrate to Azure untuk membuat dan menjalankan rencana modernisasi dari panel samping. Saat Anda memulai sesi modernisasi, GitHub Copilot menghasilkan file plan.md (dan pendamping .metadata/tasks.json file) yang menjelaskan tujuan migrasi, cakupan, arsitektur saat ini dan target, dan daftar tugas. Dua file ini berfungsi sebagai cetak biru yang dijalankan oleh agen modernisasi. Anda dapat menyempurnakan rencana sebelum eksekusi agar lebih sesuai dengan kebutuhan proyek Anda.

Setelah agen menghasilkan file plan.md, file tersebut secara otomatis terbuka di editor Visual Studio Code. Pada tahap ini, Anda dapat meninjau dan menyesuaikan rencana untuk memastikannya selaras dengan tujuan modernisasi spesifik Anda.

Important

Sesuaikan rencana dengan meminta Copilot untuk membuat ulang atau memperbarui rencana daripada mengedit plan.md secara manual secara langsung. Pengeditan langsung ke plan.md tidak memperbarui file pendamping tasks.json yang mendorong eksekusi, dan kedua file dapat melayang tidak sinkron. Pola yang direkomendasikan di setiap bagian di bawah ini adalah "beri tahu Copilot apa yang harus diubah, lalu biarkan regenerasi."

Contoh struktur berkas plan.md

Agen menghasilkan file plan.md dengan bagian berikut. Struktur yang sama digunakan untuk proyek Java dan .NET.

Bagian Kegunaan Dapat disesuaikan melalui prompt
Header proyek Nama proyek dan judul modernisasi. Ya - sesuaikan judul untuk mencerminkan gelombang atau cakupan.
Kerangka Kerja Teknis Bahasa pemrograman, kerangka kerja, alat kompilasi, basis data, dan dependensi utama saat ini yang terdeteksi dari kode sumber. Secara tidak langsung - perbaiki fakta yang salah terdeteksi dengan meminta Copilot.
Overview Deskripsi narasi tentang tujuan modernisasi: apa yang berubah, mengapa, dan pendekatan bertahap. Ditujukan untuk kalangan bisnis, tanpa detail teknis. Ya - perjelas tujuan bisnis, tambahkan atau hapus butir.
Ringkasan Dampak Migrasi Tabel yang memetakan setiap aplikasi × layanan asli → layanan Azure baru, metode autentikasi, dan komentar. Ya - ubah layanan target, ubah autentikasi, tambahkan atau hapus baris.
Buka Pertanyaan & Kuesioner Pertanyaan klarifikasi yang diajukan selama pembuatan rencana dan jawaban pengguna. Mendorong pemilihan tugas. Ya - jawab pertanyaan terbuka, revisi jawaban sebelumnya.

Daftar tugas terperinci tidak ada di plan.md. Ini berada di .metadata/tasks.json dan dihasilkan dari jawaban Anda di bagian Pertanyaan Terbuka & Kuesioner serta analisis agen. Untuk mengubah tugas, minta Copilot untuk membuat ulang rencana (lihat Cara menyesuaikan).

Apa yang dapat Anda sesuaikan

Rencana modernisasi memaparkan empat permukaan kustomisasi. Masing-masing merujuk ke bagian di plan.md dan diakses melalui prompt ke Copilot, bukan melalui pengeditan langsung.

1. Cakupan modernisasi

Cakupan menentukan jenis tugas yang dihasilkan oleh agen. Paket ini mendukung empat jenis cakupan:

  • Upgrade — peningkatan versi runtime dan kerangka kerja (misalnya, JDK 11 → 17, Spring Boot 2.x → 3.x, .NET Framework → .NET 8).
  • Migrasi ke Azure — mengganti layanan lokal (on-premises) atau non-Azure dengan padanan Azure yang setara (misalnya, Oracle → Azure Database for PostgreSQL, ActiveMQ → Azure Service Bus, rahasia yang ditanamkan langsung dalam kode → Azure Key Vault).
  • Kontainerisasi — menghasilkan Dockerfile dan artefak build terkait.
  • Deployment — menghasilkan file penyebaran dan menyebarkan ke Azure. Tugas penyebaran mencakup kontainerisasi secara implisit.

Untuk menyesuaikan cakupan, beri tahu Copilot tipe cakupan yang berlaku untuk proses ini. Contohnya:

For this modernization plan, only include Upgrade and Migration to Azure tasks. Do not generate containerization or deployment tasks — those are handled by a separate pipeline.

2. Layanan Azure target dan autentikasi

Tabel Ringkasan Dampak Migrasi mencatat layanan Azure target dan metode autentikasi untuk setiap komponen yang dimigrasikan. Sesuaikan nilai-nilai ini dengan meminta Copilot sebelum atau sesudah rencana awal dibuat. Contohnya:

Update the Migration Impact Summary:
- Use Azure Container Apps as the deployment target, not Azure Kubernetes Service.
- Use Managed Identity for the PostgreSQL connection. Do not use Key Vault for the DB password.
- Migrate file-based logging to Azure Monitor (Application Insights), not to console-only.

Agen menghasilkan ulang plan.md dan tasks.json sehingga daftar tugas tetap konsisten dengan tabel.

3. Jawaban kuesioner

Ketika agen memiliki kapabilitas ask_user yang tersedia, agen mengajukan kuesioner singkat untuk menentukan cakupan rencana. Tiga pertanyaan default adalah:

Question Jawaban bawaan Pengaruh pada rencana
Target penyebaran pada Azure Tidak ada penerapan Menambahkan (atau menghilangkan) tugas penyebaran dan memilih layanan komputasi target (Azure Container Apps, Azure Kubernetes Service, Azure App Service, App Service Managed Instance, Azure Function Apps, Azure Static Web Apps).
Sertakan pengujian integrasi? No Saat diatur ke "Ya, Integrasi Lokal dengan Kontainer" atau "Ya, Integrasi Lokal dan Uji Asap", menambahkan tugas uji integrasi setelah tugas migrasi dan sebelum kontainerisasi.
Sertakan kontainerisasi (pembuatan Dockerfile)? No Menambahkan tugas kontainerisasi mandiri. Dilewati secara otomatis jika tugas penyebaran dipilih, karena penyebaran mencakup kontainerisasi.

Jika agen tidak mengajukan pertanyaan (misalnya, karena ask_user tidak tersedia) atau Anda ingin mengubah jawaban sebelumnya, minta Copilot. Contohnya:

Update the plan with these answers:
- Deployment target: Azure Container Apps
- Integration testing: Yes, Local Integration and Smoke Tests
- Containerization: handled by deployment task, no standalone containerization needed

Jawaban dicatat sebagai item yang dicentang di bagian Pertanyaan Terbuka & Kuesioner dan digunakan untuk menentukan pemilihan tugas.

4. Menambahkan, menghapus, atau memperbaiki tugas tertentu

Anda dapat meminta Copilot untuk menambahkan tugas yang tidak dihasilkan, menghilangkan tugas yang tidak Anda inginkan, atau menyesuaikan cakupan tugas yang ada. Berikan prompt dengan intent — biarkan Copilot memilih keterampilan dan pola yang sesuai dari basis pengetahuannya.

Examples:

Add a task to migrate from ActiveMQ to Azure Service Bus.
Drop the integration test task — we have an existing test suite that covers this.
The Spring Boot upgrade task should target Spring Boot 3.2 specifically, not "latest".

Nota

Agen hanya membuat tugas untuk migrasi yang memiliki keterampilan atau pola yang sesuai untuk ditanganinya. Jika Anda meminta migrasi yang tidak dapat didukung agen (misalnya, layanan kepemilikan internal), agen menambahkan peringatan ke bagian cakupan dan tugas tidak ditambahkan. Dalam hal ini, perlakukan migrasi sebagai langkah manual dan tambahkan instruksi Panduan (lihat bagian berikutnya) untuk mendokumentasikannya.

Cara menyesuaikan: meminta Copilot untuk meregenerasi

Gunakan alur kerja berikut:

  1. Tinjau draf awal plan.md setelah agen membuatnya.
  2. Identifikasi apa yang ingin Anda ubah - cakupan, layanan target, autentikasi, jawaban kuesioner, atau tugas tertentu.
  3. Beri instruksi kepada Copilot dengan perubahan tersebut. Spesifik: beri nama bagian dan hasil yang diinginkan.
  4. Biarkan Copilot menghasilkan ulang plan.md dan .metadata/tasks.json sekaligus. Kedua file harus tetap selaras agar eksekusi berfungsi.
  5. Tinjau ulang rencana yang diperbarui. Iterasi hingga cakupan, arsitektur target, dan daftar tugas cocok dengan niat Anda.

Contoh prompt menyeluruh:

Update the modernization plan with these changes:
1. Add Migration to Azure scope for messaging — migrate ActiveMQ to Azure Service Bus.
2. Use Managed Identity for all Azure service connections; do not introduce Key Vault.
3. Deployment target is Azure Container Apps.
4. Include Layer 1 and Layer 2 integration tests.
5. The Spring Boot upgrade task should explicitly include the JDK 17 and Jakarta EE migration in its description, as a single task (do not split).

Copilot meregenerasi rencana, memperbarui tabel, merekam jawaban kuesioner, dan merevisi daftar tugas yang sesuai.

Memberikan panduan untuk eksekusi

Selain cakupan dan tugas, berikan kepada Copilot panduan — metodologi, konvensi, perkakas, dan aturan — yang mengatur cara modernisasi dilaksanakan. Tambahkan panduan biasanya sebagai bagian Guidelines dalam rencana atau sebagai rujukan ke file aturan lokal.

Sertakan instruksi apa pun yang membantu mengarahkan cara Copilot memodifikasi kode, seperti:

  • Batasan atau larangan pada pendekatan migrasi tertentu (misalnya, jangan memperkenalkan starter Azure Spring Cloud; gunakan SDK asli).
  • Gaya kode atau persyaratan konvensi.
  • Tautan ke file internal, dokumentasi, atau skrip yang dapat diakses agen.
  • Pengetahuan domain berguna untuk memperbaiki kesalahan atau melakukan migrasi.
  • Persyaratan tentang bagaimana agen harus membuat anotasi atau mengomentari perubahan kode.
  • Instruksi pembersihan untuk artefak sementara yang dibuat selama eksekusi.

Contoh:

Add these guidelines to the plan:
- Use Azure Managed Identity for every Azure service connection. Do not introduce connection strings or Key Vault secrets unless a service has no Managed Identity support.
- Follow the code conventions defined in `/docs/internal/code-style.md`.
- Provide detailed comments explaining why each code change is necessary.
- After execution, remove any temporary scripts or scratch files created during migration.

Baca juga