一目了然认识微服务

作者: TalkingData | 来源:发表于2018-04-08 18:32 被阅读4次

作者:Mac Slocum

原文:https://www.oreilly.com/ideas/a-quick-and-simple-definition-of-microservices

译者:TalkingData架构师 曾晓春

本译文禁止商用,转载请注明来源!

对微服务感兴趣?

那这篇文章正适合您。它涵盖了微服务的一些基本知识:微服务是什么,微服务如何工作,以及在实现微服务之前需要牢记的事情。

微服务的特点

Sam Newman在《构建微服务》一书中提供了微服务的简洁定义:“微服务是一起工作的小型自治服务。”

《微服务架构》一书的作者Mike Amundsen、Irakli Nadareishvili、Ronnie Mitra和Matt McLarty通过分析微服务应用程序的通用特性,为微服务的定义添加了细节:

体积小

消息驱动

受上下文限制

自主开发

可独立部署

分散

通过自动化流程构建和发布

微服务应该很小

微服务应该很小。但是多小?这里有一些指导原则。

帮助我们回答“多小”的一个重要因素,是服务如何与团队结构保持一致。如果代码库太大而无法由一个小团队管理,那么明智的做法应该是想办法分解代码。

当谈到小到足够小时,从这些条件来思考:服务越小,越能够最大化微服务架构的优点和缺点。随着服务变得越来越小,相互依存关系的好处就会增加。但是,由于拥有越来越多的移动部件而产生的一些复杂性也同样增加。随着在处理这种复杂性方面做得更好,开发者可以争取更小的服务。(来自《构建微服务》)

微服务是单系统的替代品

大型和集中式系统可能会带来很多挑战。微服务架构是一种可与现代开发实践保持一致的替代办法。

随着我们编写代码添加新功能,代码库会不断增加。随着时间的推移,由于代码库过于庞大,可能很难定位到需要进行更改的地方。尽管力求清晰的、模块化的代码库,但这些进程间的边界往往会崩溃。与类似功能相关的代码开始遍布全局,让修复bug或实现变得更加困难。

微服务将我们的服务边界集中在业务边界上,使得代码在某个特定功能块的生存位置变得明显。通过将这项服务集中在一个明确的边界上,我们避免了它的增长过大的诱惑,以及所有可能带来的相关困难。(来自《构建微服务》)

微服务意味着自治

独立性是微服务的一个重要方面,因此在考虑微服务体系结构时请记住以下几点。

微服务需要能够彼此独立地进行更改,并且可以自行部署而不需要消费者进行更改。我们需要考虑我们的服务应该暴露什么,以及他们应该允许隐藏什么。

黄金法则:无需更改任何其他服务,即可对服务进行更改并自行部署吗?如果答案是“否”,那么微服务的许多优点将很难实现。(来自《构建微服务》)

微服务需要有取有舍

确保你在进入微服务时保持警觉。这里有一些需要你做出取舍的地方。

在微服务架构中,服务往往变得更简单,但架构往往变得更加复杂。这种复杂性通常通过工具、自动化和流程进行管理。

最终,你必须接受这样一个现实:微服务系统的控制和管理比其他架构类型更加昂贵。对于许多组织来说,因为对增加系统可变性的需要,使得这样的成本支出是合理的。但是,如果您认为回报没有充分超过收益,那么这在您的组织中可能不是构建软件的最佳方式。(来自《微服务架构》)

了解有关微服务的更多信息

准备进入微服务的下一步?看看这些资源。

《构建微服务》(https://www.safaribooksonline.com/library/view/building-microservices/9781491950340):全面了解系统架构师和管理员在构建、管理和发展微服务架构时必须考虑的主题。

《微服务架构》(https://www.safaribooksonline.com/library/view/microservice-architecture/9781491956328):了解如何把微服务架构风格建筑系统的优势,并从别人的经验中学习采取最成功执行这种方法。

《生产就绪的微服务》(https://www.safaribooksonline.com/library/view/production-ready-microservices/9781491965962):了解如何设计稳定、可靠、可扩展、容错、高性能、可监控、可记录和准备应对任何灾难的微服务。

事件驱动的微服务(https://www.safaribooksonline.com/library/view/event-driven-microservices/9781491944165) - 软件开发人员和架构师转而使用微服务来提高开发工作的敏捷性和速度。但这是否正确?本视频提供了微服务的优点和缺点的平衡视图。

如何快速定位微服务的陷阱(https://www.safaribooksonline.com/case-studies/microservices/how-fastly-navigates-microserv/9781491991336-video307653) - 本案例研究涵盖了构建、测试和部署功能微服务体系结构的经验教训。

相关文章

  • 一目了然认识微服务

    作者:Mac Slocum 原文:https://www.oreilly.com/ideas/a-quick-an...

  • linux下查看端口占用情况

    备注:很多时候我们需要查看服务器端口占用情况,来为服务分配其他端口。 端口占用情况一目了然。

  • ios网络请求:AFNetWorking最实用封装

    最简洁 最实用 一目了然的AFNetWorking封装 相信大家访问服务器都在用AFNetWorking,因为...

  • 「心之海」为你点赞

    微信的世界有多大 点开朋友圈,一目了然 有蓝天,有白云

  • crm项目

    项目目的:能一目了然看到项目进展情况、客户进展情况 数据包含:服务行销数据、项目进展相关数据 目前仅能做到服务行销...

  • 认识微服务

    缘起## 在很多微服务架构的例子中强调了很多单体应用的场景。主要是因为在实际中一个应用系统里面的模块没有办法做到彻...

  • 认识微服务

    什么是微服务? 微服务是一种架构风格。 它可以通过强壮的模块边界和独立部署,来帮助你快速的扩展开发团队。 其实微服...

  • 手忙脚乱的一家店!

    [薄荷]环境: 很小清新的一家店 装修很简单 开放式的厨房 后厨一目了然 吃的放心 [服务铃]服务: 店里的阿姨很...

  • 朝乾  给我上的一课

    接了新的班级,又要认识一批新的一年级的孩子,以往是贴桌签,一目了然一周的时间保证认识一班的孩子。此次,放慢认识...

  • 朝乾   给我上的一课

    接了新的班级,又要认识一批新的一年级的孩子,以往是贴桌签,一目了然一周的时间保证认识一班的孩子。此次,放慢认识...

网友评论

    本文标题:一目了然认识微服务

    本文链接:https://www.haomeiwen.com/subject/buymhftx.html