Menentukan masa pemeliharaan

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

Halaman ini menjelaskan cara menentukan periode pemeliharaan untuk lingkungan Anda.

Tentang masa pemeliharaan

Masa pemeliharaan adalah jangka waktu saat Anda mengizinkan Cloud Composer melakukan operasi pemeliharaan. Misalnya, Anda dapat memastikan bahwa eksekusi tugas penting Anda tidak terganggu dengan menentukan periode pemeliharaan di luar waktu jadwal DAG.

Dengan masa pemeliharaan, Anda memiliki kontrol atas jangka waktu saat pemeliharaan dapat terjadi untuk lingkungan Anda:

  • Jika Anda menentukan periode pemeliharaan kustom untuk lingkungan Anda, Cloud Composer akan melakukan pemeliharaan selama periode yang ditentukan ini.

  • Jika Anda tidak menentukan periode pemeliharaan kustom untuk lingkungan atau menentukan nilai kosong, Cloud Composer akan melakukan pemeliharaan selama periode pemeliharaan default.

Cara kerja periode pemeliharaan

Masa pemeliharaan berfungsi dengan cara berikut:

  • Operasi pemeliharaan memerlukan waktu yang dialokasikan minimal 12 jam dalam satu minggu.

  • Anda dapat menggunakan beberapa slot waktu, tetapi durasi setiap slot harus minimal 4 jam.

  • Lingkungan Anda tetap tersedia selama masa pemeliharaan. Beberapa komponen lingkungan Anda mungkin tidak tersedia untuk sementara saat operasi pemeliharaan sedang berlangsung.

  • Waktu 12 jam diperlukan agar Cloud Composer memiliki cukup waktu untuk menjadwalkan dan melakukan semua operasi pemeliharaan. Hal ini tidak berarti bahwa operasi pemeliharaan berlangsung selama 12 jam penuh atau bahkan terjadi setiap minggu.

Anda tetap dapat menjalankan DAG selama periode pemeliharaan, asalkan dapat diterima bahwa beberapa tugas dapat terganggu dan dicoba lagi. Jika Anda menjalankan DAG selama masa pemeliharaan, pastikan Anda mengaktifkan percobaan ulang tugas. Anda dapat mengonfigurasi percobaan ulang tugas di tingkat konfigurasi Airflow, DAG, atau tugas.

Tugas yang memerlukan waktu kurang dari 24 jam untuk dieksekusi umumnya tidak terpengaruh oleh operasi pemeliharaan, tetapi tugas tersebut tetap harus mengaktifkan percobaan ulang agar dapat bertahan dari mulai ulang penjadwal. Scheduler dapat dimulai ulang selama operasi Cloud Composer standar, di luar periode pemeliharaan.

Cloud Composer memberi tahu pekerja Airflow bahwa operasi pemeliharaan akan segera terjadi. Worker Airflow menyelesaikan tugas yang sudah dimulai dan tidak memilih tugas baru. Tugas baru ini dijalankan oleh pekerja Airflow yang tidak menjalani operasi pemeliharaan.

Jika Anda menggunakan lingkungan yang sangat tangguh, komponen Airflow di lingkungan Anda kemungkinan akan dimulai ulang pada waktu yang berbeda selama operasi pemeliharaan (hal ini bergantung pada jenis operasi pemeliharaan). Secara keseluruhan, penggunaan lingkungan yang sangat tangguh akan mengurangi waktu non-aktif lingkungan Anda selama operasi pemeliharaan.

Operasi pemeliharaan memiliki efek berikut pada lingkungan Anda:

  • UI Airflow mungkin tidak tersedia untuk sementara.

  • Cloud Composer dapat melakukan operasi upgrade infrastruktur otomatis jika upgrade tersedia.

  • Beberapa parameter lingkungan Anda mungkin tidak dapat diubah untuk sementara.

  • Beberapa tugas Airflow yang memerlukan waktu lebih dari 24 jam untuk dieksekusi dapat terganggu. Setelah operasi pemeliharaan selesai, Airflow menjadwalkan percobaan ulang untuk tugas ini (jika tidak dikonfigurasi sebaliknya).

Masa pemeliharaan default

