Prinsip dalam pilar keandalan Google Cloud Well-Architected Framework ini memberikan rekomendasi untuk membantu Anda menggunakan skalabilitas horizontal. Dengan menggunakan skalabilitas horizontal, Anda dapat membantu memastikan bahwa workload Anda di Google Cloud dapat diskalakan secara efisien dan mempertahankan performa.
Prinsip ini relevan dengan area fokus pencakupan keandalan.
Ringkasan prinsip
Merancang ulang sistem Anda menjadi arsitektur horizontal. Untuk mengakomodasi pertumbuhan traffic atau data, Anda dapat menambahkan lebih banyak resource. Anda juga dapat menghapus resource saat tidak digunakan.
Untuk memahami nilai penskalaan horizontal, pertimbangkan batasan penskalaan vertikal.
Skenario umum untuk penskalaan vertikal adalah menggunakan database MySQL sebagai database utama dengan data penting. Seiring meningkatnya penggunaan database, diperlukan lebih banyak RAM dan CPU. Pada akhirnya, database akan mencapai batas memori pada mesin host, dan perlu diupgrade. Proses ini mungkin perlu diulang beberapa kali. Masalahnya adalah ada batasan ketat terkait seberapa besar database dapat berkembang. Ukuran VM tidak terbatas. Database dapat mencapai titik saat tidak mungkin lagi menambahkan lebih banyak resource.
Meskipun resource tidak terbatas, VM besar dapat menjadi titik tunggal kegagalan. Masalah apa pun pada VM database utama dapat menyebabkan respons error atau menyebabkan pemadaman layanan di seluruh sistem yang memengaruhi semua pengguna. Hindari titik tunggal kegagalan, seperti yang dijelaskan dalam Membangun sistem dengan tingkat ketersediaan tinggi melalui redundansi resource.
Selain batas penskalaan ini, penskalaan vertikal cenderung lebih mahal. Biaya dapat meningkat secara eksponensial seiring dengan diperolehnya mesin dengan daya komputasi dan memori yang lebih besar.
Sebaliknya, penskalaan horizontal dapat menghemat biaya. Potensi penskalaan horizontal hampir tidak terbatas dalam sistem yang dirancang untuk diskalakan.
Rekomendasi
Untuk beralih dari arsitektur VM tunggal ke arsitektur horizontal multi-mesin, Anda perlu merencanakan dengan cermat dan menggunakan alat yang tepat. Untuk membantu Anda mencapai penskalaan horizontal, pertimbangkan rekomendasi di subbagian berikut.
Menggunakan layanan terkelola
Layanan terkelola menghilangkan kebutuhan untuk mengelola penskalaan horizontal secara manual. Misalnya, dengan grup instance terkelola (MIG) Compute Engine, Anda dapat menambahkan atau menghapus VM untuk menskalakan aplikasi secara horizontal. Untuk aplikasi dalam container, Cloud Run adalah platform serverless yang dapat menskalakan container stateless Anda secara otomatis berdasarkan traffic masuk.
Mempromosikan desain modular
Komponen modular dan antarmuka yang jelas membantu Anda menskalakan setiap komponen sesuai kebutuhan, bukan menskalakan seluruh aplikasi. Untuk mengetahui informasi selengkapnya, lihat Mendorong desain modular di pilar pengoptimalan performa.
Menerapkan desain stateless
Desain aplikasi agar bersifat stateless, yang berarti tidak ada data yang disimpan secara lokal. Hal ini memungkinkan Anda menambahkan atau menghapus instance tanpa mengkhawatirkan konsistensi data.