前言
在过去的十余年里面,软件开发行业逐渐分成了两个领域,一部分是企业应用开发,为客户开发,软件要安装到企业客户自己的资源上,客户负责运维(或者通过技术支持),一部分是互联网软件,为自己开发,自己开发并运维一套软件通过网络给最终用户使用。同时,这两个领域使用的技术栈也逐渐分化,前者主要关注功能实现,标准化,易安装,易运维,后者主要关注高并发,高可用,高性能及纵向伸缩性等。
随着微服务概念的提出,这两个领域似乎又形成了一个合流,都在微服务化。这里体现在:
由于SaaS 的兴起,使得一些企业应用厂商也开始采用互联网模式,遇到用户规模的问题。同时企业应用很难纯 SaaS 化,面对大客户的时候,势必面临私有部署的问题,所以必须探索一种既能支撑用户规模,同时要能方便私有化部署的架构。为了解决这些问题,我们在即将发布的SkyForm CMP5.0产品开发上使用了微服务应用架构。
微服务介绍
微服务出现之前,有很大一部分开发商都采用单体应用开发方式,我们先看一下微服务架构和传统开发中的单体应用架构的区别。
1. 微服务与单体应用的区别
单体应用特点:代码完全共享,数据库共享,整体部署,笨重,功能紧耦合,局部修改整体更新。
1.1单体应用
单体应用
单体应用的优点:部署简单
单体应用的缺点:维护性差,伸缩性差,开发成本高,技术选型困难,资源利用率底,故障全局性
1.2微服务
微服务特点:代码分离,功能解耦,数据独立,独立部署,轻量,局部修改局部更新
微服务的优点:维护性高,伸缩性强,开发成本底,技术选