【导读】微服务是企业应用及数据变革升级的利器,也是数字化转型及运营不可或缺的助产工具,企业云原生更离不开微服务,同时云原生的既要最大化发挥微服务的价值,也要最大化弥补微服务的缺陷。本文梳理了微服务基础设施组件、服务网格、微服务技术框架知识,并提出了框架选择建议以及微服务的缺点及难题。
1 、单体应用
传统应用系统多为单体应用、经典三层架构部署:“应用 - 数据库 - 中间件”,关于该业务领域的功能实现全部在一个软件工程中进行开发,集成发布打成一个程序包更新,其主要优点为:
( 1 )系统整体架构简洁清晰,测试、部署及运维比较简便,中小型项目开发快捷;
( 2 )资源占用较低,不需要分布式开销;
单体由于将所有功能模块耦合在一起,导致其存在如下缺点:
( 1 )系统耦合度高,容错能力低,小的问题可能导致整体的不可用;
( 2 )开发周期长、程序代码冗肿,调试复杂、启动时间慢;
( 3 ) Bug 修复成本高,每一次线上 Bug 修复需要全局替换、发布;
( 4 )扩展性差,应对高并发、高吞吐能力差;
( 5 )交付周期长,所有功能一起构建、一起部署、一起发布,代码集成复杂,出错率高;
( 6 )对于大型项目以及需求变化频次高