将AWS解决scheme部署到AWS的最佳方法

我有一个部署到AWS的Python解决scheme,我目前的部署方法感觉非常陈旧。 我每次更新服务时都遵循以下步骤:

  1. tar已经改变的python文件
  2. 将tar放入实例的/ tmp目录中
  3. 运行sudo python setup.py安装在新文件的setup.py上
  4. 重新启动supervisord

服务器的多个版本不存在,如果有一个非向后兼容的更改,客户端上有一个强制更新机制。

我怎样才能使用最新的技术来改善这个过程呢?

尝试使用Ansible等编排工具。 从免费的开源版本开始。 你也可以试试SaltStack ,Chef或Puppet,但Ansible在我看来是最简单的,它不需要服务器组件。 而且因为它基于Python,它应该是你的胡同。

而对于关键任务部署,我会build议蓝绿策略。

另一个解决scheme可能是: AWS Elastic Beanstalk 。

AWS Elastic Beanstalk支持许多平台,包括Python。 目前,对于Python,他们支持:

  • 运行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位Amazon Linux 2015.03 v1.4.3
  • 64位Debian jessie v1.4.3运行Python 3.4(预configuration – Docker)

如果上述环境不适合你,你也可以通过Dockerconfiguration你自己的环境。 在这里看到充分的环境。

AWS Elastic Beanstalk处理许多事情:

  • Auto Scaling Group
  • 负载平衡器
  • 应用程序版本控制
  • 通知
  • 自定义资源(例如:RDS,ElastiCache等)

您也可以使用.ebextensions脚本来扩展您的环境。 例如,您需要configurationSSL或添加额外的EBS卷。

它还通过交换CNAME来支持蓝绿部署策略。