Periode pemeliharaan default di Cloud Composer 3 ditentukan dengan cara berikut:

  • Semua waktu menggunakan zona waktu lokal wilayah tempat lingkungan Anda berada, tetapi dengan waktu musim panas diabaikan.
  • Pada hari Selasa, Rabu, Kamis, dan Jumat, waktu pemeliharaan adalah dari 00.00.00 hingga 02.00.00.
  • Pada hari Sabtu, Minggu, dan Senin, masa pemeliharaan berlangsung dari pukul 00.00.00 hingga 04.00.00.

Pemeliharaan di luar masa pemeliharaan

Cloud Composer dapat melakukan pemeliharaan di luar masa pemeliharaan yang dikonfigurasi dalam kasus berikut:

  • Dalam situasi darurat, misalnya, saat memperbaiki kerentanan keamanan yang kritis, beberapa operasi pemeliharaan mungkin dilakukan di luar masa pemeliharaan reguler.

  • Jika Cloud Composer tidak dapat melakukan operasi pemeliharaan rutin selama masa pemeliharaan selama 30 hari, Cloud Composer akan melakukan operasi pemeliharaan penting di luar masa pemeliharaan yang ditentukan. Ini adalah mekanisme penggantian untuk kasus ketika periode pemeliharaan salah dikonfigurasi dan Cloud Composer berulang kali tidak dapat melakukan pemeliharaan pada lingkungan.

Cara menggunakan masa pemeliharaan

Operasi pemeliharaan dapat memengaruhi eksekusi DAG dan tugas Airflow Anda, jadi sebaiknya lakukan hal berikut:

  1. Tentukan periode pemeliharaan untuk lingkungan Cloud Composer Anda.

  2. Jadwalkan pengoperasian DAG di luar masa pemeliharaan yang ditentukan menggunakan parameter start_date dan schedule di DAG Anda.

Menentukan masa pemeliharaan untuk lingkungan baru

Anda dapat menentukan masa pemeliharaan saat membuat lingkungan. Untuk mengetahui informasi selengkapnya, lihat Membuat lingkungan.

Menentukan masa pemeliharaan untuk lingkungan yang ada

Konsol

Untuk menentukan atau mengubah masa pemeliharaan lingkungan yang ada, perbarui lingkungan:

  1. Di konsol Google Cloud , buka halaman Environments.

    Buka Lingkungan

  2. Pilih lingkungan Anda.

  3. Buka tab Konfigurasi lingkungan.

  4. Di samping entri Maintenance windows, klik Edit.

  5. Dalam dialog Periode pemeliharaan, centang kotak Tetapkan waktu kustom untuk periode pemeliharaan.

  6. Tetapkan Waktu mulai, Zona waktu, Hari, dan Durasi, sehingga gabungan waktu untuk jadwal yang ditentukan setidaknya 12 jam dalam periode 7 hari. Misalnya, periode 4 jam setiap hari Senin, Rabu, dan Jumat memberikan jumlah waktu yang diperlukan.

  7. Klik Simpan dan tunggu hingga lingkungan Anda diperbarui.

gcloud

Saat Anda mengupdate lingkungan, argumen berikut menentukan parameter masa pemeliharaan:

  • --maintenance-window-start menetapkan waktu mulai masa pemeliharaan.
  • --maintenance-window-end menetapkan waktu berakhir masa pemeliharaan.
  • --maintenance-window-recurrence menetapkan pengulangan masa pemeliharaan.
gcloud composer environments update ENVIRONMENT_NAME \
    --location LOCATION \
    --maintenance-window-start 'DATETIME_START' \
    --maintenance-window-end 'DATETIME_END' \
    --maintenance-window-recurrence 'MAINTENANCE_RECURRENCE'

Ganti:

  • ENVIRONMENT_NAME dengan nama lingkungan.
  • DATETIME_START dengan tanggal dan waktu mulai dalam format input tanggal/waktu. Hanya waktu yang ditentukan yang digunakan, tanggal yang ditentukan akan diabaikan.
  • DATETIME_END dengan tanggal dan waktu akhir dalam format input tanggal/waktu. Hanya waktu yang ditentukan yang digunakan, tanggal yang ditentukan akan diabaikan. Tanggal dan waktu yang ditentukan harus setelah tanggal mulai.
  • MAINTENANCE_RECURRENCE dengan RRULE RFC 5545 untuk pengulangan masa pemeliharaan. Cloud Composer mendukung dua format:

  • Format FREQ=DAILY menentukan pengulangan harian.

  • Format FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA menentukan pengulangan pada hari dalam seminggu yang dipilih.

