Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, Java ve .NET uygulamalarını Azure geçirmek için GitHub Copilot modernleştirme tarafından oluşturulan modernleştirme planının nasıl özelleştirileceği açıklanır.
Çoklu seçim sorunları aracılığıyla değerlendirme raporunda bir plan oluşturarak veya kenar çubuğundan bir modernleştirme planı oluşturmak ve yürütmek için Migrate to Azure öğesine tıklayarak modernleştirme oturumu başlatabilirsiniz. Modernleştirme oturumu başlattığınızda, GitHub Copilot geçiş hedefini, kapsamı, geçerli ve hedef mimariyi ve görev listesini açıklayan bir plan.md dosyası (ve .metadata/tasks.json dosyası) oluşturur. Bu dosya çifti, modernleştirme aracısının uyguladığı planın temelini oluşturur. Uygulamaya koymadan önce planı projenizin ihtiyaçlarına daha iyi uyacak şekilde iyileştirebilirsiniz.
Aracı plan.md oluşturduktan sonra Visual Studio Code düzenleyicisinde otomatik olarak açılır. Bu aşamada, planı gözden geçirebilir ve özelleştirerek belirli modernleştirme hedeflerinize uygun olduğundan emin olabilirsiniz.
Important
Planı, plan.md öğesini doğrudan el ile düzenlemek yerine Copilot'tan planı yeniden oluşturmasını veya güncellemesini isteyerek özelleştirin.
plan.md üzerinde doğrudan yapılan düzenlemeler, çalıştırmayı yöneten eşlik eden tasks.json dosyasını güncellemez ve iki dosya zamanla eşzamanlılığını yitirebilir. Aşağıdaki her bölümde önerilen yaklaşım şudur: "Copilot’a neyi değiştirmesi gerektiğini söyleyin, ardından yeniden oluşturmasına izin verin."
Örnek plan.md dosya yapısı
Aracı, aşağıdaki bölümleri içeren bir plan.md dosyası oluşturur. Aynı yapı Java ve .NET projeleri için kullanılır.
| Bölüm | Purpose | İstem yoluyla özelleştirilebilir |
|---|---|---|
| Project header | Proje adı ve modernizasyon başlığı. | Evet - başlığı dalgayı veya kapsamı yansıtacak şekilde ayarlayın. |
| Teknik Çerçeve | Kaynak koddan algılanan geçerli dil, çerçeve, derleme aracı, veritabanı ve anahtar bağımlılıkları. | Dolaylı olarak - Copilot'a sorarak yanlış tespit edilen bilgileri düzeltin. |
| Overview | Modernleştirme hedefinin anlatımı: nelerin değiştiği, neden değiştiği ve aşamalı yaklaşım. İşle ilgili, teknik ayrıntı yok. | Evet - iş amacını netleştirin, madde işaretleri ekleyin veya kaldırın. |
| Geçiş Etkisi Özeti | Her uygulama × mevcut hizmet → yeni Azure hizmeti, kimlik doğrulama yöntemi ve açıklamaların eşlemesini gösteren bir tablo. | Evet - hedef hizmeti değiştirin, kimlik doğrulamasını değiştirin, satır ekleyin veya kaldırın. |
| Açık Sorular ve Soru Formu | Plan oluşturma sırasında ortaya atılan açıklama soruları ve kullanıcının yanıtları. Görev seçimini yönlendirir. | Evet - açık soruları yanıtlayın, önceki yanıtları düzeltin. |
Ayrıntılı görev listesi plan.md içinde değil.
.metadata/tasks.json içinde yer alır ve Açık Sorular & Soru Formu bölümündeki yanıtlarınızdan ve aracının analizinden oluşturulur. Görevleri değiştirmek için Copilot planı yeniden oluşturmasını iste (bkz. özelleştirme).
Neleri özelleştirebilirsiniz?
Modernleştirme planı dört özelleştirme yüzeyini kullanıma sunar. Her biri plan.md'nin bir bölümüne karşılık gelir ve doğrudan düzenleme yerine Copilot'a verilen bir istem aracılığıyla erişilir.
1. Modernleştirme kapsamı
Kapsam, ajanın hangi tür görevler üreteceğini belirler. Plan dört kapsam türünü destekler:
- Upgrade — çalışma zamanı ve çerçeve sürümü yükseltmeleri (örneğin, JDK 11 → 17, Spring Boot 2.x → 3.x, .NET Framework → .NET 8).
- Sigration to Azure — şirket içi veya Azure olmayan bir hizmeti Azure eşdeğeriyle değiştirme (örneğin, Oracle → PostgreSQL için Azure Veri Tabanı, ActiveMQ → Azure Service Bus, sabit kodlanmış gizli diziler → Azure Key Vault).
- Kapsayıcılaştırma — Dockerfile ve ilgili derleme yapıtları oluşturma.
- Deployment — dağıtım dosyaları oluşturma ve Azure dağıtma. Dağıtım görevleri kapsayıcıya alma işlemini örtük olarak içerir.
Kapsamı özelleştirmek için, bu çalıştırma için hangi kapsam türlerinin geçerli olduğunu Copilot’a bildirin. Örneğin:
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. Hedef Azure hizmetleri ve kimlik doğrulaması
Migration Etki Özeti tablosu geçirilen her bileşen için hedef Azure hizmetini ve kimlik doğrulama yöntemini kaydeder. Bu değerleri, ilk plan oluşturulmadan önce veya oluşturulduktan sonra Copilot’a istem vererek özelleştirin. Örneğin:
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.
Ajan, hem plan.md hem de tasks.json öğesini yeniden oluşturur; böylece görev listesi tabloyla tutarlı kalır.
3. Anket yanıtları
Aracı, ask_user özelliğine erişebildiğinde planın kapsamını belirlemek için kısa bir soru dizisi yöneltir. Varsayılan üç soru şunlardır:
| Question | Varsayılan yanıt | Plan üzerindeki etkisi |
|---|---|---|
| Azure dağıtım hedefi | Dağıtım yok | Bir dağıtım görevini ekler (veya eklemez) ve hedef işlem hizmetini seçer (Azure Container Apps, Azure Kubernetes Service, Azure App Service, App Service Managed Instance, Azure Function Apps, Azure Static Web Apps). |
| Tümleştirme testi dahil mi? | Hayır | "Evet, Kapsayıcılarla Yerel Tümleştirme" veya "Evet, Yerel Tümleştirme ve Duman Testleri" olarak ayarlandığında, geçiş görevlerinin ardından ve kapsayıcıya almadan önce bir tümleştirme testi görevi ekler. |
| Konteynerleştirme (Dockerfile oluşturma) dahil mi? | Hayır | Bağımsız bir kapsayıcılaştırma görevi ekler. Bir dağıtım görevi seçilirse otomatik olarak atlanır; çünkü dağıtım kapsayıcılaştırmayı kapsar. |
Aracı soru sormadıysa (örneğin, ask_user kullanılamadığından) veya önceki bir yanıtı değiştirmek istiyorsanız, Copilot’a istem verin. Örneğin:
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
Yanıtlar, Açık Sorular ve Soru Formu bölümünde işaretli öğeler olarak kaydedilir ve görev seçimini yönlendirir.
4. Belirli görevleri ekleme, kaldırma veya daraltma
Copilot oluşturulmamış bir görev eklemesini, istemediğiniz bir görevi bırakmasını veya var olan bir görevin kapsamını ayarlamasını isteyebilirsiniz. intent kullanarak istem verin — Copilot’ın bilgi tabanından uygun beceri ve deseni seçmesine izin verin.
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".
Uyarı
Aracı yalnızca eşleşen bir beceriye veya desene sahip olduğu geçişler için görevler oluşturur. Aracının destekleyemediği bir geçiş talep ederseniz (örneğin, kurum içi özel bir hizmet), kapsam bölümüne bir uyarı eklenir ve görev eklenmez. Bu durumda geçişi el ile gerçekleştirilen bir adım olarak değerlendirin ve belgeleyecek bir Yönergeler yönergesi ekleyin (sonraki bölüme bakın).
Nasıl özelleştirilir: Copilot’tan yeniden oluşturmasını isteyin
Aşağıdaki iş akışını kullanın:
- Ajan oluşturduktan sonra ilk
plan.mdöğesini gözden geçirin. - Neyi değiştirmek istediğinizi belirleyin: kapsam, hedef hizmet, kimlik doğrulaması, soru formu yanıtları veya belirli görevler.
- Copilot’a değişikliği bildirin. Açık olun: bölümü ve istenen sonucu adlandırın.
- Copilot’un
plan.mdve.metadata/tasks.jsonöğelerini birlikte yeniden oluşturmasına izin verin. Yürütmenin çalışması için her iki dosya da uyumlu kalmalıdır. - Güncelleştirilmiş planı yeniden gözden geçirin. Kapsam, hedef mimari ve görev listesi amacınızla eşleşene kadar yineleyin.
Örnek uçtan uca komut
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 planı yeniden oluşturur, tabloyu güncelleştirir, anket yanıtlarını kaydeder ve görev listesini buna göre düzeltir.
Yürütme yönergeleri sağlama
Kapsam ve görevlere ek olarak, modernizasyonun nasıl yürütüleceğini belirleyen yönergeleri — metodoloji, kabul görmüş uygulamalar, araçlar ve kurallar — Copilot’a da sağlayın. Kılavuzları çoğunlukla planda bir Guidelines bölümü olarak ya da yerel kural dosyalarına başvuru şeklinde ekleyin.
Copilot kodu nasıl değiştirdiğini yönlendirmeye yardımcı olan yönergeleri ekleyin, örneğin:
- Belirli geçiş yaklaşımlarıyla ilgili kısıtlamalar veya yasaklar (örneğin, Spring Cloud Azure başlatıcılarını tanıtmayın; yerel SDK'ları kullanın).
- Kod stili veya kural gereksinimleri.
- Ajanın erişebileceği iç dosyalara, belgelere veya betiklere erişilebilecek bağlantılar.
- Hataları düzeltmeye veya geçişleri gerçekleştirmeye yardımcı olan etki alanı bilgisi.
- Ajanın kod değişikliklerine açıklama eklemesi için gereksinimler.
- Yürütme sırasında oluşturulan geçici yapıtlar için temizleme yönergeleri.
Örnek:
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.