Django作者之一 JACOB KAPLAN
所写的buildbot应用在Django系统。

全文总共分为两个部分
1,http://jacobian.org/writing/ci-is-hard/
2,http://jacobian.org/writing/configuration-and-architecture/

作者开源了他hack出的buildbot系统代码:https://github.com/jacobian/django-buildmaster

1,主要介绍了为什么针对Django建立CI系统很繁杂、困难。

  • Django 是一个复杂的系统,有很多的测试用例(当时3000+)
  • 支持太多的Python版本(CPython, Jython, and PyPy)
  • 支持太多的数据库后端(PostgreSQL, MySQL, SQLite, and Oracle)
  • 支持太多的操作系统。。。

为了把全部的测试范围都覆盖,明显需要非常多的机器,即使是虚拟机,也需要很多。。


After a bunch of playing with these requirements, I sketched out a dream system that looked something like this:

We’ve got a bunch of (dormant) VM images for a cloud computing service or platform.
Each image “knows” which kinds of configs it can build. For example, one image might have Python 2.4 and SQLite, while another might have Python 2.7 and PostgreSQL 9.0.
When new requests are made the build master spins up some VMs, hands them build jobs (based on the types of builds the VM can support).
When no more builds are in the queue for a particular VM, the build master shuts down the image and saves us money.

Jacobian针对Django系统的需要做了一个列表,如上。
但当时没有任何系统能够完成需要,buildbot也无能为力。

J只好自己动手,根据buildbot提供的功能集,hack出了一个系统。

J通篇强调一点:buildbot不是一个CI系统,而是一个CI框架,提供了很多的基础功能,但并不是一个完整的解决方案,而是需要自己来根据需要定制。

另,附上一份buildbot自己的bot的配置代码库:
https://github.com/buildbot/metabbotcfg

Django 应用 Buildbot的更多相关文章

  1. Django学习笔记(1)——初识Django

    一:Web框架介绍 框架,即framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以快速帮你开发特定的系统. Web框架是别人已经设定好的一个web网站模板,你学习它 ...

  2. python三大web框架Django,Flask,Flask,Python几种主流框架,13个Python web框架比较,2018年Python web五大主流框架

    Python几种主流框架 从GitHub中整理出的15个最受欢迎的Python开源框架.这些框架包括事件I/O,OLAP,Web开发,高性能网络通信,测试,爬虫等. Django: Python We ...

  3. Django,Flask,Tornado三大框架对比,Python几种主流框架,13个Python web框架比较,2018年Python web五大主流框架

    Django 与 Tornado 各自的优缺点Django优点: 大和全(重量级框架)自带orm,template,view 需要的功能也可以去找第三方的app注重高效开发全自动化的管理后台(只需要使 ...

  4. 异步任务队列Celery在Django中的使用

    前段时间在Django Web平台开发中,碰到一些请求执行的任务时间较长(几分钟),为了加快用户的响应时间,因此决定采用异步任务的方式在后台执行这些任务.在同事的指引下接触了Celery这个异步任务队 ...

  5. 《Django By Example》第四章 中文 翻译 (个人学习,渣翻)

    书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:祝大家新年快乐,这次带来<D ...

  6. django server之间通过remote user 相互调用

    首先,场景是这样的:存在两个django web应用,并且两个应用存在一定的联系.某些情况下彼此需要获取对方的数据. 但是我们的应用肯经都会有对应的鉴权机制.不会让人家随随便便就访问的对吧.好比上车要 ...

  7. Mysql事务探索及其在Django中的实践(二)

    继上一篇<Mysql事务探索及其在Django中的实践(一)>交代完问题的背景和Mysql事务基础后,这一篇主要想介绍一下事务在Django中的使用以及实际应用给我们带来的效率提升. 首先 ...

  8. Mysql事务探索及其在Django中的实践(一)

    前言 很早就有想开始写博客的想法,一方面是对自己近期所学知识的一些总结.沉淀,方便以后对过去的知识进行梳理.追溯,一方面也希望能通过博客来认识更多相同技术圈的朋友.所幸近期通过了博客园的申请,那么今天 ...

  9. 《Django By Example》第三章 中文 翻译 (个人学习,渣翻)

    书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:第三章滚烫出炉,大家请不要吐槽文中 ...

随机推荐

  1. 生成n个数的全排列【递归、回溯】

    下面讨论的是n个互不相同的数形成的不同排列的个数.毕竟,假如n个数当中有相同的数,那n!种排列当中肯定会有一些排列是重复的,这样就是一个不一样的问题了. /*===================== ...

  2. 原生js的String类扩展

    文章转自:http://www.cnblogs.com/zfc2201/archive/2012/12/16/2820335.html JS String类拓展方法: //获取字符数组 String. ...

  3. 动态代理到基于动态代理的AOP

    动态代理,是java支持的一种程序设计方法. 动态代理实现中有两个重要的接口和类,分别是InvocationHandler(interface),Proxy(class). 要实现动态代理,必须要定义 ...

  4. Debian安装记录

    Fedora着实让我伤心透了.前天和昨天搞了整整两天Fedora 20的安装,午睡也没有,晚上就睡了四个小时不到,几乎尝试了所有Fedora 20的桌面版本,全部出问题了!就因为我的笔记本显卡是ATI ...

  5. jQuery网页右侧固定层显示隐藏在线qq客服代码

    CSS代码: @charset "utf-8"; ;;} html,body{font-size:12px;font-family:"微软雅黑";outline ...

  6. [转]Neutron演进

    在OpenStack世界中,网络组件最初叫nova-network,它混迹于计算节点nova的代码库中.nova-network可以单独部 署在一台机器上,为了高性能HA也可以和nova-comput ...

  7. lucene.net helper类 【结合盘古分词进行搜索的小例子(分页功能)】

      转自:http://blog.csdn.net/pukuimin1226/article/details/17558247 添加:2013-12-25 更新:2013-12-26 新增分页功能. ...

  8. 在VS 2010中使用 VS2013的解决方案

    本文转载自:http://blog.csdn.net/u011543589/article/details/25563351 今天要用VS2010打开VS2013,一直觉得VS2010到VS2012只 ...

  9. 折腾Ipython

    1. 用easy_install安装吧 [root@host python]# easy_install IPython Searching for IPython Reading https://p ...

  10. erlang反编译

    Beam = code:which(MyModuleName). {ok,{_,[{abstract_code,{_,AC}}]}} = beam_lib:chunks(Beam,[abstract_ ...