Dokumen ini menunjukkan cara menjalankan bukti konsep (PoC) untuk membangun render farm hybrid di Google Cloud. Dokumen ini merupakan pendamping untuk Membangun render farm hibrid dan dirancang untuk memfasilitasi pengujian dan benchmark rendering untuk animasi, film, iklan, atau video game di Google Cloud.
Anda dapat menjalankan PoC untuk hybrid render farm di Google Cloud jika Anda mempersempit cakupan pengujian pada komponen penting saja. Berbeda dengan merancang solusi end-to-end, pertimbangkan tujuan PoC berikut:
- Menentukan cara mereproduksi lingkungan rendering lokal di cloud.
- Mengukur perbedaan performa rendering dan jaringan antara render worker lokal dengan instance cloud.
- Menentukan perbedaan biaya antara workload lokal dan cloud.
Berikut tugas yang kurang penting yang dapat Anda tunda atau bahkan hapus dari PoC
- Menentukan cara aset disinkronkan (jika ada) antara fasilitas Anda dengan cloud.
- Menentukan cara men-deploy tugas ke render worker cloud dengan menggunakan software pengelolaan antrean.
- Menentukan cara terbaik untuk terhubung ke Google Cloud.
- Mengukur latensi antara fasilitas Anda dengan pusat data Google.
Konektivitas
Untuk PoC rendering, Anda tidak memerlukan konektivitas tingkat perusahaan ke Google. Koneksi melalui internet publik pun sudah cukup. Kecepatan koneksi, latensi, dan bandwidth tidak terlalu penting untuk performa rendering.
Anda dapat memperlakukan konektivitas sebagai PoC terpisah karena dalam mengatur Dedicated Interconnect atau Partner Interconnect PoC memerlukan waktu, yang dapat juga dilakukan serentak dengan pengujian rendering.
Tujuan
- Membuat instance Compute Engine dan menyesuaikannya untuk berfungsi sebagai render worker.
- Membuat image kustom.
- Men-deploy render worker.
- Menyalin aset ke render worker.
- Menjalankan tolok ukur render.
- Menyalin render pengujian dari render worker ke workstation lokal untuk dievaluasi.
Biaya
Saat Anda memperkirakan proyeksi penggunaan, perkirakan juga perbedaan biaya antara render worker lokal dengan yang berbasis cloud.Dalam dokumen ini, Anda menggunakan komponen Google Cloud yang dapat ditagih berikut:
Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda,
gunakan kalkulator harga.
Setelah menyelesaikan tugas yang dijelaskan dalam dokumen ini, Anda dapat menghindari penagihan berkelanjutan dengan menghapus resource yang Anda buat. Untuk mengetahui informasi selengkapnya, lihat Pembersihan.
Sebelum memulai
- Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.
- Menginstal Google Cloud CLI.
-
Untuk initialize gcloud CLI, jalankan perintah berikut:
gcloud init
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.
- Menginstal Google Cloud CLI.
-
Untuk initialize gcloud CLI, jalankan perintah berikut:
gcloud init
-
Di konsol Google Cloud, aktifkan Cloud Shell.
Di bagian bawah Google Cloud Console, Cloud Shell sesi akan terbuka dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi sesi.
Dalam dokumen ini, Anda biasanya menggunakan Cloud Shell untuk menjalankan langkah-langkah tersebut, tetapi menyalin data dari mesin lokal ke Cloud Storage mengharuskan Anda menjalankan Google Cloud CLI di komputer tersebut.
Menyiapkan lingkungan Anda
Di Cloud Shell, tetapkan zona Compute Engine:
gcloud config set compute/zone [ZONE]
Dengan
[ZONE]
adalah zona tempat semua resource Anda dibuat.
Men-deploy instance
Untuk PoC, Anda sebaiknya membuat kembali hardware worker render lokal Anda. Meskipun Google Cloud menawarkan sejumlah platform CPU yang mungkin cocok dengan hardware Anda, arsitektur virtual machine berbasis cloud berbeda dengan render blade bare metal dalam render farm lokal.
Dalam Google Cloud, resource divirtualisasikan dan tidak bergantung pada resource lainnya. Virtual machine (instance) terdiri atas komponen-komponen utama berikut:
- CPU Virtual (vCPU)
- Memori (RAM)
Disk
- Boot disk dan OS tamu
- Disk penyimpanan tambahan
GPU NVIDIA Tesla (opsional)
Anda juga dapat mengontrol aspek resource lainnya, seperti jaringan, aturan firewall, dan akses pengguna. Namun, untuk tujuan PoC, Anda hanya perlu memperhatikan empat komponen yang telah disebutkan sebelumnya.
Membuat instance
Di Cloud Shell, buatlah prototipe instance render worker Anda:
gcloud compute instances create [INSTANCE_NAME] \ --machine-type [MACHINE_TYPE] \ --image-project [IMAGE_PROJECT] \ --image-family [IMAGE_FAMILY] \ --boot-disk-size [SIZE]
Dengan keterangan:
[INSTANCE_NAME]
adalah nama instance Anda.[MACHINE_TYPE]
dapat berupa jenis mesin yang telah ditetapkan atau jenis mesin kustom dengan formatcustom-[NUMBER_OF_CPUS]-[NUMBER_OF_MB]
dimana jumlah vCPU dan jumlah memori untuk jenis mesin ditentukan.[IMAGE_PROJECT]
adalah project image dari kelompok image tersebut.[IMAGE_FAMILY]
adalah flag opsional yang menentukan kelompok image image ini berasal.[SIZE]
adalah ukuran boot disk dalam GB.
Contoh:
gcloud compute instances create render-worker-proto \ --machine-type custom-24-32768 \ --image-project centos-cloud \ --image-family centos-7 \ --boot-disk-size 100
Perintah sebelumnya membuat instance CentOS 7 dengan 24 vCPU, RAM 32 GB, dan boot disk standar sebesar 100 GB. Instance dibuat di dalam zona yang Anda tetapkan sebelumnya sebagai zona komputasi default.
Anda dapat membuat VM dengan ukuran apa pun, hingga 96 vCPU (jika Anda membutuhkan lebih banyak, coba jenis ultramem
), lebih dari 624 GB RAM, atau beberapa GPU NVIDIA Tesla. Kemungkinannya tidak terbatas, tapi
berhati-hatilah untuk tidak berlebihan; Anda ingin merancang render farm berbasis cloud yang hemat biaya, skalabel, dan cocok untuk berbagai ukuran pekerjaan.
Login ke sebuah instance
Di Cloud Shell, terhubunglah ke instance Anda menggunakan SSH:
gcloud compute ssh [INSTANCE_NAME]
Instal dan lisensikan software pada instance seperti yang Anda lakukan dengan render worker lokal.
Mem-build image default
Kecuali Anda memiliki software uji khusus yang memerlukan hal-hal seperti kernel Linux kustom atau OS dengan versi lama, kami rekomendasi untuk memulai dengan salah satu dari disk image publik kami dan menambahkan perangkat lunak yang akan Anda gunakan.
Jika Anda memilih untuk mengimpor image sendiri, configure image ini dengan menginstal library tambahan agar OS tamu dapat berkomunikasi dengan Google Cloud.
Menyiapkan render worker
Di Cloud Shell, pada instance yang Anda buat sebelumnya, siapkan render worker seperti yang Anda lakukan di worker lokal dengan menginstal software dan library.
Menghentikan instance:
gcloud compute instances stop [INSTANCE_NAME]
Membuat image kustom
Di Cloud Shell, tentukan nama boot disk VM Anda:
gcloud compute instances describe [INSTANCE_NAME]
Output-nya berisi nama boot disk instance Anda:
mode: READ_WRITE source:https://www.googleapis.com/compute/v1/projects/[PROJECT]/zones/[ZONE]/disks/[DISK_NAME]
Dengan keterangan:
[PROJECT]
adalah nama project Google Cloud Anda[ZONE]
adalah zona tempat disk berada.[DISK_NAME]
adalah nama boot disk yang terpasang pada instance Anda. Nama disk biasanya sama (atau mirip) dengan nama instance Anda.
Membuat image dari instance Anda:
gcloud compute images create [IMAGE_NAME] \ --source-disk [DISK_NAME] \ --source-disk-zone [ZONE]
Dengan keterangan:
[IMAGE_NAME]
adalah nama untuk image baru.[DISK_NAME]
adalah disk tempat Anda ingin membuat image baru.[ZONE]
adalah zona tempat disk berada.
Men-deploy render worker
Setelah image kustom siap beserta OS, software, dan library yang dibutuhkan, Anda dapat men-deploy instance render worker menggunakan image kustom, daripada menggunakan image publik.
Di Cloud Shell, buatlah instance render worker. Tambahkan cakupan
devstorage.read_write
agar Anda dapat menulis ke Cloud Storage dari instance ini.gcloud compute instances create [WORKER_NAME] \ --machine-type [MACHINE_TYPE] \ --image [IMAGE_NAME] \ --scopes https://www.googleapis.com/auth/devstorage.read_write \ --boot-disk-size [SIZE]
Dengan
[WORKER_NAME]
adalah nama untuk render worker.
Memberi lisensi software
Anda dapat menggunakan server lisensi lokal untuk menyediakan lisensi selama PoC, karena Anda tidak perlu menerbitkan ulang lisensi untuk server lisensi berbasis cloud yang baru. Untuk terhubung dengan aman ke server lisensi lokal dari instance cloud Anda, buat sebuah aturan firewall yang hanya mengizinkan traffic melalui port yang diperlukan. Aturan firewall ini juga mengizinkan traffic dari alamat IP gateway internet lokal atau server lisensi itu sendiri.
Anda mungkin perlu mengonfigurasi gateway internet dari fasilitas Anda untuk mengizinkan traffic dari instance Google Cloud menjangkau server lisensi lokal Anda.
Menggunakan server lisensi lokal
Anda dapat mengizinkan traffic ke jaringan Virtual Private Cloud (VPC) Anda dengan membuat sebuah aturan firewall.
Di Cloud Shell, buatlah aturan firewall:
gcloud compute firewall-rules create [RULE_NAME] \ --direction=INGRESS \ --priority=1000 \ --network=default \ --action=ALLOW \ --rules=[PROTOCOL]:[PORT] \ --source-ranges=[IP_ADDRESS]
Dengan keterangan:
[RULE_NAME]
adalah nama untuk aturan firewall.[PROTOCOL]
adalah protokol untuk traffic.[PORT]
adalah port yang dilalui traffic.[IP_ADDRESS]
adalah alamat IP server lisensi lokal Anda.
Menggunakan server lisensi berbasis cloud
Server lisensi berbasis cloud tidak memerlukan konektivitas ke jaringan lokal Anda, dan berjalan pada jaringan VPC yang sama dengan render worker Anda. Karena penyajian lisensi merupakan tugas yang relatif ringan, instance kecil (2-4 vCPU, RAM 6-8 GB) dapat menangani beban kerja penyajian lisensi ke beberapa render worker.
Bergantung pada jenis software yang perlu dilisensikan, Anda mungkin perlu memberi key ulang lisensi Anda menggunakan nomor ID hardware yang unik, seperti alamat MAC dari server lisensi. Pengelola lisensi lainnya dapat memvalidasi lisensi software dari host yang terhubung ke internet. Ada banyak pengelola lisensi, lihat dokumentasi pemberian lisensi produk Anda untuk mendapatkan petunjuk.
Mengizinkan komunikasi antar-instance
Pekerja render dan instance server lisensi perlu berkomunikasi satu sama lain.
Aturan firewall default-allow-internal
memungkinkan semua instance dalam project Anda untuk saling berkomunikasi. Aturan firewall ini dibuat saat Anda membuat project baru. Jika menggunakan project baru, Anda dapat melewati bagian ini. Jika menggunakan project yang sudah ada, Anda perlu menguji apakah aturan firewall masih ada di project Google Cloud.
Di Cloud Shell, periksa apakah aturan firewall ada dalam project Anda:
gcloud compute firewall-rules list \ --filter="name=default-allow-internal"
Jika aturan firewall ada dalam project, Anda akan melihat output seperti berikut:
NAME NETWORK DIRECTION PRIORITY ALLOW DENY DISABLED default-allow-internal default INGRESS 65534m tcp:0-65535,udp:0-65535,icmp False
Jika aturan firewall tidak ada dalam project Anda, output tidak akan menampilkan apapun.
Jika Anda perlu membuat aturan firewall, gunakan perintah berikut:
gcloud compute firewall-rules create default-allow-internal \ --direction=INGRESS \ --priority=65534 \ --network=default \ --action=ALLOW \ --rules=tcp:0-65535,udp:0-65535,icmp \ --source-ranges=0.0.0.0/0
Menyimpan aset
Pipeline render dapat sangat berbeda, bahkan dalam satu perusahaan sekalipun. Untuk menerapkan PoC dengan cepat dan dengan konfigurasi yang minimal, Anda dapat menggunakan boot disk dari instance render worker untuk menyimpan aset. PoC Anda seharusnya tidak mengevaluasi sinkronisasi data atau solusi penyimpanan yang lebih canggih. Anda dapat mengevaluasi opsi tersebut di PoC terpisah.
Ada sejumlah opsi penyimpanan yang tersedia di Google Cloud, tetapi sebaiknya ujilah solusi penyimpanan bersama yang skalabel di PoC terpisah.
Jika Anda menguji beberapa konfigurasi render worker dan memerlukan sistem file bersama, Anda dapat membuat volume Filestore dan memasangnya menggunakan NFS ke render worker. Filestore adalah layanan penyimpanan file terkelola yang dapat dipasang untuk membaca/menulis di banyak instance, bertindak sebagai sebuah server file.
Mendapatkan data ke Google Cloud
Untuk menjalankan PoC render, Anda perlu mendapatkan file scene, cache, dan aset ke
render worker Anda. Untuk set data yang lebih besar (>10 GB), Anda dapat menggunakan gsutil
untuk menyalin data ke Cloud Storage, lalu ke render worker Anda. Untuk set data yang lebih kecil (<10 GB), Anda dapat menggunakan gcloud CLI untuk menyalin data secara langsung ke path di render worker Anda (khusus Linux).
Membuat direktori tujuan pada render worker
Di Cloud Shell, hubungkan ke render worker Anda menggunakan SSH:
gcloud compute ssh [WORKER_NAME]
Dengan
[WORKER_NAME]
adalah nama render worker Anda.Membuat direktori tujuan untuk data Anda:
mkdir [ASSET_DIR]
Dengan
[ASSET_DIR]
adalah direktori lokal di mana saja pada render worker Anda.
Menggunakan gsutil
untuk menyalin data dalam jumlah besar
Jika Anda mentransfer set data besar ke render worker, gunakan
gsutil
dengan Cloud Storage sebagai langkah perantara. Jika Anda mentransfer set data yang lebih kecil, Anda dapat langsung ke bagian berikutnya dan menggunakan gcloud CLI untuk mentransfer data dalam jumlah yang lebih kecil.
Pada workstation lokal, buat bucket Cloud Storage:
gsutil mb gs://[BUCKET_NAME_ASSETS]
Dengan
[BUCKET_NAME_ASSETS]
merepresentasikan nama bucket Cloud Storage untuk file atau direktori yang ingin disalin.Menyalin data dari direktori lokal Anda ke bucket:
gsutil -m cp -r [ASSETS] gs://[BUCKET_NAME_ASSETS]
Dengan
[ASSETS]
adalah daftar file atau direktori yang akan disalin ke bucket Anda.Menghubungkan ke render worker Anda menggunakan SSH:
gcloud compute ssh [WORKER_NAME]
Menyalin konten bucket Anda ke render worker:
gsutil -m cp -r gs://[BUCKET_NAME_ASSETS]/* [ASSET_DIR]
Menggunakan gcloud CLI untuk menyalin data dalam jumlah kecil
Jika Anda mentransfer set data yang lebih kecil, Anda dapat menyalin langsung dari workstation lokal ke render worker Linux yang sedang berjalan menggunakan gcloud CLI.
Di workstation lokal, salin data antara direktori lokal dengan render worker Anda:
gcloud compute scp --recurse [ASSETS] [INSTANCE_NAME]:[ASSET_DIR]
Dengan keterangan:
[ASSETS]
adalah daftar file atau direktori yang akan disalin ke bucket Anda.[INSTANCE_NAME]
adalah nama render worker Anda.[ASSET_DIR]
adalah path lokal di render worker Anda.
Menjalankan pengujian render
Setelah Anda menginstal dan melisensikan software render serta menyalin data scene, Anda siap menjalankan pengujian render. Proses ini sepenuhnya bergantung pada cara pipeline render Anda dalam menjalankan perintah render.
Peralatan benchmark
Jika Anda ingin membandingkan resource cloud dengan hardware lokal, Anda dapat menggunakan Perfkit Benchmarker untuk mengukur statistik dari hal-hal seperti bandwidth jaringan dan performa disk.
Beberapa software rendering memiliki alat benchmark sendiri, seperti V-Ray, Octane, atau Maxon, yang mungkin ingin Anda jalankan baik di infrastruktur lokal maupun di cloud untuk membandingkan konfigurasi render umum.
Mendapatkan data dari Google Cloud
Setelah Anda melakukan pengujian render dan ingin melihat hasilnya, Anda harus
menyalin hasil render ke workstation lokal. Bergantung pada ukuran set data yang akan ditransfer, Anda dapat menggunakan gsutil
atau gcloud CLI.
Membuat direktori tujuan di workstation lokal
Di workstation lokal, buatlah direktori untuk render Anda:
mkdir [RENDER_DIR]
Dengan
[RENDER_DIR]
adalah path lokal di render worker Anda.
Menggunakan gsutil
untuk menyalin data dalam jumlah besar
Jika Anda mentransfer set data besar, gunakan gsutil
. Jika tidak, lanjutkan ke bagian berikutnya untuk menggunakan gcloud CLI.
Untuk menyalin data dari render worker ke bucket Cloud Storage, buatlah bucket Cloud Storage terpisah agar render tetap terpisah dari data aset.
Di workstation lokal, buatlah bucket Cloud Storage baru:
gsutil mb gs://[BUCKET_NAME_RENDERS]
Dengan
[BUCKET_NAME_RENDERS]
merepresentasikan nama bucket Cloud Storage untuk data yang dirender.Menghubungkan ke render worker Anda menggunakan SSH:
gcloud compute ssh [WORKER_NAME]
Menyalin data yang dirender ke bucket Anda:
gsutil -m cp -r [RENDERS] gs://[BUCKET_NAME_RENDERS]
Dengan keterangan:
[RENDERS]
adalah daftar file atau direktori yang akan disalin ke bucket Anda.
Pada workstation lokal Anda, salinlah file dari bucket Cloud Storage ke direktori lokal:
gsutil -m cp -r gs://[BUCKET_NAME_RENDERS]/* [RENDER_DIR]
Menggunakan gcloud CLI untuk menyalin data dalam jumlah kecil
Jika Anda menyalin set data yang lebih kecil, Anda dapat menyalin langsung dari render worker ke workstation lokal Anda.
Di workstation lokal, salinlah hasil render ke direktori tujuan Anda:
gcloud compute scp --recurse [WORKER_NAME]:[RENDERS] [RENDER_DIR]
Dengan
[RENDERS]
adalah daftar file atau direktori yang akan disalin ke workstation lokal.
Pembersihan
Agar tidak perlu membayar biaya pada akun Google Cloud Anda untuk resource yang digunakan dalam tutorial ini, hapus project yang berisi resource tersebut, atau simpan project dan hapus setiap resource.
Menghapus project
- 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
-
Hapus instance:
gcloud compute instances delete INSTANCE_NAME
-
Hapus bucket:
gcloud storage buckets delete BUCKET_NAME
Langkah selanjutnya
- Baca selengkapnya tentang cara membangun render farm hybrid di Google Cloud.
- Baca selengkapnya tentang pemetaan resource dari infrastruktur lokal ke Google Cloud.
- Baca selengkapnya tentang cara mengonfigurasi instance render worker.
- Baca selengkapnya tentang
gcloud compute scp
. - Baca selengkapnya tentang
gsutil cp
. - Baca selengkapnya tentang membuat bucket Cloud Storage.
- Pelajari arsitektur referensi, diagram, dan praktik terbaik tentang Google Cloud. Lihat Cloud Architecture Center kami.