Memigrasikan aplikasi Spring Cloud ke Azure Spring Apps

Catatan

Azure Spring Apps adalah nama baru untuk layanan Azure Spring Cloud. Meskipun layanan memiliki nama baru, Anda akan melihat nama lama di beberapa tempat untuk sementara saat kami berupaya memperbarui aset seperti cuplikan layar, video, dan diagram.

Panduan ini menjelaskan apa yang harus Anda ketahui ketika Anda ingin memigrasikan aplikasi Spring Cloud yang ada untuk dijalankan di Azure Spring Apps.

Pra-migrasi

Untuk memastikan keberhasilan migrasi, sebelum memulai, selesaikan langkah-langkah penilaian dan inventaris yang dijelaskan di bagian berikut.

Jika Anda tidak dapat memenuhi persyaratan pra-migrasi ini, lihat panduan migrasi pendamping berikut:

  • Memigrasi aplikasi JAR yang dapat dijalankan ke kontainer di Azure Kubernetes Service (panduan yang direncanakan)
  • Memigrasikan Aplikasi JAR yang dapat dieksekusi ke Azure Virtual Machines (panduan yang direncanakan)

Memeriksa komponen aplikasi

Menentukan apakah dan bagaimana sistem berkas digunakan

Temukan instans tempat layanan Anda menulis ke dan/atau membaca dari sistem file lokal. Identifikasi tempat file jangka pendek/sementara ditulis dan dibaca serta tempat file berumur panjang ditulis dan dibaca.

Catatan

Azure Spring Apps menyediakan penyimpanan sementara 5 GB per instans Azure Spring Apps, yang dipasang di /tmp. Jika file sementara ditulis melebihi batas tersebut atau ke lokasi yang berbeda, perubahan kode akan diperlukan.

Konten statis baca-saja

Jika aplikasi Anda saat ini menyajikan konten statis, Anda memerlukan lokasi alternatif untuk itu. Anda mungkin ingin mempertimbangkan untuk memindahkan konten statik ke Azure Blob Storage dan menambahkan Azure CDN untuk unduhan secepat kilat secara global. Untuk informasi selengkapnya, lihat Hosting situs web statis di Penyimpanan Azure dan Mulai Cepat: Mengintegrasikan akun Microsoft Azure Storage dengan Azure CDN.

Konten statis yang diterbitkan secara dinamis

Jika aplikasi Anda memungkinkan konten statis yang diunggah/ diproduksi oleh aplikasi Anda tetapi tidak dapat diubah setelah pembuatannya, Anda dapat menggunakan Azure Blob Storage dan Azure CDN seperti yang dijelaskan di atas, dengan Azure Function untuk menangani unggahan dan refresh CDN. Kami telah menyediakan implementasi sampel untuk penggunaan Anda di Pengunggahan dan pramuat CDN konten statis dengan Azure Functions.

Menentukan apakah terdapat layanan berisi kode khusus OS

Jika aplikasi Anda berisi kode apa pun dengan dependensi pada OS host, Anda harus melakukan refaktor untuk menghapus dependensi tersebut. Misalnya, Anda mungkin perlu mengganti penggunaan / atau \ di jalur sistem file dengan File.Separator atau Paths.get.

Beralih ke platform yang didukung

Azure Spring Apps menawarkan versi Java tertentu dan versi Tertentu dari Spring Boot dan Spring Cloud. Untuk memastikan kompatibilitas, pertama-tama migrasikan aplikasi Anda ke salah satu versi Java yang didukung di lingkungannya saat ini, kemudian lanjutkan dengan langkah-langkah migrasi yang tersisa. Pastikan untuk sepenuhnya menguji konfigurasi yang dihasilkan. Gunakan rilis stabil terbaru dari distribusi Linux dalam pengujian tersebut.

Catatan

Validasi ini sangat penting jika server Anda saat ini berjalan pada JDK yang tidak didukung (seperti Oracle JDK atau IBM OpenJ9).

Untuk mendapatkan versi Java Anda saat ini, masuk ke server produksi Anda dan jalankan perintah berikut:

java -version

Untuk versi Java, Spring Boot, dan Spring Cloud yang didukung, serta instruksi untuk memperbarui, lihat Menyiapkan aplikasi untuk penyebaran di Azure Spring Apps.

Mengidentifikasi versi Spring Boot

