Tutorial: Menyebarkan aplikasi ke Azure Spring Apps menggunakan Jenkins dan Azure CLI
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.
Azure Spring Apps adalah pengembangan layanan mikro yang dikelola sepenuhnya dengan penemuan layanan bawaan dan manajemen konfigurasi. Layanan ini memudahkan penyebaran aplikasi layanan mikro berbasis Spring Boot ke Azure. Tutorial ini menunjukkan bagaimana Anda dapat menggunakan Azure CLI di Jenkins untuk mengotomatiskan integrasi dan pengiriman berkelanjutan (CI/CD) untuk Azure Spring Apps.
Dalam tutorial ini, Anda akan menyelesaikan tugas-tugas ini:
- Menyediakan instans layanan dan meluncurkan aplikasi Java Spring
- Menyiapkan server Jenkins Anda
- Menggunakan Azure CLI dalam alur Jenkins untuk membangun dan menyebarkan aplikasi layanan mikro
Prasyarat
- Langganan Azure: Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum memulai.
- Jenkins: Memasang Jenkins di mesin virtual Linux
- Akun GitHub: Jika Anda belum memiliki akun GitHub, buat akun gratis sebelum Anda memulai.
Menyediakan instans layanan dan meluncurkan aplikasi Java Spring
Kami menggunakan Piggy Metrics sebagai contoh aplikasi layanan Microsoft dan mengikuti langkah yang sama di Mulai Cepat: Meluncurkan aplikasi Java Spring menggunakan Azure CLI untuk menyediakan instans layanan dan menyiapkan aplikasi. Jika Anda sudah melalui proses yang sama, Anda dapat melompat ke bagian berikutnya. Jika tidak, berikut ini disertakan perintah Azure CLI. Lihat Mulai Cepat: Meluncurkan aplikasi Java Spring menggunakan Azure CLI untuk mendapatkan informasi lebih lanjut.
Komputer lokal Anda harus memenuhi prasyarat yang sama dengan server build Jenkins. Pastikan hal berikut ini dipasang untuk membangun dan menyebarkan aplikasi layanan mikro:
- Git
- JDK 8
- Maven 3.0 atau di atasnya
- Azure CLI sudah dipasang, versi 2.0.67 atau yang lebih tinggi
Instal ekstensi Azure Spring Apps:
az extension add --name spring
Buat grup sumber daya untuk berisi layanan Azure Spring Apps Anda:
az group create --location eastus --name <resource group name>
Provisikan instans Azure Spring Apps:
az spring create -n <service name> -g <resource group name>
Fork repositori Piggy Metrics ke akun GitHub Anda sendiri. Di mesin komputer lokal Anda, klon repositori Anda di direktori yang disebut
source-code
:mkdir source-code git clone https://github.com/<your GitHub id>/piggymetrics
Menyiapkan server konfigurasi Anda. Pastikan Anda mengganti <id GitHub Anda> dengan nilai yang benar.
az spring config-server git set -n <your-service-name> --uri https://github.com/<your GitHub id>/piggymetrics --label config
Bangun proyek:
cd piggymetrics mvn clean package -D skipTests
Buat tiga layanan mikro: gateway, auth-service, dan account-service:
az spring app create --n gateway -s <service name> -g <resource group name> az spring app create --n auth-service -s <service name> -g <resource group name> az spring app create --n account-service -s <service name> -g <resource group name>
Sebarkan aplikasi:
az spring app deploy -n gateway -s <service name> -g <resource group name> --jar-path ./gateway/target/gateway.jar az spring app deploy -n account-service -s <service name> -g <resource group name> --jar-path ./account-service/target/account-service.jar az spring app deploy -n auth-service -s <service name> -g <resource group name> --jar-path ./auth-service/target/auth-service.jar
Tetapkan titik akhir publik ke gateway:
az spring app update -n gateway -s <service name> -g <resource group name> --is-public true
Kueri aplikasi gateway untuk mendapatkan url sehingga Anda dapat memverifikasi bahwa aplikasi sedang berjalan.
az spring app show --name gateway | grep url
Navigasikan ke URL yang disediakan oleh perintah sebelumnya untuk menjalankan aplikasi PiggyMetrics.
Menyiapkan server Jenkins
Di bagian ini, Anda menyiapkan server Jenkins untuk menjalankan build, yang siap untuk pengujian. Namun, karena implikasi keamanan, Anda harus menggunakan agen Azure mesin virtual atau agen Azure Container untuk men-spin up agen di Azure untuk menjalankan build Anda.
Memasang plug-in
Masuk ke server Jenkins Anda.
Pilih Kelola Jenkins.
Pilih Kelola Plugin.
Pada tab Tersedia, pilih plug-in berikut:
Jika plug-in ini tidak muncul dalam daftar, periksa tab Terpasang untuk melihat apakah mereka sudah diinstal.
Untuk memasang plug-in, pilih Unduh sekarang dan pasang setelah hidupkan ulang.
Hidupkan ulang server Jenkins Anda untuk menyelesaikan penginstalan.
Menambahkan informasi masuk Azure Service Principal Anda di penyimpanan informasi masuk Jenkins
Anda memerlukan Azure Service Principal untuk menyebarkan ke Azure. Untuk informasi selengkapnya, lihat bagian Membuat perwakilan layanan di tutorial Menyebarkan ke Azure App Service. Output dari
az ad sp create-for-rbac
terlihat seperti ini:{ "appId": "xxxxxx-xxx-xxxx-xxx-xxxxxxxxxxxx", "displayName": "xxxxxxxjenkinssp", "name": "http://xxxxxxxjenkinssp", "password": "xxxxxx-xxx-xxxx-xxx-xxxxxxxxxxxx", "tenant": "xxxxxx--xxx-xxxx-xxx-xxxxxxxxxxxx" }
Di dasbor Jenkins, pilih Informasi masuk>Sistem. Kemudian, pilih Informasi masuk global (tidak terbatas).
Pilih Tambahkan Kredensial.
Pilih Microsoft Azure Service Principal sebagai jenis.
Masukkan nilai untuk bidang berikut ini:
- ID Langganan: ID langganan Azure
- ID Klien: ID aplikasi perwakilan layanan
- Rahasia Klien: Kata sandi perwakilan layanan
- ID Penyewa: ID penyewa akun Microsoft
- Lingkungan Azure: Pilih nilai yang sesuai untuk lingkungan Anda. Misalnya, gunakan Azure untuk Azure Global
- ID: Ditetapkan sebagai
azure_service_principal
. Kita menggunakan ID ini di langkah selanjutnya pada artikel ini - Deskripsi: Nilai ini bersifat opsional, tetapi direkomendasikan dari sudut pandang dokumentasi/pemeliharaan.
Menginstal ekstensi spring Maven dan Azure CLI
Alur sampel menggunakan Maven untuk membangun dan Azure CLI untuk menyebarkan ke instans layanan. Saat Jenkins dipasang, Jenkins akan membuat akun administrator bernama jenkins. Pastikan bahwa pengguna jenkins memiliki izin untuk menjalankan ekstensi spring.
Sambungkan ke pengendali Jenkins melalui SSH.
Pasang Maven.
sudo apt-get install maven
Verifikasi bahwa Azure CLI dipasang dengan memasukkan
az version
. Jika Azure CLI belum terpasang, lihat Memasang Azure CLI.Beralih ke
jenkins
pengguna:sudo su jenkins
Pasang ekstensi spring:
az extension add --name spring
Membuat Jenkinsfile
Dalam repositori Anda sendiri -
https://github.com/your_github_id/piggymetrics
- buat Jenkinsfile di root.Perbarui file sebagai berikut. Pastikan Anda mengganti nilai <nama grup sumber daya> dan <.nama layanan>. Ganti azure_service_principal dengan ID yang tepat jika Anda menggunakan nilai yang berbeda saat menambahkan informasi masuk di Jenkins.
node { stage('init') { checkout scm } stage('build') { sh 'mvn clean package' } stage('deploy') { withCredentials([azureServicePrincipal('azure_service_principal')]) { // Log in to Azure sh ''' az login --service-principal -u $AZURE_CLIENT_ID -p $AZURE_CLIENT_SECRET -t $AZURE_TENANT_ID az account set -s $AZURE_SUBSCRIPTION_ID ''' // Set default resource group name and service name. Replace <resource group name> and <service name> with the right values sh 'az config set defaults.group=<resource group name>' sh 'az config set defaults.spring=<service name>' // Deploy applications sh 'az spring app deploy -n gateway --jar-path ./gateway/target/gateway.jar' sh 'az spring app deploy -n account-service --jar-path ./account-service/target/account-service.jar' sh 'az spring app deploy -n auth-service --jar-path ./auth-service/target/auth-service.jar' sh 'az logout' } } }
Simpan dan terapkan perubahan.
Membuat pekerjaan
Di dasbor Jenkins, pilih Item Baru.
Berikan nama, Deploy-PiggyMetrics untuk pekerjaan tersebut dan pilih Alur. Klik OK.
Pilih tab Alur.
Untuk Definisi, pilih Skrip alur dari SCM.
Untuk SCM, pilih Git.
Masukkan URL GitHub untuk repositori Anda yang di-fork:
https://github.com/<your GitHub id>/piggymetrics.git
.Untuk Branch Specifier (hitam untuk 'any'), pilih /Azure.
Untuk Jalur skrip, pilih Jenkinsfile.
Pilih Simpan
Validasi dan jalankan pekerjaan
Sebelum menjalankan pekerjaan, edit teks di kotak input masuk untuk masukkan ID masuk.
Di repositori Anda, buka
index.html
di/gateway/src/main/resources/static/
.Cari
enter your login
dan perbarui teks tersebut menjadienter login ID
.<input class="frontforms" id="frontloginform" name="username" placeholder="enter login ID" type="text" autocomplete="off"/>
Simpan dan terapkan perubahan.
Jalankan pekerjaan di Jenkins secara manual. Di dasbor Jenkins, pilih pekerjaan
Deploy-PiggyMetrics
lalu pilih Bangun sekarang.
Setelah pekerjaan selesai, navigasikan ke IP publik aplikasi gateway
dan verifikasi bahwa aplikasi Anda telah diperbarui.
Membersihkan sumber daya
Bila tidak lagi diperlukan, hapus sumber daya yang dibuat dalam artikel ini:
az group delete -y --no-wait -n <resource group name>