《码农周刊》用到的一些技术

technologies we use

"There should be one-- and preferably only one --obvious way to do it. "

TL;DR


上篇,我们说过“没什么技术含量”。罗列了下,还是用到一些技术的。
技术选型离不开应用的规模和场景。
我们的第一原则是:Don't install B。能用灭蚊器的时候一定不会用高射炮。
除此之外,我们考虑的是:轻量、高效和稳定。


Web Development


Pyramid + SQLAlchemy + PostgreSQL

Pyramid

"pay only for what you eat"

Pyramid,我们用它作为 Web 开发框架

  • Pyramid (repoze.bfg) 最早发布于2008年7月
  • 在2010年底改名为 Pyramid,并加入 PylonsProject 组织
  • Pyramid 吸取了 Zope、Pylons 和 Django 的优点
  • Pyramid 适合开发大型项目,也适合小项目
  • 它拥有非常好的性能
    Pyramid性能

SQLAlchemy

SQLAlchemy 是个伟大的开源项目,Python 世界里最好用的 ORM 引擎,社区也很活跃,推荐!

Celery

Celery(芹菜)是一个异步任务队列。它侧重于实时操作,对调度支持很好。我们的邮件发送任务是交给 Celery 完成的。

Bootstrap

Bootstrap 是 Twitter 推出的用于前端开发的开源工具包。它由 Twitter 设计师 Mark Otto 和 Jacob Thornton 合作开发,是一个 CSS/HTML 框架。非常好用,没写什么 CSS 就把管理后台搞定了。


Database


PostgreSQL

我们的数据存储在 PostgreSQL 中。

Redis

我们使用 Redis 作为 Celery 的后端。


Deployment


Buildout

Buildout xkcd

Buildout 是一个基于 Python 的构建工具,非常强大。

Alembic

Alembic 是数据库迁移工具,我们希望管理数据也能像管理代码一样。
如果你的项目中也用了 SQLAlchemy 作为 ORM,那么 Alembic 一定适合你。它的作者和 SQLAlchemy 作者是同一个人。

Gunicorn

使用 Gunicorn 作为 WSGI 服务器,性能非常好。

Supervisor

Supervisor 是用 Python 写的一个进程管理工具,我们用来管理 Gunicorn 和 Celery。服务挂掉时 Supervisor 会帮我们自动重启,比如部署应用手动重启只需要一条命令搞定:

supervisorclt restart weekly

Fabric

自动化部署和常规系统管理我们用了 Fabric
我们知道 Ruby 世界有 Capistrano,Python 世界同样有这样一个工具,而且比 Capstrano 更简单好用。

Nginx

HTTP Server 我们用了 Nginx,这个就不用过多介绍了。


Monitoring


Munin

服务器性能监控我们用了 Munin
Munin 的插件编写非常方便。我们应用中的一些数据监控,以及订阅/退订/点击等情况的报表也做在 Munin 上,看起来很直观。

Flower

Flower 是一个基于 Web 界面的用来监控和管理 Celery 集群的工具.

Sentry

Python 的错误报告,我们使用 Sentry
Sentry 是由 Disqus 的 David Cramer 开发的一个开源项目,David 也是 Django 社区的大牛。Sentry 非常方便,主流开发语言的客户端都有实现。官方文档地址

欢迎探讨,欢迎拍砖。


如果你是程序员,欢迎订阅我们的《码农周刊》。 快速订阅地址

码农IO

码农IO官方博客,分享我们对技术、产品和营销的理解。订阅 RSS

2013-10-18