微服务系列之-微服务概念
一.为什么需要微服务。 使用传统的整体式架构(Monolithic Architecture)应用开发系统,如CRM、ERP等大型应用,随着新需求的不断增加,企业更新和修复大型整体式应用变得越来越困难; 随着移动互联网的发展,企业被迫将其应用迁移至现代化UI界面架构以便能兼容移动设备,这要求企业能实现应用功能的快速上线; 许多企业在SOA投资中得到的回报有限,SOA可以通过标准化服务接口实现能力的重用,但对于快速变化的需求,受到整体式应用的限制,有时候显得力不从心; 随着应用云化的日益普及,生于云端的应用具有与传统IT不同的技术基因和开发运维模式。 二.云计算及大量开源轻量级技术不停涌现并日渐成熟 互联网/内联网/网络更加成熟; 轻量级运行时技术的出现(node.js, WAS Liberty等); 新的方法与工具(Agile, DevOps, TDD, CI, XP, Puppet, Chef…); 新的轻量级协议(RESTful API接口, 轻量级消息机制); 简化的基础设施:操作系统虚拟化(hypervisors), 容器化(e.g. Docker), 基础设施即服务 (IaaS), 工作负载虚拟化(Kubernetes,Spark…)等; 服务平台化(PaaS): 云服务平台上具有自动缩放、工作负载管理、SLA 管理、消息机制、缓存、构建管理等各种按需使用的服务;