『高级篇』docker容器来说微服务优势和不足(四)

原创文章,欢迎转载。转载请注明:转载自IT人故事会,谢谢!

原文链接地址:『高级篇』docker容器来说微服务优势和不足(四)

来看看微服务有哪些优势和不足。

优势

  • 独立性从构建部署,扩容收容,容错,数据库都是单独管理的。每个服务之间都是单独管理。一个微服务出现问题,只会影响他自己。并不会影响整个服务。每个都独立的数据库。
  • 敏捷性对于使用者来说微服务暴露的接口相对简单,因为他们的功能都很单一,清晰的api,同时也可以很快的应对变化,针对新需求很快的找到需要修改的微服务,去修改就可以。
  • 技术栈灵活api接口不变就可以了,服务重构。
  • 高效团队每个团队只负责自己的微服务,做些架构调整,架构变化,几个人开个小会就可以了。

不足

没有最好的架构,只有最适合的。

  • 额外的工作服务的拆分,其实服务的拆分是一门非常深的学问。
  • 数据的一致性单体一个数据库,很容易做到一致性,微服务都有自己的服务,虽然我们在微服务尽量减少连表操作,尽量在同一个微服务,也难免出现这样或者那样的关联关系。
  • 沟通成本api的改变,单体架构中,想改一个接口可以将调用这个接口的地方顺便改掉,但是在微服务中,你想改的地方不是你负责,推动其他人其他组来修改。如果其他人或者其他组比较多的沟通成本就很明白了。

了解DDD(领域驱动设计)

  • 软件开发 VS DDD一般软件设计或者说软件开发分两种:瀑布式,敏捷式。
  • 前者一般是项目经理经过大量的业务分析后,会基于现有需求整理出一个基本模型,再将结果传递给开发人员,这就是开发人员的需求文档,他们只需要照此开发便是。这种模式下,是很难频繁的从用户那里得到反馈,因此在前期分析时就已经默认了这个业务模型是正确的,那么结果可想而之,数月甚至数年后交付的时候,必然和客户的预期差距较大。
  • 后者在此基础上进行了改进,它也需要大量的分析,范围会设计到更精细的业务模块,它是小步迭代,周期性交付,那么获取客户的反馈也就比较频繁和及时。可敏捷也不能够将业务中的方方面面都考虑到,并且敏捷是拥抱变化的,大量的需求或者业务模型变更必将带来不小的维护成本,同时,对人(Developer)的要求也必然会更高。
  • DDD则不同:它像是更小粒度的迭代设计,它的最小单元是领域模型(Domain Model),所谓领域模型就是能够精确反映领域中某一知识元素的载体,这种知识的获取需要通过与领域专家(Domain Expert)进行频繁的沟通才能将专业知识转化为领域模型。领域模型无关技术,具有高度的业务抽象性,它能够精确的描述领域中的知识体系;同时它也是独立的,我们还需要学会如何让它具有表达性,让模型彼此之间建立关系,形成完整的领域架构。通常我们可以用象形图或一种通用的语言(Ubiquitous Language)去描述它们之间的关系。在此之上,我们就可以进行领域中的代码设计(Domain Code Design)。如果将软件设计比做是造一座房子,那么领域代码设计就好比是贴壁纸。前者已经将房子的蓝图框架规划好,而后者只是一个小部分的设计:如果墙纸贴错了,我们可以重来,可如果房子结构设计错了,那可就悲剧了。

PS:微服务的要求是分析的足够小的颗粒,项目分析的透彻。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏技术翻译

7个强大的聊天机器人搭建平台

FB Messenger,Kik,Slack,Telegram和WeChat是一些流行的聊天机器人发布平台。

4222
来自专栏奇点大数据

资源!吴恩达视频文字版及笔记整理

不过,这种视频在线课程也有其弊端,就跟很多人不喜欢微信语音一样,想要在视频中查找和回顾相关的知识点并不方便。

1561
来自专栏Java架构

高并发风控技术解密(上)

风控在任何一个公司都是比较神秘的存在,不仅线上很少分享,从安全角度讲也很少对外披露它的架构及设计。本人将就参与的风控建设谈谈风控的技术。(本文来源于本人内部分享...

2966
来自专栏软件测试经验与教训

面试思路分享

现状:百分之九十的人只能答出等价类和边界值。只有少数人可以讲出其它测试用例设计方法,但深入问,从没有一个人能有令人满意的回答。

1391
来自专栏资深Tester

你所不知道的软件测试七项原则

2254
来自专栏DevOps时代的专栏

DevOps 三步工作法之持续反馈的技术与案例

导言 很高兴参与DevOps时代社区的拆书联盟第一季活动,有幸能与几位DevOps大牛一起解读《DevOps Handbook》一书,这本书作者牛,内容也很牛,...

2827
来自专栏软件测试经验与教训

如何管理测试项目?(一)

2909
来自专栏ThoughtWorks

一个遗留系统自动化测试的七年之痒|TW洞见

今日洞见 文章作者、图片来自ThoughtWorks:胡志芳。封面图片来自网络。 本文所有内容,包括文字、图片和音视频资料,版权均属ThoughtWorks公司...

3488
来自专栏理论坞

您有一份礼物, 请查收

一个关于理论的库, [坞]是小港湾, 储存的意思; 英文叫 Theorywood , 简称 TW ( 理解成台湾可以嘛? ) 理论坞——打造你自己的理论库

1374
来自专栏程序你好

符合架构的测试

911

扫码关注云+社区

领取腾讯云代金券