Лучший подход к развертыванию решения для Python AWS

У меня есть решение Python, которое развертывается на AWS, мой текущий подход развертывания чувствует себя очень архаичным. Я выполняю эти шаги каждый раз, когда я обновляю сервис:

  1. смолите файлы Python, которые изменились
  2. scp tar в/tmp каталог на экземпляре
  3. запущенный sudo Python setup.py устанавливает на setup.py новых файлов
  4. перезапуск supervisord

Несколько версий сервера никогда не существуют, если существует необратно совместимое изменение на клиентах существует механизм обновления силы.

Как я мог улучшить этот процесс с помощью новейших технологий?

1
задан 31 July 2015 в 20:26
2 ответа

Попробуйте использовать инструмент оркестровки, например Ansible . Начните с бесплатной версии с открытым исходным кодом. Вы также можете попробовать SaltStack , Chef или Puppet, но, на мой взгляд, Ansible является самым простым из них и не требует серверного компонента. И так как он основан на питоне, он должен быть вам подойдет.

А для критически важного развертывания я бы предложил сине-зеленую стратегию.

3
ответ дан 3 December 2019 в 17:05

Другое решение: AWS Elastic Beanstalk .

AWS Elastic Beanstalk поддерживает множество платформ, включая Python. В настоящее время для Python они поддерживают:

  • 64-битный Amazon Linux 2015.03 v1.4.3 с Python 3.4
  • 64-битный Amazon Linux 2015.03 v1.4.3 с Python 2.7
  • 64-битный Amazon Linux 2015.03 v1.4.3 с Python 2.6
  • 64-разрядная версия Debian jessie v1.4.3 под управлением Python 3.4 (Preconfigured - Docker)

Если вышеуказанная среда вам не подходит, вы также можете настроить свою собственную среду через Docker. См. Полную информацию о среде в здесь .

AWS Elastic Beanstalk обрабатывает множество вещей:

  • Auto Scaling Group
  • Load Balancer
  • Управление версиями приложений
  • Уведомление
  • Пользовательские ресурсы ( например: RDS, ElastiCache и т. д.)

Вы также можете расширить свою среду, используя скрипт .ebextensions . Например, вы хотите настроить SSL или добавить дополнительный том EBS.

Он также поддерживает стратегию развертывания Blue-Green путем замены CNAME .

2
ответ дан 3 December 2019 в 17:05

Теги

Похожие вопросы