近年来,SaaS行业热度高居不下,国内SaaS市场也是风生水起,众多企业纷纷涌入该赛道,竞争日益加剧。但与国际相对成熟的SaaS市场不同,国内SaaS赛道仍然处于野蛮生长的阶段,市场上的SaaS产品良莠不齐。由于大多数SaaS企业软件工程积累不够,本身急于扩张,产品力不足,很多SaaS企业既没有经过深度市场需求调研,也没有自研及后续研发规划,往往将同类产品改皮换UI就投放市场。这些产品往往昙花一现,生命周期非常短暂,也难以经受市场考验。
要做一款能经受市场考验,经久不衰的SaaS产品,SaaS企业既要拥有强大的自研能力,也要对产品做出长期研发规划,打好合理的底层架构,并根据市场变化不断调整适应,以满足风云变幻的市场对产品的需求。
从上图可以看出,螳螂科技可以为不同行业客户提供完整闭环的营销解决方案,客户只需要通过一款产品就可以打通营销运营的各个环节。更重要的是,在实现业务闭环后,客户可以实现更高质量的全业务环节数据闭环,进行全链路的业务数据洞察和分析。除了助力客户业务增长,螳螂科技也在提高人效和降低成本上为客户提供助力。
同时,得益于近几年机器学习尤其是深度学习技术的快速发展和应用,螳螂科技陆续研发了AI智能客服、智能外呼系统、智能质检等产品,在教育、医疗、家装、律所等众多行业得到广泛应用。
在如此丰富的产品能力背后,是螳螂产研团队150余人5年多200余次持续迭代的成果。目前产品包括300多个工程项目,产品功能点多达5000+。其中营销云产品实现了50多家主流广告媒体的接入,日均完成10亿多投放信息的计算;CRM产品日活账号数十万,每日系统呼叫量数千万;智能AI客服产品日均接待消息数达2亿;SCRM产品每日活码请求数达到5000万,课程直播/伪直播日均3000多场。面对庞大的数据量需求及系统维度支持,螳螂系统经历了非常大的挑战,在满足业务功能需求上的快速迭代,技术架构治理也需要“见缝插针”的优化。如何相辅相成平衡两者关系?
从本篇文章开始,螳螂科技产研团队将会持续跟大家分享产研实践,将涵盖整体架构介绍、前后端架构演变、弹性的基础设施、自动化测试、线上自动巡检等一系列专题,共同探讨前沿架构之路。
唯有不断变化才是亘古不变
首先介绍一下螳螂目前的核心技术架构。
如图所示,螳螂系统是基于Spring Cloud构建的微服务体系。在服务划分上,我们根据全链路智能营销的业务场景,对服务进行了抽象与提炼,并采取不同的治理策略,分为三类:
-
拆分单体工程,构建扁平化组织架构:对于各类业务功能模块,我们采取水平分割策略,拆分原来臃肿的单体工程,使单个工程保持简单;践行“两披萨原则”,对于服务划分不同小团队来负责,使得研发组织架构扁平;
-
剥离非业务功能,专人治理:对于业务关联度比较弱的服务,比如系统登录、业务网关、认证&授权、日志采集、流量控制、请求分发、爬虫对抗、安全审计等非业务功能,则剥离到单独的服务,由架构团队专门负责,统一维护,打好所有产品线的技术基石;
-
构建中台能力层,实现快速、灵活适用:将多个业务产品线涉及到的公共业务能力逐渐下沉,形成中台能力层,比如用户中心、客户中心、订单中心、商品中心、聚合支付中心、在线客服、呼叫中心、数据分析平台、直播服务、点播服务、电子签名服务、营销推广平台、NLP,智能质检、智能对话管理等中台模块。这样当我们拓展新行业,搭建新的行业解决方案时,基于这些中台能力,我们可以采用搭积木的方式快速构建整体解决方案。
这种能力的划分方式,不仅降低了团队之间的耦合度,也可以专业的人做专业的事,按照不同团队性质来配置组织成员,大幅度提升研发效率。最重要的一点是,我们实现了最大程度的能力复用,这对于实现我们多行业战略有着非常重要的意义。例如基于现有能力,我们可以在一个月内构建出闭环的医疗行业营销解决方案。
罗马不是一日建成,过去的5年里,我们也积累了一些经验和教训希望和大家一起分享:
-
平衡好业务快速迭代与技术架构治理之间的关系。业务快速迭代是非常有必要的。现在市场营销模式变化非常快,想要做出最适合客户需求的产品,就需要快速转变思路,适应市场变化,满足客户需求,这就要求我们快速做产品功能迭代产出。但同时,我们一定要给技术架构治理预留时间,即使不占很大的比例,也不能中断,因为技术架构治理是快速业务迭代的基石。打好这个基础,才能支撑更快的产品研发,业务迭代,这两者一定是相辅相成的。
-
技术架构的治理可以适时进行。不用太超前,可以等待一个合适的契机,比如我们的客户中心,就是在实现CRM和SCRM融合的时候推动实现的。我们都说脱离业务讲架构是耍流氓,其实就是希望在一个相对确定的场景下,来推动系统的进化。
-
与客户相关的技术架构治理需要优先进行。技术架构治理需要排好优先级,对于一些影响客户体验的技术架构治理,比如系统性能、系统稳定性、数据安全、数据一致性等,要尽快推动实现。否则一方面会带来很不好的客户体验导致客户流失,另一方面由此引发的次生问题也会消耗研发团队大量的时间来解决,反而影响了业务迭代的速度,得不偿失。
-
重视自动化测试的投入。业务功能越迭代越多,这意味每次新版本发布,测试团队需要回归测试的范围越来越大,到了某个节点,纯粹靠人手工测试,进度和质量都会无法保证。重视投入自动化测试,以自动化测试代替人工,测试团队才能保持高效工作,不至于日积月累,越拖越慢。
-
瞄准关键节点进行投入。历经5年研发,我们总结出来的最重要的一点就是要做有技术含量的事情,尤其是关键节点上的事情。螳螂科技从创业之初,就明确了必须要自研一些相对底层的模块,比如在线客服系统、呼叫中心系统、营销云等。这些模块在全链路智能营销解决方案中处于非常核心的位置,支撑起了全链路智能营销解决方案的骨架基石。
要做出最贴近客户业务场景、最完善的系统,就必须能够将这些环节深度融合,而这些只有自研才能实现。