All Products
Search
Document Center

CloudOps Orchestration Service:Penerapan Git

Last Updated:Dec 16, 2025

Gunakan jenis penerapan ini untuk menerbitkan aplikasi yang file sumbernya disimpan dalam repositori Git.

Cara kerja

Penting
  • Jika Anda menerapkan ke kelompok aplikasi yang merupakan grup Auto Scaling (ESS), aktivitas penskalaan dijeda selama penerapan. Aktivitas tersebut secara otomatis dilanjutkan setelah penerapan selesai, baik berhasil maupun gagal.

  • Proses penerapan mengikuti prinsip berhenti-lalu-mulai. Setiap penerapan terlebih dahulu menjalankan skrip berhenti, lalu menjalankan skrip mulai.

  1. Buat dan terbitkan penerapan.

    Konfigurasikan file sumber aplikasi, skrip mulai, dan skrip berhenti untuk penerapan.

    Buat task release, pilih mode rilis, lalu terbitkan penerapan ke kelompok aplikasi target.

  2. Proses penerapan otomatis untuk task penerbitan.

    1. Ambil informasi penerapan, termasuk informasi repositori Git serta skrip mulai dan berhenti aplikasi.

    2. Tarik kode dari branch yang ditentukan ke folder code_deploy_application dalam direktori kerja.

    3. Jalankan skrip berhenti untuk menghentikan versi lama aplikasi.

    4. Jalankan skrip mulai untuk memulai versi baru aplikasi.

Cakupan

  • Penerapan hanya didukung pada instans Linux.

  • Hanya skrip Shell yang didukung untuk skrip mulai dan berhenti.

Prosedur

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

    1. Jika Anda belum memiliki instans ECS, buka halaman ECS console - Custom Launch. Buat instans ECS yang menjalankan sistem operasi Linux dan memiliki akses Internet.

      Pilih citra ECS, seperti Alibaba Cloud Linux 3.2104 LTS 64-bit atau Ubuntu 22.04 64-bit. Skrip dalam contoh berikut ditulis untuk kedua citra ini. Jika Anda menggunakan citra lain, sesuaikan skrip berdasarkan contoh tersebut.
    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.

  2. Buat penerapan.

    1. Fork kode contoh berikut ke repositori Git pribadi Anda.

      Anda harus mendaftarkan akun Gitee atau GitHub pribadi. Jika instans berada di Daratan Tiongkok, gunakan Gitee.
    2. Buka halaman ECS console - Application Management. Pada tab My Applications, klik nama aplikasi target.

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

    4. Pada halaman Create Deployment, atur RevisionType ke Git Repository Code, konfigurasikan parameter, lalu klik OK.

      • Informasi repositori Git: Konfigurasikan informasi repositori Git tempat kode Anda berada.

        Jika ini pertama kalinya, ikuti prompt di konsol untuk memberikan otorisasi repositori Git.
      • Direktori kerja: Direktori tempat skrip mulai dan berhenti aplikasi dijalankan. Contoh: /root/deploy. Secara default, kode ditarik ke folder code_deploy_application dalam direktori ini.

      • Skrip mulai aplikasi:

        Alibaba Cloud Linux

        ### Catatan: Kode dari repositori Git secara otomatis diunduh ke folder code_deploy_application dalam direktori kerja. Jalurnya adalah {direktori kerja}/code_deploy_application.
        ### Mulai versi aplikasi saat ini.
        function start_application() {
         cd ./code_deploy_application
         set -e
         yum install -y maven-3.5.4
         java -jar sample-spring-1.0-SNAPSHOT.jar &
        }
        
        start_application

        Ubuntu

        ### Catatan: Kode dari repositori Git secara otomatis diunduh ke folder code_deploy_application dalam direktori kerja. Jalurnya adalah {direktori kerja}/code_deploy_application.
        ### Mulai versi aplikasi saat ini.
        function start_application() {
         cd ./code_deploy_application
         set -e
         apt update
         apt install -y maven
         java -jar sample-spring-1.0-SNAPSHOT.jar &
        }
        
        start_application
      • Skrip berhenti aplikasi:

        ### Hentikan aplikasi (jika ada)
        function 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 penerapan. Temukan penerapan yang telah Anda buat dan klik Publish. Pilih kelompok target dan klik OK untuk memulai penerapan.

  4. Verifikasi hasilnya.

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

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

Parameter utama

Field

Description

Platform

Pilih platform repositori Git tempat kode berada.

Owner

Pilih akun pemilik repositori Git. Berikan otorisasi saat pertama kali menggunakannya.

Organization

Pilih repositori pribadi atau repositori organisasi.

Repository

Pilih repositori tempat kode berada.

Branch

Pilih branch yang akan diterapkan.

CommitId

Anda tidak perlu memasukkan nilai. Setelah memilih branch, sistem secara otomatis mendapatkan CommitId terbaru.

Direktori kerja

Direktori kerja untuk skrip mulai dan berhenti aplikasi.

  • Masukkan jalur mutlak.

  • Kode secara otomatis ditarik ke folder code_deploy_application dalam direktori kerja.

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

Skrip mulai aplikasi

Skrip Shell yang digunakan untuk memulai aplikasi.

Skrip berhenti aplikasi

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