作为一家成立不久的互联网银行,目前行内的系统均托管在第三方。在考虑系统回迁。
请问:
1、微服务是否是互联网银行的最佳选择;
2、微服务可否分阶段部署(比如手机银行、网贷这些系统现部署),还是必须统一一次性部署。
3、在银行发展的不同阶段,部署微服务需要关注的问题(以访问量为例,在达到一个访问量范围的时候,微服务应该关注哪些问题),是否有相关的经验可供参考?
一、首先看下,目前是开发过程中否存在各痛
1、代码冲突加剧
多个人或者一个团队一起维护一个模块,共同开发。当提交代码的时候发现大量冲突,每次提测或者发版的时候需要花大量的时间来解决冲突。随着团队规模的增大以及项目复杂程度增加,代码冲突的现象越严重;
2、模块耦合严重
模块之间通过接口或者DB相互依赖,耦合越来越严重。而且不同的人,写代码的风格不一样,代码质量也不一样,上线前需要协调多个团队,任何小模块的异常都会导致整个项目发布失败;
3、项目质量下降
由于所有的代码都是在一个服务里面,做一次改动,可能会牵一发而动全身,代码冲突以及耦合严重,导致测试覆盖范围不充分,经常会出现没有更改的模块在线上突然出现问题,查询后发现是由于工程师不小心做了某种改动,但是测试用例并没有覆盖;
4、团队效率下降
由于大量时间在处理代码冲突,消耗了研发人员大量的时间;而测试人员为了提高项目质量,不得不在每次发版之前做全方位的回归测试,本身一次小的迭代结果项目时间却很长;
如果没有痛,那么就没有必要使用微服务
二、如果真的需要部署微服务,那么也是分阶段,分系统,分模块的部署实施,而非一次性全部替换;
三、如果已经是微服务阶段了,那么当系统存在性能瓶颈的时候,可以增加服务数量来解决系统的压力。