
Как мы перестали толкать и начали тянуть(AWS ECR)
stroitskiy 31 минуту назад Как мы перестали толкать и начали тянуть(AWS ECR) Средний 7 мин 980 DevOps * Amazon Web Services * Kubernetes * Ретроспектива Вместо вступленияХочу рассказать про несколько новых возможностей...
Anthropic — What company has the best second artificial intelligence model at the end of June?
Значимый прорыв формирует отрасль ИИ: stroitskiy 31 минуту назад Как мы перестали толкать и начали тянуть(AWS ECR) Средний 7 мин 980 DevOps * Amazon Web Services * Kubernetes * Ретроспектива Вместо вступленияХочу рассказать про несколько новых возможностей AWS Elastic Container Registry (ECR), о которых, как мне кажеться знают немного. Когда мы только начали использовать ECR, это был совсем простой сервис: настроил репозиторий, положил туда образ - и забыл. Но каждый раз, возвращаясь к документации по очередному поводу, я обнаруживал, что функциональности там стало заметно больше, чем в прошлый раз.
В какой-то момент этих «незамеченных» фич накопилось достаточно, чтобы пересобрать всю нашу схему хранения образов. ИнцидентНаши сервисы спокойно жили в 20 регионах AWS - ровно до очередного инцидента в us-east-1. Подробную хронологию(да это было аж в 2021 году, как летит время!
Технические детали
) можно почитать в официальном разборе AWS: Если коротко: из-за сетевых проблем в ключевом регионе посыпалось много чего. Нас это почти не задело(мы же распределенные! ) - кроме одного маленького нюанса: примерно на час ECR API перестал авторизовать запросы из всех регионов кроме us-east-1.
А наши образы в тот момент хранились только в us-east-1. Получилась обидная картина: вся инфраструктура в остальных регионах жива и работает, но скейлиться вверх мы не можем - новые контейнеры не запускаются, потому что им неоткуда скачать образ. В тот раз обошлось без последствий, но зависимость от одного региона нам резко разонравилась - даже с поправкой на то, что такой инцидент может больше и не повториться.
Полистав документацию, мы включили Cross-Region Replication во всех регионах. Да, надёжность выросла. Но вместе с ней мы получили три новые проблемы.
Отраслевые последствия
ГидраУ такого решения есть своя цена. В нашем случае она сложилась из трёх сложностей. СинхронизацияРепозиторий-реплика появляется в регионе только после первого успешного пуша (replication event).
То есть старые образы в новых регионах-репликах попросту недоступны, пока нет события типа push в главном репозитории. Звучит безобидно, но по факту:случайно удалили не тот образ - сам он не восстановится, и это простой в регионе(outage);завели новый регион - он стоит пустой, пока мы не сделаем пуш свежего (или старого) образа в вышестоящий регион, и если нужен ролбек- откатываться некуда, ведь старых версий не было, и это тоже простой в регионе(outage);Да, привыкнуть можно, но не хочется изобретать костыли, да ещё и всей команде надо напоминать, что вот так вот оно работает. ДеньгиРепликация в 20 регионов - это стоимость хранения, умноженная на 20.
А количество образов растёт практически экспоненциально. В качестве лекарства Amazon предлагает lifecycle (cleanup) policy, но правила там довольно грубые: можно «хранить последние N образов» или «удалять всё старше X дней / без тегов» - и почти ничего сверх этого.
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.





