Prinsip ini dalam pilar keberlanjutan dari Google Cloud Well-Architected Framework 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 lingkungan workload Anda, 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 optimal, yang membantu mencegah pemborosan energi dari infrastruktur yang tidak digunakan atau yang disediakan secara berlebihan. Pengurangan energi yang terbuang akan menghasilkan biaya yang lebih rendah 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 variabel.
Mengonfigurasi kebijakan penskalaan yang sesuai
Konfigurasi setelan penskalaan otomatis berdasarkan persyaratan workload Anda. Tentukan metrik dan batas 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), konfigurasi kebijakan penskalaan otomatis cluster yang sesuai .
Menggabungkan penskalaan reaktif dan proaktif
Dengan penskalaan reaktif, sistem akan diskalakan sebagai respons terhadap perubahan beban 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 peristiwa penjualan besar dan upaya pemasaran yang terfokus.
Google Cloud layanan dan fitur terkelola 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 untuk 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.
Menjadwalkan untuk intensitas karbon rendah
Jadwalkan tugas batch Anda untuk berjalan di region rendah karbon dan selama periode saat jaringan listrik lokal memiliki persentase energi bersih yang tinggi. Untuk mengidentifikasi waktu dalam sehari yang paling rendah intensitas karbonnya untuk suatu region, gunakan laporan Jejak Karbon.
Menggunakan Spot VM untuk workload non-kritis
Spot VM memungkinkan Anda memanfaatkan kapasitas Compute Engine yang tidak digunakan dengan diskon besar. Spot VM dapat di-preempt, tetapi memberikan cara yang hemat biaya untuk memproses set data besar tanpa memerlukan resource khusus yang selalu aktif. Spot VM ideal untuk tugas batch fault-tolerant yang tidak penting.
Menggabungkan dan memparalelkan tugas
Untuk mengurangi overhead saat memulai dan menghentikan tugas individual, 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, yang membantu memastikan penggunaan resource yang optimal.
Menggunakan layanan terkelola
Layanan terkelola seperti Batch dan Dataflow secara otomatis menangani penyediaan, penjadwalan, dan pemantauan resource. Platform cloud menangani pengoptimalan resource. Anda dapat berfokus pada logika aplikasi. Misalnya, Dataflow secara otomatis menskalakan jumlah worker berdasarkan volume data dalam pipeline, sehingga Anda tidak 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 workload yang berbeda. Pilih kelompok mesin yang sesuai berdasarkan persyaratan workload Anda.
| Kelompok mesin | Direkomendasikan untuk jenis workload | Panduan keberlanjutan |
|---|---|---|
| Instance tujuan umum (E2, N2, N4, Tau T2A/T2D): 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 Tau T2A menggunakan prosesor berbasis Arm, yang sering kali lebih hemat energi per unit performa untuk workload berskala besar. |
| Instance yang dioptimalkan untuk komputasi (C2, C3): 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 seri C memungkinkan Anda menyelesaikan tugas yang intensif CPU lebih cepat, yang mengurangi total waktu komputasi dan konsumsi energi tugas. |
| Instance yang dioptimalkan untuk memori (M3, M2): Instance ini dirancang untuk workload yang memerlukan memori dalam jumlah besar. | Database dalam memori dan data warehouse besar, seperti SAP HANA atau analisis dalam memori. | Instance yang dioptimalkan untuk memori memungkinkan konsolidasi workload yang intensif 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 state. |
| Instance yang dioptimalkan untuk penyimpanan (Z3): Instance ini menyediakan penyimpanan SSD lokal dengan throughput tinggi dan latensi rendah. | Data warehousing, analisis log, dan database SQL, NoSQL, dan vektor. | Instance yang dioptimalkan untuk penyimpanan memproses set data besar secara lokal, yang membantu menghilangkan energi yang digunakan untuk keluar data jaringan lintas lokasi. Saat menggunakan penyimpanan lokal untuk tugas IOPS tinggi, Anda menghindari penyediaan berlebihan beberapa instance standar. |
| Instance yang dioptimalkan untuk akselerator (A3, A2, G2): Instance ini dibuat untuk workload yang dipercepat 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 dipercepat GPU seperti seri A3 dengan GPU NVIDIA H100 dapat jauh lebih hemat energi untuk melatih model besar daripada alternatif khusus CPU. Meskipun instance yang dipercepat GPU memiliki penggunaan daya nominal yang lebih tinggi, tugas akan selesai 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 dapat 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 instruksi 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 akan selesai lebih efisien dan menggunakan lebih sedikit energi.
- Pengelolaan daya yang ditingkatkan: Kemajuan dalam arsitektur chip sering kali mencakup fitur pengelolaan daya yang lebih canggih, seperti penyesuaian dinamis voltase dan frekuensi berdasarkan workload. Fitur pengelolaan daya ini memungkinkan chip berjalan pada efisiensi puncak dan memasuki status daya rendah saat tidak digunakan, yang 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 ditingkatkan, resource komputasi digunakan untuk durasi yang lebih singkat untuk tugas tertentu, yang mengurangi penggunaan energi dan jejak karbon secara keseluruhan. Dampak karbon sangat tinggi untuk workload intensif komputasi yang berumur pendek 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 canggih platform cloud. Jenis mesin ini biasanya memungkinkan penggunaan resource yang lebih baik, yang mengurangi kebutuhan untuk penyediaan berlebihan dan membantu memastikan bahwa setiap watt daya digunakan secara produktif.
Men-deploy aplikasi dalam container
Anda dapat menggunakan layanan berbasis container yang dikelola sepenuhnya seperti GKE dan Cloud Run sebagai bagian dari strategi Anda untuk komputasi cloud yang berkelanjutan. Layanan ini membantu mengoptimalkan penggunaan resource dan mengotomatiskan pengelolaan resource.
Memanfaatkan kemampuan skala ke nol Cloud Run
Cloud Run menyediakan lingkungan serverless terkelola yang secara otomatis menskalakan instance ke nol jika tidak ada traffic masuk untuk layanan atau saat tugas selesai. Penskalaan otomatis membantu menghilangkan konsumsi energi oleh infrastruktur yang tidak digunakan. Resource hanya diaktifkan saat memproses permintaan secara aktif. Strategi ini sangat efektif untuk workload intermiten 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 di node yang tersedia. Bin packing memaksimalkan penggunaan setiap node dan mengurangi jumlah node yang tidak digunakan atau kurang digunakan, yang 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 khusus aplikasi kustom. metrik. Misalnya, jika aplikasi Anda mengalami lonjakan traffic, GKE akan menambahkan Pod untuk memenuhi permintaan. Saat traffic menurun, GKE akan mengurangi jumlah Pod. Penskalaan dinamis ini mencegah penyediaan resource yang berlebihan, sehingga Anda tidak membayar atau mengaktifkan kapasitas komputasi yang tidak diperlukan.
- Penskalaan otomatis Pod vertikal (VPA): Anda dapat mengonfigurasi GKE untuk menyesuaikan alokasi dan batas CPU dan memori secara otomatis untuk setiap container. Konfigurasi ini memastikan bahwa container tidak dialokasikan lebih banyak resource daripada yang diperlukan, yang 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 terkecil untuk performa yang diperlukan.
- Penjadwalan Sadar Topologi (TAS): TAS meningkatkan efisiensi jaringan untuk workload AI dan ML di GKE dengan menempatkan Pod berdasarkan struktur fisik infrastruktur pusat data. TAS secara strategis menempatkan workload untuk meminimalkan hop jaringan. Penempatan ini membantu mengurangi latensi komunikasi dan konsumsi energi. Dengan mengoptimalkan penyesuaian fisik node dan hardware khusus, TAS mempercepat penyelesaian tugas dan memaksimalkan efisiensi energi workload AI dan ML berskala besar.
Mengonfigurasi penjadwalan yang memperhatikan karbon
Di Google, kami terus mengalihkan workload ke lokasi dan waktu yang menyediakan listrik terbersih. Kami juga menggunakan kembali, atau memanen, peralatan lama untuk kasus penggunaan alternatif. Anda dapat menggunakan strategi penjadwalan yang memperhatikan karbon ini untuk memastikan bahwa workload dalam container Anda menggunakan energi bersih.
Untuk menerapkan penjadwalan yang memperhatikan karbon, Anda memerlukan informasi tentang campuran energi yang mendukung pusat data di suatu region secara real time. Anda bisa mendapatkan informasi ini dalam format yang dapat dibaca mesin dari repositori Carbon free energy for Google Cloud regions 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 yang memperhatikan karbon, sebaiknya gunakan teknik berikut:
- Pergeseran geografis: Jadwalkan workload Anda untuk berjalan 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 non-kritis yang fleksibel seperti batch processing, konfigurasi workload agar berjalan selama jam non-puncak atau saat energi terbarukan paling banyak. 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 yang hemat energi
Persiapan untuk pemulihan dari bencana (DR) sering kali melibatkan penyediaan resource redundan di region sekunder. Namun, resource yang tidak digunakan atau kurang digunakan dapat menyebabkan pemborosan energi yang signifikan. Pilih strategi DR yang memaksimalkan penggunaan resource dan meminimalkan dampak karbon tanpa mengorbankan tujuan waktu pemulihan (RTO) Anda.
Mengoptimalkan efisiensi cold start
Gunakan pendekatan berikut untuk meminimalkan atau menghilangkan resource aktif di region sekunder (DR):
- Memprioritaskan DR dingin: Biarkan resource di region DR nonaktif atau dalam status skala ke nol. Pendekatan ini membantu menghilangkan jejak karbon resource komputasi yang tidak digunakan.
- Memanfaatkan failover serverless: Gunakan layanan serverless terkelola seperti Cloud Run untuk endpoint DR. Cloud Run diskalakan ke nol saat tidak digunakan, sehingga Anda dapat mempertahankan topologi DR yang tidak menggunakan energi hingga traffic dialihkan ke region DR.
- Mengotomatiskan pemulihan dengan infrastruktur sebagai kode (IaC): Daripada membuat resource di situs DR tetap berjalan (hangat), gunakan alat IaC seperti Terraform untuk menyediakan lingkungan dengan cepat hanya jika diperlukan.
Menyeimbangkan redundansi dan penggunaan
Redundansi resource adalah pendorong 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 digunakan, yang mengakibatkan pemborosan energi. 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.
- Redundansi ukuran yang tepat: Mereplikasi 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 keluar jaringan.