Memastikan konsistensi data dalam s3 dengan beberapa pengguna menulis / membaca

0

Saya butuh saran / ide tentang bagaimana saya bisa memastikan konsistensi data dalam bucket s3 saya. Saya memiliki 2-3 pengguna mendorong dan membaca sumber daya dari s3. Karena orang dapat dengan mudah melihat hal ini mengarah pada inkonsistensi data (Pengguna A mengunduh sumber daya itu dari S3 sementara Pengguna B masih menulisnya).

Kami sedang menyinkronkan kode saltstack dari s3. Kami memiliki satu pengaturan bucket per lingkungan (prod, staging) dan menggunakan peran AWS IAM untuk mengontrol akses. Masalah terjadi ketika saya mencoba mengambil data dari s3 dan pengembang lain mendorong kode ke bucket itu, kami berakhir dengan sumber daya yang diunduh dalam keadaan tidak konsisten.

Saya akan sangat menghargai jika kalian bisa berbagi pemikiran, ide, pengalaman dalam menghadapi masalah seperti itu.

Terima kasih

APZ
sumber
Mengapa tidak menggunakan kontrol versi saja?
Drew Khoury

Jawaban:

1

Itu sebabnya Anda memiliki lingkungan produksi dan pementasan. Lingkungan pementasan seharusnya "Gratis untuk semua" dan kemudian lingkungan produksi Anda untuk ketika kode Anda semua bagus dan keren.

Jika Anda ingin memperbolehkan lebih banyak rincian, Anda harus mempertimbangkan kontrol kode sumber untuk kode SaltStack Anda / yaml. (git, lincah, dll.) Setiap pengguna dapat memiliki cabang sendiri dan kemudian ketika push datang untuk mendorong, Anda harus menggabungkan semuanya menjadi cabang 'pementasan' dan kemudian pada akhirnya menyebar ke 'produksi'

Perilaku yang Anda lihat dengan S3 adalah perilaku default untuk "konsistensi akhirnya" Pada dasarnya, Anda akan mendapatkan salinan file yang terakhir diperbarui dan tidak akan mendapatkan apa pun yang baru sampai 'pengguna lain' akhirnya mendorong perubahannya.

Ini adalah apa yang dikatakan dokumen di situs AWS tentang konsistensi data S3:

T: Apa model konsistensi data yang digunakan Amazon S3? Bucket Amazon S3 di wilayah AS Barat (Oregon), AS Barat (California Utara), UE (Irlandia), Asia Pasifik (Singapura), Asia Pasifik (Tokyo), Asia Pasifik (Sydney), dan Amerika Selatan (Sao Paulo) menyediakan baca -setelah-menulis konsistensi untuk PUT objek baru dan akhirnya konsistensi untuk Timpa PUT dan DELET. Bucket Amazon S3 di Wilayah Standar AS akhirnya memberikan konsistensi.

Dan Anda dapat membaca tentang 'konsistensi akhirnya' di sini:

http://en.wikipedia.org/wiki/Eventual_consistency

Rico
sumber