十二年10次IT大考 猪八戒网的系统架构和开发流程经历了什么?

2018 年 12 月 11 日

十二年10次IT大考 猪八戒网的系统架构和开发流程经历了什么?

刚刚发布的“腾云 10 号”,不是一个产品,而是 13 个研发项目的组合,更是近 200 人研发团队投入 3 个月精力的一次“行动”,在迄今为止猪八戒网创立的 12 年间,这样的腾云行动一共有 10 次。这其间猪八戒网的系统架构和开发流程经历了什么?


走进猪八戒网位于北京中关村的办公地,乍一进去有点蒙——这里还是个创客空间。而迎面八戒工场几个大字也证明了我们的猜测。对此,猪八戒网 CTO 叶萌告诉记者:这样的创客空间,猪八戒网在全国设立了超过 50 个,其中 40 多个已经在运营。


做中小微企业服务众包平台的猪八戒网,为什么要把触角向相对来说比较重的线下延伸,这是不是跟主业背道而驰了?


我们对叶萌的采访,就从这里聊起。


服务不设边界 IT 能做的事儿太多了


在叶萌看来,猪八戒网提供服务的边界,并非用线上、线下来做区分,“会员企业只需要关注核心能力和产品服务,此外的一切都可以交给平台上的服务商们。”


这也是猪八戒网为什么会给会员企业提供线下办公场所的原因,当然在业已成熟的平台端,猪八戒网给会员企业提供的服务也远非“交易”这么简单,企业体检、服务需求估价,甚至把自己研发团队的 DevOps 流水线、CRM 的实践经验以 SaaS 模式提供给会员企业,都是猪八戒网在做的。


表面来看这是商业模式的成功,对此业界的报道非常多:2015 年,猪八戒网获得赛伯乐投资集团和重庆两江新区产业投资引导基金 26 亿人民币 C 轮融资,猪八戒网估值百亿元人民币;2018 年,按照猪八戒网官方说法,其注册用户达 1900 万,其中雇主发包方涵盖中小微企业超过 700 万家,人才提供方服务商 1300 万家。对猪八戒网在商业上的成功,这里咱们就不赘述了,但是商业模式的背后,其实是需要企业具备非常夯实但又灵活的 IT 基础设施,以及强大研发能力的,这也是 TGO 鲲鹏会此次采访的重点。


腾云 10 号的 IT 大考


在 TGO 鲲鹏会此次采访半个月前,猪八戒网的“腾云 10 号”刚刚发布,叶萌说“腾云 10 号”不是一个产品,而是 13 个研发项目的组合,更是近 200 人研发团队投入 3 个月精力的一次“行动”,在迄今为止猪八戒网创立的 12 年间,这样的腾云行动一共有 10 次。


“腾云 10 号”是“小 B 三连乘战略”落地的一个重大举措。所谓“小 B 三连乘战略”,是要聚焦于连接天下人才、服务小 B 企业(即中小微企业),以小 B 为中心构建雇主、服务商、平台三方共赢生态。用 3-5 年时间,从现在的 100 亿估值做到 100 亿营收、再用 5 年时间做到 100 亿利润。


叶萌介绍:“腾云 10 号是猪八戒网历史上第一次把全集团的数据打通,使我们能够在集团的层面通过大数据、人工智能来优化我们的派单规则、派单方式等。”此外交易流程的简化、用大数据和 AI 来提升交易效率,也是此次“腾云 10 号”功能上的一些亮点。


对于“腾云 10 号”的产品功能特色,叶萌着重举了两个例子。一个是“八戒火眼金睛",“八戒火眼金睛”通过知识产权指数、互联网 + 指数、法律风险指数、资质体系指数、投融资指数、经营风险指数、人才供需指数等 7 个维度,对企业进行“体检”。这些数据一方面来自猪八戒网本身拥有的企业可公开数据,另外就是工商部门、合作伙伴以及互联网上公开的数据。对于这些数据信息,“火眼金睛”只是通过特殊算法进行抓取和整合。目前,“火眼金睛”已经囊括了超过 1.1 亿条企业数据、5000 万条法律数据、3000 万条品牌数据等,而且这些数据还在不断增加当中。


