“早发布。频繁发布。听取客户的意见”(EricS.Raymond,大教堂和集市)是我们Pikacode公司的主导方针。开发中的技术选择必须认真遵循这一指导原则。Pikacode快速干净地开发LogoPython。我们的大部分关键组件,例如服务于git和mercurialremoting的http或ssh服务器,都不到几百行代码。更少的代码意味着更少的错误、更少的维护和更容易添加新功能。Python生态系统和Pip(http://pypi.python.org/pypi)非常稳固,这使得系统依赖模块的升级变得轻而易举。我们使用virtualenv(http://pypi.python.org/pypi/virtualenv)来隔离我们的应用程序。Django等python相关组件如果选择使用python开发,最好的框架是Django。Django具有开发多功能网站所需的所有功能,并且易于扩展。它提供了您需要的所有库。升级很简单,不会影响您的应用程序。后台任务由与Celery(http://celeryproject.org/)集成的Rabbitmq(http://www.rabbitmq.com)处理。我们使用后台调度程序来处理资源密集型操作,例如统计计算、压缩下载和其他重型存储操作。使用Javascript查询后台任务状态,并将最终状态结果展示给用户。Bootstrapcssframework如果你是做开发的,网页设计能力很差,CSSframework可以帮你开发出漂亮的界面,用户体验非常好。Bootstrap是一个优秀的框架,可以帮助你设计风格一致的Web应用程序。(http://twitter.github.com/bootstrap/)。Web服务器和管理员工具最关键的技术层与HTTP相关。以下信息是关于底层网络技术的选择。我们使用gunicorn(pythonWSGIhttp服务器http://gunicorn.org/)来处理django请求。Nginx是我们的网络服务器。使用Varnish来处理http缓存。Uwsgi和自定义pythonWSGI服务器来处理http远程处理。Supervisord(http://supervisord.org/)管理我们所有正在运行的进程,Nagios监控我们所有的服务。结论我们所有的应用程序都由Mercurial(我们自己构建的一项服务)进行版本控制,并且所有应用程序部署都是使用自定义Fabric脚本(http://docs.fabfile.org/)执行的。使用单个命令将代码推送到生产环境。英文原文:Pikacode技术栈翻译链接:http://www.aqee.net/pikacode-technology-stack/
