Я использую несколько AWS API Gateway для многих наших внутренних сервисов.
Это стандартная структура шлюза (по отношению к моему вопросу);
- API-шлюз
- 2 этапа (тест и продукт)
- AWS CLI Tool для автоматизированных изменений и развертываний
Проблема, с которой я столкнулся (с тех пор как я начал использовать AWS API Gateway);
Шлюз управляет версионированиемОднако API прекрасно работает, а не управление версиями моделей ...
В течение квартала (мы работаем в спринтах на 3 месяца) мы вносим изменения в несколько моделей.Эта стадия будет развернута и протестирована, и все будет работать так, как ожидалось.
Проблема возникает, когда нам нужно сделать исправление в течение квартала.
Исправление будет содержать лишь небольшую часть разработки, которую мы хотели бы выпустить в производственную среду, однако шлюз содержит только одну версию модели.Это означает, что если я внес изменения в 10 моделей в течение нашего квартала, а затем мне нужно выпустить исправление, которое затрагивает только 1 модель, у нас проблемы.
Как правило, мне нужно откатить все изменения модели, чтобы они соответствовали первоначальному выпуску продукта, добавить 1 новое изменение модели и выпустить ее в живую - затем вернитесь и снова добавьте все модели, которые мне пришлосьудалить (синхронизировать тестирование и выполнить резервное копирование).
Я могу обойти это (грязный взлом), создав несколько шлюзов (называемых Gateway-test и Gateway-live ).Каждый из них будет дублировать друг друга с 1 этапом, но иметь свои собственные модели.Таким образом, когда производство нуждается в изменениях для исправления, я просто добавлю то, что нужно, и разверну его.В конце квартала я синхронизировал их и развернул вживую.
Я уверен, что вы можете видеть, как это может стать проблемой - так как теперь, вместо управления версиями моделей, мне приходится управлять двумя совершенно отдельными шлюзами.
Я говорил с поддержкой AWS и нашим архитектором AWS (поддержка бизнеса), однако, похоже, что это случай "его, возможно, добавили в план".
Есть кто-нибудь ещеудалось обойти эту проблему?
Заранее спасибо.