微服务时代,微服务可靠性之系统可信,如何让系统可信

什么是微服务的可靠性

在微服务框架中,各个服务间进行通信时,网络闪断、网络超时、通信对端宕机等故障时有发生,为了保证异常场景下系统的可用性,通信框架必须具备很高的可靠性,在某一故障或多个故障产后能够继续保证系统的正常运行,这样的系统就被称为可靠的系统

微服务时代,微服务可靠性之系统可信,如何让系统可信

系统自身可靠性

微服务系统可靠性一般是指在一段时间内,多次执行相同的流程,能够达到预期结果,不会出现逻辑上的偏差。借鉴研发语言中常用的一句话就是,线程安全。这个系统是安全的。如何保证系统安全呢?接下来主要从以下四个角度来阐述。

微服务时代,微服务可靠性之系统可信,如何让系统可信

一、系统的架构设计安全

一个好的系统,离不开一个好的系统架构师。

当架构师清楚明白被开发的系统需求之后,就可以进行系统的架构设计了。当然,系统的架构设计不同于系统的代码编写,架构设计是不需要遵循严格的语法和编程规范。它也没有规范可以遵循,只是遵照于设计系统架构人的经验以及所掌握的知识来进行设计。只要设计出符合系统运行的标准即可。因此,同一个架构师设计的两套系统有可能就会有偏差,以及不同的两个架构师设计相同的系统,最后结果也不一样。

微服务时代,微服务可靠性之系统可信,如何让系统可信

系统设计一般使用模型图,模型图是让别人理解你设计系统的一个直观展示,用来辅助研发和技术人员进行的一个系统评估以及技术选型。另外模型图也是给客户或投资人展示系统成果的草图。

因此架构设计师在进行系统架构设计时,需要从系统的不同维度进行设计,以满足系统相关干系人理解系统架构的需求。架构设计模型主要有逻辑架构、开发架构、数据架构、物理架构和运行架构五种模型图。

微服务时代,微服务可靠性之系统可信,如何让系统可信

一般在系统诞生之初,我们架构师主要设计的是开发架构和数据架构。

  1. 开发架构设计:主要是系统用什么语言开发,比如前端用什么框架,后端用什么框架。针对微服务来说,前端的只负责一个数据的展示,因此前端的选择非常多,只需要找到符合本系统的业务即可。最主要的还是后台框架的技术选型。比如使用JAVA语言进行后端开发,那么后端使用目前热门的SpringBoot,然后再加上一些常用的第三依赖即可,使用Python进行后端开发,那么常用的后端框架比如Django等等。
  2. 数据架构设计:主要根据系统的数据量,数据结构等选择数据存储器。比如数据量一些测试系统,因为在测试过程中会产生大量的测试数据,如果测试数据格式一定,我建议选择pgsql。当然并不是说oracle,mysql不好,这需要根据系统的需求类型进行数据库筛选,另外非关系数据库,redis在目前所有系统来说都有使用到,比如账户的存储,还有就是MongoDB 等等。在这个阶段我们称之为数据库选型。当我们选择选择好系统所用的数据库之后,我们需要进行系统的表设计,安全设计等等,具体的数据库设计我用下面的一张图来展示。供大家参考。通过这样的方式来保证系统的架构设计安全。
微服务时代,微服务可靠性之系统可信,如何让系统可信

二、依赖第三方包的选择

当系统架构设计完成之后,我们就完成了系统的基本骨架,需要给骨架填充肉的时候,我们会在业务中多多少少的使用第三方包来进行业务开发,提升我们系统开发速度。那么第三方包的选择尤为重要。

  1. 三方库技术是否安全,这一点其实很好确认。因为我们常用的第三方开源软件,比如gson,jfast,log4j等等,这些常用的有人维护的第三方包,我们可以关注它相应官网或社区的动向。相比较而言,常用的第三方库还是比较安全。还有一些需要我们付费的第三方库,因为是买的,所以会有专业的团队进行维护,我们也不用太担心。如果他们的库出现技术安全,他们也会第一时间进行维护和通知进行升级。
  2. 三方库开源协议。其实有很多开源协议,比如BSD,AL2.0,GPL,LGPL,MIT。作为系统的设计者,需要熟悉这些常见的协议,因为有一些协议是不允许商业使用。比如我们非常熟悉的GPL。如果我们使用了一些三方库,这会给我们的系统研发公司背上官司。

微服务时代,微服务可靠性之系统可信,如何让系统可信

常见的开源协议及描述

三、系统代码研发安全

  1. 研发人员的技术水平会决定代码是否安全,比如一些隐蔽的逻辑性错误。这个是可以规避的,只需要Code Review人员多多注意即可解决这一隐患Bug
  2. 开发需求时,业务场景未覆盖完全,作为一个研发人员,很容易进入到自己的模式当中,如果某一个业务逻辑只考虑到部分结果,未覆盖到所有适用的业务场景,就会导致系统不安全。这个如果测试测到了这一业务场景,那么在系统诞生之初就解决了。如果测试没有测出,那么这个系统就属于不安全的系统。
  3. 修改Bug时未考虑到所有的业务场景,或者是修改Bug没有修改全,修改正确,那么也会导致系统不安全。这一点其实在一些老的系统当中经常会出现,很多时候一些维护人员修改Bug会产生无数个Bug。这就是典型的业务场景未考虑周全。解决这一问题必须要修改人员完全的熟悉整个系统的各个模块,以及各个模块之间的关联。
微服务时代,微服务可靠性之系统可信,如何让系统可信

四、信息安全

在互联网高速发展的今天,信息安全显得尤为重要。比如员工的保密系统没有做好,泄露了正在开发的系统,那么会导致整个团队乃至公司经济遭受损失。这里也要提一下第三方库的信息安全,就是上面介绍的各种第三方开源协议。如果在你的商业系统中运用了某些不可商业的第三方库,那么也有机会被裁决。

微服务时代,微服务可靠性之系统可信,如何让系统可信

总结

要做一款可靠的系统可能远远不止上面介绍的部分,我只是抽出了部分比较重要的信息跟大家分享,希望能给大家带来收获。

下一篇我将给大家分享微服务环境可靠,如何验证环境可靠的方法以及思路。

敬畏知识,尊重版权,我是蜜蜂,我爱编程

声明:本文由会火号官方原创,如若转载,请注明出处:https://www.huihuohao.com/s/2427.html

发表评论

登录后才能评论