Menggunakan Redis Enterprise di Azure

Penyimpanan NoSQL tersedia dalam berbagai jenis. Beberapa adalah database dokumen, yang lain menyimpan pasangan kunci / nilai, semuanya mendukung berbagai jenis indeks dan kueri. Ada sistem berbasis disk dan ada yang dirancang untuk bekerja di memori. Beberapa menangani data dalam jumlah besar secara efisien; yang lain fokus pada kecepatan. Dengan begitu banyak produk yang berbeda terkadang sulit untuk memilih satu.

Salah satu sistem dalam memori yang lebih populer adalah Redis, Server Kamus Jarak Jauh. Itu dibangun di server Redis sumber terbuka, disponsori oleh RedisLabs, dengan serangkaian opsi perusahaan komersial. Microsoft telah menawarkan implementasi sendiri dari sumber terbuka Redis on Azure untuk beberapa waktu sekarang, di mana itu terutama digunakan sebagai cache berkinerja tinggi. Namun, baru-baru ini mengumumkan kemitraan dengan RedisLabs, membawa tumpukan Redis Enterprise yang terkelola sepenuhnya ke cloud Microsoft.

Menambahkan Redis Enterprise ke Azure

Layanan baru ini mungkin paling baik dianggap sebagai menambahkan dua tingkatan baru ke layanan Dasar, Standar, dan Premium yang sudah ada: Enterprise dan Enterprise SSD. Implementasi Microsoft Redis difokuskan pada pengiriman cache berkinerja tinggi untuk data Anda dalam aplikasi cloud-native yang besar, di mana cache membantu mengelola pesan untuk kode yang digerakkan oleh peristiwa atau status sesi saat Anda membangun sistem dalam kontainer atau tanpa server.

Cache tidak hanya untuk mengelola data yang masuk. Aplikasi modern dapat menggunakannya sebagai cara untuk melakukan pramuat konten yang secara teratur diakses oleh pengguna. Anda dapat melakukan pramuat Azure's Redis dengan aset umum Anda, seperti header dan logo, yang tidak sering berubah. Dengan menghostingnya di memori, mereka dapat dikirim jauh lebih cepat, daripada menariknya dari disk setiap kali halaman dimuat.

Menggunakan Redis adalah tentang kinerja. Menempatkan data cache Anda dalam sistem dalam memori dapat mengurangi latensi aplikasi secara signifikan, terutama saat Anda membuat dan menjalankan aplikasi terdistribusi dalam skala besar. Konten di toko Redis dapat direplikasi antar wilayah Azure, mengurangi risiko pengguna di satu wilayah harus mengakses konten yang disimpan di belahan dunia lain.

Dimulai dengan Azure Cache for Redis

Implementasi open source Microsoft, Azure Cache for Redis, hadir dalam Basic, Standard, dan Premium, dengan ukuran maksimum 1.2TB untuk database Premium. Basic adalah implementasi node tunggal yang relatif sederhana, tanpa SLA, tetapi pilihan ukuran memori. Standar memberi Anda lebih banyak keandalan dengan menerapkan sistem dua node dan menambahkan SLA. Jika Anda membutuhkan kinerja yang lebih baik dan latensi yang lebih rendah, opsi Premium menggunakan tingkat perangkat keras Azure yang berbeda, memberikan throughput yang lebih tinggi daripada Standar untuk konfigurasi yang sama.

Cukup mudah untuk menyiapkan cache Redis di Azure. Mulailah dengan nama DNS, lalu tambahkan cache ke grup sumber daya dan pilih lokasi. Ini mengatur mesin virtual yang mendasarinya dan meluncurkan cache Anda; setelah Azure melaporkannya sebagai berjalan, Anda dapat menggunakannya di kode Anda. Kredensial yang diperlukan untuk menyambungkan ke Redis ada di Azure Portal Anda, dengan kunci akses dan string koneksi. Portal tersebut menampilkan alamat instance Anda ditambah port yang harus dihubungkan dengan kode Anda. Secara default, ini akan melalui SSL.

Ada berbagai paket NuGet untuk menggunakan Redis dengan aplikasi .NET Anda, dengan panggilan untuk mendapatkan dan mengatur item di cache Redis, serta untuk memeriksa apakah aplikasi Anda terhubung ke Redis. Yang perlu Anda lakukan adalah mengatur string koneksi cache Anda dan kemudian menggunakannya untuk membuat objek cache dari database Redis Anda. Jika Anda menggunakan Visual Studio, Anda bisa bekerja dengan Redis menggunakan alat database .NET familiar seperti Entity Framework.

Aplikasi berbasis Redis mudah diimplementasikan menggunakan pola MVC (model, view, dan controller), menggunakan pengontrol untuk menulis data serial ke dalam cache dan membacanya bila perlu. Microsoft merekomendasikan penggunaan format JSON untuk menulis dan membaca data, dengan data JSON yang dikembalikan mudah untuk diformat dan ditampilkan menggunakan JavaScript umum dan pustaka .NET.

