单体式应用向微服务架构迁移实践经验
2015-12-31 00:00
627 查看
摘要: 单体式应用向微服务架构迁移实践经验
1、这些都是推动微服务诞生的重要因素
2、领域驱动设计指导我们如何分析并模型化复杂的业务
3、敏捷方法论帮助我们消除浪费,快速反馈;
4、持续交付促使我们构建更快、更可靠、更频繁的软件部署和交付能力;
5、虚拟化和基础设施自动化( Infrastructure As Code)则帮助我们简化环境的创建、安装;
6、DevOps文化的流行以及特性团队的出现,使得小团队更加全功能化
独立测试与部署
单块架构系统运行在一个进程中,因此系统中任何程序的改变,都需要对整个系统重新测试并部署。 而对于微服务架构而言,不同服务之间的打包、测试或者部署等,与其它服务都是完全独立的。对某个服务所做的改动,只需要关注该服务本身。从这个角度来说,使用微服务后,代码修改、测试、打包以及部署的成本和风险都比单块架构系统降低很多。
按需伸缩
单块架构系统由于单进程的局限性,水平扩展时只能基于整个系统进行扩展,无法针对某一个功能模块按需扩展。 而服务架构则可以完美地解决伸缩性的扩展问题。系统可以根据需要,实施细粒度的自由扩展。
错误隔离性
微服务架构同时也能提升故障的隔离性。例如,如果某个服务的内存泄露,只会影响自己,其他服务能够继续正常地工作。与之形成对比的是,单块架构中如果有一个不合格的组件发生异常,有可能会拖垮整个系统。
团队全功能化
康威定律(Conway’s law)指出:一个组织的设计成果,其结构往往对应于这个组织中的沟通结构(organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations)。传统的开发模式在分工时往往以技术为单位,比如UI团队、服务端团队和数据库团队,这样的分工可能会导致任何功能上的改变都需要跨团队沟通和协调。而微服务则倡导围绕服务来分工,团队需要具备服务设计、开发、测试到部署所需的所有技能。
1、这些都是推动微服务诞生的重要因素
2、领域驱动设计指导我们如何分析并模型化复杂的业务
3、敏捷方法论帮助我们消除浪费,快速反馈;
4、持续交付促使我们构建更快、更可靠、更频繁的软件部署和交付能力;
5、虚拟化和基础设施自动化( Infrastructure As Code)则帮助我们简化环境的创建、安装;
6、DevOps文化的流行以及特性团队的出现,使得小团队更加全功能化
独立测试与部署
单块架构系统运行在一个进程中,因此系统中任何程序的改变,都需要对整个系统重新测试并部署。 而对于微服务架构而言,不同服务之间的打包、测试或者部署等,与其它服务都是完全独立的。对某个服务所做的改动,只需要关注该服务本身。从这个角度来说,使用微服务后,代码修改、测试、打包以及部署的成本和风险都比单块架构系统降低很多。
按需伸缩
单块架构系统由于单进程的局限性,水平扩展时只能基于整个系统进行扩展,无法针对某一个功能模块按需扩展。 而服务架构则可以完美地解决伸缩性的扩展问题。系统可以根据需要,实施细粒度的自由扩展。
错误隔离性
微服务架构同时也能提升故障的隔离性。例如,如果某个服务的内存泄露,只会影响自己,其他服务能够继续正常地工作。与之形成对比的是,单块架构中如果有一个不合格的组件发生异常,有可能会拖垮整个系统。
团队全功能化
康威定律(Conway’s law)指出:一个组织的设计成果,其结构往往对应于这个组织中的沟通结构(organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations)。传统的开发模式在分工时往往以技术为单位,比如UI团队、服务端团队和数据库团队,这样的分工可能会导致任何功能上的改变都需要跨团队沟通和协调。而微服务则倡导围绕服务来分工,团队需要具备服务设计、开发、测试到部署所需的所有技能。
相关文章推荐
- 【开源】.net 分布式架构之分布式缓存中间件
- mycncart使用教程 - 如何修改网站后台用户名密码
- USB设备架构
- 猿题库 iOS 客户端架构设计
- 架构设计:系统间通信(18)——服务治理与Dubbo 下篇(继续分析)
- 【精品资源】mobile微商城、webAPP手机网站、基于HTML5+CSS3移动端web开发!!!
- 技术架构选型
- 三层架构
- 浅谈三层架构与MVC模式的区别
- 素材类网站 (欢迎补充)
- 安卓项目网站分享
- 分享几个有用的网站
- 网站建设笔记
- Android图片缓存架构
- Axure RP7.0制作网站后台管理系统模板(一)
- 餐饮生鲜外送-高并发架构设计
- 关于旅游网站 建站的布局心得
- [原创]测试架构师是做什么的?
- 数据交换平台的架构设计
- Android架构须知