微服务架构——什么是微服务?
日期: 2018-05-10 分类: 个人收藏 393次阅读
解析微服务架构系列文章将分几篇描述微服务的定义、特点、应用场景、企业集成架构的演进以及微服务转型思路和技术决策考虑等内容,并以IBM技术为例介绍如何实现微服务架构转型。
为什么需要微服务架构
“微服务”架构是近期软件应用领域非常热门的概念。让我们先来看看传统IT架构面临的一些问题:
使用传统的整体式架构(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 管理、消息机制、缓存、构建管理等各种按需使用的服务;
新的可替代数据持久化模型:如NoSQL, MapReduce, BASE, CQRS等;
标准化代码管理:如Github等。
这一切都催生了新的架构设计风格 – 微服务架构的出现。
什么是微服务
微服务是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。
微服务的概念源于2014年3月Martin Fowler所写的一篇文章“Microservices”( 除特别声明,本站所有文章均为原创,如需转载请以超级链接形式注明出处:SmartCat's Blog
标签:架构
精华推荐