Contoh berikut menentukan masa pemeliharaan 6 jam antara pukul 01.00 dan 07.00 (UTC) pada hari Rabu, Sabtu, dan Minggu. Tanggal 1 Januari 2023 diabaikan.

gcloud composer environments update example-environment \
  --location us-central1 \
  --maintenance-window-start '2023-01-01T01:00:00Z' \
  --maintenance-window-end '2023-01-01T07:00:00Z' \
  --maintenance-window-recurrence 'FREQ=WEEKLY;BYDAY=SU,WE,SA'

API

  1. Buat permintaan API environments.patch.

  2. Dalam permintaan ini:

    1. Di parameter updateMask, tentukan masker config.maintenanceWindow.

    2. Dalam isi permintaan, tentukan parameter untuk periode pemeliharaan.

{
  "config": {
    "maintenanceWindow": {
      "startTime": "DATETIME_START",
      "endTime": "DATETIME_END",
      "recurrence": "MAINTENANCE_RECURRENCE"
    }
  }
}

Ganti:

  • DATETIME_START dengan tanggal dan waktu mulai dalam format input tanggal/waktu. Hanya waktu yang ditentukan dalam sehari yang digunakan, tanggal yang ditentukan diabaikan.
  • DATETIME_END dengan tanggal dan waktu akhir dalam format input tanggal/waktu. Hanya waktu yang ditentukan dalam sehari yang digunakan, tanggal yang ditentukan diabaikan. Tanggal dan waktu yang ditentukan harus setelah tanggal mulai.
  • MAINTENANCE_RECURRENCE dengan RRULE RFC 5545 untuk pengulangan masa pemeliharaan. Cloud Composer mendukung dua format:

    • Format FREQ=DAILY menentukan pengulangan harian.
    • Format FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA menentukan pengulangan pada hari dalam seminggu yang dipilih.

Contoh berikut menentukan masa pemeliharaan 6 jam antara pukul 01.00 dan 07.00 (UTC) pada hari Rabu, Sabtu, Minggu. Tanggal 1 Januari 2023 diabaikan.

  // PATCH https://composer.googleapis.com/v1/projects/example-project/
  // locations/us-central1/environments/example-environment?updateMask=
  // config.maintenanceWindow

  {
    "config": {
      "maintenanceWindow": {
        "startTime": "2023-01-01T01:00:00Z",
        "endTime": "2023-01-01T07:00:00Z",
        "recurrence": "FREQ=WEEKLY;BYDAY=SU,WE,SA"
      }
    }
  }

Terraform

Blok maintenance_window menentukan masa pemeliharaan untuk lingkungan Anda:

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {
    maintenance_window {
      start_time = "DATETIME_START"
      end_time = "DATETIME_END"
      recurrence = "MAINTENANCE_RECURRENCE"
    }
  }
}

Ganti:

  • ENVIRONMENT_NAME dengan nama lingkungan.
  • LOCATION dengan region tempat lingkungan berada.
  • DATETIME_START dengan tanggal dan waktu mulai dalam format input tanggal/waktu. Hanya waktu yang ditentukan dalam sehari yang digunakan, tanggal yang ditentukan diabaikan.
  • DATETIME_END dengan tanggal dan waktu akhir dalam format input tanggal/waktu. Hanya waktu yang ditentukan dalam sehari yang digunakan, tanggal yang ditentukan diabaikan. Tanggal dan waktu yang ditentukan harus setelah tanggal mulai.
  • MAINTENANCE_RECURRENCE dengan RRULE RFC 5545 untuk pengulangan masa pemeliharaan. Cloud Composer mendukung dua format:

    • Format FREQ=DAILY menentukan pengulangan harian.
    • Format FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA menentukan pengulangan pada hari dalam seminggu yang dipilih.

Contoh berikut menentukan masa pemeliharaan 6 jam antara pukul 01.00 dan 07.00 (UTC) pada hari Rabu, Sabtu, dan Minggu. Tanggal 1 Januari 2023 diabaikan.

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {
    maintenance_window {
      start_time = "2023-01-01T01:00:00Z"
      end_time = "2023-01-01T07:00:00Z"
      recurrence = "FREQ=WEEKLY;BYDAY=SU,WE,SA"
    }
  }
}

Langkah berikutnya