文档章节

实施微服务架构前,你得想明白这几件事

好雨云帮
 好雨云帮
发布于 2017/08/03 15:25
字数 1012
阅读 13
收藏 0

对于任何一家技术企业来说,敏捷性都是至关重要的。面对不断变化的技术和行业环境,如果一家公司需要花很长时间才能对变革做出反应,那么结果很可能是将市场份额拱手让给更敏捷的公司。

微服务将应用拆分成小业务单元进行开发和部署,使用轻量级协议通信,通过协同工作实现应用逻辑的架构模式,给予了应用更高的敏捷性、可伸缩性和可用性,而这也正是公司在扩大和推出新业务时所急需的。

听起来很有价值,事实上微服务架构也的确称为了众多前沿公司的可行选择,但在实施之前,你得想明白这几件事:

业务是否足够大

你的业务是否足够大,有必要让开发团队在复杂项目上分头工作?如果没有,你可能暂时并不需要微服务架构。就像Martin Fowler所说,微服务架构的生产力成本只适用于大型复杂的软件项目。

是否需要独立部署组件

如果你部署的软件项目有至少两个domain,每个domain代表完全独立的业务能力或流程,那么实施微服务架构将是一个适合的选项。这样做可以使应用的各个组件开生命周期独立开来,在更新或部署应用程序时,不会影响其他组件。此外,可以让每个组件采用不同的编码语言。当然,微服务架构同时会需求单一组件由专门的开发团队动态管理,因此你需要确保有足够的人才和预算来这么做。

团队是否有足够能力

微服务架构意味着,你需要创建专门从事某些专业领域的小型开发团队,提高新功能开发和增强竞争优势的能力。

因此团队是否成熟,是否可以实现CI/CD,是否理解DevOps?如果答案是否定的,着手建立更强大的工程师团队,或找到可以帮助补充团队能力的外部资源,例如像Heroku好雨云这样的提供开发、运维、应用交付支持的云平台。

公司的roadmap是否实际

指数级的扩张能力让一些巨头公司发展成了现在的样子。例如Airbnb,在不到10年的时间里,从床位租赁网站发展成为了300亿美元规模的数据驱动型marketplace。对于成长型公司来说敏捷十分重要,但不是所有公司都有很大的扩张需求。如果你不需要面对复杂性的问题,那么其实是没必要实施微服务架构的。

因此要对公司的发展有一个客观的判断,至少是短时间内的成长判断,最好不要让开发流程在不需要复杂的时候过于复杂。

最后,当你确定要实施微服务架构,以下几点经验值得留意:

  • 实施微服务架构后,一定要广泛使用一旦实现了微服务架构,一定要广泛使用领域驱动设计(DDD,Domain Driven Design),特别是bounded contexts
  • 对于bounded contexts的定义没有特别的规定,这取决于你使用的domain,当然一般情况下,context map是不错的选择
  • 每个微服务应代表一个业务能力的,你应该专注于把组件做好,独立于其他服务
  • 确保你的团队结构跟定制的bounded contexts保持一致。为了更好的享受微服务架构的优势,你的团队应该围绕业务能力建立,而不是建立会增加额外负担的“横向”团队

© 著作权归作者所有

共有 人打赏支持
好雨云帮
粉丝 19
博文 99
码字总数 117773
作品 1
东城
私信 提问
图解微服务架构演进

原文出处: 泥瓦匠BYSocket 前言 来自dubbo的用户手册中的一句话: 常规的垂直应用架构就相当于传统的那种,现阶段传统垂直架构改造的核心就是对应用做服务化改造,服务话改造使用的核心技术...

刘星石
2016/03/09
36
0
一个五年Java程序员的从业总结,献给还在迷茫中的你

你愿意做码农吗? 恍然间,发现自己在这个行业里已经摸爬滚打了五年了,原以为自己就凭已有的项目经验和工作经历怎么着也应该算得上是一个业内比较资历的人士了,但是今年在换工作的过程中却...

Java填坑之路
09/13
0
0
一个六年Java程序员的从业总结:比起掉发,我更怕掉队

恍然间,发现自己在这个行业里已经摸爬滚打了五、六年了,原以为自己就凭已有的项目经验和工作经历怎么着也应该算得上是一个业内比较资历的人士了,但是今年在换工作的过程中却遭到了重大的挫...

老道士
09/20
0
4
阿里巴巴前架构师 360 度无死角剖析微服务

摘要: 阿里巴巴前架构师对于微服务毫无保留的分享,360 度无死角剖析微服务 微服务是当前软件架构领域非常热门的词汇,在社区中也有很多热烈的讨论。因此,在 OSC 第 130 期高手问答中,我们...

yuanzhitang
2016/11/28
0
0
阿里巴巴前架构师 360 度无死角剖析微服务

微服务是当前软件架构领域非常热门的词汇,在社区中也有很多热烈的讨论。因此,在 OSC 第 130 期高手问答中,我们策划的主题是“究竟什么才是微服务”,并邀请了黄勇作为高手嘉宾。 黄勇,现...

OSC源创君
2016/11/09
15.5K
29

没有更多内容

加载失败,请刷新页面

加载更多

js垃圾回收机制和引起内存泄漏的操作

JS的垃圾回收机制了解吗? Js具有自动垃圾回收机制。垃圾收集器会按照固定的时间间隔周期性的执行。 JS中最常见的垃圾回收方式是标记清除。 工作原理:是当变量进入环境时,将这个变量标记为“...

Jack088
昨天
16
0
大数据教程(10.1)倒排索引建立

前面博主介绍了sql中join功能的大数据实现,本节将继续为小伙伴们分享倒排索引的建立。 一、需求 在很多项目中,我们需要对我们的文档建立索引(如:论坛帖子);我们需要记录某个词在各个文...

em_aaron
昨天
24
0
"errcode": 41001, "errmsg": "access_token missing hint: [w.ILza05728877!]"

Postman获取微信小程序码的时候报错, errcode: 41001, errmsg: access_token missing hint 查看小程序开发api指南,原来access_token是直接当作parameter的(写在url之后),scene参数一定要...

两广总督bogang
昨天
30
0
MYSQL索引

索引的作用 索引类似书籍目录,查找数据,先查找目录,定位页码 性能影响 索引能大大减少查询数据时需要扫描的数据量,提高查询速度, 避免排序和使用临时表 将随机I/O变顺序I/O 降低写速度,占用磁...

关元
昨天
13
0
撬动世界的支点——《引爆点》读书笔记2900字优秀范文

撬动世界的支点——《引爆点》读书笔记2900字优秀范文: 作者:挽弓如月。因为加入火种协会的读书活动,最近我连续阅读了两本论述流行的大作,格拉德威尔的《引爆点》和乔纳伯杰的《疯传》。...

原创小博客
昨天
34
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部