著名天使投资人麦刚曾说过这样一句话:“强需求胜过好产品。”
这句话听起来简单却直指市场核心。
也许一个产品有着先进的技术含量、酷炫的功能,但没有“强需求”为出发点,就很可能失败。
举个最具代表性的例子,诺基亚直到破产那天,生产的手机质量都是最好的,只是世界不再需要它了。未能及时踏准数码时代的浪潮,是导致其破产的最大原因。
如今,在互联网时代的冲击下,人类的进化是趋于“懒惰化”的,我们想要更便捷的服务、更与自身契合的产品,从前的“强需求”已经不能满足所有人了,市场逐渐往“客制化”过渡。
什么是客制化呢
客制化顾名思义就是按照客户的需求进行产品功能灵活配置的开发以满足客户的功能诉求。产品功能灵活配置开发诉求在ToB场景中非常常见,在私有化领域更为常见,为客户提供产品功能灵活配置的能力也是提升TCE市场竞争力的重要因子。
随着TCE市场口碑的提升,TCE需要交付的客户越来越多,同时产品功能灵活配置的需求也越来越多。早期客户较少时所使用的直接通过裁剪修改代码来实现客户产品功能灵活配置化诉求的方式已经越来越力不从心,系统化工业化的产品功能灵活配置能力已成为迫切需求。从开始设计到TCE3.2交付潍坊银行,客制化系统的初版基本成形,具备支持产品功能灵活配置交付能力。经过近3年的迭代,客制化系列工具日渐成熟,覆盖了前端样式,容器配置样式及文件系统样式等多种个性化灵活场景,并作为TCE的基础支撑工具之一。
TCE客制化系统的功能及组成
客制化系统的基本功能主要包括接入支持模块,灵活项目样式出包模块,执行客制化包部署模块及生效执行模块四个大的模块,接入支持和灵活项目样式出包在内部极光客制化系统完成,部署和生效执行则在客户现场环境完成。
产品功能灵活配置化产品信息接入主要完成前端云产品信息的接入,全局信息的灵活制作,产品个性信息的灵活制作,静态资源的灵活制作及国际化等灵活样式类场景
客制化出包则主要用于生成客制化包,在生成客制化包的时候可以动态实时的对标准信息进行调整修改以满足用户需求
客制化包部署工具主要对客制化包执行部署操作,客制化包内的文件分为直接置换类和间接置换类,直接置换类的文件在执行客制化包部署期间就直接进行灵活生效,不需要专门的生效工具。间接置换类的则部署时仅仅将客制化包分发到对应的位置,需要后续的生效工具进行执行才能生效。
客制化生效工具则主要处理上述间接置换类场景。容器内的生效工具,则需要在pod重启时服务启动前做一系列的置换动作,用客制化包内的文件置换掉容器内的文件,整体思路类似于从configmap挂载到容器或者node节点挂载文件卷到容器内,所不同的是客制化包内的文件在生效时是已知的最终文件,对容器所带来的变化是可验证可预测的。文件系统内的生效工具则在部署以后会调用生效接口对文件系统对应路径内的文件做处理,如果是单文件则可能直接置换,如果是压缩包则会解压以后置换后重新打包,并更新md5值。
客制化巡检工具则主要用来确保各个位置的客制化包版本一致,处理由于特殊原因导致客制化包分发失败的场景,比如新扩容了机器,或者出现了集群内部网络错误,文件系统连接失败等导致各个位置的客制化版本不一致。当发现对应位置的客制化包较旧时则会通过巡检工具更新版本并自动执行生效工具。当然巡检工具也可以用作系统扩容场景时的自动化处理,配置调整好之后,通过巡检实现新节点的文件分发。
TCE客制化主要原理
由上节的功能和组成的介绍可以看出TCE客制化主要采用的是一个静态生成的思路来解决客户的产品功能灵活配置问题,简单来说发送到客户现场的东西,是在TCE内部生成的,内部完全掌控,这样做的一个好处是可以充分的对发往现场的东西做内部验证确保质量,同时客户现场运行的能力在内部可以轻易查到,在有问题时定位处理问题非常方便,不需要过多依赖售中同学远程到客户现场。
整体运行原理
产品功能灵活包生成原理
上述整体运行原理中我们按部署类型将文件分为直接置换类和间接置换类,直接置换类和间接置换类的文件在生成方式上又有所不同,间接置换类的文件大部分是动态生成的,直接置换类的文件既有静态覆盖的也有动态生成的。在产品功能灵活配置出包阶段覆盖类的文件通过直接上传新的即可。动态生成类的文件则需要一个合成逻辑,合成的基本原理就是采用模版的形式,客制化包主要生成方式如下
TCE客制化的价值收益
客制化系统里的一些功能点抽离出来进行产品化以后就可以输出给客户,如现有的运营端控制台接入管理就是抽离的客制化侧的前端产品接入能力并产品化以后输出给客户。同样的一些产品功能灵活配置及配置能力也可以根据客户的实际需要进行产品化输出,成功解决了业内私有云/混合云市场存在的产品标准化和客户复杂多变需求之间的矛盾。