Peningkatan skala vs. peluasan skala
Pengantar skalabilitas database dalam komputasi cloud.
Saat kita membahas tentang skalabilitas, kita pasti akan menyinggung soal data
Skalabilitas dalam komputasi cloud adalah kemampuan untuk meningkatkan atau menurunkan ukuran atau daya solusi TI atau sumber daya secara cepat dan mudah. Meskipun istilah skalabilitas dapat merujuk pada kemampuan sistem mana pun untuk menangani bertambahnya jumlah pekerjaan, saat membahas peningkatan skala vs. peluasan skala, kami sering kali merujuk pada database dan data, dan banyak lagi lainnya.
Skalabilitas database adalah prioritas pertama bagi pengembang aplikasi modern. Katakanlah sebuah aplikasi baru diluncurkan, dan terjadi peningkatan dari sedikit pengguna menjadi jutaan pengguna di seluruh dunia. Salah satu kemampuan terpenting untuk membantu pengembang aplikasi mengimbangi permintaan dan meminimalkan waktu henti adalah kemampuan untuk menyesuaikan skala secara efisien.
Pembahasan terkait peluasan skala vs. peningkatan skala ini berfokus pada cara skalabilitas membantu kita beradaptasi dan menangani besarnya volume dan array data, volume data yang berubah-ubah, dan pola beban kerja yang berganti-ganti. Semua ini dihasilkan dari cloud, seluler, media sosial, dan big data.
Peluasan skala vs. peningkatan skala
Pada dasarnya, skalabilitas database dapat dibagi menjadi dua jenis:
Penskalaan vertikal, atau peningkatan atau penurunan skala, adalah menaikkan atau menurunkan daya komputasi atau database sesuai kebutuhan. Penskalaan ini dapat dilakukan dengan mengubah tingkat performa ataupun dengan menggunakan kumpulan database elastis untuk secara otomatis menyesuaikan permintaan beban kerja Anda.
Penskalaan horizontal, atau peluasan atau penyempitan skala, adalah menambahkan lebih banyak database atau membagi database besar menjadi node yang lebih kecil, menggunakan pendekatan partisi data bernama sharding, yang dapat dikelola lebih cepat dan lebih mudah di seluruh server.
Meningkatkan skala secara vertikal
Penskalaan vertikal digunakan ketika Anda memerlukan respons cepat untuk memperbaiki masalah performa yang tidak dapat diatasi dengan teknik pengoptimalan database umum, seperti mengubah kueri atau melakukan pengindeksan. Peningkatan skala berguna untuk mengatasi peningkatan tajam di beban kerja Anda jika tingkat performa saat ini tidak dapat memenuhi semua permintaan. Peningkatan skala memungkinkan Anda menambah lebih banyak sumber daya untuk mengatasi puncak beban kerja dengan mudah. Kemudian, saat sumber daya tidak diperlukan lagi, penurunan skala memungkinkan Anda untuk kembali ke situasi awal dan menghemat biaya cloud.
Tingkatkan skala jika:
-
Beban kerja Anda mencapai beberapa batas performa, seperti batas CPU atau I/O.
-
Anda perlu merespons dengan cepat untuk memperbaiki masalah performa yang tidak dapat diatasi dengan pengoptimalan database umum.
-
Anda memerlukan solusi yang memungkinkan Anda mengubah tingkat layanan untuk beradaptasi dengan kebutuhan latensi.
Peluasan skala secara horizontal
Pengembang aplikasi mulai mempertimbangkan peluasan skala atau penskalaan horizontal ketika mereka tidak bisa mendapatkan sumber daya yang memadai untuk beban kerjanya, bahkan mengoperasikan tingkat performa tertinggi. Dengan penskalaan horizontal, data dibagi menjadi beberapa database, atau shard, di seluruh server, dan skala setiap shard dapat dinaikkan atau diturunkan secara independen.
Bagaimana cara pemartisian data meningkatkan skalabilitas? Saat Anda meningkatkan skala database tunggal dengan menambahkan sumber daya seperti mesin virtual (VM), pada akhirnya akan mencapai batas perangkat keras fisik. Karena partisi data masing-masing dihosting di server terpisah, jika data dibagi ke beberapa shard, Anda dapat meluaskan skala sistem hampir tanpa batas.
Beberapa jenis teknologi database, khususnya nonrelasional atau database NoSQL, dikembangkan dengan kemampuan unik untuk meluaskan skala secara horizontal dengan Sharding database, memungkinkannya mengatasi data yang besar, tak berkaitan, tak tentu, atau cepat berubah.
Selain itu, beberapa layanan data relasional (SQL) yang awalnya menawarkan layanan untuk menaikkan atau menurunkan skala mulai menawarkan opsi menarik untuk menandingi keunggulan skalabilitas database nonrelasional. Layanan hyperscale seperti Hyperscale Microsoft Azure SQL Database dan Hyperscale Azure Database for PostgreSQL memungkinkan pengguna untuk langsung menskalakan penyimpanan hingga 100 TB, memberikan arsitektur yang cloud-native dan fleksibel sehingga penyimpanan berkembang sesuai kebutuhan, serta memungkinkan pencadangan hampir seketika dan pemulihan database yang cepat dalam hitungan menit.
Luaskan skala jika:
-
Anda memiliki aplikasi yang terdistribusi secara geografis tempat setiap aplikasi harus mengakses bagian dari data di wilayah tersebut. Setiap aplikasi hanya akan mengakses shard yang terkait dengan wilayah tersebut tanpa memengaruhi shard lainnya.
-
Anda perlu melakukan sharding secara global (seperti penyeimbangan beban) ketika Anda memiliki sejumlah besar klien yang terdistribusi secara geografis yang menyisipkan data ke shard khususnya sendiri.
-
Anda sudah memaksimalkan kebutuhan performa Anda, bahkan di tingkat performa tertinggi layanan, atau jika data Anda tidak dapat menjadikannya satu database.
Penskalaan otomatis
Penskalaan otomatis adalah proses pencocokan sumber daya otomatis dan dinamis untuk memenuhi kebutuhan performa sistem. Seiring dengan bertambahnya volume pekerjaan, aplikasi mungkin memerlukan sumber daya tambahan untuk mempertahankan tingkat performa yang diperlukan atau memenuhi permintaan yang terus bertambah. Jika permintaan melambat dan sumber daya tambahan tidak lagi diperlukan, Anda dapat menghemat pengeluaran cloud dengan menggunakan layanan otomatis guna menghapus alokasi sumber daya yang tidak digunakan.
Penskalaan otomatis memanfaatkan elastisitas lingkungan yang dihosting cloud. Proses ini memudahkan overhead manajemen dengan mengurangi kebutuhan operator sistem untuk terus membuat keputusan tentang menambahkan atau menghapus sumber daya atau memeriksa performa sistem.
Meskipun ada dua cara utama penskalaan aplikasi (secara vertikal dan horizontal), penskalaan vertikal secara otomatis kurang umum karena peningkatan skala sering kali perlu menghentikan sementara sistem saat disebarkan ulang.
Penskalaan otomatis lebih umum dilakukan saat penskalaan horizontal karena peluasan atau penyempitan skala berarti hanya menambahkan atau menghapus instans sumber daya dan aplikasi Anda tetap berjalan tanpa gangguan karena sumber daya baru disediakan. Jika permintaan turun, sumber daya dapat dengan lancar dialokasikan dan dimatikan tanpa waktu henti.
Banyak penyedia sistem berbasis cloud, seperti Microsoft Azure, yang mendukung penskalaan horizontal otomatis.
Tanya jawab umum
-
Database adalah kumpulan informasi yang saling berkaitan yang disimpan dan ditata sehingga lebih mudah dikelola dan diakses. Karena data baru dan tipe data dibuat secara cepat dan membingungkan, menata, mengakses, dan mengamankan data menjadi sulit. Sistem manajemen database (DBMS), yang mencakup lapisan alat manajemen, biasanya digunakan untuk menangani volume data yang sangat besar.
Tipe database dan teknologi baru terus meningkat untuk beradaptasi dengan besarnya volume dan array data yang dibuat dari cloud, seluler, media sosial, dan big data.
-
Database NoSQL, sering disebut sebagai SQL nonrelasional atau "tidak hanya" SQL, adalah ragam rangkaian teknologi database yang menangani penyimpanan dan penarikan data secara berbeda dari database tradisional dan relasional (SQL).
Database NoSQL tidak memerlukan skema yang ditentukan sebelumnya dan dapat menggunakan banyak model data, membuatnya sangat efektif dalam menangani volume data tak terstruktur berjumlah besar dan menskalakan proyek database big data.
-
PostgreSQL adalah database sumber terbuka dan kuat yang dapat digunakan dengan kueri relasional dan nonrelasional, serta dikenal karena keandalan dan integritas datanya. PostgreSQL sangat umum digunakan di bidang seperti layanan finansial, manufaktur, sistem informasi geografis pemerintah, dan teknologi web. Pengembang membuat aplikasi dengan PostgreSQL, sementara administrator memercayainya untuk melindungi data mereka.
-
Penyimpanan di cache adalah teknik yang digunakan pengembang dan profesional TI untuk meningkatkan performa dan skalabilitas sistem. Penyimpanan di cache berfungsi dengan menyalin sementara data yang sering diakses yang berlokasi dekat dengan aplikasi. Jika lokasi penyimpanan data cepat ini lebih dekat dengan aplikasi dari sumber aslinya, maka penyimpanan di cache secara signifikan dapat meningkatkan waktu respons untuk aplikasi klien dengan menyediakan data lebih cepat. Pengembang biasanya merancang aplikasi untuk melakukan cache pada data yang diproses lalu menggunakan kembali cache guna memenuhi permintaan lebih cepat dibandingkan dalam kueri database standar.
-
Sharding data adalah jenis partisi data horizontal yang memungkinkan Anda membagi database besar menjadi database lebih kecil, yang dapat dikelola lebih cepat dan lebih mudah di seluruh server.
-
Platform as a service, biasa disingkat PaaS, adalah layanan dari penyedia cloud yang menawarkan lingkungan sesuai permintaan untuk pengembangan, pengujian, penyediaan, dan manajemen aplikasi. Platform as a service membantu pengembang menyederhanakan dan mempercepat pembuatan web dan aplikasi ponsel tanpa harus menangani penyiapan dan pengelolaan infrastruktur server, penyimpanan, jaringan, dan database mendasar yang pengembang perlukan.
Sumber daya
Jelajahi skalabilitas cloud dengan Azure
Temukan pendekatan komprehensif untuk peningkatan skala vs. peluasan skala, yang cocok dengan skenario Anda sendiri di seluruh lingkungan lokal, multicloud, dan tepi. Rangkaian layanan database Azure menawarkan pilihan database dalam memori, relasional, dan NoSQL yang dikelola penuh, yang mencakup mesin berpemilik dan sumber terbuka, agar sesuai dengan kebutuhan pengembang aplikasi modern.
Hemat waktu dan biaya dengan manajemen infrastruktur otomatis, yang mencakup solusi otomatis untuk skalabilitas, ketersediaan, dan keamanan.
Produk dan layanan terkait
Azure SQL
Rangkaian database cloud SQL menyediakan opsi fleksibel untuk migrasi, modernisasi, dan pengembangan aplikasi.
Azure Cosmos DB
Database NoSQL yang cepat dengan API terbuka untuk berbagai skala.
Azure PostgreSQL
PostgreSQL yang cerdas, scalable, dan dikelola penuh.
Azure SQL Database
SQL cerdas terkelola di cloud.
Azure SQL Managed Instance
Instans SQL terkelola dan selalu diperbarui di cloud.
SQL Server di Virtual Machines
Migrasikan beban kerja SQL Server ke cloud dengan TCO terendah.
Azure Database for MySQL
Database MySQL yang scalable dan dikelola penuh.
Azure Maria DB
Layanan database MariaDB terkelola untuk pengembang aplikasi.
Azure Cache for Redis
Percepat aplikasi dengan penyimpanan di cache untuk data throughput tinggi dan latensi rendah.
-
Skalakan database terkelola tanpa batas
Fokuskan pada pembuatan aplikasi dan permudah pekerjaan Anda dengan database yang dikelola oleh Microsoft Azure.