Back to top

在Drupal Commerce上运行十亿元业务

此篇博客最先以英文版本发布在Drupal.org作为推荐案例, 请查看英文版本

真功夫是中国最大的直营的餐饮连锁品牌,他们以蒸饭等中餐为主打,让饮食变得更健康。 真功夫的义务覆盖国内43个城市的600个门店机构,3个第三方餐饮订购网站和微信客户点单。 2015年真功夫的收入达到50亿元人民币(7.5亿美元)。 此外,公司的业务运作包括供应链管理,库存管理,日常店铺运营和企业财务。 在2016年之前,真功夫一直在使用有版权的软件,但这些软件在遇到不断提高的可集成性,灵活性和可扩展性等需求上, 让维护成本增加以指数增加。 因此,2015年公司开始用开源技术在其内部重建其所有软件。

为这样大规模的业务构建软件是非常具有挑战性和高回报的。 在2016年底, 真功夫从旧的的平台开始迁移到建立在开源技术Drupal之上的新平台. 直到2017年5月底之前, 我们完成了整个迁移。 在这个案例研究中,我们想分享在开发期间学到的3套经验:

经验一: 用Drupal来跑micro-services
Drupal是一个全面的,具有惊人的可扩展性的平台,它可以集成你想要的任何功能。 然而,为了实现可靠性和可扩展性的目标,我们决定使用许多Drupal站点来创建一个支持整个业务的微服务商(micro-service provider)网络。 相对于一个具有所有功能的大型Drupal站点,将功能分割成许多较小的Drupal站点,可以让开发团队更快地工作,因为每个微服务提供商开发小组只需要了解这个组成的需求, 而不需要知道整个体系结构。 此外,这些较小的Drupal网站比一个大型网站在高流量下容易扩展。 另一方面,由于使用Drupal,每个微服务提供商都可以使用一组通用的Web Services接口,就算由于分布式的数据结构,前端开发也没有太多的额外工作。

具体来说,我们创建了一个Drupal Commerce网站来处理产品信息和门店管理,其中包括根据营业时间,位置,可用性和其它业务逻辑来控制产品的定价变化。 我们创建了另一个Drupal Commerce网站来处理支付,承担了从支付宝和微信支付二维码码收取50%的整个连锁收入, 也包括从现金,信用卡和其他较小类型的付款方式收款。 不仅如此, 我们又创建了另一个Drupal Commerce站点,仅用于处理订单信息,跟踪从在线创建订单或从POS机创建订单的状态发生的变化(是的,我们还制作了他们的硬件和软件!)到备餐,到 支付,到外卖,到订单分析,到业务流程控制,到报表和到财务以到及供应链计划。

此外,除了为内容和商务战略构建的Drupal网站之外,我们还使用Drupal构建营销,CRM和ERP功能,以支持客户获取,忠诚度计划,资源规划和预测等连锁企业的需求。 总而言之,在这个项目的核心,我们建立了一批提供微服务的Drupal网站。

经验二: 离线第一和可靠性第二
餐饮行业的命脉是让订单和支付稳定流动。 这些数据需要在设备级别,门店级别和云上级进行精确的管理和监控。 因此,我们构建了具有这3个级别的冗余功能的POS软件,使设备和门店在离线情况下依然可以正常运行。

假设稳定的互联网在门店运营领域仍然是件奢侈品, 在我们建立的系统中,收款终端,自助销售终端机和厨房控制面板等设备在丢失互联网连接时仍然可以创建或处理订单。 然后,当连接恢复时,多级同步在后台自然而然地默默地进行。 为此, 我们引入了CouchDB,PouchDB,Raspberry Pi,Node.js和Electron技术,来帮我们建立数据基础设施,保证关键数据及其更新版本最终以最快的速度到达Drupal。

经验三: 中国软件开发流程与风格
在工程风格上,中国软件工程师还有很多工作要做才能赶上全球软件开发上战略规划和严谨思考的最佳实践。 然而,中国软件开发团队往往有两个特征:他们通常客户群体比较大,他们拥有大量的新鲜和年轻人才。 这两个特征为中国软件公司的领导提供了产品创新的新方向 - 以经验证据驱动的闪电快速产品迭代。

在这个项目中,我们每天都在发布产品的各个部分的新版本, 持续了很多个月。 我们能够全天候轮换客户使用群体,支持人员和开发人员,以实现持续的产品创新。 另一方面,由于Drupal提供了一个具有众所周知的最佳实践的强大框架,我们可以通过鼓励采用Drupal的最佳实践来简化人才招聘,培训和保留流程。

总而言之,我们已经成功的让一家大型餐饮连锁店的核心业务运营在开源软件包括Drupal之上。 我们在这个项目上通过支持每年十亿元以上的交易, 让使用开源软件设提供技术解决方案提到了一个新的标准。

(参与到此项目开发的公司主要有: 上海闪派信息科技有限公司, BootDev, 上海引锐信息科技有限公司)

Comments

Add new comment