У меня есть решение Python, развернутое на AWS, мой нынешний подход к развертыванию кажется очень архаичным. Я выполняю следующие действия каждый раз, когда обновляю службу:
Множественные версии сервера никогда не существуют, если есть изменение, не имеющее обратной совместимости, на клиентах используется механизм принудительного обновления.
Как я могу улучшить этот процесс, используя новейшие технологии?
Попробуйте использовать инструмент оркестровки, например Ansible. Начните с бесплатной версии с открытым исходным кодом. Вы также можете попробовать SaltStack, Chef или Puppet but Ansible, на мой взгляд, самые простые из них и не требуют серверного компонента. И поскольку он основан на питоне, он должен быть вам на пути.
А для критически важного развертывания я бы предложил цвет морской волны стратегия.
Другое решение: AWS Elastic Beanstalk.
AWS Elastic Beanstalk поддерживает множество платформ, включая Python. В настоящее время для Python они поддерживают:
Если вышеуказанная среда вам не подходит, вы также можете настроить свою среду через Docker. Увидеть всю окружающую среду в Вот.
AWS Elastic Beanstalk обрабатывает множество вещей:
Вы также можете расширить свою среду, используя .ebextensions
сценарий. Например, вы хотите настроить SSL или добавить дополнительный том EBS.
Он также поддерживает стратегию развертывания Blue-Green путем замена CNAME.