Penyimpanan minimal – mengubah umpan untuk replikasi data

Azure Front Door
Azure App Service
Azure Functions
Azure Cosmos DB
Azure Table Storage

Artikel ini menyajikan solusi ketersediaan tinggi untuk aplikasi web yang berurusan dengan data dalam volume besar yang perlu diakses dalam jangka waktu tertentu. Solusinya melibatkan penggunaan Azure Cosmos DB sebagai penyimpanan data utama dan menggunakan umpan perubahan Azure Cosmos DB untuk mereplikasi data ke penyimpanan sekunder dengan biaya rendah. Ketika periode waktu yang ditentukan kedaluwarsa, Azure Functions digunakan untuk menghapus data dari Azure Cosmos DB. Data dalam penyimpanan sekunder tetap tersedia untuk jangka waktu yang lebih lama untuk mengaktifkan solusi lain untuk tujuan audit dan analisis. Solusi ini juga memberikan durabilitas tinggi dengan mereplikasi data ke layanan data yang berbeda.

Sistem

Arsitektur sistem tangguh yang menggunakan dua jenis penyimpanan untuk mengurangi biaya.

Unduh file Visio arsitektur ini.

Aliran data

  1. Klien mengautentikasi dengan ID Microsoft Entra dan diberikan akses ke aplikasi web yang dihosting di Azure App Service.
  2. Azure Front Door, firewall dan load balancer lapisan-7, mengalihkan lalu lintas pengguna ke wilayah siaga jika ada pemadaman regional.
  3. App Service menghosting situs web dan API web RESTful. Klien browser menjalankan aplikasi Asinkron JavaScript dan XML (AJAX) yang menggunakan API.
  4. API Web mendelegasikan tanggung jawab untuk mengkodekan yang dihosting oleh Functions untuk menangani tugas latar belakang. Tugas diantrekan di antrean Antrean Penyimpanan Azure.
  5. Pesan yang diantrekan memicu fungsi, yang melakukan tugas latar belakang.
  6. Azure Cache for Redis menyimpan data database untuk fungsi tersebut. Dengan menggunakan cache, solusi membongkar aktivitas database dan mempercepat aplikasi fungsi dan aplikasi web.
  7. Azure Cosmos DB menyimpan data yang baru saja dibuat.
  8. Azure Cosmos DB mengeluarkan umpan perubahan yang dapat digunakan untuk mereplikasi perubahan.
  9. Aplikasi fungsi membaca umpan perubahan dan mereplikasi perubahan pada tabel Azure Table Storage. Aplikasi fungsi lain secara berkala menghapus data kedaluwarsa dari Azure Cosmos DB.
  10. Table Storage menyediakan penyimpanan berbiaya rendah.

