采用微服务的6个主要理由

原文:6 Main Reasons to Adopt Microservices in Your Company Today
作者:Andre Luis de Oliveira Dias
译者:夜风轻扬

译者注:微服务正在业界获得越来越多的关注,哪些因素会促使你采用这项新技术呢?请看下文。

现在,微服务架构风格不再是媒体的炒作。
最近,大型企业和一些行业组织正在培养关注的焦点,并在大范围的软件应用解决方案中采用这一重要概念,例如:

  • 金融服务
  • 保险服务
  • 物联网解决方案
  • 视频流解决方案,如Netflix
  • 社会媒体解决方案,如Twitter
  • 物流解决方案,如Ubser

在本文中,我们将重点介绍当今行业中常见的主要驱动因素,以使你能够从现在起开始选择并使用微服务:

快速推出新的解决方案

微服务拥抱自动化

一旦你有了一个合理的管道,将你的微服务(CD/CI)与你想要或现在拥有的任何自动化套件一起打包和交付,你会因为在产品中交付的第一个微服务而从一开始就获得了优势。

如果你打算在未来的解决方案中扩大微服务的数量,那么自动化是关键,一旦你开始分解当前的庞然大物,这是一种正常的方法。它会支持继承这种体系结构风格的演化。

这是关键,因为你需要确保最终产品的交付质量。通过适当的自动化和控制,你可以更快地达到预期的结果。

编码和部署的小团队(团队授权)

有敬业和强有力的团队负责业务环境(这就是一个微服务)的各方面和代码库,在一段时间之后,你将会看到为特定微服务提供新特性和业务价值。

微服务可以为两个不同的微服务提供专门的团队,它们之间需要相互通信。

团队围绕特定业务环境(边界上下文/领域驱动设计概念)的思维方式应该根据日常业务和需求而进行自然的改进。他们的专业技能也会随之得到发展,这是很正常的。

如果可以自由选择团队,就可以按照最好的方式天赋所需的业务服务。

团队将接受这些变更并交付它。

易于维护

一旦你有了特定的更小的团队来改进和管理微服务和每个微服务进行分段的代码库,你对代码进行的微小改动,就不会因为编译时间或者运行时的交叉引用而造成整个项目的停滞。

你也不必因为编辑了用于另外一个模块中的依赖而需要重建整个项目,这都成为过去了。

一旦你有了特定的测试和验证的业务范围,测试也变得更简单了(在某种程度上)。

组件的独立可扩展性

微服务运行在分离的称为容器的执行单元中。容器传递所有的服务所需的资源。

对于每一个微服务,你需要一个专门的容器来支持。这就是为什么自动化,在这个例子中如此重要(不仅仅是打包和测试,而且是最终交付产品)的原因,因为服务所需要的所有资源,都是以内嵌微服务的容器形式传递的。

只要你提交了容器,你可以独立的方式对其进行扩展,每个容器可以根据整个解决方案中需要有其独有的扩展性。

这里有一个问题:我们怎么保证在何时扩展一个微服务。我们怎么监控任何一个微服务以确保我们可以恰当的扩展它?

这个问题的答案保留在微服务的设计模式中,这些会出现在以后的内容中。

现在你应该明白,在微服务体系结构中,以一种无缝的方式解决这类问题是很自然的。

独立于编程语言

微服务的实现是柔性的。

每一个微服务都可以用不同的编程语言来编写,因为它们是分别运行的,并且可以通过在熟知协议上定义良好的接口进行有效的通信。
微服务可以用不同的编程语言实现
今天使用的最常见的编程语言/框架包括:JAVA,.NET,Go(Golang), Java Script/Node.JS和 Python。

这为开发应用提供很大的弹性,你可以充分利用每一种语言的方法和特性。

微服务应该简单

心里只有一个目标,那就是
简单
正如爱因斯坦所说:“万事皆应尽可能简单,但不是简化。”
当然,这种简单是有代价的,但是你应该信赖微服务体系结构,并在其中设计你的解决方案,因为这会为你带来很多好处。你自己做取舍,你会看到它的好处。

微服务应该适用于特定的业务领域,并且通过其众人皆知的公共API文档带来巨大的商业价值。

本质上,这些是驱动你开始考虑使用微服务架构(MSA)来设计新的解决方案的主要动力。

你可能感兴趣的:(解决方案,设计,代码,自动,测试)