Стратегії розгортання: версії, псевдоніми та поетапне переключення трафіку
Безсерверні застосунки з AWS Lambda
Claudio Canales
Senior DevOps Engineer
Чому стратегія розгортання важлива
Швидко виявляйте баги.
Обмежуйте зону впливу.
Швидко відновлюйтеся.
$LATEST vs опубліковані версії
$LATEST
Зміщується щоразу, коли ви оновлюєте код.
Версії
Незмінні знімки.
Зручно фіксувати для відкатів і розподілу трафіку.
Версія — це незмінний знімок
Сприймайте версії як релізні артефакти.
Кожна містить код і конфігурацію.
Після публікації не змінюється.
Завжди можна повернутися до відомо стабільного стану.
Псевдоніми — стабільні вказівники
Стабільний вказівник.
Викликайте псевдонім замість версії.
Оновлюйте ціль без змін у викликах.
Псевдоніми для dev і prod
Ідеально для середовищ.
Часто переміщуйте
dev
.
Підвищуйте до
prod
, просто змістивши псевдонім.
Переключення трафіку за ваговими псевдонімами
Безпечно тестуйте в проді.
Більшість трафіку лишається на поточній версії.
Малий відсоток іде на кандидатну.
Крок канарейки 1: 90/10
90% лишається на поточній версії.
10% тестує кандидата під реальною нагрузкою.
Стежте за помилками та затримками.
Крок канарейки 2: 50/50
Якщо 10% виглядає добре, збільшуйте вагу.
50% поточна, 50% кандидат.
На 50/50 проблеми проявляються швидко.
Моніторинг критично важливий.
Крок канарейки 3: 100% нова
Скеруйте весь трафік на нову версію.
Стара версія лишається доступною.
Відкат простий.
Ментальна модель blue/green
Blue = поточна стабільна версія.
Green = нова кандидатна версія.
Перемикайте, зміщуючи псевдонім.
Вагова маршрутизація робить перехід поступовим.
Відкат = повернути псевдонім назад
Перерозгортання не потрібне.
Перемістіть псевдонім на останню стабільну версію.
Відновлення за секунди, не години.
Незмінні версії та стабільні псевдоніми працюють разом.
Моніторинг під час переключення
Помилки та тайм-аути.
Тривалість і хвостова латентність.
Тротлінг, якщо є ліміти.
Швидко ставте на паузу або відкатуйте.
Поширена помилка: вважати $LATEST продом
Покладання на $LATEST знижує передбачуваність.
Версії та псевдоніми показують, що саме працює.
Відкати безпечні.
Ігноруйте
Чекліст безпечного розгортання
Опублікуйте версію.
Поступово зміщуйте трафік псевдонімом.
Моніторте результати.
Тримайте відкат напоготові на кожному кроці.
Основні висновки
Версії дають передбачуваність.
Псевдоніми дають стабільність.
Вагова маршрутизація додає безпеки.
Відкат = перемістити псевдонім.
Давайте потренуємось!
Безсерверні застосунки з AWS Lambda
Preparing Video For Download...