Мне нужен совет / идеи о том, как я могу обеспечить согласованность данных в моем ведре s3. У меня 2-3 пользователя нажимают и читают ресурсы с s3. Как легко видеть, это приводит к несогласованности данных (пользователь A загружает этот ресурс из S3, в то время как пользователь B все еще пишет на него).
Мы синхронизируем код соли из s3. У нас есть одна настройка корзины для каждой среды (производственная, промежуточная), и мы используем роли AWS IAM для управления доступом. Проблема возникает, когда я пытаюсь получить данные из s3, а другой разработчик помещает код в это ведро, в итоге загруженный ресурс находится в несогласованном состоянии.
Я был бы очень признателен, если бы вы, ребята, могли поделиться своими мыслями, идеями, опытом в решении таких проблем.
Спасибо
Вот почему у вас есть производственная и постановочная среда. Предполагается, что промежуточная среда должна быть «бесплатной для всех», а затем ваша производственная среда предназначена для тех случаев, когда ваш код будет красивым и стильным.
Если вы хотите обеспечить большую детализацию, вам следует рассмотреть возможность управления исходным кодом для вашего кода SaltStack / yaml. (git, mercurial и т. д.) Каждый пользователь может иметь свою собственную ветку, а затем, когда дело доходит до толчка, вам нужно объединить все в «промежуточную» ветвь, а затем в конечном итоге развернуть в «производственную»
Поведение, которое вы наблюдаете с S3, является поведением по умолчанию для «возможной согласованности». По сути, вы получите копию последних обновленных файлов и не получите ничего нового, пока «другой пользователь», наконец, не внесет свои изменения.
Вот что говорится в документации на сайте AWS о согласованности данных S3:
Вопрос: Какая модель согласованности данных использует Amazon S3? Сегменты Amazon S3 в регионах Запад США (Орегон), Запад США (Северная Калифорния), ЕС (Ирландия), Азиатско-Тихоокеанский регион (Сингапур), Азиатско-Тихоокеанский регион (Токио), Азиатско-Тихоокеанский регион (Сидней) и Южная Америка (Сан-Паулу) обеспечивают чтение -последовательность после записи для PUTS новых объектов и возможная согласованность для перезаписи PUTS и DELETES. Корзины Amazon S3 в стандартном регионе США обеспечивают конечную согласованность.
И вы можете прочитать о «возможной согласованности» здесь: