Django 1.6 最佳实践: django项目的服务器自动化部署(转)
原文:http://www.weiguda.com/blog/41/
当我们设置服务器时, 不应该每次都使用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设置 |
Fabric和Invoke则是专注于远程运行命令, 常可以和以上四个工具配合使用.
现在的趋势是更多的使用SaltStack或Ansible, 因为使用Python写成的, 所以更利于Python用户深入了解. 但需要注意的是, 这些趋势会变化, 如果想了解最新的趋势, 需要我们多关注相关的博客.
Django 1.6 最佳实践: django项目的服务器自动化部署(转)的更多相关文章
- Django 1.6 最佳实践: 如何设置django项目的设置(settings.py)和部署文件(requirements.txt)
Django 1.6 最佳实践: 如何设置django项目的设置(settings.py)和部署文件(requirements.txt) 作者: Desmond Chen,发布日期: 2014-05- ...
- Django 1.6 最佳实践: 如何正确使用 Signal(转)
原文:http://www.weiguda.com/blog/38/ 如何正确的使用signal: 简单回答是: 在其他方法无法使用的情况下, 才最后考虑使用signal. 因为新的django开发人 ...
- django 强制登录最佳实践
参考: https://python-programming.courses/recipes/django-require-authentication-pages/ 即通过中间件来做AOP拦截.不用 ...
- 【Python】Django 时间字段 最佳实践
. python datetime from datetime import datetime datetime.now() datetime.utcnow() from datetime impor ...
- nodejs 实践:express 最佳实践 (一) 项目结构
express 最佳实践 (一) 第二篇: express 最佳实践(二):中间件 最近,一直在使用 nodejs 做项目,对 nodejs 开发可以说深有体会. 先说说 nodejs 在业务中的脚色 ...
- 项目测试环境自动化部署[jenkins前后端配置、Nginx配置]
持续部署:关注点在于项目功能部署到服务器后可以正常运行,为下一步测试环节或最终用户正式使用做准备.(问题点:一个环节有问题,其他环节跟着有问题) 持续集成:关注点是在于尽早发现项目整体运行问题,尽早解 ...
- Django 1.6 最佳实践: 如何设置和使用 Log(转)
原文: http://www.weiguda.com/blog/37/ 任何参与过高要求的大型项目的编程人员都明白设置适当的log等级, 创建不同的logger, 记录重要事件的重要性. 正确的设置和 ...
- Django REST Framework 最佳实践
Django REST framework 是一个强大且灵活的工具包,用以构建Web APIs. 为什么要使用REST framework? - 在线可视的API,对于赢得你的开发者们十分有用 - 验 ...
- 掌握OpenStack部署的最佳实践 打破部署失败的魔咒
部署OpenStack环境并不是一项简单的任务:根据SUSE最近的调查显示“曾经部署过OpenStack的企业当中有一半都失败了”.然而,随着最佳实践的出现,企业可以使用其避免在部署OpenStack ...
随机推荐
- 第四讲 :hibernate中的session
hibernate中的session中可以进行增删改差,通过工具类可以得到相关的工具类. 方法概要: Transaction beginTransaction()开始一个工作单元,得到关联的事务对象 ...
- 使用jQuery插件PrintArea进行html页面打印
在开发系统时,我们一般会有统计分析的功能需求,而现在大多数系统都是使用B/S的形式开发. 所以,html报表打印,并且打印指定内容,成了必要的功能. 开源地址:https://github.com/R ...
- System.Linq.Dynamic
http://dynamiclinq.codeplex.com/ 10万回 用动态表达式 0.19s ,普通Lamba 0.02s,效率还可以 /* User: Peter Date: 2016/4/ ...
- USACO全部测试数据
链接:http://share.weiyun.com/8c37d26066ee9e63147d2af983f24290 密码:YyGL 请使用2345好压解压.
- js,正则应用
//获取URL中的request参数 function getUrlParam(name) { var reg = new RegExp("(^|&)" + name + ...
- IOS中导航控制器的代理及隐藏控制器刚出现时的滚动条
一.导航控制器的代理 1.UINavigationController的delegate属性 2.代理方法 1> 即将显示新控制器时调用 /* navigationController : 导航 ...
- centos6 下安装xfce+vnc
CentOS 安装图形界面的过程,简单记录一下.这里提供了两种图形界面的安装,分别是CentOS自带的gnome桌面及轻巧的xfce.据测试,我的精简版CentOS 6 64位系统安装gnome需要下 ...
- ORACLE 中KILL session
我们知道,在Oracle数据库中,可以通过kill session的方式来终止一个进程,其基本语法结构为: alter system kill session 'sid,serial#' ; 被kil ...
- AsyncTask类
1.定义 异步任务类,在类中实现异步操作,并提供回调方法反馈当前异步执行的程度,最后反馈 的结果提供给UI主线程. <1>Android线程 ...
- js仿手机端九宫格登录功能
js仿手机端九宫格登录功能 最近闲来无事把以前无聊时开发的小东西拿出来和大家分享下,写的不好的请指出,我会及时修改.谢谢. 功能及方法逻辑都注释在代码中.所以麻烦大家直接看代码. 效果如下: 话不多说 ...