Drupal项目社区架构揭秘

于志成


自我介绍


于志成,毕业于哈尔滨工业大学,10年的老PHP程序员,5年的Drupal程序员,对技术有强烈的好奇心,对各种新兴开发技术均有所涉猎,尤其对Drupal情有独钟,DrupalProject社区创始人。 

供职于美国教育行业顶尖上市公司Chegg的中国分公司Chegg China ,主要运营Zinch.CN,担任半资深工程师,半部门经理。从Zinch学到了大型Drupal网站建设所需要的技术架构以及团队开发的流程和方法。有了这些宝贵的经验,才有了后来的DrupalProject社区。


对Drupal的贡献


还没发布过Drupal官网的模块,希望今后能有这方面的贡献。

Drupal大学为大家解答一些的Drupal相关技术问题。

帮助龙马翻译一些国外的Drupal技术文章。

偶尔在各个Drupal群里发发言,解答几个小问题。

运营和维护Drupal项目社区。

Title




Drupal + Project = ?

DrupalProject是国内Drupal中文社区网站之一,又叫Drupal项目社区,是专业的Drupal模块,主题,发行版信息参考网站。

提供最全的Drupal项目库(模块,主题,发行版),以及其中文简介,还有文档,专题和讨论区等功能,还为会员提供了关注和收藏等功能。 

同时我们也关注项目开发,我们希望和大家一起探索使用Drupal开发各种项目的奥秘。


同类网站

国外的主要是
drupalmodules.org

国内的主要是:
分头诗人的猪跑啦

其他
基本上每个Drupal开发者都会不自觉的去记录和总结学习和工作中遇到的模块,其中重点提一下Drupal中国,MentryDrupal专家博客

网站大事记



Features


收录了目前有release的所有Drupal扩展
包括主题,模块和发行版
已经翻译了1000+,还在继续
开发了社区翻译机制
开发了Drupal名人榜功能
开发了可翻译的Drupal API手册
围绕具体的扩展提供了文档和专题两个频道
提供了有模块和hook查询功能的微信公众号
提供了会员收藏和关注的功能
论坛也是有的

Roadmap

加强社区互动,加强SNS属性
继续翻译模块,下一个目标2000
让搜索功能更加强大
让微信能提供更多的查询功能
开发一个APP
争取翻译完Drupal7的API文档大纲
继续开发Drupal开发者用得到的功能

...

近期即将更新

  • 微信将提供全Drupal函数,全PHP函数的签名查询
  • Drupal名人榜将被升级
  • API手册可被翻译的页面类型将进一步补全
  • 建立Apache Solr索引,为搜索功能改版做准备
  • 修复一些样式的BUG

求关注

查模块,查钩子,查函数

 钱少
时间也不多
How?



关于架构的思考
 
阿里云
ECS
RDS
OSS
云盾
云监控

配置


一台RDS,20G磁盘,600M内存,150最大连接数
一台ECS(A),20G数据盘,单核,内存1G,带宽1M
一台ECS(B),20G数据盘,单核,内存1.5G,带宽3M

开启了云盾,云监控,OSS云存储

第一年的费用大概4000多


A 服务器放什么


  • Jenkins: 持续集成工具
  • Solr: 搜索引擎服务器
  • Redmine: 任务管理系统
  • SVN or Git: 代码版本控制 - plan
  • 主站镜像:用于跑离线脚本,例如抓取
  • 测试服务器:用于开发
  • 邮件服务器:发邮件

需要安装的软件:Jenkins, Solr, Redmine, Apache & PHP, Drush, Postfix, Git, SVN

B 服务器放什么

  • 网站,包括主站和各个子站
  • 邮件服务器
  • Memcache

需要安装的软件有:Apache & PHP, Postfix, Memcache

启用的二级域名

  • jenkins
  • solr
  • redmine
  • svn or git --plan

  • www
  • admin
  • weixin
  • api
  • 计划中的还有很多

原则上都从B服务器走流量,但分布上可以在内网随意布置

代码如何管理


当前
以后
  • Git & GitLab
  • SVN

Jenkins都用来做什么


Redmine长什么样


Drupal多站点

  • 内置Drupal单点登陆
  • 有利于简化架构
  • 有利于提高单站点性能和整体数据容量
  • 有利于维护和定制
  • 有利于将来的迁移至多服务器

    1. www.drupalproject.org
    2. admin.drupalproject.org
    3. weixin.drupalproject.org
    4. api.drupalproject.org
    5. ...

关于发邮件

大多数第三方的邮件发送都是收费的
自建邮件发送服务器比较麻烦
所以我们暂时采用自建邮件发送服务器
以后有必要的话,将会采用第三方邮件服务提供商

Postfix配置只发不收的邮件服务器还是比较容易的
难点是怎样保证发出去的邮件不进垃圾邮箱

关于性能优化

Memcache
APC
多站点
Authcache
离线脚本使用单独的服务器
Boost
其他性能优化模块
Cache Warmer

关于适配多平台


使用了Bartik的Responsive的主题
使用Mobile Switch实现在PC和移动端应用不同的主题
解决了Mobile Switch与Authcache的整合,实现了每个URL都可以为PC端和移动端分别缓存,不同角色分别缓存。



备份 & OSS云存储


模块 1:Aliyun OSS
模块 2:Backup and Migrate

扩展Backup and Migrate实现将备份的文件保存到OSS,这种用法属于内网使用,目前是免费的。

统计

Google统计
百度统计
Newrelic统计
阿里云统计

数据的使用


翻译常用模块
翻译字数较少的模块
机器翻译D6以下版本的模块
通过搜索设计和寻找专题idea
名人榜
可翻译的API



Show Time

Question?

 

www.DrupalProject.ORG

Drupal项目社区架构揭秘

By Richard Yu

Drupal项目社区架构揭秘

这个Slides向大家介绍一下DrupalProject.ORG这个网站是怎样炼成的,DrupalProject中文名是Drupal项目社区,是一个Drupal技术社区网站。

  • 4,098