Назад | Перейти на главную страницу

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

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

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

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

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

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

А для критически важного развертывания я бы предложил цвет морской волны стратегия.

Другое решение: 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 (предварительно настроенный - Docker)

Если вышеуказанная среда вам не подходит, вы также можете настроить свою среду через Docker. Увидеть всю окружающую среду в Вот.

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

  • Группа автоматического масштабирования
  • Балансировщик нагрузки
  • Управление версиями приложений
  • Уведомление
  • Пользовательские ресурсы (например, RDS, ElastiCache и т. Д.)

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

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