Periksa dependensi setiap aplikasi yang dimigrasikan untuk menentukan versi Spring Boot yang dimiliki.

Maven

Dalam proyek Maven, versi Spring Boot biasanya ditemukan dalam elemen <parent> file POM:

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.10</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
Gradle

Dalam proyek Gradle, versi Spring Boot biasanya akan ditemukan di bagian plugins, sebagai versi plugin org.springframework.boot:

plugins {
  id 'org.springframework.boot' version '2.7.10'
  id 'io.spring.dependency-management' version '1.0.15.RELEASE'
  id 'java'
}

Untuk aplikasi apa pun yang menggunakan Spring Boot 1.x, ikuti Panduan migrasi Spring Boot 2.0 untuk memperbaruinya ke versi Spring Boot yang didukung. Untuk versi yang didukung, lihat bagian Versi Spring Boot dan Spring Cloud di Menyiapkan aplikasi untuk penyebaran di Azure Spring Apps.

Mengidentifikasi versi Spring Cloud

Periksa dependensi setiap aplikasi yang Anda migrasikan untuk menentukan versi komponen Spring Cloud yang digunakannya.

Maven

Dalam proyek Maven, versi Spring Cloud biasanya diatur dalam properti spring-cloud.version:

  <properties>
    <java.version>1.8</java.version>
    <spring-cloud.version>2021.0.6</spring-cloud.version>
  </properties>
Gradle

Dalam proyek Gradle, versi Spring Cloud biasanya diatur dalam blok "properti ekstra":

ext {
  set('springCloudVersion', "2021.0.6")
}

Anda perlu memperbarui semua aplikasi untuk menggunakan versi Spring Cloud yang didukung. Untuk daftar versi yang didukung, lihat bagian Versi Spring Boot dan Spring Cloud di Menyiapkan aplikasi untuk penyebaran di Azure Spring Apps.

Mengidentifikasi solusi agregasi log

Identifikasi solusi agregasi log apa pun yang digunakan oleh aplikasi yang Anda migrasikan. Anda perlu mengonfigurasi pengaturan diagnostik dalam migrasi untuk membuat peristiwa yang dicatat tersedia untuk dikonsumsi. Untuk informasi selengkapnya, lihat bagian Memastikan pengelogan konsol dan mengonfigurasi pengaturan diagnostik.

Mengidentifikasi agen manajemen performa aplikasi (APM)

Identifikasi agen pemantauan performa aplikasi apa pun yang digunakan dengan aplikasi Anda. Azure Spring Apps mendukung integrasi dengan Application Insights, New Relic, Elastic APM, Dynatrace, dan AppDynamics. Jika aplikasi menggunakan APM yang didukung, konfigurasikan integrasi dalam migrasi. Jika aplikasi tidak menggunakan APM yang didukung, pertimbangkan untuk menggunakan Application Insights sebagai gantinya. Untuk informasi selengkapnya, lihat bagian Migrasi .

Mengidentifikasi dependensi Zipkin

Tentukan apakah aplikasi Anda memiliki dependensi pada Zipkin. Perbarui aplikasi untuk menggunakan Application Insights sebagai gantinya. Untuk informasi, lihat Menggunakan Application Insights Java In-Process Agent di Azure Spring Apps dan bagian Pascamigrasi .

Sumber daya eksternal inventaris

Identifikasi sumber daya eksternal, seperti sumber data, broker pesan JMS, dan URL layanan lainnya. Dalam aplikasi Spring Cloud, Anda biasanya dapat menemukan konfigurasi untuk sumber daya tersebut di salah satu lokasi berikut:

  • Di folder src/main/directory , dalam file yang biasanya disebut application.properties atau application.yml.
  • Di repositori Spring Cloud Config yang Anda identifikasi di langkah sebelumnya.

Database

Untuk database SQL, identifikasi string koneksi.

Untuk aplikasi Spring Boot, string koneksi biasanya muncul dalam file konfigurasi.

Berikut adalah contoh dari file application.properties:

spring.datasource.url=jdbc:mysql://localhost:3306/mysql_db
spring.datasource.username=dbuser
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

Berikut adalah contoh dari file application.yaml:

spring:
  data:
    mongodb:
      uri: mongodb://mongouser:deepsecret@mongoserver.contoso.com:27017

Lihat Dokumentasi Data Spring untuk skenario konfigurasi yang lebih mungkin:

