这周,我靠边站让我公司的开发者—Jonathan Freeman主持大局。主题是Django:Python web框架以及如何扩展。不负众望,Jonathan Freman采访了两位在票务服务公司Eventbrite工作的、在Django方面有丰富经验的专家:设计总监Simon Willison和原理系统工程师John Shuping。Shuping在Eventbrite有些年头了,一直在帮助公司成长和转型,而Simon是去年加入这个团队的,当时一家他共同创办的公司—Lanyrd被收购。如果你有兴趣了解更多,请进入 The Lanyrd Blog 和 Eventbrite's Engineering Blog
--Andrew Oliver
Jonathan Freeman:您如何运用Django?
Simon Willison;我们有两个代码库可以谈:Lanyrd和Eventbrite。如你所知,Lanyrd七个多月前被Eventbrite收购。对比这两个库很有趣。Lanyrd是一个新项目开发:三年前,我们从一张白纸开始着手Django部署。Eventbrite代码库更旧些,有七年历史了,三年前采用Django,但里面还有些代码是早于Django的一种自定义Python框架。
【更聪明,而不是更努力地工作——从InfoWorld下载开发者生存指南《程序员需要知道的所有技巧和趋势》。 我通过InfoWorld的开发者世界时事通讯跟进最新的开发者新闻】
它们运作有很大区别。Eventbrite去年售出价值十亿多的门票,所以有大量的通信和现金交易通过堆栈。Lanyrd则小得多,也不需要处理支付操作,因此更灵活。由于不涉及现金交易,我们可以承担代码库风险。
Freeman: 站在Lanyrd(一个聚合会议或活动相关的各种内容的网站)的角度, 你从MySQL转换到PostgreSQL,对吗(好吗)?
Willison: 是的,这是对的。我们大约在一年前,就在想转换的几个原因。人们写了大量的关于MySQL和PostgreSQL的东西,但我们关心的是一个杀手级的特点,在PostgreSQL您可以添加一个新列,而不必锁定整个表。在MySQL中你不能这么做,我们在Lanyrd的观点上,我们的一些大的表足够大,为那些表添加新列是痛苦的。我们从PostgreSQL中得到的好处是,我们能更容易地修改我们的数据库表。
[注释:Lanyrd网站从MySQL到PostgreSQL的过渡,在两小时内完成,不过它是在一个只读的模式下进行的。]
Willison: Eventbrite(一个在线活动策划服务平台)运行在MySQL之上,并使用被叫做pt-online-schema-change的技术去添加新的列。这意味着你可以在运行时修改你的表,不需要任何的停机时间。但是在MySQL中的有些特性你不能使用,例如:在数据库级上的外键约束,因为我们做的那些复制方式和在线架构的变化是不兼容的方式。
Shuping: 在转换之前关于维护的观点,我们的操作目标是不需要任何计划内的维护,或者停机,或者处于只读模式。我们能够做到这一点,pt-online-schema-change技术做出了关键的贡献。
评论删除后,数据将无法恢复
评论(0)