另外一个新功能就是“服务需求估价”,猪八戒网与加州大学尔湾分校(UCI)合作,通过机器学习技术对于平台上雇主方发布的需求进行估价。如果有雇主发布“我想做一个像淘宝一样的网站”的需求,猪八戒网可以先帮忙去评估是“长得像淘宝”,还是“功能像淘宝”,然后根据评估进行估价。


猪八戒网的 IT 技术演进之路


作为一家创业公司,其实技术路径的选择异常重要,需要足够敏捷,使自己能够快速实现业务创新以及战略上的变化。猪八戒网的 IT 技术演进历程是什么?经过了几次重要的更新和迭代?对于这些问题,叶萌一一作答。


系统架构的三次演变


猪八戒网的系统架构经历了三次演变。最开始采用的是 .net 和 FrontPage;第二阶段是 php,php 用了很多年,2015 年前,80% 的项目使用 php 语言开发;到 2015 年底腾云 7 号开始采用 Java 做技术栈,开启了猪八戒网 SOA 架构转变之路。腾云 7 号使用 Java 语言将猪八戒网核心交易代码进行了重构,建立了以 Dubbo 为核心的 SOA 服务框架,使用 ZooKeeper + Swoole 为核心的业务调用提供机制。


在 SOA 架构的基础上,猪八戒网从 2016 年开始全面推行前后端分离,于是出现了三足鼎立的局面:


nodejs:负责前端;Java:负责后端及老 php 项目迁移;php:负责老项目维护。剩余部分小系统或者边缘化的工具使用其他语言开发,或者在此三种语言基础上的一些变种。



敏捷,还是敏捷


伴随猪八戒网的快速发展,其实问题逐渐暴露出来。上线节奏慢、运维成本飙升、线上故障频发运维背锅、蜘蛛网依赖导致故障定位困难等问题,迫使猪八戒网干了这样几件事儿:


首先是敏捷的推行:开发流程进行演变,从传统瀑布到敏捷开发。区别于业界流行的敏捷开发模式,猪八戒网根据公司实际情况做了一点小小的变化,即增加了 deploy 的概念,整个层级变成:deploy->story→task。



此外业务扩张对运维又带来了压力,大量的项目需要进行发布,所以虚拟机的数量也不断增长,管理难度随之加大,运维人数最多增加到三十多人。为了降低维护难度,猪八戒网开始做 CMDB,制定各种规范,同时进行多数据中心建设,业务上做异地双活。对此叶萌介绍,猪八戒网在未来会全面拥抱云端,重点是如何把完整生产系统在服务不间断的情况下进行选型、规划、部署。而相对来说,自建数据中心部分的业务则会越来越少。


另外是 DevOps 的落地。为了满足业务快速扩张的需求,猪八戒网从 2016 年末开始组建 DevOps 团队,集合了运维、配置管理、Java 技术人员。团队专门负责 DevOps 方法论以及技术的落地,全公司使用统一的标准进行软件开发,并使用统一的工具进行项目管理。猪八戒网 DevOps 平台集成各种语言的工程模版、git 代码管理、jenkins 持续集成、自动化接口和性能测试、发布流水线和金丝雀分析、域名解析、弹性扩缩容等功能。这也给猪八戒基础架构带来改变——从过去的分散管理到现在的统一资源管理。CMDB 负责底层基础设施管理,包括物理机、虚拟机、docker 容器的管理;DevOps 平台作为统一研发入口,可以调度底层各种工具,实现对应功能。



这里可以着重提一下 DevOps 流水线,流水线的演变是基于测试环境的变化而变化的,曾经猪八戒网的测试环境比较单一,流水线也相对简单,但随着业务的快速发展,单一的环境凸显大量的问题,所以开始在环境和流水线上进行优化改造。曾经猪八戒网的测试环境都是由 DevOps 团队统一管理和维护的,随着环境和流水线的不断优化,后来交接给运维团队负责,目前已经在慢慢将测试环境交给开发和测试自行维护。


这里还可以着重再提一下告警监控体系的构建,对于猪八戒网来说,APM 上马之后运维效率和成本持续回落,运维人员与项目比例从 2015 年 7 月的 1:15,到 2017 年 8 月的 1:100。


