最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 如何打造一个满足快速定制能力的私有化部署系统?

    正文概述 掘金(楽揚)   2021-04-22   581

    打造私有化部署系统过程中的一些和总结

    场景

    我们来看一个场景,一个『规模不大』或者『精力有限』的中小型公司,接入三方公司的效率工具,比如 IM 工具(企业微信)、文档协作系统(语雀)、问卷系统(问卷星)、绩效系统等等。三方公司提供接入的主流方式为 SASS,通过用户分级的方式(普通用户、会员用户、企业用户)售卖自身的产品,这对三方公司来说,易于统一维护。

    然而我这边举的几个例子往往关系到公司内部的敏感信息,比如高层员工间的对话、核心战略文档、eNps 调研数据、绩效信息等。这些数据如果保存在三方公司维护的服务器里,多少会有一些安全问题;此外『用户分级』的方式就像套餐,难以满足各类用户的定制需求。因此目前越来越多的三方公司支持私有化部署的方式,将自身的服务部署在客户指定的服务器上,比如企业内部机房、公有云和专有云(阿里云、华为云)。目前,我们对外提供的一款服务也遇到此类问题,当客户不满足于我们提供的『用户分级』套餐,且对『数据存储』十分敏感时,我们如何快速定制并私有化部署服务呢?

    现有问题

    直接将现有的系统,打包部署到客户指定的服务器上不就完事了?事情没有这么简单,它存在如下3个关键的问题:

    一、依赖内部环境

    在公司内部维护了多年的系统,不少能力都强依赖了内部提供的基础设施,比如 CDN、数据库、缓存服务、动态配置、用户体系等。这些基础设施可能在用户指定的服务器上不一致,甚至不存在。

    二、缺乏定制能力

    当开放用户对系统的定制能力后,现有的系统仅仅支持『用户分级』的方式,是难以支持用户『变幻莫测』的定制需求的,如何快速响应用户的定制需求,是需要全新的一套『模块组织方式』。

    三、 并行维护成本

    如果支持用户私有化部署,那么不得不面临一个这样的问题,当 N 个公司接入时,我们会同时维护 N 套系统,那涉及到一系列在多套系统之间同步 bug 和 feature 的规范、多个版本并行『开发调试构建部署』的研发流程。

    解决方法

    那么,如何打造一个满足快速定制能力的私有化部署系统呢?依旧从上述三点问题出发:

    一、摆脱依赖内部环境

    配置化

    为了摆脱对内部环境的依赖,我们需要对现有系统进行配置化改造,支持对涉及到的基础设施进行配置,这些配置可以手动写在配置文件里、可构建时生成、运行时动态修改。最终做到根据 N 份配置,即可产出针对 N 个公司的部署包。

    二、满足需求定制能力

    模块化

    抽离功能模块,通过『开关』、『配置』进行设置。那模块如何拆分和维护呢?拆分可考虑从『垂直』角度,比如『投放功能』、『个人中心』等;或者从『水平』角度,比如『登录』、『权限』等。

    三、降低并行维护成本

    系统融合

    对现存的系统进行融合,维护一个基线版本的『基础版』,这个所谓的『基础版』有两个目的:

    1. 当有新的企业需要接入时,可使用本『基础版』快速定制开发
    2. 作为所有并行系统的上游代码分支(master),下游代码分支(各企业分支)定期从该分支 pick bugfix & feature

    流程改造

    我们的服务比较特殊(参考页面搭建类服务),有负责配置的 B 端,以及由 B 端生成的 C 端页面。这样我们就有 4 个工程,每次功能开发都可能涉及到 4 个工程的开发、调试、联调、构建、发布,同时 C 端的静态资源版本和服务地址又是自身决定的。这两点无疑增加了开发人员的心智负担。

    首先,将 BC 两端的前后端各放入一个工程中维护,每次发布最大仅需要发布两次。同时 B 端既然作为配置侧,那么不仅 C 端页面本身的功能需要由 B 端决定,我们完全可以将诸如静态资源版本和服务地址这类配置也交由 B 端获取和设置。

    接着,对应用初始化、开发、调试、联调、构建、发布进行规范,规范是一种约定,为了更好地将规范落地,有必要实现一套命令行工具或页面流程作为规范的载体。更进一步,可抽象应用概念,这样所有的流程都围绕着这类应用开展; BC 两端可以是这类应用,同时拆分的模块也可以是这类应用,此时我们的所有流程都是围绕着这个应用概念,也就是说,BC 两端以及拆分出的几十甚至上百的模块都共用一套初始化、开发、调试、联调、构建、发布流程

    配置化

    此外,配置化也有助于降低并行维护成本,我们通过维护配置而不是维护各类代码逻辑。避免诸如『如果是A公司,就执行B逻辑』这类逻辑,配置更关注功能,比如 A 公司的配置开启了『B逻辑』。

    除了降低成本之外,配置化还用于应对未来的规划,由于目前所有的企业『定制需求』都是通过人工方式去组装 BC 端应用。在未来当我们接入的企业越来越多,沉淀出大量的『模块』应用之时,便可去探索如何摆脱手工组装,也即通过在线页面通过搭积木的方式组装,借助于配置化,我们的设计可以很好地满足这个需求。

    结语

    此处仅简单讨论了下一个私有化部署系统所需要的改造,步骤三中的流程改造涉及到大量前端工程化相关的能力,还需进一步展开~


    起源地下载网 » 如何打造一个满足快速定制能力的私有化部署系统?

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元