微服务 spring boot 译<二>

Microservices for Java Developers

What Can You Expect from This Book?git

本书面向对开发微服务感兴趣的Java开发人员和架构师。咱们开始从高层的结构来介绍微服务,须要准备哪些功能设施来成功的部署微服务。不幸的是,仅仅使用新技术并不能完美地解决分布式系统的问题。咱们来看看其中的一些例子,以及成功的公司如何为微服务所作的工做,包括文化、组织结构和市场保证。而后,咱们深刻研究了几个用于实现微服务的Java框架。随附的源代码仓库能够在GitHub(https://github.com/redhat-developer/microservices-by-example-source)上找到。一旦咱们在微服务中脏了手,咱们将回到空中,讨论有关部署、集群、failover 和  与 Kubernetes如何在这些领域提供解决方案的问题。而后,咱们将经过Docker、Kubernetes和netflixOSS的一些亲身体验的例子来展现它们为云原生微服务体系结构带来的强大功能。咱们结束了对主题的想法,没法涵盖在这本小书中,但一样重要的,如配置,日志,和连续交付。github

微服务不只仅是一种技术上的讨论。微服务的实施植根于复杂适应理论、服务设计、技术进化、领域驱动设计、依赖思惟、承诺理论等背景。他们都汇集在一块儿,让一个组织的人真正展示敏捷,响应,学习行为,在一个快速发展的商业世界保持竞争力,让咱们仔细看看。编程

You Work for a Software Company服务器

软件真的在吞噬世界。企业正慢慢开始意识到这一点,这一现象有两个主要驱动因素:经过高质量的服务提供价值,以及技术的快速商业化。这本书主要是以一个动手,按例格式驱动。可是,在咱们深刻研究这项技术以前,咱们须要正确地安排好舞台,了解发挥做用的各类力量。近年来,咱们一直在不厌其烦地谈论如何使企业变得灵活,但咱们须要充分理解这意味着什么。否则的话,这不过是你们都在掩饰的陈词滥调罢了。网络

The Value of Service架构

100多年来,咱们的商业市场一直致力于提高产品质量,并推进消费者购买这些产品:办公桌、微波炉、汽车、鞋子等等。这种“生产者主导的”经济背后的想法来自亨利福特的想法,“若是你能以低成本生产大量的产品,市场将几乎是无限的。”要作到这一点,你还须要一些单向渠道,直接面向大众,说服他们,他们须要这些产品,他们的生活会变得更好。在20世纪的大部分时间里,这些单向渠道以电视广告、报纸杂志广告和高速公路广告牌的形式存在。然而,这种以生产者为主导的经济已经被颠覆了,由于市场已经被产品彻底饱和了(你须要多少部手机/汽车/电视?)。此外,互联网和社交网络正在改变企业与消费者互动的方式(或者更重要的是,消费者与消费者互动的方式)。框架

做为消费者,社交网络使咱们可以更自由地与彼此和与咱们作生意的公司分享信息。咱们对朋友、家人和其余人的信任超过了咱们对市场营销部门的信任。这就是为何咱们在社交媒体上选择餐馆、酒店和航空公司的缘由。咱们以评论、推特、股票等形式提供的正面反馈,能够对公司的品牌产生正面的支持,而咱们的负面反馈也能够很容易地、很是容易地给出正面的反馈,迅速摧毁一个品牌。现在,企业和消费者之间存在着史无前例的强大的双向信息流,企业很难跟上不拥有本身品牌的影响。编程语言

现代工业企业正在学习,他们必须培养他们与客户的关系(使用双向沟通),以理解如何为他们带来价值。公司经过服务、客户体验和反馈提供持续的对话来作到这一点。客户根据哪一种服务带来的价值和良好的体验来选择使用哪一种服务和支付哪一种服务。以Uber为例,它自己不拥有任何库存,也不销售产品。我坐在别人的车里没有任何价值,但一般我是想找个有价值的地方(好比商务会议)。经过这种方式,优步和我经过使用它的服务创造了价值。展望将来,企业须要专一于为消费者提供有价值的服务,而技术将经过数字服务推进这些服务。分布式

Commoditization of Technology微服务

技术经历了一个相似于经济、生物学和法律的从繁荣到萧条的周期。它带来了巨大的创新,好比蒸汽机、电话和电脑。然而,在咱们竞争激烈的市场中,改变游戏规则的创新须要大量的投资和积累,才能迅速从各自的市场中获利。这带来了更多的竞争、更大的产能和不断降低的价格,最终使一度创新的技术成为一种商品。在这些商品上,咱们继续创新和差别化,周期也在继续。这种商品化把咱们从大型机将我的电脑变成咱们如今所称的“云计算”,这是一项为咱们带来商品计算的服务,几乎没有前期的资本支出。在云计算之上,咱们正在以数字服务的形式带来新的创新。

 


开源也是技术领域的领头羊。按照商品化的曲线,开源是开发者能够挑战专有供应商的地方,他们能够经过构建和创新那些曾经只提供(没有提供源代码)且许可证成本很高的软件。这促使社区构建诸如操做系统(Linux)、编程语言(GO)、消息队列(ApacheActiveMQ)和Web服务器(Httpd)之类的东西。即便是最初拒绝开放源码的公司也开始经过开源他们的技术并为现有社区作出贡献。随着开源和开放生态系统成为规范,咱们开始看到许多软件技术创新直接来自开源社区(例如ApacheSPark、Docker和Kubernetes)。

Disruption

这两个因素的结合,即服务设计和技术发展,正在下降任何有良好想法的人开始试验和尝试创建新服务的进入门槛。您能够学习编程、使用高级框架和利用随需应变计算。你能够在社交网站、博客上发表文章,并免费与潜在用户进行双向对话。随着咱们商业市场的流动性,任何一家周末以上的初创企业均可能让一家传统公司破产。

这一事实令大多数首席信息官和首席执行官感到惧怕。随着软件迅速成为公司构建数字服务、体验和差别化的机制,许多公司意识到它们必须成为各自垂直领域的软件公司。大规模外包和将IT视为商品或成本中心的时代已经一去不复返了。为了让公司保持真正的竞争力,他们必须接受软件做为一个不同凡响的东西,为了作到这一点,他们必须拥抱组织的敏捷性。

Embrace Organization Agility

20世纪工业时代的公司并非为了敏捷而创建的。它们的创建是为了最大限度地提升效率,减小过程当中的可变性,消除工人的创造性思惟,并像组织装配线同样将工人放入箱内。它们就像一台机器,用来接收输入,应用一个高度调整的过程,并建立输出。它们采用自上而下的分层管理结构,以便于这种机器式的思考。更换机器须要18个月的计划周期。来自边缘的信息要通过多层管理和翻译才能到达顶层,在那里做出决策并将其传回。这种组织方法在建立产品和试图从流程中获取每一点效率时很是有效,但不适用于交付服务。

客户不适合放在盒子里或过程上。他们想何时来就何时来。他们想要的是客户服务,而不是自动电话系统。他们要菜单上没有的东西。他们须要输入一些表格上没有的内容。顾客想要方便的服务,若是他们必须等待的话,他们会生气的。

这意味着咱们面向客户的服务须要考虑可变性。他们须要可以对意外事件作出反应,这与效率不符。客户但愿经过您为他们提供的服务进行对话,若是该服务不足以解决他们的需求,您须要快速的反馈,说明是什么帮助解决了他们的需求或阻碍了他们。这个反馈能够被服务的维护人员用来快速地调整服务和改变交互模型,以更好地适应用户。你不能等待决策浮出水面,并贯穿18个月的计划周期;你须要快速作出决定,你的信息在你的业务的边缘。您须要自主的、目标驱动的、自我组织的团队,他们负责向他们的客户(付费客户、业务合做伙伴、同行团队等)提供引人注目的体验。快速反馈周期、自主团队、共同目标和对话是组织必须接受的先决条件,以便可以在后工业化、未知、未知的业务干扰中导航和生存。

没有一本关于微型服务的书是完整的,除非引用康韦的定律:“设计系统的组织...必须产生复制这些组织的通讯结构的设计。”

要构建敏捷软件系统,咱们必须从构建敏捷组织结构开始。这种结构将简化咱们提供微服务所需的前提条件,可是咱们使用什么技术呢?构建分布式系统很困难,在接下来的部分中,咱们将研究在构建和设计这些服务时必须牢记的问题。

 

原文:

做者源码:https://github.com/redhat-developer/microservices-by-example-source

相关文章
相关标签/搜索