Prinsip dalam pilar keberlanjutan Google Cloud Well-Architected Framework ini memberikan rekomendasi untuk membantu Anda mengoptimalkan penggunaan resource oleh workload Anda di Google Cloud.
Ringkasan prinsip
Mengoptimalkan penggunaan resource sangat penting untuk meningkatkan keberlanjutan lingkungan cloud Anda. Setiap resource yang disediakan—mulai dari siklus komputasi hingga penyimpanan data—secara langsung memengaruhi penggunaan energi, intensitas air, dan emisi karbon. Untuk mengurangi jejak ekologi workload, Anda harus membuat pilihan yang tepat saat menyediakan, mengelola, dan menggunakan resource cloud.
Rekomendasi
Untuk mengoptimalkan penggunaan resource, pertimbangkan rekomendasi di bagian berikut.
Menerapkan penskalaan otomatis dan dinamis
Penskalaan otomatis dan dinamis memastikan penggunaan resource yang optimal, sehingga membantu mencegah pemborosan energi dari infrastruktur yang tidak digunakan atau disediakan secara berlebihan. Pengurangan energi yang terbuang akan menghasilkan biaya dan emisi karbon yang lebih rendah.
Gunakan teknik berikut untuk menerapkan skalabilitas otomatis dan dinamis.
Menggunakan penskalaan horizontal
Penskalaan horizontal adalah teknik penskalaan yang lebih disukai untuk sebagian besar aplikasi cloud-first. Daripada meningkatkan ukuran setiap instance, yang dikenal sebagai penskalaan vertikal, Anda menambahkan instance untuk mendistribusikan beban. Misalnya, Anda dapat menggunakan grup instance terkelola (MIG) untuk menskalakan grup VM Compute Engine secara otomatis. Infrastruktur yang diskalakan secara horizontal lebih tangguh karena kegagalan instance tidak memengaruhi ketersediaan aplikasi. Penskalaan horizontal juga merupakan teknik yang hemat resource untuk aplikasi yang memiliki tingkat beban bervariasi.
Mengonfigurasi kebijakan penskalaan yang sesuai
Konfigurasi setelan penskalaan otomatis berdasarkan persyaratan workload Anda. Menentukan metrik dan nilai minimum kustom yang spesifik untuk perilaku aplikasi. Daripada hanya mengandalkan pemakaian CPU, pertimbangkan metrik seperti kedalaman antrean untuk tugas asinkron, latensi permintaan, dan metrik aplikasi kustom. Untuk mencegah penskalaan yang sering dan tidak perlu atau flapping, tentukan kebijakan penskalaan yang jelas. Misalnya, untuk workload yang Anda deploy di Google Kubernetes Engine (GKE), konfigurasikan kebijakan penskalaan otomatis cluster yang sesuai.
Menggabungkan penskalaan reaktif dan proaktif
Dengan penskalaan reaktif, sistem melakukan penskalaan sebagai respons terhadap perubahan beban secara real-time. Teknik ini cocok untuk aplikasi yang memiliki lonjakan beban yang tidak dapat diprediksi.
Penskalaan proaktif cocok untuk workload dengan pola yang dapat diprediksi, seperti jam kerja harian tetap dan pembuatan laporan mingguan. Untuk workload tersebut, gunakan penskalaan otomatis terjadwal untuk menyediakan resource terlebih dahulu sehingga dapat menangani tingkat beban yang diantisipasi. Teknik ini mencegah perebutan resource dan memastikan pengalaman pengguna yang lebih lancar dengan efisiensi yang lebih tinggi. Teknik ini juga membantu Anda merencanakan secara proaktif lonjakan beban yang diketahui, seperti acara diskon besar dan upaya pemasaran yang terfokus.
Layanan dan fitur terkelolaGoogle Cloud seperti GKE Autopilot, Cloud Run, dan MIG secara otomatis mengelola penskalaan proaktif dengan mempelajari pola workload Anda. Secara default, jika layanan Cloud Run tidak menerima traffic apa pun, layanan tersebut akan diskalakan ke nol instance.
Mendesain aplikasi stateless
Agar aplikasi dapat diskalakan secara horizontal, komponennya harus stateless. Artinya, sesi atau data pengguna tertentu tidak terikat ke satu instance komputasi. Saat Anda menyimpan status sesi di luar instance komputasi, seperti di Memorystore for Redis, instance komputasi apa pun dapat menangani permintaan dari pengguna mana pun. Pendekatan desain ini memungkinkan penskalaan horizontal yang lancar dan efisien.
Menggunakan penjadwalan dan batch
Batch processing ideal untuk workload berskala besar yang tidak mendesak. Tugas batch dapat membantu mengoptimalkan workload Anda untuk efisiensi energi dan biaya.
Gunakan teknik berikut untuk menerapkan penjadwalan dan tugas batch.
Jadwalkan untuk intensitas karbon rendah
Jadwalkan tugas batch Anda untuk dijalankan di region rendah karbon dan selama periode saat jaringan listrik lokal memiliki persentase energi bersih yang tinggi. Untuk mengidentifikasi waktu dengan intensitas karbon paling rendah dalam sehari untuk suatu region, gunakan laporan Jejak Karbon.
Menggunakan Spot VM untuk workload non-kritis
Spot VM memungkinkan Anda memanfaatkan kapasitas Compute Engine yang tidak terpakai dengan diskon besar. Spot VM dapat di-preempt, tetapi menyediakan cara yang hemat biaya untuk memproses set data besar tanpa memerlukan resource khusus yang selalu aktif. Spot VM ideal untuk tugas batch non-kritis dan fault-tolerant.
Menggabungkan dan memparalelkan tugas
Untuk mengurangi overhead saat memulai dan menghentikan setiap tugas, kelompokkan tugas serupa ke dalam satu batch besar. Jalankan workload bervolume tinggi ini di layanan seperti Batch. Layanan ini secara otomatis menyediakan dan mengelola infrastruktur yang diperlukan, sehingga membantu memastikan pemanfaatan resource yang optimal.
Menggunakan layanan terkelola
Layanan terkelola seperti Batch dan Dataflow otomatis menangani penyediaan, penjadwalan, dan pemantauan resource. Platform cloud menangani pengoptimalan resource. Anda dapat berfokus pada logika aplikasi. Misalnya, Dataflow otomatis menskalakan jumlah worker berdasarkan volume data dalam pipeline, sehingga Anda tidak perlu membayar resource yang tidak digunakan.
Mencocokkan kelompok mesin VM dengan persyaratan workload
Jenis mesin yang dapat Anda gunakan untuk VM Compute Engine dikelompokkan ke dalam kelompok mesin, yang dioptimalkan untuk berbagai workload. Pilih kelompok mesin yang sesuai berdasarkan persyaratan workload Anda.
| Kelompok mesin | Direkomendasikan untuk jenis workload | Panduan keberlanjutan |
|---|---|---|
| Instance tujuan umum: Instance ini memberikan rasio CPU terhadap memori yang seimbang. | Server web, microservice, database kecil hingga menengah, dan lingkungan pengembangan. | Seri E2 sangat hemat biaya dan hemat energi karena alokasi resource-nya yang dinamis. Seri C4A, N4A, dan Tau T2A menggunakan prosesor berbasis Arm, yang sering kali lebih hemat energi per unit performa untuk workload berskala besar. |
| Instance yang dioptimalkan untuk komputasi: Instance ini memberikan rasio vCPU terhadap memori yang tinggi dan performa per core yang tinggi. | Komputasi berperforma tinggi (HPC), batch processing, server game, dan analisis data berbasis CPU. | Instance yang dioptimalkan untuk komputasi memungkinkan Anda menyelesaikan tugas yang memerlukan banyak CPU dengan lebih cepat, sehingga mengurangi total waktu komputasi dan konsumsi energi tugas. |
| Instance yang dioptimalkan untuk memori: Instance ini dirancang untuk workload yang memerlukan memori dalam jumlah besar. | Database dan data warehouse dalam memori yang besar, seperti SAP HANA atau analisis dalam memori. | Instance yang dioptimalkan untuk memori memungkinkan konsolidasi workload yang menggunakan banyak memori pada lebih sedikit node fisik. Konsolidasi ini mengurangi total energi yang diperlukan jika dibandingkan dengan menggunakan beberapa instance yang lebih kecil. Memori berperforma tinggi mengurangi latensi akses data, yang dapat mengurangi total waktu yang dihabiskan CPU dalam status aktif. |
| Instance yang dioptimalkan untuk penyimpanan: Instance ini menyediakan penyimpanan SSD lokal dengan throughput tinggi dan latensi rendah. | Data warehousing, analisis log, serta database SQL, NoSQL, dan vektor. | Instance yang dioptimalkan untuk penyimpanan memproses set data besar secara lokal, yang membantu menghilangkan energi yang digunakan untuk egress data jaringan lintas lokasi. Saat menggunakan penyimpanan lokal untuk tugas IOPS tinggi, Anda menghindari penyediaan berlebihan beberapa instance standar. |
| Instance yang dioptimalkan untuk akselerator: Instance ini dibuat untuk workload yang diakselerasi GPU dan TPU, seperti AI, ML, dan HPC. | Pelatihan dan inferensi model ML, serta simulasi ilmiah. | TPU dirancang untuk efisiensi energi yang optimal. TPU memberikan komputasi yang lebih tinggi per watt. Instance yang diakselerasi GPU seperti seri A3 dengan GPU NVIDIA H100 bisa jauh lebih hemat energi untuk melatih model besar dibandingkan alternatif khusus CPU. Meskipun instance yang dipercepat GPU memiliki penggunaan daya nominal yang lebih tinggi, tugas akan diselesaikan jauh lebih cepat. |
Mengupgrade ke jenis mesin terbaru
Penggunaan jenis mesin terbaru dapat membantu meningkatkan keberlanjutan. Saat jenis mesin diupdate, jenis mesin tersebut sering kali dirancang agar lebih hemat energi dan memberikan performa yang lebih tinggi per watt. VM yang menggunakan jenis mesin terbaru mungkin menyelesaikan jumlah pekerjaan yang sama dengan konsumsi daya yang lebih rendah.
CPU, GPU, dan TPU sering kali mendapatkan manfaat dari kemajuan teknis dalam arsitektur chip, seperti berikut:
- Core khusus: Kemajuan dalam prosesor sering kali mencakup core atau petunjuk khusus untuk workload umum. Misalnya, CPU mungkin memiliki core khusus untuk operasi vektor atau akselerator AI terintegrasi. Saat tugas ini dialihkan dari CPU utama, tugas tersebut akan diselesaikan dengan lebih efisien dan mengonsumsi lebih sedikit energi.
- Pengelolaan daya yang lebih baik: Kemajuan dalam arsitektur chip sering kali mencakup fitur pengelolaan daya yang lebih canggih, seperti penyesuaian dinamis tegangan dan frekuensi berdasarkan workload. Fitur pengelolaan daya ini memungkinkan chip berjalan pada efisiensi puncak dan memasuki status daya rendah saat tidak digunakan, sehingga meminimalkan konsumsi energi.
Peningkatan teknis dalam arsitektur chip memberikan manfaat langsung berikut untuk keberlanjutan dan biaya:
- Performa per watt yang lebih tinggi: Ini adalah metrik utama untuk keberlanjutan. Misalnya, VM C4 menunjukkan rasio harga-performa 40% lebih tinggi jika dibandingkan dengan VM C3 untuk konsumsi energi yang sama. Prosesor C4A memberikan efisiensi energi 60% lebih tinggi dibandingkan prosesor x86 yang sebanding. Kemampuan performa ini memungkinkan Anda menyelesaikan tugas lebih cepat atau menggunakan lebih sedikit instance untuk beban yang sama.
- Konsumsi energi total yang lebih rendah: Dengan prosesor yang lebih baik, resource komputasi digunakan dalam durasi yang lebih singkat untuk tugas tertentu, sehingga mengurangi penggunaan energi dan jejak karbon secara keseluruhan. Dampak karbon sangat tinggi untuk workload berumur pendek dan intensif komputasi seperti tugas batch dan pelatihan model ML.
- Penggunaan resource yang optimal: Jenis mesin terbaru sering kali lebih cocok untuk software modern dan lebih kompatibel dengan fitur lanjutan platform cloud. Jenis mesin ini biasanya memungkinkan pemanfaatan resource yang lebih baik, sehingga mengurangi kebutuhan akan penyediaan yang berlebihan dan membantu memastikan bahwa setiap watt daya digunakan secara produktif.
Men-deploy aplikasi dalam container
Anda dapat menggunakan layanan berbasis container yang terkelola sepenuhnya seperti GKE dan Cloud Run sebagai bagian dari strategi Anda untuk cloud computing yang berkelanjutan. Layanan ini membantu mengoptimalkan pemanfaatan resource dan mengotomatiskan pengelolaan resource.
Memanfaatkan kemampuan penskalaan hingga nol dari Cloud Run
Cloud Run menyediakan lingkungan serverless terkelola yang secara otomatis menskalakan instance ke nol saat tidak ada traffic masuk untuk layanan atau saat tugas selesai. Penskalaan otomatis membantu menghilangkan konsumsi energi oleh infrastruktur yang tidak ada aktivitas. Resource hanya diberi daya saat memproses permintaan secara aktif. Strategi ini sangat efektif untuk workload yang terputus-putus atau berbasis peristiwa. Untuk workload AI, Anda dapat menggunakan GPU dengan Cloud Run, yang memungkinkan Anda menggunakan dan membayar GPU hanya saat digunakan.
Mengotomatiskan pengoptimalan resource menggunakan GKE
GKE adalah platform orkestrasi container, yang memastikan bahwa aplikasi hanya menggunakan resource yang diperlukan. Untuk membantu Anda mengotomatiskan pengoptimalan resource, GKE menyediakan teknik berikut:
- Bin packing: GKE Autopilot secara cerdas mengemas beberapa container pada node yang tersedia. Bin packing memaksimalkan pemanfaatan setiap node dan mengurangi jumlah node yang tidak ada aktivitas atau kurang dimanfaatkan, sehingga membantu mengurangi konsumsi energi.
- Penskalaan otomatis Pod horizontal (HPA): Dengan HPA, jumlah replika container (Pod) disesuaikan secara otomatis berdasarkan metrik yang telah ditentukan seperti penggunaan CPU atau metrik kustom khusus aplikasi. Misalnya, jika aplikasi Anda mengalami lonjakan traffic, GKE akan menambahkan Pod untuk memenuhi permintaan. Saat traffic mereda, GKE akan mengurangi jumlah Pod. Penskalaan dinamis ini mencegah penyediaan resource yang berlebihan, sehingga Anda tidak perlu membayar atau menyalakan kapasitas komputasi yang tidak diperlukan.
- Penskalaan otomatis Pod vertikal (VPA): Anda dapat mengonfigurasi GKE untuk otomatis menyesuaikan alokasi dan batas CPU serta memori untuk setiap container. Konfigurasi ini memastikan bahwa container tidak dialokasikan lebih banyak resource daripada yang dibutuhkan, sehingga membantu mencegah penyediaan resource yang berlebihan.
- Penskalaan otomatis Pod multidimensi GKE: Untuk workload yang kompleks, Anda dapat mengonfigurasi HPA dan VPA secara bersamaan untuk mengoptimalkan jumlah Pod dan ukuran setiap Pod. Teknik ini membantu memastikan jejak energi sekecil mungkin untuk performa yang diperlukan.
- Topology-Aware Scheduling (TAS): TAS meningkatkan efisiensi jaringan untuk workload AI dan ML di GKE dengan menempatkan Pod berdasarkan struktur fisik infrastruktur pusat data. TAS menempatkan workload secara strategis untuk meminimalkan hop jaringan. Kolokasi ini membantu mengurangi latensi komunikasi dan konsumsi energi. Dengan mengoptimalkan penyelarasan fisik node dan hardware khusus, TAS mempercepat penyelesaian tugas dan memaksimalkan efisiensi energi workload AI dan ML berskala besar.
Mengonfigurasi penjadwalan berbasis karbon
Di Google, kami terus mengalihkan workload kami ke lokasi dan waktu yang menyediakan listrik terbersih. Kami juga menggunakan kembali, atau memanfaatkan, peralatan lama untuk kasus penggunaan alternatif. Anda dapat menggunakan strategi penjadwalan yang mempertimbangkan karbon ini untuk memastikan workload dalam container Anda menggunakan energi bersih.
Untuk menerapkan penjadwalan berbasis karbon, Anda memerlukan informasi tentang bauran energi yang mendukung pusat data di suatu region secara real time. Anda bisa mendapatkan informasi ini dalam format yang dapat dibaca mesin dari repositori Energi bebas karbon untuk region Google Cloud di GitHub atau dari set data publik BigQuery. Data campuran jaringan dan intensitas karbon per jam yang digunakan untuk menghitung set data karbon tahunan Google bersumber dari Electricity Maps.
Untuk menerapkan penjadwalan berbasis karbon, sebaiknya gunakan teknik berikut:
- Pergeseran geografis: Jadwalkan workload Anda untuk dijalankan di region yang menggunakan proporsi sumber energi terbarukan yang lebih tinggi. Pendekatan ini memungkinkan Anda menggunakan jaringan listrik yang lebih bersih.
- Pergeseran temporal: Untuk workload yang tidak terlalu penting dan fleksibel seperti batch processing, konfigurasikan workload agar berjalan di luar jam puncak atau saat energi terbarukan paling melimpah. Pendekatan ini dikenal sebagai pergeseran temporal dan membantu mengurangi jejak karbon secara keseluruhan dengan memanfaatkan sumber energi yang lebih bersih saat tersedia.
Merancang pemulihan dari bencana (disaster recovery) yang hemat energi
Persiapan untuk disaster recovery (DR) sering kali melibatkan pra-penyediaan resource redundan di region sekunder. Namun, resource yang tidak digunakan atau kurang dimanfaatkan dapat menyebabkan pemborosan energi yang signifikan. Pilih strategi DR yang memaksimalkan pemanfaatan resource dan meminimalkan dampak karbon tanpa mengorbankan batas waktu pemulihan (RTO) Anda.
Mengoptimalkan efisiensi cold start
Gunakan pendekatan berikut untuk meminimalkan atau menghilangkan resource aktif di region sekunder (DR) Anda:
- Memprioritaskan cold DR: Nonaktifkan resource di region DR atau dalam status penskalaan hingga nol. Pendekatan ini membantu menghilangkan jejak karbon dari resource komputasi yang tidak digunakan.
- Manfaatkan failover serverless: Gunakan layanan serverless terkelola seperti Cloud Run untuk endpoint DR. Cloud Run melakukan penskalaan ke nol saat tidak digunakan, sehingga Anda dapat mempertahankan topologi DR yang tidak menggunakan energi hingga traffic dialihkan ke region DR.
- Otomatiskan pemulihan dengan infrastructure-as-code (IaC): Alih-alih menjaga resource di situs DR tetap berjalan (warm), gunakan alat IaC seperti Terraform untuk menyediakan lingkungan dengan cepat hanya saat diperlukan.
Menyeimbangkan redundansi dan pemanfaatan
Redundansi resource adalah pemicu utama pemborosan energi. Untuk mengurangi redundansi, gunakan pendekatan berikut:
- Lebih memilih aktif-aktif daripada aktif-pasif: Dalam penyiapan aktif-pasif, resource di situs pasif tidak aktif, sehingga energi terbuang sia-sia. Arsitektur aktif-aktif yang berukuran optimal memastikan bahwa semua resource yang disediakan di kedua region secara aktif melayani traffic. Pendekatan ini membantu Anda memaksimalkan efisiensi energi infrastruktur Anda.
- Redundansi yang tepat: Replikasi data dan layanan di seluruh region hanya jika replikasi diperlukan untuk memenuhi persyaratan ketersediaan tinggi atau DR. Setiap replika tambahan meningkatkan biaya energi penyimpanan persisten dan traffic keluar jaringan.