Komponen

  • ID Microsoft Entra Azure adalah layanan manajemen identitas dan akses multi-penyewa yang dapat disinkronkan dengan direktori lokal.
  • Azure DNS adalah layanan hosting dengan ketersediaan tinggi untuk domain DNS yang menyediakan aplikasi dengan kueri DNS cepat dan pembaruan cepat pada rekaman DNS. Mengelola Azure DNS sama seperti mengelola layanan Azure lainnya. Pengelolaan ini juga menggunakan info masuk, API, alat, dan penagihan yang sama.
  • Azure Front Door adalah jaringan pengiriman konten (CDN) yang aman dan load balancer dengan failover instan. Jaringan ini beroperasi di tepi dekat pengguna, sehingga mempercepat pengiriman konten sekaligus melindungi aplikasi, API, dan situs dari ancaman cyber.
  • App Service adalah layanan terkelola penuh untuk membangun, menyebarkan, dan menskalakan aplikasi web. Anda dapat membuat aplikasi menggunakan .NET, .NET Core, Node.js, Java, Python, atau PHP. Aplikasi dapat berjalan dalam kontainer atau di Windows atau Linux. Dalam migrasi mainframe, layar front-end atau antarmuka web dapat dikodekan sebagai REST API berbasis HTTP. Keduanya dapat dipisahkan dan bisa bersifat tanpa status untuk mengatur sistem berbasis layanan mikro. Untuk informasi selengkapnya tentang API web, lihat Desain API web RESTful.
  • Functions menyediakan lingkungan untuk menjalankan potongan kecil kode, yang disebut fungsi, tanpa harus membuat infrastruktur aplikasi. Anda dapat menggunakannya untuk memproses data massal, mengintegrasikan sistem, bekerja dengan perangkat Internet of Things (IoT), dan membangun API dan layanan mikro sederhana. Dengan layanan mikro, Anda dapat membuat server yang terhubung ke layanan Azure dan selalu diperbarui.
  • Penyimpanan Azure adalah satu set layanan cloud yang aman dan dapat diskalakan secara besar-besaran untuk data, aplikasi, dan beban kerja. Ini termasuk Azure Files, Table Storage, dan Queue Storage. Azure Files sering kali menjadi alat yang efektif untuk memigrasikan beban kerja mainframe.
  • Queue Storage menyediakan antrean pesan yang sederhana, hemat biaya, dan tahan lama untuk beban kerja besar.
  • Table Storage adalah penyimpanan kunci-nilai NoSQL untuk pengembangan cepat yang menggunakan himpunan data semi-terstruktur besar-besaran. Tabel tidak memiliki skema dan mudah beradaptasi seiring berubahnya kebutuhan. Akses cepat dan hemat biaya untuk berbagai jenis aplikasi, dan biasanya lebih murah daripada jenis penyimpanan dengan kunci lainnya.
  • Azure Cache for Redis adalah layanan cache dalam memori dan broker pesan yang terkelola sepenuhnya untuk berbagi data dan status di antara sumber daya komputasi. Layanan ini mencakup Redis sumber terbuka dan produk komersial dari Redis Labs sebagai layanan terkelola. Anda dapat meningkatkan performa aplikasi pemrosesan transaksi online throughput tinggi dengan merancangnya untuk diskalakan dan untuk menggunakan penyimpanan data dalam memori seperti Azure Cache for Redis.
  • Azure Cosmos DB adalah database multi-model terdistribusi secara global dari Microsoft yang memungkinkan solusi Anda menskalakan throughput dan penyimpanan secara elastis dan independen di sejumlah wilayah geografis. Ini menawarkan throughput, latensi, ketersediaan, dan jaminan konsistensi dengan perjanjian tingkat layanan (SLA) yang komprehensif.

Alternatif

  • Azure Traffic Manager mengarahkan permintaan DNS yang masuk di seluruh wilayah Azure global berdasarkan pilihan metode perutean lalu lintas Anda. Layanan ini juga menyediakan failover otomatis dan perutean performa.
  • Azure Content Delivery Network menyimpan konten statis di server edge untuk respons cepat, dan menggunakan pengoptimalan jaringan untuk meningkatkan respons terhadap konten dinamis. Content Delivery Network sangat berguna saat basis pengguna bersifat global.
  • Azure Container Apps adalah layanan kontainer tanpa server yang dikelola sepenuhnya yang digunakan untuk membangun dan menyebarkan aplikasi modern dalam skala besar.
  • Azure Kubernetes Service (AKS) adalah layanan Kubernetes yang terkelola sepenuhnya untuk menyebarkan dan mengelola aplikasi dalam kontainer. Anda dapat menggunakannya untuk menerapkan arsitektur layanan mikro yang komponennya melakukan penskalaan secara independen sesuai permintaan.
  • Azure Container Instances menyediakan cara cepat dan sederhana untuk menjalankan tugas tanpa harus mengelola infrastruktur. Cara ini berguna selama pengembangan atau untuk menjalankan tugas yang tidak terjadwal.
  • Azure Service Bus adalah layanan olahpesan cloud yang andal untuk integrasi hibrid sederhana. Layanan ini dapat digunakan sebagai pengganti Antrian Penyimpanan dalam arsitektur ini. Untuk informasi selengkapnya, lihat Antrean Penyimpanan dan antrean Service Bus - persamaan dan perbedaan.