Broker pesan JMS

Identifikasi broker atau broker yang digunakan dengan melihat manifes build (biasanya, filepom.xml atau build.gradle ) untuk dependensi yang relevan.

Misalnya, aplikasi Spring Boot menggunakan ActiveMQ biasanya akan berisi dependensi ini dalam file pom.xml:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-activemq</artifactId>
</dependency>

Aplikasi Spring Boot menggunakan broker komersial biasanya berisi dependensi langsung pada pustaka driver JMS broker. Berikut adalah contoh dari file build.gradle:

    dependencies {
      ...
      compile("com.ibm.mq:com.ibm.mq.allclient:9.0.4.0")
      ...
    }

Setelah Anda mengidentifikasi broker atau broker yang digunakan, temukan pengaturan yang sesuai. Dalam aplikasi Spring Cloud, Anda biasanya dapat menemukannya di file application.properties dan application.yml di direktori aplikasi, atau di repositori server Spring Cloud Config.

Berikut adalah contoh ActiveMQ dari file application.properties:

spring.activemq.brokerurl=broker:(tcp://localhost:61616,network:static:tcp://remotehost:61616)?persistent=false&useJmx=true
spring.activemq.user=admin
spring.activemq.password=tryandguess

Untuk informasi selengkapnya tentang konfigurasi ActiveMQ, lihat dokumentasi pesan Spring Boot.

Berikut adalah contoh IBM MQ dari file application.yaml:

ibm:
  mq:
    queueManager: qm1
    channel: dev.ORDERS
    connName: localhost(14)
    user: admin
    password: big$ecr3t

Untuk informasi selengkapnya tentang konfigurasi IBM MQ, lihat dokumentasi komponen IBM MQ Spring.

Mengidentifikasi cache eksternal

Identifikasi cache eksternal yang digunakan. Sering kali, Redis digunakan melalui Spring Data Redis. Untuk informasi konfigurasi, lihat dokumentasi Spring Data Redis.

Tentukan jika data sesi sedang di-cache melalui Sesi Spring dengan mencari konfigurasi masing-masing (di Java atau XML).

IdP

Identifikasi semua penyedia identitas dan semua aplikasi Spring Cloud yang memerlukan autentikasi dan/atau otorisasi. Untuk informasi tentang cara mengonfigurasi penyedia identitas, lihat sumber daya berikut:

Sumber daya dikonfigurasi melalui VMware Tanzu Application Service (TAS) (sebelumnya Pivotal Cloud Foundry)

Untuk aplikasi yang dikelola dengan TAS, sumber daya eksternal, termasuk sumber daya yang dijelaskan sebelumnya, sering dikonfigurasi melalui pengikatan layanan TAS. Untuk memeriksa konfigurasi untuk sumber daya tersebut, gunakan CLI TAS (Cloud Foundry) guna melihat variabel VCAP_SERVICES untuk aplikasi.

# Log into TAS, if needed (enter credentials when prompted)
cf login -a <API endpoint>

# Set the organization and space containing the application, if not already selected during login.
cf target org <organization name>
cf target space <space name>

# Display variables for the application
cf env <Application Name>

Periksa variabel VCAP_SERVICES untuk pengaturan konfigurasi layanan eksternal yang terikat pada aplikasi. Untuk informasi selengkapnya, lihat Dokumentasi TAS (Cloud Foundry).

Semua sumber daya eksternal lainnya

Tidak memungkinkan bagi panduan ini untuk mendokumentasikan setiap kemungkinan dependensi eksternal. Setelah migrasi, Anda bertanggung jawab untuk memverifikasi bahwa Anda dapat memenuhi setiap dependensi eksternal aplikasi Anda.

Sumber dan rahasia konfigurasi inventaris

Menginventariskan kata sandi dan string aman

Periksa semua properti dan file konfigurasi dan semua variabel lingkungan pada penyebaran produksi untuk setiap string rahasia dan kata sandi. Dalam aplikasi Spring Cloud, Anda biasanya dapat menemukan string tersebut di application.properties atau file application.yml dalam layanan individu atau di repositori Spring Cloud Config.

Sertifikat inventaris

Dokumentasikan semua sertifikat yang digunakan untuk titik akhir SSL publik atau komunikasi dengan database backend dan sistem lainnya. Anda bisa melihat semua sertifikat di server produksi dengan menjalankan perintah berikut ini:

keytool -list -v -keystore <path to keystore>

Menentukan apakah Spring Cloud Vault digunakan

Jika menggunakan Spring Cloud Vault untuk menyimpan dan mengakses rahasia, identifikasi toko rahasia latar (misalnya, HashiCorp Vault atau CredHub). Kemudian identifikasi semua rahasia yang digunakan kode aplikasi.

Menemukan sumber server konfigurasi

Jika aplikasi Anda menggunakan server Spring Cloud Config, identifikasi lokasi penyimpanan konfigurasi. Anda biasanya akan menemukan pengaturan ini di file bootstrap.yml atau bootstrap.properties , atau terkadang dalam file application.yml atau application.properties . Pengaturan ini akan terlihat seperti contoh berikut.

spring.cloud.config.server.git.uri: file://${user.home}/spring-cloud-config-repo

Seperti yang ditunjukkan sebelumnya, sementara git paling umum digunakan sebagai penyimpanan data pendukung Spring Cloud Config, salah satu backend lain mungkin sedang digunakan. Lihat dokumentasi Spring Cloud Config untuk informasi tentang backend lain, seperti Relational Database (JDBC), SVN, dan sistem file lokal.

Catatan

Jika data server konfigurasi Anda disimpan di tempat, seperti GitHub Enterprise, Anda harus membuatnya tersedia untuk Azure Spring Apps melalui repositori Git.

Memeriksa arsitektur penyebaran

Mendokumentasikan persyaratan perangkat keras untuk setiap layanan

Untuk setiap layanan Spring Cloud Anda (tidak termasuk server konfigurasi, registri, atau gateway), dokumentasikan informasi berikut:

  • Jumlah instans yang berjalan.
  • Jumlah CPU yang dialokasikan untuk setiap instans.
  • Jumlah RAM yang dialokasikan untuk setiap instans.

Mendokumentasikan geo-replikasi/distribusi

Tentukan apakah aplikasi Spring Cloud Anda saat ini didistribusikan di antara beberapa wilayah atau pusat data. Dokumentasikan persyaratan waktu aktif/SLA untuk aplikasi yang Anda migrasikan.

Mengidentifikasi klien yang melewati registri layanan

Identifikasi aplikasi klien apa pun yang meminta salah satu layanan untuk dimigrasikan tanpa menggunakan Spring Cloud Service Registry. Setelah migrasi, pemanggilan tersebut tidak akan memungkinkan lagi. Perbarui klien tersebut untuk menggunakan Spring Cloud OpenFeign sebelum migrasi.

Migration

Menghapus konfigurasi terbatas

Dalam layanan yang Anda migrasikan, temukan dan hapus penetapan eksplisit dari pengaturan terbatas berikut. Properti ini secara otomatis disuntikkan ke lingkungan aplikasi Anda untuk mengakses Config Server dan Service Discovery. Jika properti ini ada di file aplikasi Config Server, Anda mungkin mengalami konflik dan perilaku tak terduga. Untuk informasi selengkapnya, lihat bagian Pembatasan konfigurasi Spring Cloud Config Server terkelola di Azure Spring Apps

  • eureka.client.service-url.defaultZone
  • eureka.client.tls.keystore
  • eureka.instance.preferIpAddress
  • eureka.instance.instance-id
  • server.port
  • spring.cloud.config.tls.keystore
  • spring.config.import
  • spring.application.name
  • spring.jmx.enabled
  • management.endpoints.jmx.exposure.include

Membuat instans dan aplikasi Azure Spring Apps

Provisikan instans Azure Spring Apps di langganan Azure Anda. Kemudian, provisikan aplikasi untuk setiap layanan yang Anda migrasikan. Jangan sertakan registri Spring Cloud dan server konfigurasi. Sertakan layanan Spring Cloud Gateway. Untuk petunjuknya, lihat Mulai Cepat: Menyebarkan aplikasi pertama Anda ke Azure Spring Apps.

Menyiapkan server Spring Cloud Config

Konfigurasikan server konfigurasi di instans Azure Spring Apps Anda. Untuk informasi selengkapnya, lihat Menyiapkan instans Spring Cloud Config Server untuk layanan Anda.

Catatan

Jika repositori Spring Cloud Config Anda saat ini berada di sistem file lokal atau lokal, Anda harus terlebih dahulu memigrasikan atau mereplikasi file konfigurasi Anda ke repositori berbasis cloud privat, seperti GitHub, Azure Repos, atau BitBucket.

Memastikan pengelogan konsol dan mengonfigurasi pengaturan diagnostik

Konfigurasikan pengelogan Anda sehingga semua output dialihkan ke konsol dan bukan ke file.

Setelah aplikasi disebarkan ke Azure Spring Apps, tambahkan pengaturan diagnostik untuk membuat peristiwa yang dicatat tersedia untuk dikonsumsi, misalnya melalui Azure Monitor Log Analytics.

Tumpukan LogStash/ELK

Jika Anda menggunakan LogStash/ELK Stack untuk agregasi log, konfigurasikan pengaturan diagnostik untuk mengalirkan output konsol ke Azure Event Hub. Kemudian, gunakan Plugin LogStash EventHub untuk menyerap peristiwa yang masuk ke LogStash.

Splunk

Jika Anda menggunakan Splunk untuk agregasi log, konfigurasikan pengaturan diagnostik untuk mengalirkan output konsol ke Azure Blob Storage. Lalu, gunakan Add-on Splunk untuk Microsoft Cloud Services untuk menyerap peristiwa yang masuk ke Splunk.

Mengonfigurasi penyimpanan persisten

Jika ada bagian dari aplikasi yang membaca atau menulis ke sistem file lokal, Anda harus mengonfigurasi penyimpanan persisten untuk mengganti sistem file lokal. Untuk informasi selengkapnya, lihat Menggunakan penyimpanan persisten bawaan di Azure Spring Apps.

Anda harus menulis file sementara apa pun ke direktori /tmp. Untuk independensi OS, Anda bisa mendapatkan direktori ini dengan menggunakan System.getProperty("java.io.tmpdir"). Anda juga dapat menggunakan java.nio.Files::createTempFile untuk membuat file sementara.

Komponen VMware Tanzu

Di tingkat Enterprise, Application Configuration Service untuk VMware Tanzu® disediakan guna mendukung konfigurasi eksternal untuk aplikasi Anda. Server Konfigurasi Spring Cloud Terkelola tidak tersedia di tingkat Perusahaan dan hanya tersedia di tingkat Standar dan Dasar Azure Spring Apps.

Layanan Konfigurasi Aplikasi untuk Tanzu

Layanan Konfigurasi Aplikasi untuk Tanzu adalah salah satu komponen VMware Tanzu komersial. Application Configuration Service untuk Tanzu adalah Kubernetes-native, dan berbeda dari Spring Cloud Config Server. Layanan Konfigurasi Aplikasi untuk Tanzu memungkinkan pengelolaan sumber daya ConfigMap Kubernetes-native yang diisi dari properti yang ditentukan dalam satu atau beberapa repositori Git.

Di tingkat Enterprise, tidak ada Spring Cloud Config Server, tetapi Anda dapat menggunakan Layanan Konfigurasi Aplikasi untuk Tanzu guna mengelola konfigurasi terpusat. Untuk informasi selengkapnya, lihat Menggunakan Layanan Konfigurasi Aplikasi untuk Tanzu

Untuk menggunakan Layanan Konfigurasi Aplikasi untuk Tanzu, lakukan langkah-langkah berikut untuk setiap aplikasi Anda:

  1. Tambahkan pengikatan aplikasi eksplisit untuk menyatakan bahwa aplikasi Anda perlu menggunakan Layanan Konfigurasi Aplikasi untuk Tanzu.

    Catatan

    Saat mengubah status ikat/lepas, Anda harus menghidupkan ulang atau menyebarkan ulang aplikasi agar perubahan berlaku.

  2. Atur pola file konfigurasi. Pola file konfigurasi memungkinkan Anda memilih aplikasi dan profil mana yang digunakan aplikasi. Untuk informasi selengkapnya, lihat bagian Pola pada Menggunakan Layanan Konfigurasi Aplikasi untuk Tanzu.

    Opsi lain adalah mengatur pola file konfigurasi secara bersamaan dengan penyebaran aplikasi Anda, seperti yang ditunjukkan pada contoh berikut:

    az spring app deploy \
        --name <app-name> \
        --artifact-path <path-to-your-JAR-file> \
        --config-file-pattern <config-file-pattern>
    

Layanan Konfigurasi Aplikasi untuk Tanzu berjalan di Kubernetes. Untuk membantu memungkinkan pengalaman pengembangan lokal yang transparan, kami memberikan saran berikut.

  • Jika sudah memiliki repositori Git untuk menyimpan konfigurasi eksternal, Anda dapat menyiapkan Spring Cloud Config Server secara lokal sebagai konfigurasi terpusat untuk aplikasi Anda. Setelah Server Konfigurasi dimulai, Config Server mengkloning repositori Git dan menyediakan konten repositori melalui pengontrol webnya. Untuk informasi selengkapnya, lihat Konfigurasi Spring Cloud di dokumentasi Spring. spring-cloud-config-client menyediakan kemampuan bagi aplikasi Anda untuk mengambil konfigurasi eksternal secara otomatis dari Config Server.

  • Jika tidak memiliki repositori Git atau tidak ingin menyiapkan Config Server secara lokal, Anda dapat menggunakan file konfigurasi secara langsung di proyek. Sebaiknya gunakan profil untuk mengisolasi file konfigurasi sehingga hanya digunakan di lingkungan pengembangan Anda. Misalnya, gunakan dev sebagai profil. Kemudian, Anda dapat membuat file application-dev.yml di folder src/main/resource untuk menyimpan konfigurasi. Untuk membuat aplikasi Anda menggunakan konfigurasi ini, mulai aplikasi secara lokal dengan --spring.profiles.active=dev.

Tanzu Service Registry

VMware Tanzu® Service Registry adalah salah satu komponen VMware Tanzu komersial. Tanzu Service Registry menyediakan penerapan pola Service Discovery pada aplikasi tingkat Enterprise Anda, salah satu prinsip utama arsitektur berbasis layanan mikro. Aplikasi Anda dapat menggunakan Tanzu Service Registry untuk menemukan dan memanggil layanan terdaftar secara dinamis. Tanzu Service Registry lebih baik digunakan untuk mengonfigurasi langsung setiap klien layanan, yang bisa saja sulit, atau mengadopsi beberapa bentuk konvensi akses, yang bisa saja rapuh dalam produksi. Untuk informasi selengkapnya, lihat Menggunakan Tanzu Service Registry.

Memigrasi rahasia Spring Cloud Vault ke Azure KeyVault

Anda dapat menginjeksi rahasia secara langsung ke aplikasi melalui Spring menggunakan Azure KeyVault Spring Boot Starter. Untuk informasi selengkapnya, lihat Cara menggunakan Spring Boot Starter untuk Azure Key Vault.

Catatan

Migrasi mungkin mengharuskan Anda untuk mengubah nama beberapa rahasia. Oleh karena itu, perbarui kode aplikasi Anda.

Memigrasikan semua sertifikat ke KeyVault

Azure Spring Apps tidak menyediakan akses ke keystore JRE, jadi Anda harus memigrasikan sertifikat ke Azure KeyVault, dan mengubah kode aplikasi untuk mengakses sertifikat di KeyVault. Untuk informasi selengkapnya, lihat Memulai dengan sertifikat Key Vault dan Pustaka klien Azure Key Vault Certificate untuk Java.

Mengonfigurasi integrasi manajemen performa aplikasi (APM)

Azure Spring Apps menawarkan integrasi APM berikut. Ikuti tautan untuk mengaktifkan APM yang Anda butuhkan:

Jika aplikasi Anda tidak menggunakan APM yang didukung, pertimbangkan untuk menggunakan Application Insights sebagai gantinya. Azure Spring Apps menawarkan integrasi mendalam dengan Application Insights untuk manajemen performa dan respons real time terhadap penyimpangan.

Menonaktifkan klien metrik dan titik akhir di aplikasi Anda

Hapus metrik apa pun yang digunakan klien atau titik akhir metrik apa pun yang diekspos dalam aplikasi Anda.

Menyebarkan layanan

Sebarkan setiap aplikasi Spring yang dimigrasikan (tidak termasuk server Spring Cloud Config and Registry), seperti yang dijelaskan dalam Mulai Cepat: Sebarkan aplikasi pertama Anda ke Azure Spring Apps.

Mengonfigurasi rahasia per layanan dan pengaturan eksternal

Anda dapat menginjeksi pengaturan konfigurasi per layanan apa pun ke setiap layanan sebagai variabel lingkungan. Gunakan langkah-langkah berikut di portal Azure:

  1. Navigasi ke Instans Azure Spring Apps dan pilih Aplikasi.
  2. Pilih layanan yang akan dikonfigurasi.
  3. Pilih Konfigurasi.
  4. Masukkan variabel yang akan dikonfigurasi.
  5. Pilih Simpan.

Spring Cloud App Configuration Settings

Memigrasikan dan mengaktifkan penyedia identitas

Jika salah satu aplikasi Spring Cloud memerlukan autentikasi atau otorisasi, pastikan aplikasi tersebut dikonfigurasi untuk mengakses penyedia identitas:

  • Jika IdP adalah ID Microsoft Entra, tidak ada perubahan yang diperlukan.
  • Jika penyedia identitas adalah forest Active Directory lokal, pertimbangkan untuk menerapkan solusi identitas hibrid dengan ID Microsoft Entra. Untuk panduan, lihat Dokumentasi identitas hibrida.
  • Jika penyedia identitas adalah solusi lokal lain, seperti PingFederate, lihat Penginstalan kustom topik Microsoft Entra Koneksi untuk mengonfigurasi federasi dengan ID Microsoft Entra. Atau, pertimbangkan untuk menggunakan Spring Security untuk menggunakan penyedia identitas Anda melalui OAuth2/OpenID Koneksi atau SAML.

Memperbarui aplikasi klien

Perbarui konfigurasi semua aplikasi klien untuk menggunakan titik akhir Azure Spring Apps yang diterbitkan untuk aplikasi yang dimigrasikan.

Pasca-migrasi

  • Pertimbangkan untuk menambahkan alur penyebaran untuk penyebaran otomatis dan konsisten. Instruksi tersedia untuk Azure Pipelines, untuk GitHub Actions, dan untuk Jenkins.

  • Pertimbangkan untuk menggunakan penyebaran penahapan untuk menguji perubahan kode dalam produksi sebelum kode tersebut tersedia untuk beberapa atau semua pengguna akhir Anda. Untuk informasi selengkapnya, lihat Menyiapkan staging environment di Azure Spring Apps.

  • Pertimbangkan untuk menambahkan pengikatan layanan untuk menyambungkan aplikasi Anda ke database Azure yang didukung. Pengikatan layanan ini akan menghilangkan kebutuhan Anda untuk memberikan informasi koneksi, termasuk info masuk, ke aplikasi Spring Cloud Anda.

  • Pertimbangkan untuk menggunakan Azure Application Insights untuk memantau performa dan interaksi aplikasi Anda. Untuk informasi selengkapnya, lihat Agen Proses Java Application Insights di Azure Spring Apps.

  • Pertimbangkan untuk menambahkan aturan peringatan Azure Monitor dan grup tindakan untuk mendeteksi dan menangani kondisi menyimpang dengan cepat. Untuk informasi selengkapnya, lihat Tutorial: Memantau sumber daya Spring Cloud menggunakan peringatan dan grup tindakan.

  • Pertimbangkan untuk mereplikasi penyebaran Azure Spring Apps di wilayah lain untuk latensi yang lebih rendah dan keandalan dan toleransi kesalahan yang lebih tinggi. Gunakan Azure Traffic Manager untuk menyeimbangkan muatan di antara penyebaran atau gunakan Azure Front Door untuk menambahkan pembongkaran SSL dan Web Application Firewall dengan perlindungan DDoS.

  • Jika replikasi geografis tidak diperlukan, pertimbangkan untuk menambahkan Azure Application Gateway untuk menambahkan pembongkaran SSL dan Web Application Firewall dengan perlindungan DDoS.

  • Jika aplikasi Anda menggunakan komponen Spring Cloud Netflix lama, pertimbangkan untuk menggantinya dengan alternatif saat ini:

    Warisan Saat ini
    Spring Cloud Eureka Spring Cloud Service Registry
    Spring Cloud Netflix Zuul Spring Cloud Gateway
    Spring Cloud Netflix Archaius Spring Cloud Config Server
    Spring Cloud Netflix Ribbon Spring Cloud Load Balancer (penyeimbang beban sisi klien)
    Spring Cloud Hystrix Spring Cloud Circuit Breaker + Resilience4J
    Spring Cloud Netflix Turbine Micrometer + Prometheus