文档章节

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

好雨云帮
 好雨云帮
发布于 2017/08/03 15:25
字数 1012
阅读 13
收藏 0
点赞 0
评论 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保持一致。为了更好的享受微服务架构的优势,你的团队应该围绕业务能力建立,而不是建立会增加额外负担的“横向”团队

© 著作权归作者所有

共有 人打赏支持
好雨云帮
粉丝 14
博文 74
码字总数 77251
作品 1
东城
图解微服务架构演进

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

刘星石
2016/03/09
36
0
阿里巴巴前架构师 360 度无死角剖析微服务

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

OSC源创君
2016/11/09
15.5K
29
阿里巴巴前架构师 360 度无死角剖析微服务

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

yuanzhitang
2016/11/28
0
0
业务初期野蛮生长阶段,微服务化比较麻烦

谈谈后端业务系统的微服务化改造 本文所提倡的微服务,是结合作者所在team自身业务特点来说的,适合自身的场景,是建立在团队人员素质到了,有成熟的基础设施和框架、中间件辅助,流程也规范...

wangtaotao
2017/09/23
0
0
细说微服务架构的优势与不足那点事

摘要:  一个微服务一般完成某个特定的功能,比如下单管理、客户管理等等。每一个微服务都是微型六角形应用,都有自己的业务逻辑和适配器。一些微服务还 会发布API给其它微服务和应用客户端使...

qq593e3b758e013
2017/06/12
0
0
从单体架构迁移到微服务,8个关键的思考、实践和经验

随着微服务架构的持续火热,网络上针对微服务和单体架构的讨论也是越来越多。去年的时候,社区更多的关注点是在二者的区别以及优缺点辨析上,而今年,越来越多的人开始关注如何从单体架构迁移...

夕水溪下
2016/09/20
319
0
微服务2017年度报告出炉:4大客户画像,15%传统企业已领跑

0 1 驱动因素 微服务架构具有明显的好处,尤其是在应对复杂业务系统的多变需求方面。在本次调研企业中,每个月都要进行业务系统更新的比例占63%,只有不到20%的企业半年以上更新一次系统。 ...

数人云
01/12
0
0
细说微服务架构的优势与不足这点事

微服务正在博客、社交媒体讨论组和会议演讲中获得越来越多的关注,在Gartner的2014 Hype Cycle上它的排名非常靠前。同时,软件社区中也有不少持怀疑论者,认为微服务不是什么新东西。Naysaye...

qq592fbb5b34ad7
2017/06/07
0
0
9月成都&重庆源创会报名启动,新兴实用技术一网打尽

转眼到了九月,伴随着赵雷“在成都的街头走一走,走到玉林路的尽头,坐在小酒馆的门口”的歌声,OSC 源创会又将和成都重庆的小伙伴们来一场重逢。 9月23日成都源创会报名及详情请点击:https...

王练
2017/09/04
4K
15
年终盘点篇:2017年度微服务调查报告出炉

  【IT168 调查报告】如果在诸多热门云计算技术中,诸如容器、微服务、DevOps、OpenStack 等,找出一个最火的方向,那么非微服务莫属。尽管话题炙手可热,但对传统行业来说,微服务落地和方...

it168网站
01/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

20位活跃在Github上的国内技术大牛 leij 何小鹏 亚信

本文列举了20位在Github上非常活跃的国内大牛,看看其中是不是很多熟悉的面孔? 1. lifesinger(玉伯) Github主页: https://github.com/lifesinger 微博:@ 玉伯也叫射雕 玉伯(王保平),...

海博1600
6分钟前
0
0
高性能服务器本质论

一 服务器分类 从软件性能角度,高性能服务器分:cpu密集型服务器/IO密集型服务器 (1)CPU密集型:该类服务器没有对io的访问/没有同步点,性能瓶颈在于对cpu的充分利用。 典型的如转发服务器/...

码代码的小司机
7分钟前
0
0
Mybatis收集配置

一、Mybatis取Clob数据 1、Mapper.xml配置 <resultMap type="com.test.User" id="user"> <result column="id" property="id"/> <result column="json_data" property="jsonData" ......

星痕2018
32分钟前
0
0
centos7设置以多用户模式启动

1、旧版本linux系统修改inittab文件,在新版本执行vi /etc/inittab 会有以下提示 # inittab is no longer used when using systemd. # # ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON......

haha360
今天
0
0
OSChina 周日乱弹 —— 局长:怕你不爱我

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @ andonny :分享周二珂的单曲《孤独她呀》 《孤独她呀》- 周二珂 手机党少年们想听歌,请使劲儿戳(这里) @孤星闵月 :没事干,看一遍红楼梦...

小小编辑
今天
181
9
Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式 Factory工厂模式 Singleton单例模式 Delegate委派模式 Strategy策略模式 Prototype原型模式 Template模板模式 Spring5 beans 接口实例化 代理Bean操作 ...

小致dad
今天
0
0
SpringBoot | 第十章:Swagger2的集成和使用

前言 前一章节介绍了mybatisPlus的集成和简单使用,本章节开始接着上一章节的用户表,进行Swagger2的集成。现在都奉行前后端分离开发和微服务大行其道,分微服务及前后端分离后,前后端开发的...

oKong
今天
11
0
Python 最小二乘法 拟合 二次曲线

Python 二次拟合 随机生成数据,并且加上噪声干扰 构造需要拟合的函数形式,使用最小二乘法进行拟合 输出拟合后的参数 将拟合后的函数与原始数据绘图后进行对比 import numpy as npimport...

阿豪boy
今天
17
0
云拿 无人便利店

附近(上海市-航南路)开了家无人便利店.特意进去体验了一下.下面把自己看到的跟大家分享下. 经得现场工作人员同意后拍了几张照片.从外面看是这样.店门口的指导里强调:不要一次扫码多个人进入....

周翔
昨天
1
0
Java设计模式学习之工厂模式

在Java(或者叫做面向对象语言)的世界中,工厂模式被广泛应用于项目中,也许你并没有听说过,不过也许你已经在使用了。 简单来说,工厂模式的出现源于增加程序序的可扩展性,降低耦合度。之...

路小磊
昨天
251
1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部