Azure Cache for Redis lebih dari sekadar database dan satu set API, karena berisi seperangkat alat manajemen yang lengkap, termasuk pemantauan. Ini dapat membantu Anda menskalakan instance Redis sesuai kebutuhan. Anda hanya dapat meningkatkan tingkatan, berpindah dari Dasar ke Standar ke Premium.

Setiap perubahan ukuran adalah operasi terpisah, dan Anda dapat mengubah ukuran ke atas atau ke bawah dalam tingkat yang sama (dengan syarat bahwa Anda tidak dapat menurunkan ke penawaran ukuran Standar terkecil). Jika Anda ingin menurunkan tingkat, buat instance Redis baru, lalu salin data atau struktur apa pun ke database baru sebelum menghapus versi yang lebih lama. Jika Anda perlu mengotomatiskan penskalaan, Anda dapat menggunakan PowerShell atau Azure CLI, atau dengan kode menggunakan Pustaka Manajemen Azure.

Meningkatkan skala ke fitur database dalam memori Redis Enterprise

Penerapan Azure's Redis bagus, tetapi ini bukan keseluruhan cerita. Ini didasarkan pada Redis open source, jadi tidak memiliki semua fitur dari Redis Enterprise komersial. Itulah mengapa Microsoft dan Redis berkolaborasi untuk menghadirkan dua tingkatan tambahan, yang dikelola oleh Microsoft dan didukung oleh kedua perusahaan, dengan integrasi penuh di Portal Azure. Perusahaan, tingkat dasar, menggunakan penyimpanan Azure standar, sedangkan tingkat SSD Perusahaan menambahkan dukungan untuk penyimpanan flash untuk akses lebih cepat ke data yang tidak tersedia dalam memori.

Saat ini dalam pratinjau pribadi, layanan baru menambahkan dukungan untuk modul kunci Redis Enterprise, memungkinkan Anda menggunakan layanan ini lebih dari sekedar data cache. Itu perbedaan penting, karena basis data dalam memori yang cepat adalah bagian penting dari sistem berskala besar yang digerakkan oleh peristiwa, terutama yang bergantung pada data deret waktu. Fitur lain yang didukung termasuk RedisBloom, yang menambahkan pemfilteran data probabilistik, dan RediSearch, yang meningkatkan pengindeksan dan memungkinkan Anda menggunakan pencarian teks lengkap pada data Anda.

Fitur tambahan akan ditambahkan saat layanan berpindah dari pratinjau pribadi ke ketersediaan umum (saat ini dijadwalkan untuk akhir 2020). Ini akan memungkinkan Anda untuk menggunakan replikasi aktif-aktif antara kawasan geografis dan penerapan hibrid yang berfungsi antara instans Redis pribadi dan yang dihosting Azure. Tidak perlu memiliki koneksi khusus antara lokal dan Azure Redis; replikasi aktif-aktif akan berfungsi melalui VPN.

Penerapan Redis Enterprise baru terlihat seperti Azure Cache untuk Redis yang ada di dalam portal, dan Anda akan dapat meningkatkan skala dari instans yang ada atau memulai dari awal. Jika Anda mencari kinerja yang lebih baik, penskalaan adalah opsi, tetapi Anda mungkin ingin membuat instance baru jika Anda menggunakan salah satu fitur database baru. Anda dapat mengaktifkannya sebagai bagian dari proses pembuatan, dari portal atau melalui templat Azure Resource Manager. Meskipun sebagian besar pengelolaan dan pemantauan Anda akan berasal dari dalam Azure Portal, Anda memiliki opsi untuk menggunakan alat manajemen Redis sendiri untuk membantu menyesuaikan dan mengoptimalkan data Anda.

Kombinasi implementasi Redis Azure dan Redis Enterprise dari RedisLabs adalah kombinasi menarik yang menunjukkan bagaimana vendor dengan penawaran premium yang dibangun di atas fondasi sumber terbuka dapat hidup berdampingan dengan cloud hyperscale. Azure mampu menawarkan layanan berdasarkan platform sumber terbuka, sementara implementasi yang lebih kompleks dapat menggunakan alat RedisLabs. Rute ini memberi perusahaan akses ke aliran pendapatan baru tanpa harus mengubah model lisensinya menjadi model yang menutup penyedia cloud.

Dengan jalur sederhana dari layanan cache berbasis Redis Azure ke Redis Enterprise, dan tanpa perubahan dalam alat manajemen atau hubungan penagihan, ini juga transparan bagi pengguna akhir. Mereka mendapatkan akses ke tingkatan dan fitur baru tanpa harus mengubah cara kerjanya.