Micro(Go版微服务开发框架及标准)-2019年的大整合

栏目: 后端 · 发布时间: 4年前

【编者的话】Micro是构建微服务的最简单方式,并逐渐成为云计算中基于 Go 的微服务开发的实际标准。通过将我们的努力整合到一个开发框架和运行时中,我们使这个过程更加简单。

Micro作为[go-micro](https://github.com/micro/go-micro) -一个微服务框架开始了它的旅程,专注于提供微服务开发的核心需求。它通过抽象出分布式系统的复杂性,为构建微服务创造了更简单的体验。

随着时间的推移,我们已经从go-micro扩展到其他 工具 、库和插件。这导致了我们解决问题的方式和开发人员使用微服务工具的方式的分散化。我们现在正在整合所有这些工具,以简化开发人员的体验。

从本质上来说,Micro已经成为一个独立的开发框架和微服务开发的运行时。

在讨论整合之前,让我们回顾一下迄今为止的历程。

## 主要关注点

Go-micro最初主要专注于微服务的通信方面,我们一直努力做到这一点。到目前为止,这种固执己见的方法和关注点是驱动框架成功的真正驱动力。多年来,我们已经收到了无数的请求,要求解决第二天在go-micro中构建生产就绪软件的问题。其中大部分都与可伸缩性、安全性、同步和配置有关。

![](https://micro.mu/docs/images/go-micro.svg)

虽然增加所要求的额外特性是有好处的,但我们确实希望一开始就非常专注于很好地解决一个问题。所以我们采取了一种不同的方式来促进社区这样做。

## 生态系统和插件

投入生产所涉及的不仅仅是普通的服务发现、消息编码和请求-响应。我们真正明白这一点,希望使用户能够通过可插拔和可扩展的接口选择更广泛的平台需求。通过[资源管理器](https://micro.mu/explore/)促进生态系统,资源管理器聚合了GitHub上的基于微服务的开源项目,并通过[go-plugins](https://github.com/micro/go-plugins)扩展插件。

![](https://micro.mu/explorer.png)

一般来说,Go插件已经取得了巨大的成功,因为它允许开发人员将大量的复杂性转移到为这些需求构建的系统上。例如用于度量的普罗米修斯、用于分布式跟踪的zipkin和用于持久消息传递的Kafka。

## 交互点

Go Micro确实是微服务开发的核心,但是随着服务的编写,接下来的问题就转移到了:我如何查询它们,如何与它们交互,如何通过传统方式为它们服务。

鉴于go-micro使用了一个基于rpc/protobuf的协议,该协议既可插拔又不依赖于运行时,我们需要某种方法来解决这个问题。这导致了微服务工具包[micro](https://github.com/micro/micro)的产生。Micro提供了api网关、网络仪表板、cli命令行工具、slack bot机器人程序、服务代理等等。

![](https://micro.mu/runtime3.svg)

Micro工具包通过http api、浏览器、slack命令和命令行接口充当交互点。这些是我们查询和构建应用程序的常见方式,对于我们来说,提供一个真正支持这一点的运行时非常重要。然而,但它仍然把重点放在通信上。

虽然插件和工具包极大地帮助了使用了Micro的用户,但在关键领域仍然缺乏。很明显,我们的社区希望我们能够围绕产品开发的平台工具来解决更多的问题,而不是必须在他们各自的公司中单独完成。我们需要为动态配置、分布式同步和为Kubernetes这样的系统提供更广泛的解决方案等方面提供相同类型的抽象。

于是我们创建了以下项目:

- [micro/go-config](https://github.com/micro/go-config) - 一个动态配置库

- [micro/go-sync](https://github.com/asim/go-sync) - 一个分布式同步库

- [micro/kubernetes](https://github.com/micro/kubernetes) - 在kubernetes平台上的初始化

- [examples](https://github.com/micro/examples) - 使用举例

- [microhq](https://github.com/microhq) - 微服务预构建

这些是一部分repos、库和工具,用于尝试解决我们社区更广泛的需求。在过去的四年里,repos的数量不断增长,新用户的入门体验也变得更加困难。进入壁垒急剧增加,我们意识到需要做出一些改变。

在过去的几周里,我们意识到[go-micro](https://github.com/micro/go-micro)确实是大多数用户开发微服务的焦点。很明显,他们想要额外的功能,作为这个库的一部分以及一个自我描述的框架,我们真的需要通过解决那些第二天的问题来实现这一点,而不要求开发人员寻求其他方法。

本质上,go-micro将成为微服务开发的全面和独立框架。

我们通过将所有库迁移到go-micro开始了整合过程,在接下来的几周里,我们将继续进行重构,以提供更简单的默认入门体验,同时还为日志记录、跟踪、度量、身份验证等添加更多功能。

![](https://micro.mu/blog/assets/images/go-micro-repo.png)

不过,我们也没有忘记Micro。在我们看来,当构建了微服务之后,仍然需要一种查询、运行和管理它们的方法。所有人都认为Micro将是微服务开发的运行时。我们正在致力于提供一种更简单的方法来管理微服务开发的端到端流程,并且应该很快会有更多消息发布。

## 总结

Micro是构建微服务的最简单方式,并逐渐成为云计算中基于Go的微服务开发的实际标准。通过将我们的努力整合到一个开发框架和运行时中,我们使这个过程更加简单。

了解更多信息,请访问我们的[网站](https://micro.mu/),在[twitter](https://twitter.com/microhq)上关注我们,或者加入[Slack](https://micro-services.slack.com/)社区。

**作者**:Asim Aslam,Micro的创始人。前Hailo SWE和前谷歌SRE。

**译者**:Mr.lzc,软件工程师、DevOpsDays深圳核心组织者,目前供职于华为,从事云存储工作,以Cloud Native方式构建云文件系统服务,专注于K8s、微服务领域。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

UNIX环境高级编程

UNIX环境高级编程

W.Richard Stevens、Stephen A.Rago / 尤晋元、张亚英、戚正伟 / 人民邮电出版社 / 2006年 / 99.00元

本书是被誉为UNIX编程“圣经”的Advanced Programming in the UNIX Environment一书的更新版。在本书第1版出版后的十几年中,UNIX行业已经有了巨大的变化,特别是影响UNIX编程接口的有关标准变化很大。本书在保持了前一版风格的基础上,根据最新的标准对内容进行了修订和增补,反映了最新的技术发展。书中除了介绍UNIX文件和目录、标准I/O库、系统数据文件和信息......一起来看看 《UNIX环境高级编程》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具