Gunakan jenis paket penyebaran ini ketika Anda tidak perlu menentukan file sumber aplikasi dan menerbitkan aplikasi sepenuhnya melalui skrip.
Cara Kerja
Jika Anda melakukan penyebaran ke kelompok aplikasi yang merupakan kelompok Auto Scaling (ESS), aktivitas penskalaan dijeda selama penyebaran. Aktivitas tersebut secara otomatis dilanjutkan setelah penyebaran selesai, baik berhasil maupun gagal.
Proses penyebaran mengikuti prinsip hentikan-lalu-jalankan. Setiap penyebaran pertama kali menjalankan skrip stop, lalu menjalankan skrip start.
Create and publish the deployment.
Konfigurasikan file sumber aplikasi, skrip start, dan skrip stop untuk penyebaran.
Buat tugas rilis, pilih mode rilis, dan terbitkan penyebaran ke kelompok aplikasi target.
Alur penyebaran otomatis untuk penerbitan tugas.
-
Ambil detail paket penyebaran, termasuk skrip startup dan shutdown aplikasi.
-
Jalankan skrip shutdown: Hentikan versi aplikasi sebelumnya.
-
Jalankan skrip startup: Jalankan versi baru aplikasi.
-
Cakupan
Penyebaran hanya didukung pada instans Linux.
Skrip start dan stop harus berupa skrip Shell.
Prosedur
Contoh aplikasi Java
Buat aplikasi dan impor instans Elastic Compute Service (ECS).
Jika Anda belum memiliki instans ECS, buat satu yang menjalankan sistem operasi Linux dari halaman ECS console - Custom Launch.
Kami merekomendasikan penggunaan citra ECS Alibaba Cloud Linux 3.2104 LTS 64-bit atau Ubuntu 22.04 64-bit. Skrip dalam contoh berikut didasarkan pada kedua citra ini. Jika Anda menggunakan citra berbeda, sesuaikan skrip tersebut sesuai kebutuhan.
Buka halaman ECS console - Application Management, klik Create from Existing Resources, buat aplikasi dan kelompok aplikasi, lalu impor instans ECS ke dalam kelompok aplikasi tersebut.
-
Buat paket penyebaran.
Buka halaman ECS console - Application Management. Pada tab My Applications, klik nama aplikasi target.
Pada halaman produk aplikasi, pilih tab Deployment, lalu klik Create Deployment.
-
Pada halaman Create Deployment Package, atur Deployment Package Type ke Command-only. Konfigurasikan parameter. Klik OK untuk menyimpan.
-
Working directory: Tetapkan direktori tempat skrip startup dan shutdown dijalankan. Contoh:
/root/deploy. -
Alibaba Cloud Linux
start_application() { set -e curl -O https://oos-public-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/code-deploy/sample-spring-1.0-SNAPSHOT.jar yum install -y maven-3.5.4 java -jar ./sample-spring-1.0-SNAPSHOT.jar & } start_applicationUbuntu
start_application() { set -e curl -O https://oos-public-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/code-deploy/sample-spring-1.0-SNAPSHOT.jar apt update apt install -y maven java -jar ./sample-spring-1.0-SNAPSHOT.jar & } start_application -
### Hentikan aplikasi (jika ada) stop_application() { PID=$(ps -ef | grep "sample-spring-1.0-SNAPSHOT.jar" | grep -v "grep" | awk '{print $2}') if [ -n "$PID" ]; then kill -9 $PID fi } stop_application
-
Kembali ke daftar penyebaran. Temukan penyebaran yang telah Anda buat dan klik Publish. Pilih kelompok target dan klik OK untuk memulai penyebaran.
Verifikasi hasilnya.
-
Buka halaman detail instans target. Klik Connect dan pilih Workbench. Ikuti petunjuk pada halaman untuk login ke terminal.
Jalankan perintah
curl http://localhost:8080/hello. Nilai kembaliAlibaba Spring Sample!menunjukkan bahwa penyebaran berhasil.
-
Contoh aplikasi Docker
Persiapkan aplikasi, kelompok, dan instans ECS Anda.
Sebelum melakukan penyebaran, buat aplikasi dan kelompok aplikasi di ECS Application Management. Lalu tambahkan instans ECS yang telah disiapkan ke dalam kelompok tersebut.
Jika Anda belum memiliki instans ECS, buat satu yang menjalankan sistem operasi Linux dari halaman ECS console - Custom Launch.
Kami merekomendasikan penggunaan citra ECS Alibaba Cloud Linux 3.2104 LTS 64-bit atau Ubuntu 22.04 64-bit. Skrip dalam contoh berikut didasarkan pada kedua citra ini. Jika Anda menggunakan citra berbeda, sesuaikan skrip tersebut sesuai kebutuhan.
Buka halaman ECS console - Application Management, klik Create from Existing Resources, buat aplikasi dan kelompok aplikasi, lalu impor instans ECS ke dalam kelompok aplikasi tersebut.
Instal Docker pada instans ECS di kelompok Anda. Pada tab Operations Management kelompok aplikasi Anda, pilih Install or uninstall extensions untuk menginstal Docker secara batch.
Jika instans ECS Anda dibuat dari custom image, Anda tidak dapat menginstal ekstensi dengan cara ini. Sebagai gantinya, login ke instans secara remote dan instal Docker secara manual.
-
Buat paket penyebaran.
-
Tarik contoh gambar secara lokal. Lalu dorong gambar tersebut ke repositori instans ACR pribadi Anda.
docker pull aliyun-computenest-opensource-registry.cn-hangzhou.cr.aliyuncs.com/default/aliyun-code-deploy:latest Buka halaman ECS console - Application Management. Pada tab My Applications, klik nama aplikasi target.
-
Pada halaman detail aplikasi, pilih tab Parameters. Klik Create Parameter. Buat dua parameter:
usernamedanpassword. Keduanya sesuai dengan username dan password ACR pribadi Anda. Untuk keamanan, buat parameterpasswordsebagai parameter terenkripsi. Pada halaman produk aplikasi, pilih tab Deployment, lalu klik Create Deployment.
-
Pada halaman Create Deployment Package, atur Deployment Package Type ke Command-only. Konfigurasikan parameter. Klik OK untuk menyimpan.
-
Working directory: Tetapkan direktori tempat skrip startup dan shutdown dijalankan. Contoh:
/root/deploy. -
Application startup script: Ganti
<repo>dan<image>dengan informasi ACR pribadi Anda.Pada gambar di bawah, bidang pertama adalah
repo. Bidang kedua adalahimage. Ganti nilai-nilai ini pada posisi yang sesuai dalam skrip startup.
### Jalankan versi aplikasi saat ini start_application() { repo="<repo>" image="<image>" container_name="my-container" docker login --username=${username} --password=${password} $repo docker pull $image docker run -d -p 8080:8080 --name $container_name $image } start_application -
### Hentikan kontainer (jika ada) stop_application() { # Periksa apakah kontainer ada berdasarkan nama kontainer, dan hapus kontainer jika ada container_name="my-container" container_id=$(docker ps -aq -f name=${container_name}) if [ -n "$container_id" ]; then docker rm -f $container_id fi } stop_application
-
-
Kembali ke daftar penyebaran. Temukan penyebaran yang telah Anda buat dan klik Publish. Pilih kelompok target dan klik OK untuk memulai penyebaran.
Verifikasi hasilnya.
-
Buka halaman detail instans target. Klik Connect dan pilih Workbench. Ikuti petunjuk pada halaman untuk login ke terminal.
Jalankan perintah
curl http://localhost:8080/hello. Nilai kembaliAlibaba Spring Sample!menunjukkan bahwa penyebaran berhasil.
-
Bidang Utama
|
Field |
Description |
|
Working directory |
Direktori kerja untuk skrip startup dan shutdown aplikasi.
|
|
Application startup script |
Skrip Shell yang menjalankan aplikasi. |
|
Application shutdown script |
Skrip Shell untuk menghentikan aplikasi. Sebagai contoh, skrip berikut menghentikan kontainer bernama |