阿里的共享服务体系建设的过程和现状,和微服务典型特征不谋而合。
随着微服务理念的越来越深入人心,加上最近几年基于容器化技术docker的不断盛行。在这里基于微服务架构的典型特征逐一进行剖析,让更多计划构建微服务应用或架构的朋友能更清晰准确的看到微服务建设的本质。
微服务架构的典型特征:
- 分布式服务组成的系统
- 按照业务而不是技术来划分
- 做有生命的产品而不是项目
- 智能化服务端点与傻瓜式服务编排
- 自动化运维
- 系统容错
- 服务快速演化
从本质上来说,微服务是SOA的一种演变后的形态
但是和SOA也有明显的差异
1 分布式服务组成,意味着各个系统都将会是有多个分布式的服务组成,而不是传统SOA架构中基于中心化的ESB企业服务总线
2 按照业务而不是技术来划分组织以及做有生命的产品而不是项目,传统SOA实施的方式是以项目的方式实施,而不是以做产品的方式让服务在业务发展过程中快速演化
3 智能化服务端点与傻瓜式服务编排 更强调了能力向服务端的迁移,而不是像传统ESB的方式,将整体服务架构中的所有核心能力都运行在ESB上
4 自动化运维和系统容错 这两点则是在微服务架构建设后,对于整体服务的运维管控和平台高可用性和稳定性方面提出了更高的要求,随着Docker容器技术的不断成熟和完善,相比于虚拟机,容器技术的主要差异化优势在于,能够包装,
便于移值,为适合用途而随需创建,因此减少了资源占用空间,缩短了启动时间,具有可重复性,提高了服务器的资源利用率,更好的集成到了整个开发生态系统。所以在企业的应用达到了一定规模后,通过容器化技术,确实能大大提升运维效率,减少服务器资源的浪费。
docker实现微服务的难点:
从技术角度,docker完全有能力而且适合微服务体系中给服务提供实际运行容器以及进行部署运维的平台,但是docker本身提供的核心能力还只是在计算资源层,对于微服务架构所需的应用服务层还存在着不小的空缺
1 微服务的应用架构如何进行有效的服务管控,在分布式服务体系下,服务链路跟踪,链路分析,实时业务指标的监控等问题
2 分布式事务难题。
3 自动化运维和平台稳定性