单体系统
单体顾名思义就是 所有的都集成于一体,有种海纳百川的意思但其实在技术和哲学中,大而全是必定会有不够精、臃肿的问题。
技术端的语言来讲就是把客户所有的业务模块编写在一个项目中,最终打包,然后进行部署运行
单体架构的优点:
- 部署简单: 由于是完整的结构体,可以直接部署在一个服务器上即可,对客户而言成本少
- 技术单一: 项目不需要复杂的技术栈,往往一套熟悉的技术栈就可以完成开发
- 用人成本低: 普通程序员可以完成业务接口到数据库的整个流程
单体架构的缺点:
- 系统启动慢: 一个进程包含了所有的业务逻辑,涉及到的启动模块过多,导致系统的启动,重启周期边长;
- 系统错误隔离性差: 可用性差,任何一个模块的错误可能导致整个系统的宕机;
- 可伸缩性差: 系统的扩容只能对整个应用扩容,不能做到对整个功能点进行扩容;从长远角度来讲单体系统可持续性很差;
- 线上问题修复时间长: 任何一个线上问题修复需要对整个应用系统进行全面升级;
- 开发难度低:这个点从用户角度来说,大白话的讲就是,开发人员质素要求低,如果项目比较负责未来的蓝图稍大就会导致开发公司实力不够支撑
微服务系统
微服务架构是一种将一个单一应用程序分散为多个小型服务的方法,每个服务都是独立运行相互通讯的,这些服务围绕业务能力构建并且可以独立扩容,举个例子:比如客户的系统是电商系统,单体应用会把订单、客户信息、售后、商品管理都放一起,那么一但出现个别功能的访问过多,消耗过大就不得不把整个系统进行复制做负载均衡,结构臃肿且成本支出大,而微服务可以仅对超负荷的部分进行扩容这样即达到了效果、节省了成本还容易管理;而且更重要的是,单体系统一但出现故障会是整个系统停机,而微服务则不会整体崩溃。
微服务的优点:
- 易于维护: 一个服务只关注一个特定的业务功能,所以它业务清晰,代码干净。
- 单个服务启动快: 单个服务代码量少,所以启动快;
- 局部修改易部署: 单个应用只要有修改,就得重新部署整个应用,微服务解决了这个问题。一般来说,对某个业务进行修改,只需要重新部署这个服务即可;
- 技术栈不受限:可以多种语言合并开发
- 按需收缩: 可根据需求,实现细粒度的扩展。例如,系统中的某个服务遇到了瓶颈,可以局部增加内存,升级CPU或增加节点(增加一个服务的副本)。
微服务的缺点:
- 运维要求高: 对运维和开发人员技术要求高,小型开发团队一般只能制作简单的系统,微服务体量的系统一般都是专业团队开发。
- 成本高:对于专业的开发必定会带来成本的提升,但从长远考虑微服务是主力业务系统的必选方案。
总结:
可以看到定制开发行业的区别有多大,定制开发的客户一定要根据实际情况进行合作公司的选择,价格很多时候不一定是最佳的辨别标准,有些业务系统一旦开始使用就意味着框架定型,一旦选错后面的路程将极为艰苦。魁鲸科技是一家专业的系统研发企业,我们的专业售前咨询师在合作初期就会根据您的业务需要给到您最佳的选择建议。
获取更多信息请联系售前或者关注公众号获取