Manajemen data terdistribusi - Menerapkan Layanan Mikro pada AWS

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Manajemen data terdistribusi

Dalam aplikasi tradisional, semua komponen sering berbagi satu database. Sebaliknya, setiap komponen aplikasi berbasis layanan mikro mempertahankan datanya sendiri, mempromosikan independensi dan desentralisasi. Pendekatan ini, yang dikenal sebagai manajemen data terdistribusi, membawa tantangan baru.

Salah satu tantangan tersebut muncul dari trade-off antara konsistensi dan kinerja dalam sistem terdistribusi. Seringkali lebih praktis untuk menerima sedikit keterlambatan dalam pembaruan data (konsistensi akhirnya) daripada bersikeras pada pembaruan instan (konsistensi langsung).

Terkadang, operasi bisnis membutuhkan beberapa layanan mikro untuk bekerja sama. Jika satu bagian gagal, Anda mungkin harus membatalkan beberapa tugas yang sudah selesai. Pola Saga membantu mengelola ini dengan mengoordinasikan serangkaian tindakan kompensasi.

Untuk membantu layanan mikro tetap sinkron, penyimpanan data terpusat dapat digunakan. Toko ini, dikelola dengan alat seperti AWS Lambda, AWS Step Functions, dan Amazon EventBridge, dapat membantu membersihkan dan menghapus duplikasi data.

Koordinator eksekusi Saga

Gambar 6: Koordinator Eksekusi Saga

Pendekatan umum dalam mengelola perubahan di seluruh layanan mikro adalah sumber acara. Setiap perubahan dalam aplikasi dicatat sebagai peristiwa, menciptakan garis waktu status sistem. Pendekatan ini tidak hanya membantu debug dan audit tetapi juga memungkinkan bagian yang berbeda dari aplikasi untuk bereaksi terhadap peristiwa yang sama.

Event sourcing sering bekerja hand-in-hand dengan pola Command Query Responsibility Segregation (CQRS), yang memisahkan modifikasi data dan kueri data ke dalam modul yang berbeda untuk kinerja dan keamanan yang lebih baik.

Pada AWS, Anda dapat menerapkan pola-pola ini menggunakan kombinasi layanan. Seperti yang dapat Anda lihat pada Gambar 7, Amazon Kinesis Data Streams dapat berfungsi sebagai toko acara pusat Anda, sementara Amazon S3 menyediakan penyimpanan yang tahan lama untuk semua catatan acara. AWS Lambda, Amazon DynamoDB, dan API Amazon Gateway bekerja sama untuk menangani dan memproses peristiwa ini.

Diagram yang menunjukkan pola sumber acara pada AWS

Gambar 7: Pola sumber acara pada AWS

Ingat, dalam sistem terdistribusi, acara mungkin dikirimkan beberapa kali karena percobaan ulang, jadi penting untuk merancang aplikasi Anda untuk menangani ini.