下图是猪八戒网的数据平台技术架构、数据平台体系架构图。对于系统架构,猪八戒网采用的是业界主流方式,对于快速发展的猪八戒网来说,面对业务量的快速增长,确保系统的稳定性、可用性,应用架构的可伸缩是很重要的。



数据平台技术架构图



数据平台体系架构


技术能改变世界


对于拥有 800 位产品、研发人员的猪八戒网来说,IT 面临的挑战其实很明显:公司业务成长快、中小微企业的发展更快,倒逼 IT 系统要快速响应业务需求,开发上能够更加敏捷高效,基础架构能够更加灵活。另外再从猪八戒网业务模式来看,作为一家平台公司,却要大规模提供个性化服务,更是倒逼 IT 系统要更加流程化、标准化。


对于叶萌团队来说,让 IT“渗透”进业务是重中之重,“我们的技术 Leader 必须要了解公司的战略和业务,我们的数据分析师要参加公司战略级会议。”因为只有了解业务,才能知道自己工作的价值。


采访最后,我们问叶萌,猪八戒网的组织文化是什么样子,他说是工程师文化。所谓工程师文化,这类公司一定是技术驱动型公司,他们相信,技术能改变世界。




TGO 鲲鹏会是极客邦科技旗下高端技术人聚集和交流组织,目前已在北京、上海、杭州、广州、深圳、成都、硅谷、台湾、南京、苏州、武汉全球十一个城市设立分会。现在全球累计 700 多名会员,60% 为 CTO、技术 VP、技术合伙人。


TGO 鲲鹏会重庆分会正在招募中,未来在当地将会举办多场活动,如果你想和这些优秀的科技领导者们一起前行,欢迎点击「报名表单,申请加入」


2018 年 12 月 11 日 09:333988
用户头像
张晓楠 InfoQ编辑

发布了 144 篇内容, 共 64.8 次阅读, 收获喜欢 344 次。

关注

评论 2 条评论

发布
用户头像
十几年了才这样....
2018 年 12 月 11 日 15:32
回复
用户头像
十几年了才这样
2018 年 12 月 11 日 10:01
回复
没有更多评论了
发现更多内容

极客大学架构师训练营 0 期 week 09 作业

chun1123

JVM 秒杀系统

架构师训练营第九周作业

子豪sirius

JVM 垃圾回收原理

架构师训练营第 0 期第 9 周作业

无名氏

JVM 秒杀

JVM垃圾回收及秒杀系统设计

stars

极客大学架构师训练营 0 期 week 08 学习笔记

chun1123

学习

Android VectorDrawable系列文章Review

teoking

android SVG

第9周命题JVM回收&秒杀

慵秋

《架构师训练营》第9周 命题作业

LeetCode题解:189. 旋转数组,环状替换,JavaScript,详细注释

Lee Chen

LeetCode 前端进阶训练营

第9周-作业1

seng man

架构师训练营 week9 - 学习总结

devfan

架构师训练营第九周学习心得

子豪sirius

Java ThreadLocal

陈皮

垃圾回收算法及收集器介绍

考尔菲德

【架构师训练营 - week9 -1】作业

早睡早起

JVM垃圾回收原理&秒杀系统设计见解

潜默闻雨

第9周-课后练习

Dawn

极客大学架构师训练营 0 期 week 09 学习笔记

chun1123

学习 性能优化 秒杀系统

第九周学习总结

潜默闻雨

第九周作业

刘卓

第9周作业

王鑫龙

架构师训练营第9周总结

王鑫龙

极客大学架构师训练营

第 09 周 JVM & 高性能 命题作业

Jaye

架构师训练营 week9

devfan

极客大学架构师训练营 0 期 week 08 作业

chun1123

hdfs 数据结构与算法

架构师课程第九周总结

dongge

JVM垃圾回收与秒杀系统设计

走过路过飞过

第9周 JVM 和秒杀场景

陆不得

架构师必备的那些分布式事务解决方案!!

架构师修行之路

分布式 分布式事务 架构师

Week 09 总结

鱼_XueTr

十二年10次IT大考 猪八戒网的系统架构和开发流程经历了什么?-InfoQ