Detail skenario

Solusi ini menggunakan Azure Cosmos DB untuk menyimpan data dalam volume besar yang digunakan aplikasi web. Aplikasi web yang menangani sejumlah besar manfaat data dari kemampuan Azure Cosmos DB untuk menskalakan throughput dan penyimpanan secara elastis dan independen.

Komponen solusi utama lainnya adalah umpan perubahan Azure Cosmos DB. Saat perubahan dilakukan pada database, aliran umpan perubahan dikirim ke pemicu Functions berbasis peristiwa. Sebuah fungsi kemudian menjalankan dan mereplikasi perubahan pada tabel Table Storage, yang menyediakan solusi penyimpanan berkursi rendah.

Aplikasi web membutuhkan data hanya untuk waktu yang terbatas. Solusinya memanfaatkan fakta itu untuk lebih mengurangi biaya. Secara khusus, fungsi lain secara berkala menjalankan dan menghapus data kedaluwarsa dari Azure Cosmos DB. Selain dipicu, fungsi juga dapat dijadwalkan untuk berjalan pada waktu yang ditetapkan.

Kemungkinan kasus penggunaan

Arsitektur ini sesuai untuk aplikasi apa pun yang:

  • Menggunakan sejumlah besar data.
  • Mengharuskan data selalu tersedia saat diperlukan.
  • Menggunakan data yang kedaluwarsa.

Contohnya termasuk aplikasi yang:

  • Mempersonalisasi pengalaman pelanggan dan mendorong keterlibatan melalui umpan data langsung dan sensor di lokasi fisik.
  • Melacak kebiasaan belanja pelanggan dan perilaku belanja.
  • Lacak armada kendaraan dengan mengumpulkan data lokasi kendaraan, performa, dan perilaku pengemudi untuk meningkatkan efisiensi dan keamanan.
  • Meramal cuaca.
  • Menawarkan sistem lalu lintas pintar atau menerapkan sistem lalu lintas pintar atau menggunakan teknologi pintar untuk memantau lalu lintas.
  • Menganalisis data IoT manufaktur.
  • Menampilkan data meteran pintar atau menggunakan teknologi pintar untuk memantau data meter.

Pertimbangan

Pertimbangan ini mengimplementasikan pilar Azure Well-Architected Framework, yang merupakan serangkaian tenet panduan yang dapat digunakan untuk meningkatkan kualitas beban kerja. Untuk informasi selengkapnya, lihat Microsoft Azure Well-Architected Framework.

  • Ketika Anda menerapkan dan memelihara solusi ini, Anda dikenakan biaya tambahan.
  • Menggunakan umpan perubahan untuk replikasi memerlukan lebih sedikit pemeliharaan kode daripada melakukan replikasi di aplikasi inti.
  • Anda perlu memigrasikan data yang ada. Proses migrasi memerlukan skrip atau rutinitas ad-hoc untuk menyalin data lama ke akun penyimpanan. Saat Anda memigrasikan data, pastikan Anda menggunakan stempel waktu dan menyalin bendera untuk melacak kemajuan migrasi.
  • Untuk menghindari penghapusan entri dari penyimpanan sekunder Azure Table, abaikan umpan penghapusan yang dihasilkan saat fungsi Anda menghapus entri dari Azure Cosmos DB.

Kontributor

Artikel ini dikelola oleh Microsoft. Ini awalnya ditulis oleh kontributor berikut.

Penulis utama:

  • Nabil Siddiqui | Arsitek Solusi Cloud - Inovasi Digital dan Aplikasi

Langkah berikutnya