Prinsip yang ada di pilar keandalan Google Cloud Framework Tersusun dengan Baik ini memberikan rekomendasi untuk membantu Anda menggunakan skalabilitas horizontal. Dengan menggunakan skalabilitas horizontal, Anda dapat membantu memastikan bahwa workload di Google Cloud dapat diskalakan secara efisien dan mempertahankan performa.
Prinsip ini relevan dengan area fokus cakupan pada keandalan.
Ringkasan prinsip
Rancang ulang sistem Anda menjadi arsitektur horizontal. Untuk mengakomodasi pertumbuhan traffic atau data, Anda dapat menambahkan lebih banyak resource. Anda juga dapat menghapus resource saat sedang 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, lebih banyak RAM dan CPU yang diperlukan. Pada akhirnya, database mencapai batas memori pada mesin host dan perlu diupgrade. Proses ini mungkin perlu diulang beberapa kali. Masalahnya adalah ada batas keras tentang seberapa banyak database dapat tumbuh. Ukuran VM tidak terbatas. Database dapat mencapai suatu titik ketika tidak lagi memungkinkan untuk menambahkan lebih banyak resource.
Meskipun resource tidak terbatas, VM yang 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 yang sangat tersedia melalui redundansi resource.
Selain batas penskalaan ini, penskalaan vertikal cenderung lebih mahal. Biaya dapat meningkat secara eksponensial seiring perolehan mesin dengan jumlah daya komputasi dan memori yang lebih besar.
Sebaliknya, penskalaan horizontal dapat berbiaya lebih rendah. Potensi penskalaan horizontal hampir tak terbatas dalam sistem yang dirancang untuk diskalakan.
Rekomendasi
Untuk bertransisi dari arsitektur VM tunggal ke arsitektur multi-mesin horizontal, 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 meniadakan kebutuhan untuk mengelola penskalaan horizontal secara manual. Misalnya, dengan grup instance terkelola (MIG) Compute Engine, Anda dapat menambahkan atau menghapus VM untuk menskalakan aplikasi Anda secara horizontal. Untuk aplikasi dalam container, Cloud Run adalah platform serverless yang dapat otomatis menskalakan container stateless berdasarkan traffic masuk.
Mempromosikan desain modular
Komponen modular dan antarmuka yang jelas membantu Anda menskalakan setiap komponen sesuai kebutuhan, bukan menskalakan seluruh aplikasi. Untuk informasi selengkapnya, lihat Mempromosikan desain modular di pilar pengoptimalan performa.
Mengimplementasikan desain stateless
Desain aplikasi agar stateless, artinya tidak ada data yang disimpan secara lokal. Hal ini memungkinkan Anda menambahkan atau menghapus instance tanpa perlu mengkhawatirkan konsistensi data.