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用户深入了解. 但需要注意的是, 这些趋势会变化, 如果想了解最新的趋势, 需要我们多关注相关的博客.

时间: 2024-11-24 18:43:08

Django 1.6 最佳实践: django项目的服务器自动化部署(转)的相关文章

Django 1.6 最佳实践: 如何设置django项目的设置(settings.py)和部署文件(requirements.txt)

Django 1.6 最佳实践: 如何设置django项目的设置(settings.py)和部署文件(requirements.txt) 作者: Desmond Chen,发布日期: 2014-05-17, 修改日期: 2014-05-18 在Django 1.6中的settings.py中可以修改130多项设置, 但大多数都继承自默认值. 设置是在web服务器启动时首次载入的, 服务器重启时重新载入, 因此, 程序员们应尽量避免修改正式服务器上使用的settings.py文件. 以下是一些我们

Django 1.6 最佳实践: 如何正确使用 Signal(转)

原文:http://www.weiguda.com/blog/38/ 如何正确的使用signal: 简单回答是: 在其他方法无法使用的情况下, 才最后考虑使用signal. 因为新的django开发人员得知signal之后, 往往会很高兴去使用它. 他们在能使用signal的地方就使用signal, 并且这是他们觉得自己是django专家一样. 然而, 像这样编码一段时间后, django项目就会变得异常复杂, 许多内容都纠结在一起无法解开. 许多开发者也会将django signal和异步消息

【Python】Django 时间字段 最佳实践

Model定义: class Test(models.Model): id = models.AutoField(primary_key=True) name = models.CharField(max_length=128, unique=True, db_index=True) #create_time = models.DateTimeField(auto_now_add=True, db_index=True) #update_time = models.DateTimeField(a

游戏运维的最佳实践:搜狐畅游自动化运维之旅!

搜狐黎志刚见证了畅游游戏自动化运维平台的从无到有,通过在其中踩过的坑.解过的结,他向大家来阐述游戏运维的进阶之路.本文主要围绕畅游游戏管理体系与运维自动化的演变历程.运维自动化的实现及未来运维四方面展开. 畅游运维管理体系与运维自动化的演变历程 畅游运维管理体系演变历程 从 2008 年毕业以实习生的身份进入搜狐畅游,我同公司一起成长,经历了整个运维管理体系从小到大的过程. 整个运维管理体系是从最初石器时代(脚本化),之后的青铜时代(半自动化).蒸汽时代(DevOPS)一路演变过来,现在处于自动

Django 1.6 最佳实践: 如何设置和使用 Log(转)

原文: http://www.weiguda.com/blog/37/ 任何参与过高要求的大型项目的编程人员都明白设置适当的log等级, 创建不同的logger, 记录重要事件的重要性. 正确的设置和使用log并不是一件容易的事, 但 对于系统的稳定性而言, logging则是必不可少的. log不仅能用来debug程序, 并能追踪影响程序表现的指标. 之前我们提到需要定期查看access和error文件, 除了记录这些外, 还需要定期查看log文件, 以保证程序安全. 本片的内容主要关于Dja

Django REST Framework 最佳实践

Django REST framework 是一个强大且灵活的工具包,用以构建Web APIs. 为什么要使用REST framework? - 在线可视的API,对于赢得你的开发者们十分有用 - 验证策略涵盖了OAuth1a和OAuth2 - 同时支持ORM和非ORM数据源的序列化 - 可以配置各个环节,若无需更多强大的特性,使用一般基于方法(function-based)的视图(views)即可 - 大量的文档,强力的社区支持 - 大公司如同Mozilla和Eventbrite,也是忠实的使

《项目集管理标准》:全球项目集管理最佳实践

<项目集管理标准>是全球项目集管理最佳实践           <项目集管理标准>(The Standard for Program Management)是由美国项目管理协会推出的一个重要的国家性的,也是事实上的全球性标准.标准详细描述了项目集管理的内容,促进不同项目小组之间进行有效沟通和资源调配.提供了帮助人们理解如何通过提升相互关联的组件的交付能力从而促进组织战略实现的重要且基本的内容.在大多数情况对大部分项目集而言,被认为是清晰.完整的.相关的和公认的在项目集管理中良好实践

Asp.NetCore程序发布到CentOs(含安装部署netcore)--最佳实践

原文:Asp.NetCore程序发布到CentOs(含安装部署netcore)--最佳实践 环境 本地 win7 服务器:Virtual Box 上的Centos ssh工具: Xshell 文件传输: xftp 1.在本地创建asp.net core应用发布 1.1 使用Vs2017 新建一个asp.netcore项目 步骤略(一路next),当然你也可以用命令行创建. 1.2 发布项目 在项目路径下执行命令 dotnet publish –c release 先本地运行是否有问题,减少因为本

生产环境容器落地最佳实践 - JFrog 内部K8s落地旅程

引言 Kubernetes已经成为市场上事实上领先的编配工具,不仅对技术公司如此,对所有公司都是如此,因为它允许您快速且可预测地部署应用程序.动态地伸缩应用程序.无缝地推出新特性,同时有效地利用硬件资源. 本期我们将回顾采用Kubernetes作为容器编排工具的公司所面临的复杂性和挑战.我们希望我们提供的经验教训.最佳实践和技巧将帮助您在前往K8s旅途中起步并继续前进. 本期将介绍关于在Kubernetes生产环境的最佳实践,包括:: 为上K8s容器云准备好应用程序 在Kubernetes中获得