Dokumen ini menjelaskan cara Anda men-deploy arsitektur di Menggunakan pipeline CI/CD untuk alur kerja pemrosesan data.
Deployment ini ditujukan untuk data scientist dan analis data yang membuat tugas pemrosesan data yang dijalankan secara berulang guna membantu menyusun riset dan pengembangan (R&D) untuk memelihara pemrosesan data secara sistematis dan otomatis.
Data scientist dan analis dapat mengadaptasi metodologi dari praktik CI/CD untuk membantu memastikan pemrosesan data dan alur kerja yang memiliki kualitas tinggi, kemudahan dalam pemeliharaan dan kemampuan adaptasi. Berikut adalah metode yang dapat Anda terapkan:
- Kontrol versi kode sumber.
- Membangun, menguji, dan men-deploy aplikasi secara otomatis.
- Isolasi dan pemisahan lingkungan dari produksi.
- Prosedur yang dapat direplikasi untuk penyiapan lingkungan.
Arsitektur
Diagram berikut menunjukkan tampilan mendetail dari langkah-langkah pipeline CI/CD untuk pipeline pengujian dan produksi.
Dalam diagram sebelumnya, pipeline pengujian dimulai saat developer meng-commit perubahan kode ke Cloud Source Repositories dan berakhir setelah lulus pengujian integrasi alur kerja pemrosesan data. Di tahap ini, pipeline akan menayangkan pesan ke Pub/Sub yang berisi referensi ke file arsip Java (JAR) terbaru yang berjalan secara mandiri (diperoleh dari variabel Airflow) di kolom data pesan tersebut.
Dalam diagram sebelumnya, pipeline produksi dimulai saat pesan ditayangkan ke topik Pub/Sub dan berakhir saat file DAG alur kerja produksi di-deploy ke Cloud Composer.
Dalam panduan deployment ini, Anda akan menggunakan produk Google Cloud berikut:
- Cloud Build untuk membuat pipeline CI/CD yang digunakan untuk membangun, men-deploy, dan menguji alur kerja pemrosesan data, serta pemrosesan data itu sendiri. Cloud Build adalah layanan terkelola yang menjalankan build Anda di Google Cloud. Build adalah serangkaian langkah build dengan setiap langkahnya dijalankan dalam container Docker.
- Cloud Composer untuk menentukan dan menjalankan langkah-langkah alur kerja, seperti memulai pemrosesan data, melakukan pengujian, dan memverifikasi hasil . Cloud Composer adalah layanan Apache Airflow terkelola, yang menawarkan lingkungan tempat Anda dapat membuat, menjadwalkan, memantau, dan mengelola alur kerja kompleks, seperti alur kerja pemrosesan data di deployment ini.
- Dataflow untuk menjalankan contoh WordCount Apache Beam sebagai contoh pemrosesan data.
Tujuan
- Mengonfigurasi lingkungan Cloud Composer.
- Membuat bucket Cloud Storage untuk data Anda.
- Membuat pipeline build, pengujian, dan produksi.
- Mengonfigurasi pemicu build.
Pengoptimalan biaya
Dalam dokumen ini, Anda akan menggunakan komponen Google Cloud yang dapat ditagih berikut:
Sebelum memulai
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda. Pelajari cara memeriksa apakah penagihan diaktifkan di project.
Kode sampel
Kode sampel untuk deployment ini ada dalam dua folder:
- Folder
env-setup
berisi skrip shell untuk penyiapan awal lingkungan Google Cloud. Folder
source-code
berisi kode yang dikembangkan seiring waktu, harus dikontrol sumber, dan memicu proses build serta pengujian otomatis. Folder ini berisi subfolder berikut:- Folder
data-processing-code
berisi kode sumber proses Apache Beam. - Folder
workflow-dag
berisi definisi DAG composer untuk alur kerja pemrosesan data dengan langkah-langkah untuk mendesain, menerapkan, dan menguji proses Dataflow. - Folder
build-pipeline
berisi dua konfigurasi Cloud Build, masing-masing untuk pipeline pengujian dan pipeline produksi. Folder ini juga berisi skrip dukungan untuk pipeline.
- Folder
Untuk deployment ini, file kode sumber untuk pemrosesan data dan alur kerja DAG berada di folder yang berbeda dalam repositori kode sumber yang sama. Dalam lingkungan produksi, file kode sumber biasanya berada di repositori kode sumbernya sendiri dan dikelola oleh tim yang berbeda.
Pengujian integrasi dan unit
Selain pengujian integrasi yang memverifikasi alur kerja pemrosesan data secara end-to-end, ada dua pengujian unit dalam deployment ini. Pengujian unit adalah pengujian otomatis pada kode pemrosesan data dan kode alur kerja pemrosesan data. Pengujian pada kode pemrosesan data ditulis dalam Java dan berjalan secara otomatis selama proses build Maven. Pengujian pada kode alur kerja pemrosesan data ditulis dalam Python dan berjalan sebagai langkah build independen.
Menyiapkan lingkungan Anda
Dalam deployment ini, Anda menjalankan semua perintah di Cloud Shell. Cloud Shell akan muncul sebagai jendela di bagian bawah konsol Google Cloud.
Di konsol Google Cloud, buka Cloud Shell:
Clone repositori kode sampel:
git clone https://github.com/GoogleCloudPlatform/ci-cd-for-data-processing-workflow.git
Jalankan skrip untuk menetapkan variabel lingkungan:
cd ~/ci-cd-for-data-processing-workflow/env-setup source set_env.sh
Skrip ini menetapkan variabel lingkungan berikut:
- ID project Google Cloud Anda
- Region dan zona Anda
- Nama bucket Cloud Storage Anda yang digunakan oleh pipeline build dan alur kerja pemrosesan data.
Karena variabel lingkungan tidak dipertahankan di antara sesi, Anda harus mereset variabel lingkungan jika sesi Cloud Shell terhenti atau terputus saat mengerjakan deployment ini.
Membuat lingkungan Cloud Composer
Dalam deployment ini, Anda akan menyiapkan lingkungan Cloud Composer.
Di Cloud Shell, tambahkan peran Ekstensi Agen Layanan Cloud Composer v2 API (
roles/composer.ServiceAgentV2Ext
) ke akun Agen Layanan Cloud Composer:gcloud projects add-iam-policy-binding $GCP_PROJECT_ID \ --member serviceAccount:service-$PROJECT_NUMBER@cloudcomposer-accounts.iam.gserviceaccount.com \ --role roles/composer.ServiceAgentV2Ext
Di Cloud Shell, buat lingkungan Cloud Composer:
gcloud composer environments create $COMPOSER_ENV_NAME \ --location $COMPOSER_REGION \ --image-version composer-2.0.14-airflow-2.2.5
Jalankan skrip untuk menetapkan variabel di lingkungan Cloud Composer. Variabel tersebut diperlukan untuk DAG pemrosesan data.
cd ~/ci-cd-for-data-processing-workflow/env-setup chmod +x set_composer_variables.sh ./set_composer_variables.sh
Skrip ini menetapkan variabel lingkungan berikut:
- ID project Google Cloud Anda
- Region dan zona Anda
- Nama bucket Cloud Storage Anda yang digunakan oleh pipeline build dan alur kerja pemrosesan data.
Mengekstrak properti lingkungan Cloud Composer
Cloud Composer menggunakan bucket Cloud Storage untuk menyimpan DAG. Memindahkan file definisi DAG ke bucket memicu Cloud Composer untuk membaca file tersebut secara otomatis. Anda membuat bucket Cloud Storage untuk Cloud Composer saat membuat lingkungan Cloud Composer. Pada prosedur berikut, Anda mengekstrak URL untuk bucket, kemudian mengonfigurasi pipeline CI/CD agar men-deploy definisi DAG secara otomatis ke bucket Cloud Storage.
Di Cloud Shell, ekspor URL untuk bucket sebagai variabel lingkungan:
export COMPOSER_DAG_BUCKET=$(gcloud composer environments describe $COMPOSER_ENV_NAME \ --location $COMPOSER_REGION \ --format="get(config.dagGcsPrefix)")
Ekspor nama akun layanan yang digunakan Cloud Composer agar memiliki akses ke bucket Cloud Storage:
export COMPOSER_SERVICE_ACCOUNT=$(gcloud composer environments describe $COMPOSER_ENV_NAME \ --location $COMPOSER_REGION \ --format="get(config.nodeConfig.serviceAccount)")
Membuat bucket Cloud Storage
Di bagian ini Anda akan membuat kumpulan bucket Cloud Storage untuk menyimpan hal-hal berikut:
- Artefak langkah-langkah perantara proses build.
- File input dan output untuk alur kerja pemrosesan data.
- Lokasi staging tugas Dataflow untuk menyimpan file biner.
Untuk membuat bucket Cloud Storage, selesaikan langkah-langkah berikut:
Di Cloud Shell, buat bucket Cloud Storage dan berikan akun layanan Cloud Composer izin untuk menjalankan alur kerja pemrosesan data:
cd ~/ci-cd-for-data-processing-workflow/env-setup chmod +x create_buckets.sh ./create_buckets.sh
Membuat topik Pub/Sub
Di bagian ini, Anda akan membuat topik Pub/Sub untuk menerima pesan yang dikirim dari pengujian integrasi alur kerja pemrosesan data agar memicu pipeline build produksi secara otomatis.
Di konsol Google Cloud, buka halaman topik Pub/Sub.
Klik Buat Topik.
Untuk mengonfigurasi topik, selesaikan langkah-langkah berikut:
- Untuk ID Topik, masukkan
integration-test-complete-topic
. - Pastikan opsi Tambahkan langganan default dicentang.
- Biarkan opsi lainnya tetap kosong.
- Untuk Enkripsi, pilih Kunci enkripsi yang dikelola Google.
- Klik Buat Topik.
- Untuk ID Topik, masukkan
Mengirim kode sumber ke Cloud Source Repositories
Dalam deployment ini, Anda memiliki satu codebase sumber yang perlu dimasukkan ke kontrol versi. Langkah berikut menunjukkan cara codebase dikembangkan dan berubah seiring waktu. Pipeline yang akan dibangun, di-deploy, dan diuji akan dipicu setiap kali perubahan dikirim ke repositori.
Di Cloud Shell, kirim folder
source-code
ke Cloud Source Repositories:gcloud source repos create $SOURCE_CODE_REPO cp -r ~/ci-cd-for-data-processing-workflow/source-code ~/$SOURCE_CODE_REPO cd ~/$SOURCE_CODE_REPO git init git remote add google \ https://source.developers.google.com/p/$GCP_PROJECT_ID/r/$SOURCE_CODE_REPO git add . git commit -m 'initial commit' git push google master
Ini adalah perintah standar untuk menginisialisasi Git di direktori baru dan mengirim konten ke repositori jarak jauh.
Membuat pipeline Cloud Build
Di bagian ini, Anda akan membuat pipeline build yang membangun, men-deploy, dan menguji alur kerja pemrosesan data.
Memberikan akses ke akun layanan Cloud Build
Cloud Build men-deploy DAG Cloud Composer dan memicu alur kerja yang diaktifkan saat Anda memberikan akses tambahan ke akun layanan Cloud Build. Untuk informasi selengkapnya mengenai berbagai peran yang tersedia saat menggunakan Cloud Composer, lihat dokumentasi kontrol akses.
Di Cloud Shell, tambahkan peran
composer.admin
ke akun layanan Cloud Build agar tugas Cloud Build dapat menetapkan variabel Airflow di Cloud Composer:gcloud projects add-iam-policy-binding $GCP_PROJECT_ID \ --member=serviceAccount:$PROJECT_NUMBER@cloudbuild.gserviceaccount.com \ --role=roles/composer.admin
Tambahkan peran
composer.worker
ke akun layanan Cloud Build agar tugas Cloud Build dapat memicu alur kerja data di Cloud Composer:gcloud projects add-iam-policy-binding $GCP_PROJECT_ID \ --member=serviceAccount:$PROJECT_NUMBER@cloudbuild.gserviceaccount.com \ --role=roles/composer.worker
Membuat pipeline build dan pengujian
Langkah-langkah pipeline pengujian dan build dikonfigurasi di
file konfigurasi YAML.
Dalam deployment ini, Anda menggunakan
image builder
bawaan untuk git
, maven
, gsutil
, dan gcloud
untuk menjalankan tugas di setiap langkah build.
Anda menggunakan substitusi
variabel konfigurasi
untuk menentukan setelan lingkungan pada waktu build. Lokasi repositori kode sumber
ditentukan oleh substitusi variabel dan lokasi
bucket Cloud Storage. Build memerlukan informasi ini untuk men-deploy
file JAR, file pengujian, dan definisi DAG.
Di Cloud Shell, kirimkan file konfigurasi pipeline build untuk membuat pipeline di Cloud Build:
cd ~/ci-cd-for-data-processing-workflow/source-code/build-pipeline gcloud builds submit --config=build_deploy_test.yaml --substitutions=\ REPO_NAME=$SOURCE_CODE_REPO,\ _DATAFLOW_JAR_BUCKET=$DATAFLOW_JAR_BUCKET_TEST,\ _COMPOSER_INPUT_BUCKET=$INPUT_BUCKET_TEST,\ _COMPOSER_REF_BUCKET=$REF_BUCKET_TEST,\ _COMPOSER_DAG_BUCKET=$COMPOSER_DAG_BUCKET,\ _COMPOSER_ENV_NAME=$COMPOSER_ENV_NAME,\ _COMPOSER_REGION=$COMPOSER_REGION,\ _COMPOSER_DAG_NAME_TEST=$COMPOSER_DAG_NAME_TEST
Perintah ini menginstruksikan Cloud Build untuk menjalankan build dengan langkah-langkah berikut:
Bangun dan deploy file JAR yang dieksekusi secara mandiri di WordCount.
- Lihat kode sumbernya.
- Kompilasi kode sumber WordCount Beam ke dalam file JAR yang dieksekusi secara mandiri.
- Simpan file JAR di Cloud Storage sehingga dapat diambil oleh Cloud Composer untuk menjalankan tugas pemrosesan WordCount.
Deploy dan siapkan alur kerja pemrosesan data di Cloud Composer.
- Jalankan pengujian unit pada kode operator khusus yang digunakan oleh DAG alur kerja.
- Deploy file input pengujian dan file referensi pengujian di Cloud Storage. File input pengujian adalah input untuk tugas pemrosesan WordCount. File referensi pengujian digunakan sebagai referensi untuk memverifikasi output tugas pemrosesan WordCount.
- Tetapkan variabel Cloud Composer untuk mengarah ke file JAR yang baru dibangun.
- Deploy definisi DAG alur kerja ke lingkungan Cloud Composer.
Untuk memicu alur kerja pemrosesan pengujian, jalankan alur kerja pemrosesan data di lingkungan pengujian.
Memverifikasi pipeline build dan pengujian
Setelah mengirimkan file build, verifikasi langkah-langkah build.
Di konsol Google Cloud, buka halaman Histori Build untuk melihat daftar semua build lama dan build yang sedang berjalan.
Klik build yang sedang berjalan.
Di halaman detail Build, pastikan langkah-langkah build sesuai dengan langkah-langkah yang dijelaskan sebelumnya.
Di halaman detail Build, kolom Status build menyatakan
Build successful
saat build selesai.Di Cloud Shell, pastikan file JAR sampel WordCount disalin ke bucket yang benar:
gsutil ls gs://$DATAFLOW_JAR_BUCKET_TEST/dataflow_deployment*.jar
Outputnya mirip dengan hal berikut ini:
gs://…-composer-dataflow-source-test/dataflow_deployment_e88be61e-50a6-4aa0-beac-38d75871757e.jar
Dapatkan URL ke antarmuka web Cloud Composer Anda. Catat URL tersebut karena akan digunakan di langkah selanjutnya.
gcloud composer environments describe $COMPOSER_ENV_NAME \ --location $COMPOSER_REGION \ --format="get(config.airflowUri)"
Gunakan URL dari langkah sebelumnya untuk membuka UI Cloud Composer guna memverifikasi bahwa DAG berhasil dijalankan. Tunggu beberapa menit jika kolom Operasi tidak menampilkan informasi, lalu muat ulang halaman.
Untuk memverifikasi bahwa alur kerja pemrosesan data DAG
test_word_count
di-deploy dan dalam mode berjalan, arahkan kursor ke lingkaran hijau muda di kolom Operasi dan pastikan ada tulisan Berjalan.Untuk melihat alur kerja pemrosesan data yang berjalan sebagai grafik, klik lingkaran hijau muda, lalu pada halaman Operasi DAG, klik ID DAG:
test_word_count
.Muat ulang halaman Tampilan Grafik untuk mengupdate status operasi DAG yang sedang berjalan. Biasanya membutuhkan waktu sekitar 3-5 menit untuk menyelesaikan alur kerja. Untuk memastikan bahwa operasi DAG berhasil diselesaikan, arahkan kursor ke setiap tugas untuk memastikan bahwa tooltip menyatakan Status: berhasil. Tugas kedua hingga terakhir yang bernama
do_comparison
adalah pengujian integrasi yang memverifikasi output proses terhadap file referensi.
Setelah pengujian integrasi selesai, tugas terakhir yang bernama
publish_test_complete
menayangkan pesan ke topik Pub/Subintegration-test-complete-topic
yang akan digunakan untuk memicu pipeline build produksi.Untuk memverifikasi bahwa pesan yang dipublikasikan berisi referensi yang benar ke file JAR terbaru, kita dapat menarik pesan dari langganan Pub/Sub
integration-test-complete-topic-sub
default.Di konsol Google Cloud, buka halaman Langganan.
Klik integration-test-complete-topic-sub, pilih tab Pesan dan klik Tarik
Outputnya akan mirip dengan berikut ini:
Membuat pipeline produksi
Saat alur kerja pemrosesan pengujian berhasil dijalankan, Anda dapat mempromosikan versi terkini alur kerja ke produksi. Ada beberapa cara untuk men-deploy alur kerja ke produksi:
- Secara manual.
- Secara otomatis dipicu saat lulus semua pengujian di lingkungan pengujian atau staging.
- Secara otomatis dipicu oleh tugas terjadwal.
Dalam deployment ini, Anda memicu build produksi secara otomatis setelah lulus semua pengujian di lingkungan pengujian. Untuk informasi selengkapnya tentang pendekatan otomatis, lihat Rekayasa Rilis.
Sebelum menerapkan pendekatan otomatis, Anda harus memverifikasi build deployment produksi dengan melakukan deployment secara manual ke produksi. Build deployment produksi mengikuti langkah-langkah berikut:
- Salin file JAR WordCount dari bucket pengujian ke bucket produksi.
- Tetapkan variabel Cloud Composer untuk alur kerja produksi agar mengarah ke file JAR yang baru dipromosikan.
- Deploy definisi DAG alur kerja produksi di lingkungan Cloud Composer dan jalankan alur kerja tersebut.
Substitusi variabel menentukan nama file JAR terbaru yang di-deploy ke produksi dengan bucket Cloud Storage yang digunakan oleh alur kerja pemrosesan produksi. Untuk membuat pipeline Cloud Build yang men-deploy alur kerja airflow produksi, selesaikan langkah-langkah berikut:
Di Cloud Shell, baca nama file JAR terbaru dengan mencetak variabel Cloud Composer untuk nama file JAR:
export DATAFLOW_JAR_FILE_LATEST=$(gcloud composer environments run $COMPOSER_ENV_NAME \ --location $COMPOSER_REGION variables get -- \ dataflow_jar_file_test 2>&1 | grep -i '.jar')
Gunakan file konfigurasi pipeline build,
deploy_prod.yaml,
untuk membuat pipeline di Cloud Build:cd ~/ci-cd-for-data-processing-workflow/source-code/build-pipeline gcloud builds submit --config=deploy_prod.yaml --substitutions=\ REPO_NAME=$SOURCE_CODE_REPO,\ _DATAFLOW_JAR_BUCKET_TEST=$DATAFLOW_JAR_BUCKET_TEST,\ _DATAFLOW_JAR_FILE_LATEST=$DATAFLOW_JAR_FILE_LATEST,\ _DATAFLOW_JAR_BUCKET_PROD=$DATAFLOW_JAR_BUCKET_PROD,\ _COMPOSER_INPUT_BUCKET=$INPUT_BUCKET_PROD,\ _COMPOSER_ENV_NAME=$COMPOSER_ENV_NAME,\ _COMPOSER_REGION=$COMPOSER_REGION,\ _COMPOSER_DAG_BUCKET=$COMPOSER_DAG_BUCKET,\ _COMPOSER_DAG_NAME_PROD=$COMPOSER_DAG_NAME_PROD
Memverifikasi alur kerja pemrosesan data yang dibuat oleh pipeline produksi
Dapatkan URL untuk UI Cloud Composer Anda:
gcloud composer environments describe $COMPOSER_ENV_NAME \ --location $COMPOSER_REGION \ --format="get(config.airflowUri)"
Untuk memverifikasi DAG alur kerja pemrosesan data produksi telah di-deploy, buka URL yang Anda ambil di langkah sebelumnya dan pastikan DAG
prod_word_count
ada dalam daftar DAG.- Di halaman DAG, klik Pemicu DAG di baris
prod_word_count
.
- Di halaman DAG, klik Pemicu DAG di baris
Untuk mengupdate status pengoperasian DAG, klik logo Airflow atau muat ulang halaman. Lingkaran hijau muda di kolom Operasi menunjukkan bahwa DAG sedang berjalan.
Setelah operasi berhasil, arahkan kursor ke lingkaran hijau tua di dekat kolom operasi DAG dan pastikan ada tulisan Berhasil.
Di Cloud Shell, cantumkan file hasil di bucket Cloud Storage:
gsutil ls gs://$RESULT_BUCKET_PROD
Outputnya mirip dengan yang berikut ini:
gs://…-composer-result-prod/output-00000-of-00003 gs://…-composer-result-prod/output-00001-of-00003 gs://…-composer-result-prod/output-00002-of-00003
Membuat pemicu Cloud Build
Di bagian ini, Anda akan membuat pemicu Cloud Build yang menautkan perubahan kode sumber ke proses build pengujian serta di antara pipeline pengujian dan pipeline build produksi.
Mengonfigurasi pemicu pipeline build pengujian
Anda menyiapkan pemicu Cloud Build yang memicu build baru saat perubahan dikirim ke cabang master repositori sumber.
Di konsol Google Cloud, buka halaman Pemicu build.
Klik Create trigger.
Untuk mengonfigurasi setelan pemicu, selesaikan langkah-langkah berikut:
- Di kolom Nama, masukkan
trigger-build-in-test-environment
. - Di drop-down Region, pilih global (non-regional).
- Untuk Peristiwa, klik Kirim ke Cabang.
- Untuk Sumber, pilih
data-pipeline-source
. - Di kolom Nama cabang, masukkan
master
. - Untuk Konfigurasi, klik file konfigurasi Cloud Build (yaml atau json).
- Untuk Lokasi, klik Repositori.
- Di kolom lokasi file konfigurasi Cloud Build, masukkan
build-pipeline/build_deploy_test.yaml
.
- Di kolom Nama, masukkan
Di Cloud Shell, jalankan perintah berikut untuk mendapatkan semua variabel substitusi yang dibutuhkan untuk build. Catat nilai-nilai ini karena nilai tersebut diperlukan pada langkah selanjutnya.
echo "_COMPOSER_DAG_BUCKET : ${COMPOSER_DAG_BUCKET} _COMPOSER_DAG_NAME_TEST : ${COMPOSER_DAG_NAME_TEST} _COMPOSER_ENV_NAME : ${COMPOSER_ENV_NAME} _COMPOSER_INPUT_BUCKET : ${INPUT_BUCKET_TEST} _COMPOSER_REF_BUCKET : ${REF_BUCKET_TEST} _COMPOSER_REGION : ${COMPOSER_REGION} _DATAFLOW_JAR_BUCKET : ${DATAFLOW_JAR_BUCKET_TEST}"
Pada halaman Setelan pemicu, di variabel Substitusi Lanjutan, ubah variabel dengan nilai dari lingkungan yang Anda dapatkan dari langkah sebelumnya. Tambahkan hal berikut satu per satu dan klik + Tambahkan item untuk setiap pasangan nama-nilai.
_COMPOSER_DAG_BUCKET
_COMPOSER_DAG_NAME_TEST
_COMPOSER_ENV_NAME
_COMPOSER_INPUT_BUCKET
_COMPOSER_REF_BUCKET
_COMPOSER_REGION
_DATAFLOW_JAR_BUCKET
Klik Buat.
Mengonfigurasi pemicu pipeline build produksi
Anda akan menyiapkan pemicu Cloud Build yang memicu build produksi
setelah lulus pengujian di lingkungan pengujian dan menayangkan pesan ke
topik Pub/Sub tests-complete
. Pemicu ini mencakup
langkah persetujuan dengan build yang perlu disetujui secara manual sebelum
pipeline produksi dijalankan.
Di konsol Google Cloud, buka halaman Pemicu build.
Klik Create trigger.
Untuk mengonfigurasi setelan pemicu, selesaikan langkah-langkah berikut:
- Di kolom Nama, masukkan
trigger-build-in-prod-environment
. - Di drop-down Region, pilih global (non-regional).
- Untuk Peristiwa, klik pesan Pub/Sub.
- Untuk Langganan, pilih integration-test-complete-topic.
- Untuk Sumber, pilih
data-pipeline-source
. - Untuk Revisi, pilih Cabang.
- Di kolom nama Cabang, masukkan
master
. - Untuk Konfigurasi, klik file konfigurasi Cloud Build (yaml atau json).
- Untuk Lokasi, klik Repositori.
- Di kolom lokasi file konfigurasi Cloud Build, masukkan
build-pipeline/deploy_prod.yaml
.
- Di kolom Nama, masukkan
Di Cloud Shell, jalankan perintah berikut untuk mendapatkan semua variabel substitusi yang dibutuhkan untuk build. Catat nilai-nilai ini karena nilai tersebut diperlukan pada langkah selanjutnya.
echo "_COMPOSER_DAG_BUCKET : ${COMPOSER_DAG_BUCKET} _COMPOSER_DAG_NAME_PROD : ${COMPOSER_DAG_NAME_PROD} _COMPOSER_ENV_NAME : ${COMPOSER_ENV_NAME} _COMPOSER_INPUT_BUCKET : ${INPUT_BUCKET_PROD} _COMPOSER_REGION : ${COMPOSER_REGION} _DATAFLOW_JAR_BUCKET_PROD : ${DATAFLOW_JAR_BUCKET_PROD} _DATAFLOW_JAR_BUCKET_TEST : ${DATAFLOW_JAR_BUCKET_TEST}"
Pada halaman Setelan pemicu, di variabel Substitusi Lanjutan, ubah variabel dengan nilai dari lingkungan yang Anda dapatkan dari langkah sebelumnya. Tambahkan hal berikut satu per satu dan klik + Tambahkan item untuk setiap pasangan nama-nilai.
_COMPOSER_DAG_BUCKET
_COMPOSER_DAG_NAME_PROD
_COMPOSER_ENV_NAME
_COMPOSER_INPUT_BUCKET
_COMPOSER_REGION
_DATAFLOW_JAR_BUCKET_PROD
_DATAFLOW_JAR_BUCKET_TEST
_DATAFLOW_JAR_FILE_LATEST = $(body.message.data)
Untuk Persetujuan, pilih Perlu persetujuan sebelum eksekusi build.
Klik Create.
Menguji pemicu
Untuk menguji pemicu, tambahkan kata baru ke file input pengujian dan buat penyesuaian ke file referensi pengujian. Anda perlu memverifikasi bahwa pipeline build dipicu oleh commit push ke Cloud Source Repositories serta alur kerja pemrosesan data berjalan dengan benar dengan file pengujian yang telah diupdate.
Di Cloud Shell, tambahkan kata pengujian di akhir file pengujian:
echo "testword" >> ~/$SOURCE_CODE_REPO/workflow-dag/support-files/input.txt
Update file referensi hasil pengujian,
ref.txt
, agar sesuai dengan perubahan yang dilakukan di file input pengujian:echo "testword: 1" >> ~/$SOURCE_CODE_REPO/workflow-dag/support-files/ref.txt
Commit dan kirim perubahan ke Cloud Source Repositories:
cd ~/$SOURCE_CODE_REPO git add . git commit -m 'change in test files' git push google master
Di konsol Google Cloud, buka halaman Histori.
Untuk memverifikasi bahwa build pengujian baru dipicu push sebelumnya ke cabang master, kolom Ref menyatakan masterdi build yang sedang berjalan.
Di Cloud Shell, dapatkan URL untuk antarmuka web Cloud Composer Anda:
gcloud composer environments describe $COMPOSER_ENV_NAME \ --location $COMPOSER_REGION --format="get(config.airflowUri)"
Setelah build selesai, buka URL dari perintah sebelumnya untuk memverifikasi bahwa DAG
test_word_count
sedang berjalan.Tunggu hingga operasi DAG selesai, yang akan ditunjukkan saat lingkaran hijau muda di kolom operasi DAG hilang. Biasanya perlu waktu 3-5 menit untuk menyelesaikan proses ini.
Di Cloud Shell, download file hasil pengujian:
mkdir ~/result-download cd ~/result-download gsutil cp gs://$RESULT_BUCKET_TEST/output* .
Verifikasi bahwa kata yang baru ditambahkan ada di salah satu file hasil:
grep testword output*
Outputnya mirip dengan hal berikut ini:
output-00000-of-00003:testword: 1
Di konsol Google Cloud, buka halaman Histori.
Pastikan bahwa build produksi baru telah dipicu oleh penyelesaian pengujian integrasi dan build tersebut sedang menunggu persetujuan.
Untuk menjalankan pipeline build produksi, pilih kotak centang di samping build, klik Setujui, lalu klik Setujui di kotak konfirmasi.
Setelah build selesai, buka URL dari perintah sebelumnya dan picu DAG
prod_word_count
secara manual untuk menjalankan pipeline produksi.
Pembersihan
Bagian berikut menjelaskan cara menghindari tagihan di masa mendatang untuk project Google Cloud serta resource Apache Hive dan Dataproc yang digunakan dalam deployment.
Menghapus project Google Cloud
Agar terhindar dari tagihan pada akun Google Cloud untuk resource yang digunakan dalam deployment ini, Anda dapat menghapus project Google Cloud.
- Di konsol Google Cloud, buka halaman Manage resource.
- Pada daftar project, pilih project yang ingin Anda hapus, lalu klik Delete.
- Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.
Menghapus resource satu per satu
Jika Anda ingin mempertahankan project yang digunakan untuk deployment ini, jalankan langkah-langkah berikut untuk menghapus resource yang Anda buat.
Untuk menghapus pemicu Cloud Build, selesaikan langkah-langkah berikut:
Di konsol Google Cloud, buka halaman Pemicu.
Di samping pemicu yang Anda buat, klik Lainnyamore_vert, lalu klik Hapus.
Di Cloud Shell, hapus lingkungan Cloud Composer:
gcloud -q composer environments delete $COMPOSER_ENV_NAME \ --location $COMPOSER_REGION
Hapus bucket Cloud Storage dan filenya:
gsutil -m rm -r gs://$DATAFLOW_JAR_BUCKET_TEST \ gs://$INPUT_BUCKET_TEST \ gs://$REF_BUCKET_TEST \ gs://$RESULT_BUCKET_TEST \ gs://$DATAFLOW_STAGING_BUCKET_TEST \ gs://$DATAFLOW_JAR_BUCKET_PROD \ gs://$INPUT_BUCKET_PROD \ gs://$RESULT_BUCKET_PROD \ gs://$DATAFLOW_STAGING_BUCKET_PROD
Untuk menghapus topik Pub/Sub dan langganan default, jalankan perintah berikut di Cloud Shell:
gcloud pubsub topics delete integration-test-complete-topic gcloud pubsub subscriptions delete integration-test-complete-topic-sub
Hapus repositori:
gcloud -q source repos delete $SOURCE_CODE_REPO
Hapus file dan folder yang Anda buat:
rm -rf ~/ci-cd-for-data-processing-workflow rm -rf ~/$SOURCE_CODE_REPO rm -rf ~/result-download
Langkah selanjutnya
- Pelajari lebih lanjut Continuous delivery bergaya GitOps dengan Cloud Build.
- Pelajari cara Menggunakan pipeline CI/CD untuk alur kerja pemrosesan data.
- Pelajari lebih lanjut Pola kasus penggunaan Dataflow umum.
- Pelajari lebih lanjut Rekayasa Rilis.
- Untuk referensi arsitektur, diagram, dan praktik terbaik lainnya, jelajahi Pusat Arsitektur Cloud.