All Products
Search
Document Center

CloudOps Orchestration Service:Paket penyebaran berbasis perintah saja

Last Updated:Sep 05, 2026

Paket penyebaran berbasis perintah saja menyebarkan aplikasi sepenuhnya melalui skrip, tanpa memerlukan file sumber apa pun.

Cara kerja

Penting
  • Jika Anda melakukan penyebaran ke kelompok Auto Scaling (ESS), aktivitas penskalaan dijeda selama penyebaran dan dilanjutkan secara otomatis setelah penyebaran selesai, terlepas dari hasilnya.

  • Setiap penyebaran mengikuti urutan stop-lalu-start: skrip stop dijalankan terlebih dahulu, lalu skrip start.

  1. Buat dan publikasikan penyebaran.

    Tentukan lokasi file sumber aplikasi di OSS, bersama dengan skrip start dan stop.

    Buat task rilis, pilih mode rilis, lalu publikasikan penyebaran ke kelompok aplikasi target.

  2. Proses penyebaran otomatis bekerja sebagai berikut:

    1. Layanan mengambil informasi paket penyebaran, termasuk skrip startup dan shutdown.

    2. Layanan mengeksekusi skrip shutdown untuk menghentikan versi aplikasi sebelumnya.

    3. Layanan mengeksekusi skrip startup untuk menjalankan versi aplikasi baru.

Catatan penggunaan

  • Penyebaran hanya didukung pada instans Linux.

  • Skrip start dan stop harus berupa skrip shell.

Prosedur

Contoh aplikasi Java

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

    1. Jika Anda belum memiliki instance ECS, buka halaman Konsol ECS - Custom Launch untuk membuat instance ECS Linux.

      Skrip contoh berikut ditujukan untuk image-image ini. Jika Anda menggunakan image berbeda, Anda harus menyesuaikan skrip tersebut.
    2. Buka halaman Konsol ECS - Application management lalu klik Create from Existing Resources untuk membuat aplikasi dan kelompok aplikasi, serta mengimpor instance ECS ke dalam kelompok aplikasi.

  2. Buat paket penyebaran.

    1. Buka halaman Konsol ECS - Application management. Pada tab My Applications, klik nama aplikasi target Anda.

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

    3. Pada halaman Create Deployment, atur Deployment Package Type menjadi Run Command, konfigurasikan parameter, lalu klik OK.

      • Working directory: Tentukan direktori kerja untuk skrip startup dan shutdown. 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, lalu klik Deploy. Pilih kelompok target dan klik OK untuk memulai penyebaran.

  4. Verifikasi hasilnya.

    1. Buka halaman detail instance target. Klik Connect dan pilih Workbench. Ikuti petunjuk di layar untuk mengakses terminal.

    2. Jalankan perintah curl http://localhost:8080/hello. Respons berupa Alibaba Spring Sample! menandakan penyebaran berhasil.

Contoh aplikasi Docker

  1. Siapkan aplikasi, kelompok, dan instance ECS.

    Sebelum melakukan penyebaran, buat aplikasi dan kelompok di ECS Application Management. Lalu, tambahkan instance ECS Anda ke dalam kelompok tersebut.

    1. Jika Anda belum memiliki instance ECS, buka halaman Konsol ECS - Custom Launch untuk membuat instance ECS Linux.

      Skrip contoh berikut ditujukan untuk image-image ini. Jika Anda menggunakan image berbeda, Anda harus menyesuaikan skrip tersebut.
    2. Buka halaman Konsol ECS - Application management lalu klik Create from Existing Resources untuk membuat aplikasi dan kelompok aplikasi, serta mengimpor instance ECS ke dalam kelompok aplikasi.

    3. Instal Docker pada instance ECS dalam kelompok tersebut. Pada tab O&M kelompok aplikasi, pilih ACS-ECS-BulkyConfigureOOSPackageWithTemporaryURL untuk menginstal Docker secara batch.

      Jika instance ECS Anda dibuat dari custom image, Anda tidak dapat menginstal ekstensi dengan cara ini. Anda harus terhubung secara remote ke instance tersebut dan menginstal Docker secara manual.
  2. Buat paket penyebaran.

    1. Ambil contoh gambar ke mesin lokal Anda, lalu dorong gambar tersebut ke repositori ACR Personal Edition Anda.

      docker pull aliyun-computenest-opensource-registry.cn-hangzhou.cr.aliyuncs.com/default/aliyun-code-deploy:latest
    2. Buka halaman Konsol ECS - Application management. Pada tab My Applications, klik nama aplikasi target Anda.

    3. Pada halaman detail aplikasi, pilih tab Parameters lalu klik Create Parameter. Buat dua parameter: username dan password, untuk username dan password ACR Personal Edition. Untuk memastikan keamanan, atur parameter password sebagai parameter terenkripsi.

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

    5. Pada halaman Create Deployment, atur Deployment Package Type menjadi Run Command, konfigurasikan parameter, lalu klik OK.

      • Working directory: Tentukan direktori eksekusi untuk skrip startup dan shutdown. Contoh: /root/deploy.

      • Application startup script: Ganti placeholder <repo> dan <image> dengan nilai repositori dan image ACR Personal Edition Anda.

        repo adalah alamat repositori ACR Personal Edition Anda dan image adalah nama lengkap image tersebut. Ganti parameter yang sesuai dalam skrip startup dengan nilai kedua bidang ini.
        ### 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() {
          # Cari kontainer berdasarkan nama dan hapus 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, lalu klik Deploy. Pilih kelompok target dan klik OK untuk memulai penyebaran.

  4. Verifikasi hasilnya.

    1. Buka halaman detail instance target. Klik Connect dan pilih Workbench. Ikuti petunjuk di layar untuk mengakses terminal.

    2. Jalankan perintah curl http://localhost:8080/hello. Respons berupa Alibaba Spring Sample! menandakan penyebaran berhasil.

Parameter utama

Parameter

Deskripsi

Working directory

Direktori kerja untuk skrip startup dan shutdown.

  • Masukkan jalur mutlak.

  • Direktori tidak perlu ada sebelumnya. Direktori 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 maupun sebelumnya dengan benar, serta keluar secara normal jika aplikasi sedang tidak berjalan.



Sebagai contoh, skrip berikut menghentikan kontainer bernama my-container. Skrip ini mengasumsikan semua versi kontainer menggunakan nama yang sama dan 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