360案例讲解:如何使用Python?

10 sec read

360一共80余个Python项目,6万行Python代码。每个项目提供一个或一组完整的功能集合,每个项目都有自己的 setup.py 文件用来将项目代码打包成 Python 发布包(Distribution),部分项目还使用是 Sphinx 和 reST格式的文本自动生成文档。打包好的Python包被发布到自己搭建的内网(与 pypi.python.org 兼容的私有 pypi 服务器),而文档保存在内网的类似于 readthedocs 的服务器上。

后台团队的代码主要运行我们自己的Linux服务器集群上,开发和部署的成本比较低,因此使用比较敏捷的开发流程。流程大体上可以分为下面几个步骤:

  1. 开发:这个步骤当中,开发人员在开发机上面写代码实现功能,不同的开发人员的开发环境使用扩展过的 virtualenv 脚本进行隔离;
  2. 单元测试:开发人员负责对代码当中的关键部分进行单元测试,通常使用 unittest,使用 nose 将测试用例聚合和进行回归测试,不定期使用 coverage 确定代码测试覆盖率(集成在nose当中)。这一步还会使用 PyLint 对代码进行扫描;
  3. 构建:使用 python distribute 将 Python代码构建成包,同时将这个包发布到测试版 pypi 服务器(pypi-testing),测试版pypi服务器是我们搭建的若干个私有pypi其中之一,发布工作使用的是我们扩展的 distribute 命令;
  4. 测试:在测试机器或测试流程当中,从测试版pypi当中获取最新的库并测试,这个部署过程我们使用 distribute 提供的 easy_install 工具进行;
  5. 发布:将经过测试的包从测试版pypi服务器移到发布版pypi服务器,这个同样通过扩展的 distribute 命令;
  6. 部署:运维人员从发布版pypi服务器上获取最新的库,并更新到真实的服务器上,并应用新的变更。这个过程当中任何一台单机部署使用的都是 easy_install,在分布式环境下,我们使用 Fabric 进行多机部署;
  7. 监控:新版本上线之后,会持续通过日志和报警系统进行系统监控。专门扩展了 logging 模块以便适应监控需求。

原文地址:http://blogs.360.cn/blog/how-360-uses-python-0/

打赏作者
微信支付标点符 wechat qrcode
支付宝标点符 alipay qrcode

C语言学习:size_t

在学习C语言的时候,遇到了一个新的数据类型size_t,截止目前也没有完全理清这个类似的具体场景及出现的原因。
44 sec read

C语言学习:main()函数的正确写法

C语言虽然是一门古老的语言,但是其标准一直在完善,所以很多以前支持的语法在到当前已经不能在使用了。 C语言的版
41 sec read

Scipy数学函数的Scala实现

最近在推进项目的时候,遇到需要将线下的Python代码转化成线上的集群代码,由于机器代码环境是Scala,所以
4 min read

发表评论

电子邮件地址不会被公开。 必填项已用*标注