All Products
Search
Document Center

CloudOps Orchestration Service:Paket Penyebaran Hanya Perintah

Last Updated:Feb 07, 2026

Gunakan jenis paket penyebaran ini ketika Anda tidak perlu menentukan file sumber aplikasi dan menerbitkan aplikasi sepenuhnya melalui skrip.

Cara Kerja

Penting
  • 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.

  1. 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.

  2. Alur penyebaran otomatis untuk penerbitan tugas.

    1. Ambil detail paket penyebaran, termasuk skrip startup dan shutdown aplikasi.

    2. Jalankan skrip shutdown: Hentikan versi aplikasi sebelumnya.

    3. 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

  1. Buat aplikasi dan impor instans Elastic Compute Service (ECS).

    1. 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.
    2. 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.

  2. Buat paket penyebaran.

    1. Buka halaman ECS console - Application Management. Pada tab My Applications, klik nama aplikasi target.

    2. Pada halaman produk aplikasi, pilih tab Deployment, lalu klik Create Deployment.

    3. 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:

        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_application

        Ubuntu

        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
      • Application shutdown script:

        ### 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
  3. Kembali ke daftar penyebaran. Temukan penyebaran yang telah Anda buat dan klik Publish. Pilih kelompok target dan klik OK untuk memulai penyebaran.

  4. Verifikasi hasilnya.

    1. Buka halaman detail instans target. Klik Connect dan pilih Workbench. Ikuti petunjuk pada halaman untuk login ke terminal.

    2. Jalankan perintah curl http://localhost:8080/hello. Nilai kembali Alibaba Spring Sample! menunjukkan bahwa penyebaran berhasil.

Contoh aplikasi Docker

  1. 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.

    1. 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.
    2. 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.

    3. 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.
  2. Buat paket penyebaran.

    1. 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
    2. Buka halaman ECS console - Application Management. Pada tab My Applications, klik nama aplikasi target.

    3. Pada halaman detail aplikasi, pilih tab Parameters. Klik Create Parameter. Buat dua parameter: username dan password. Keduanya sesuai dengan username dan password ACR pribadi Anda. Untuk keamanan, buat parameter password sebagai parameter terenkripsi.

    4. Pada halaman produk aplikasi, pilih tab Deployment, lalu klik Create Deployment.

    5. 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 adalah image. Ganti nilai-nilai ini pada posisi yang sesuai dalam skrip startup.image
        ### 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
      • Application shutdown script:

        ### 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
  3. Kembali ke daftar penyebaran. Temukan penyebaran yang telah Anda buat dan klik Publish. Pilih kelompok target dan klik OK untuk memulai penyebaran.

  4. Verifikasi hasilnya.

    1. Buka halaman detail instans target. Klik Connect dan pilih Workbench. Ikuti petunjuk pada halaman untuk login ke terminal.

    2. Jalankan perintah curl http://localhost:8080/hello. Nilai kembali Alibaba Spring Sample! menunjukkan bahwa penyebaran berhasil.

Bidang Utama

Field

Description

Working directory

Direktori kerja untuk skrip startup dan shutdown aplikasi.

  • Masukkan jalur mutlak.

  • Anda dapat memasukkan direktori yang belum ada. Direktori tersebut akan dibuat secara otomatis selama eksekusi.

Application startup script

Skrip Shell yang menjalankan aplikasi.

Application shutdown script

Skrip Shell untuk menghentikan aplikasi.
Skrip harus dapat menghentikan versi aplikasi saat ini dan sebelumnya dengan benar. Saat tidak ada aplikasi yang berjalan, skrip juga harus keluar secara normal tanpa error.

Sebagai contoh, skrip berikut menghentikan kontainer bernama my-container. Skrip ini mengasumsikan bahwa setiap versi kontainer memiliki nama yang sama. Skrip tidak melaporkan error jika kontainer tidak 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