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