Django 1.6 最佳实践: django项目的服务器自动化部署(转)
2014-12-23 23:21
525 查看
原文:http://www.weiguda.com/blog/41/
当我们设置服务器时, 不应该每次都使用ssh登录服务器, 再按照记忆一步一步的配置. 因为这样实在是太容易忘记某些步骤了.
服务器设置应当自动化, 并写成文档. 在django用户中, Ansible, SaltStack, Puppet和Chef是最流行的四款自动化部署工具. 这些工具似乎都需要长时间学习才能使用, 因为这些工具不是为一台服务器设置的, 而是针对多台服务器的. 以下是这些工具的基本功能:
远程通过apt-get或其他包管理系统安装软件包
远程运行命令
远程启动, 重启各项服务
记录远程运行的命令和其结果
创建或更新服务配置文件
为不同服务器载入不同的配置文件
部署和更新项目代码
比较表:
Fabric和Invoke则是专注于远程运行命令, 常可以和以上四个工具配合使用.
现在的趋势是更多的使用SaltStack或Ansible, 因为使用Python写成的, 所以更利于Python用户深入了解. 但需要注意的是, 这些趋势会变化, 如果想了解最新的趋势, 需要我们多关注相关的博客.
当我们设置服务器时, 不应该每次都使用ssh登录服务器, 再按照记忆一步一步的配置. 因为这样实在是太容易忘记某些步骤了.
服务器设置应当自动化, 并写成文档. 在django用户中, Ansible, SaltStack, Puppet和Chef是最流行的四款自动化部署工具. 这些工具似乎都需要长时间学习才能使用, 因为这些工具不是为一台服务器设置的, 而是针对多台服务器的. 以下是这些工具的基本功能:
远程通过apt-get或其他包管理系统安装软件包
远程运行命令
远程启动, 重启各项服务
记录远程运行的命令和其结果
创建或更新服务配置文件
为不同服务器载入不同的配置文件
部署和更新项目代码
比较表:
工具 | 优势 | 劣势 |
---|---|---|
SaltStack | 主要用push模式; 使用0mq传输快; 许多例子; 庞大的社区支持; 开源; 由Python写成 | 较复杂 |
Ansible | 主要用push模式; 可使用Fireball模式加速传输; 不需要远程进程运行; 使用YAML语言设置; 开源; 由Python写成 | 新项目, 例子较少, 没有官方WSGI和Django配置例子 |
Chef | 有许多例子; 庞大的社区支持; 开源 | 难学; 由ruby写成, 配置也是ruby语言; |
Puppet | 庞大的社区支持; 开源 | 较难学; 由ruby写成; 配置文件由自定义DSL设置 |
现在的趋势是更多的使用SaltStack或Ansible, 因为使用Python写成的, 所以更利于Python用户深入了解. 但需要注意的是, 这些趋势会变化, 如果想了解最新的趋势, 需要我们多关注相关的博客.
相关文章推荐
- Django 1.6 最佳实践: 如何设置django项目的设置(settings.py)和部署文件(requirements.txt)
- Django 1.6 最佳实践: 如何设置django项目的设置(settings.py)和部署文件(requirements.txt)
- Python项目自动化部署最佳实践@搜狐 | the5fire的技术博客
- Django 1.6 最佳实践: Django项目的布局结构和目录结构
- Django最佳实践:项目布局
- django项目目录结构最佳实践
- Django 1.6 最佳实践: 如何设置和使用 Log(转)
- Linux下将Python的Django项目部署到Apache服务器
- 向云服务器部署django项目
- django最佳实践:项目布局
- Django 1.6 最佳实践: 如何正确进行 Unit Tests
- Django 1.6 最佳实践: 最佳Django开发环境设置
- Linux下将Python的Django项目部署到Apache服务器
- ubuntu配置jdk和tomcat+部署java项目[最佳实践]
- django1.6 apache 项目部署.
- django最佳实践:项目布局
- 使用WSGI在Apache服务器中部署Django项目实例
- django最佳实践:项目布局
- (桌面虚拟化最佳实践--呼叫中心系统优化之二)存储和服务器优化项目
- Maven插件wagon-maven-plugin自动化部署Java项目到Linux远程服务器