Django 应用 Buildbot
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的更多相关文章
- Django学习笔记(1)——初识Django
一:Web框架介绍 框架,即framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以快速帮你开发特定的系统. Web框架是别人已经设定好的一个web网站模板,你学习它 ...
- python三大web框架Django,Flask,Flask,Python几种主流框架,13个Python web框架比较,2018年Python web五大主流框架
Python几种主流框架 从GitHub中整理出的15个最受欢迎的Python开源框架.这些框架包括事件I/O,OLAP,Web开发,高性能网络通信,测试,爬虫等. Django: Python We ...
- Django,Flask,Tornado三大框架对比,Python几种主流框架,13个Python web框架比较,2018年Python web五大主流框架
Django 与 Tornado 各自的优缺点Django优点: 大和全(重量级框架)自带orm,template,view 需要的功能也可以去找第三方的app注重高效开发全自动化的管理后台(只需要使 ...
- 异步任务队列Celery在Django中的使用
前段时间在Django Web平台开发中,碰到一些请求执行的任务时间较长(几分钟),为了加快用户的响应时间,因此决定采用异步任务的方式在后台执行这些任务.在同事的指引下接触了Celery这个异步任务队 ...
- 《Django By Example》第四章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:祝大家新年快乐,这次带来<D ...
- django server之间通过remote user 相互调用
首先,场景是这样的:存在两个django web应用,并且两个应用存在一定的联系.某些情况下彼此需要获取对方的数据. 但是我们的应用肯经都会有对应的鉴权机制.不会让人家随随便便就访问的对吧.好比上车要 ...
- Mysql事务探索及其在Django中的实践(二)
继上一篇<Mysql事务探索及其在Django中的实践(一)>交代完问题的背景和Mysql事务基础后,这一篇主要想介绍一下事务在Django中的使用以及实际应用给我们带来的效率提升. 首先 ...
- Mysql事务探索及其在Django中的实践(一)
前言 很早就有想开始写博客的想法,一方面是对自己近期所学知识的一些总结.沉淀,方便以后对过去的知识进行梳理.追溯,一方面也希望能通过博客来认识更多相同技术圈的朋友.所幸近期通过了博客园的申请,那么今天 ...
- 《Django By Example》第三章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:第三章滚烫出炉,大家请不要吐槽文中 ...
随机推荐
- JQuery Pagenation 知识点整理——phototype 应用(20150517)(转)
JS中的phototype是JS中比较难理解的一个部分 本文基于下面几个知识点: 1 原型法设计模式 在.Net中可以使用clone()来实现原型法 原型法的主要思想是,现在有1个类A,我想要创建一个 ...
- 必须Mark!43个优秀的Swift开源项目推荐
摘要:拥有着苹果先天生态优势的Swift自发布以来,各种优秀的开源项目便层出不穷.本文作者站在个人的角度,将2014年Swift开源项目做了一个甄别.筛选,从工具.存储.网络.界面.框架到Demo以及 ...
- Nginx Google 扩展
安装配置详见: https://github.com/cuber/ngx_http_google_filter_module/blob/master/README.zh-CN.md tenginx详见 ...
- Pigs and chickens
“Pigs and chickens”是Scrum软件开发模式中的一个比喻,用来比喻参会者在每天的Scrum会议中所起的作用. 在橄榄球中,scrum的意思是“重新开始游戏”.对于程序员来说,每日Sc ...
- TDDL:来自淘宝的分布式数据层
淘宝根据自身业务需求研发了TDDL(Taobao Distributed Data Layer)框架,主要用于解决分库分表场景下的访问路由(持久层与数据访问层的配合)以及异构数据库之间的数据同步,它是 ...
- Format可能存在的坑
import java.text.MessageFormat; public class TestFormat { public static void main(String[] args) { / ...
- PERCENT_RANK
1. percent_rank() over (order by .....) 返回某列或某列组合后每行的百分比排序 如下: with cte as( SELECT ROWNUM as n FRO ...
- 【转】C#中判断扫描枪输入与键盘输入
提出问题:在收货系统中,常常要用到扫描枪扫描条码输入到TextBox,当条码无法扫描时,需要手工输入.如果是扫描枪输入时,我们将自动去判读条码,而手工输入时,最终需要加按回车键确认后判读条码.这时候我 ...
- (WPF) 文件和文件夹选择对话框。
点击button,选择一个excel文件,并将文件名显示在textbox上. private void btnSelectErrorTableFile_Click(object sender, Rou ...
- sql server中的左连接与右连接的简便写法
左连接 *=(左表中的数据全部显示出来,右表中没有相关联的数据显示null) select Users.*,Department.name as DepartmentName from Users,D ...