Сохраняйте бизнес — всегда!
Традиционно разработчики использовали для публикации новых выпусков в производственных средах, обновляя функциональный код Lambda для версии $ или даже указывая псевдоним на новую версию функции. К счастью, AWS представила AWS Lambda -переключение трафика и поэтапные развертывания с AWS Codedeploy. Это определенно изменило правила игры, и многие инженеры Devops начали принимать эту стратегию для их повседневного развертывания. Тем не менее, это было не так для тех, кто использовал без серверов фреймворк, так как не поддерживал этот тип процесса развертывания, пока не вступит в силу внедрение без сервера Кенэри Lambda функция в сочетании с AWS Codedeploy.
К счастью, мы рассмотрим, как полностью преобразовать новый подход к выпуску заявления для таких случаев и гарантируем почти нулевую стратегию автоматического развертывания с помощью нескольких услуг AWS, некоторые из которых мы обсудим позже в этом блоге.
Развертывание без сервера правильно:
Архитектура была полностью построена с использованием Framework без сервера, которая представляет собой программное обеспечение с открытым исходным кодом, которое создает, компилируется и пакетов для развертывания без сервера, а затем развертывает пакет в облаке. Более того, без сервера Framework также использовалась для создания серверов AWS, таких как AWS Lambda, AWS Cognito, AWS API Gateway, AWS DynamoDB и многие другие. В этом блоге я представлю полностью автоматизированный конвейер CI/CD, используя AWS CodePipeline для новой стратегии развертывания, зная множество функций, которые эта служба поддерживает в сочетании с AWS Codebuild и AWS CodeDeploy. Это решение зависит от стратегии развертывания Канарского развертывания, которая отвечает за перевод определенного количества трафика на новую версию лямбда в течение определенного периода времени, пока весь трафик полностью не перенесен на новую версию.
Как именно это работает в полностью автоматизированном трубопроводе CI/CD?
Разработчики по -прежнему будут толкать новый код в свой репозиторий GitHub, как обычно, но на этот раз CodePipeline запустит исходную стадию с трубопроводом, чтобы вытащить последние изменения кода в филиале GitHub, с другой стороны, начнет стадию строительства, установив все Без сервера плагины и библиотеки и выполняют команду «SLS Deploy». На этом этапе AWS CodeDeploy начнет развертывание последнего кода в новую версию Lambda и использует «Live» взвешенного псевдонима, созданного на предыдущем этапе сборки для распространения трафика между последней версией и в настоящее время постепенно. Теперь вот где вступает плагин развертывания Канарского развертывания, раздавая трафик между версиями Lambda и используйте тип предпочтения развертывания Linear10percevery1minute для постепенного смены трафика в течение 1-минутного интервала. Кроме того, CodedePloy также был настроен для мониторинга состояния развертывания функции Lambda через Amazon CloudWatch, чтобы он мог вернуться к предыдущей запущенной версии, если метрика «Ошибка» запускает метрическую сигнализацию CloudWatch, что указывает на то, что функция не удалась из -за времени, из -за времени, время, а также временные результаты, Outs, Out, Out, Out, Out, Out, Out, Out, Out, Out, Out, Out, Out, Out, Out, Out, Out, Out, Out, Out, Out, Out, Out, Outs, Проблемы памяти или невозможные исключения.
В этом блоге я хотел объяснить этот подход и преимущества, которые он приносит для организаций, но я также сделаю все возможное, чтобы создать еще один блог, показывающий пошаговое руководство по поводу того, как развернуть вашу инфраструктуру без серверов с использованием стратегии развертывания Канарского развертывания.
Оригинал: «https://dev.to/aws-builders/serverless-the-deployment-era-5dd2»