atabase-per-service Pola D - AWS Bimbingan Preskriptif

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

atabase-per-service Pola D

Kopling longgar adalah karakteristik inti dari arsitektur layanan mikro, karena setiap layanan mikro individu dapat secara mandiri menyimpan dan mengambil informasi dari penyimpanan datanya sendiri. Dengan menerapkan database-per-service pola, Anda memilih penyimpanan data yang paling tepat (misalnya, database relasional atau non-relasional) untuk aplikasi dan kebutuhan bisnis Anda. Ini berarti bahwa layanan mikro tidak berbagi lapisan data, perubahan pada database individual layanan mikro tidak berdampak pada layanan mikro lainnya, penyimpanan data individu tidak dapat langsung diakses oleh layanan mikro lainnya, dan data persisten hanya diakses oleh API. Memisahkan penyimpanan data juga meningkatkan ketahanan aplikasi Anda secara keseluruhan, dan memastikan bahwa satu database tidak dapat menjadi satu titik kegagalan.

Dalam ilustrasi berikut, AWS database yang berbeda digunakan oleh layanan mikro “Penjualan,” “Pelanggan,” dan “Kepatuhan”. Layanan mikro ini digunakan sebagai AWS Lambda fungsi dan diakses melalui API Amazon API Gateway. AWS Identity and Access Management Kebijakan (IAM) memastikan bahwa data tetap pribadi dan tidak dibagikan di antara layanan mikro. Setiap layanan mikro menggunakan tipe database yang memenuhi persyaratan masing-masing; misalnya, “Penjualan” menggunakan Amazon Aurora, “Pelanggan” menggunakan Amazon DynamoDB, dan “Kepatuhan” menggunakan Amazon Relational Database Service (Amazon RDS) untuk SQL Server.

Diagram atabase-per-service pola D

Anda harus mempertimbangkan untuk menggunakan pola ini jika:

  • Kopling longgar diperlukan antara layanan mikro Anda.

  • Layanan mikro memiliki kepatuhan atau persyaratan keamanan yang berbeda untuk database mereka.

  • Diperlukan kontrol penskalaan yang lebih granular.

Ada kelemahan berikut untuk menggunakan database-per-service pola:

  • Mungkin sulit untuk menerapkan transaksi dan kueri kompleks yang mencakup beberapa layanan mikro atau penyimpanan data.

  • Anda harus mengelola beberapa database relasional dan non-relasional.

  • Penyimpanan data Anda harus memenuhi dua persyaratan teorema CAP: konsistensi, ketersediaan, atau toleransi partisi.

catatan

Jika Anda menggunakan database-per-service pola, Anda harus menerapkan Pola komposisi API atau Pola CQRS untuk mengimplementasikan kueri yang mencakup beberapa layanan mikro.