东亚银行、岚图汽车带你解锁 AIGC 时代的数字化人才培养各赛道新模式! 了解详情
写点什么

推荐 30 个用于微服务的顶级工具

  • 2018-08-26
  • 本文字数:4318 字

    阅读完需:约 14 分钟

关于微服务的好文章不计其数。对于那些一直没有亲历微服务或初次听到这个概念的人来说,这篇文章相当于把一份顶级的开源工具清单送到他们的面前。微服务是一种用于开发高度可伸缩软件系统的架构风格。这种架构可用于开发企业、政府、学校和慈善机构的企业级应用。它与传统的单体架构完全相反,单体架构只专注于单个应用程序。

微服务小而独立,但在开发和维护方面,它们的架构可能很复杂。微服务之间通过同步协议(如 HTTP/REST)或异步协议(如 AMQP)相互通信来实现业务目标。

但有些事情看起来容易做起来难,微服务架构看似条理分明,但真正要使用各种工具来构建微服务并不容易。这不像传统的开发、测试和部署那么简单,它还需要持续的监控,当出现故障时,还需要能够快速解决问题。

请记住,没有一个工具可以为微服务提供一站式的解决方案。Mike Amundsen 在他的文章“微服务架构三要素”中指出,有三个关键因素决定了是否能够成功实施微服务:沟通、团队和创新。在这三个因素中,沟通无疑是最不可或缺的因素。

有很多工具可用于构建微服务,其中大多数是免费的,可用于执行特定任务,也有一些提供了收费功能。

API 管理和测试

1. API Fortress

API Fortress 是 API 测试和健康检测工具,为企业级 API 提供自动化的功能测试、健康检测和负载测试。它的设计原则是无代码,完全基于现代 API 架构实践和模式而构建。

http://apifortress.com/

2. Postman

Postman 是面向个体开发者和团队的 API 开发套件,可让你轻松运行 UI 驱动的 API 测试。Postman 还是一个功能强大的 HTTP 客户端,让 RESTful API 探索变得轻而易举。用户可以将简单和复杂的 HTTP 请求组合在一起,实现快速的 API 测试、开发和文档化。

https://www.getpostman.com/

3. Tyk

Tyk 是一款开箱即用的开源 API 管理平台,速度快,可伸缩。无论是部署在内部,还是部署在云端,或者使用两者的混合,对 Tyk 来说都不在话下。除了可以降低管理成本,Tyk 还将为你带来高可用性和低延迟。

https://tyk.io/

消息服务

4. RabbitMQ

RabbitMQ 可作为微服务之间的通信桥梁,它支持各种模式,可提高应用程序的可伸缩性,并解决大多数分布式系统都存在的问题。RabbitMQ 可用在微服务环境或任何其他分布式系统中。你还可以使用这个工具在服务之间交换事件。

https://www.rabbitmq.com/

5. 亚马逊简单队列服务(SQS)

亚马逊 SQS 提供了强大、灵活且可靠的微服务通信机制。作为一种基于发布订阅的微服务通信模型,亚马逊 SQS 可以帮助开发人员解决很多问题。除了更好的安全性之外,队列还通过为待处理消息提供储存来增强可靠性。

https://aws.amazon.com/sqs/

6. Apache Kafka

消息队列对于微服务架构来说是非常重要的,可用来处理微服务之间的通信以及微服务与外部源之间的通信,不管是密集型的数据处理还是 API 调用。Apache Kafka 是一个具有高容错和弹性的分布式流处理平台。

https://kafka.apache.org/

7. Google Cloud Pub/Sub

Google Cloud Pub/Sub 是一款全托管的实时消息服务,可让你在微服务之间发送和接收消息。将应用程序与 Google Cloud Pub/Sub 集成将有助于处理所有异步请求,并减少用户等待响应的时间。

https://cloud.google.com/pubsub/

监控

8. Logstash

在部署好微服务后,必须对其进行监控。然而,做好监控需要考虑诸多因素。例如,某个微服务是否运行良好,需要做出调整吗?其他组件(比如数据库)是否运行正常?你需要通过检查日志来检查这些问题,而 Logstash 是一个很好的日志工具。它是一个开源平台,你可以通过 Logstash 进行数据收集、存储和转换。

https://www.elastic.co/products/logstash

9. Graylog

可以将 Logstash 与 Graylog 结合在一起使用,作为集中式的服务器。Graylog 提供了交互式的界面,简单易用且速度快。用户可以在 Graylog 中轻松地浏览数据。它具有可伸缩性,可随着业务增长而增长。Graylog 不是免费的,但价格很实惠。

https://www.graylog.org/

Kube 开发

10. Kubernetes

虽然 Kubernetes 是容器编配器,但在微服务领域,也有它的一席之地。Kubernetes 已经成为最佳部署实践的黄金标准。在容器调度、负载均衡、服务发现等方面,Kubernetes 是佼佼者。

https://kubernetes.io/

11. Telepresence

Telepresence 是 Kubernetes 的一个本地开发工具。等待容器部署完成可能会非常耗时,而有了 Telepresence,就可以使用混合模型。你在笔记本电脑上完成本地编码,同时通过双向代理连接 Kubernetes 中的服务。不过,不推荐在生产环境中使用 Telepresence,它更适合用于本地开发。

https://www.telepresence.io/

12. Istio

Istio 支持在 Kubernetes 上进行服务部署。Istio 服务网格技术为微服务通信带来了可靠性、安全性和可管理性。服务网格技术可用于改善应用程序和微服务之间的关系和交互。

https://istio.io/

13. Minikube

Minikube 是一个方便的开源工具,可让你在没有 WiFi 的情况下在笔记本电脑上运行 Kubernetes。例如,当你在飞机上并且需要写代码时,就会派上用场。

https://github.com/kubernetes/minikube

编配

14. Conductor

Conductor 是 Netflix 的微服务编排引擎,是 Netflix OSS 生态系统的一部分。Conductor 运行在云端,并实现了微服务的流程编配。它还可用于控制和可视化微服务之间的交互。

https://netflix.github.io/conductor/

编程语言

15. Elixir

使用 Elixir 来扩展你的编程技能,它是一门通用的函数式并发编程语言,运行在 Erlang VM(也称为 BEAM)之上。

https://elixir-lang.org/

16. Spring Boot

使用 Spring Boot 框架可以大大简化 REST 微服务的创建,只需几行代码即可。你可以使用 Spring Boot 提供的示例或 Spring Initializr 快速开始你的项目。

http://spring.io/

工具包

17. fabric8

作为开源的平台即服务工具,fabric8 为开发人员提供了基于 git 的配置管理系统,可处理 IP 地址复杂性和端口映射,并对服务进行负载均衡。fabric8 还为我们带来了可伸缩性和高可用性。

http://fabric8.io/

18. Seneca

开发人员可以使用 Seneca 轻松构建基于消息的微服务,它是 Node.js 的微服务工具包,可以用它写出干净且结构良好的代码,并轻松系统化应用程序的业务逻辑。

http://senecajs.org/

19. Google Cloud Functions

Google Cloud Platform 的 Cloud Functions(BETA)是一种轻量级的无服务器平台,易于部署和维护。它的控制台为开发人员提供了很好的解决方案,用于构建基于事件驱动的低耦合微服务应用。该平台的容器是按照使用量收费的。此外,开发人员还可以通过 Google Compute API 将 Cloud Functions 连接到其他产品。

https://cloud.google.com/functions/

架构框架

20. goa

goa 是一个使用 Go 语言开发、用于构建 REST API 和微服务的框架。在 goa 中,开发人员可以先设计好 API,然后生成其他内容,从 JSON 文档到命令行应用程序及 JavaScript 库等。所有的 goadesign 服务都运行在 Google Cloud Platform 上。

https://stackshare.io/goa

21. Kong

Kong 可以安装在多种操作环境中,它利用大量的 read-to-deploy 插件来协助开发和部署微服务。有了 Kong,你就可以更好地利用微服务和容器设计模式快速构建以 API 为中心的应用程序。

https://konghq.com/

无服务器工具

22. Claudia

通过使用 Claudia,开发人员可以专注在业务上,而不是把精力浪费在处理与 AWS 部署有关的事情上。Claudia 负责处理与 AWS Lambda 和 API Gateway 相关的部署。Claudia 还可以自动化容易出错的部署和配置任务。除此之外,它还提供了增强工具,如 Claudia API Builder 和 Claudia Bot Builder。

https://claudiajs.com/

23. Apache Openwhisk

Apache Openwhisk 是一种基于事件的编程服务,也是一个易于扩展的无服务器计算平台,帮助开发人员创建、测试、连接和调试微服务。用户可以在 Mac、Windows 或 Linux 上通过 Docker 来安装和使用 OpenWhisk。

https://openwhisk.apache.org/

24. Serverless

这个工具正如它的名字一样,将 FaaS/ 无服务器技术与其他云服务相结合,帮助开发人员构建复杂的系统。Serverless 还提供了可伸缩性、集成安全性和改进的可操作性。

https://serverless.com/

25. Kubeless

Kubeless 是一个 Kubernetes 原生无服务器框架,用户只需要部署少量代码,无需操心底层的基础设施。Kubeless 能够感知 Kubernetes 资源,提供自动伸缩、API 路由、监控和故障排除等功能。Kubeless 完全依赖于 K8s 原语,因此,Kubernetes 用户也可以结合使用原生 K8s API 服务器和 API 网关。

https://github.com/kubeless/kubeless

26. IronFunctions

IronFunctions 是一个开源的无服务器(或 FaaS)平台,可以在任何地方运行。IronFunctions 使用 Go 语言开发,但可以支持使用任意语言编写的 function。IronFunctions 的主要优点是它支持 AWS Lambda 格式,可以直接从 Lambda 导入和运行 function。

https://github.com/iron-io/functions

27. AWS Lambda

AWS Lambda 为构建微服务提供了无基础设施(infrastructure-less)服务器,用户需要按使用量付费。Lambda 还可以与 AWS API Gateway 结合使用,后者可用于托管 REST 或 API 服务。将这两者结合在一起,可以让你的 API 处理由用户发出的任何请求。

https://aws.amazon.com/lambda/

28. OpenFaas

一个开源的无服务器软件,承诺“让无服务器 function 变简单”。OpenFaaS 可帮助你将任意进程或容器打包成 Windows 或 Linux 的无服务器 function。与其他无服务器技术一样,它的好处是可以让开发人员专注在业务上,而不是将精力用在处理底层的应用程序结构上。

https://www.openfaas.com/

29. Microsoft Azure Functions

这是一个基于事件驱动的按需计算 function,可增强 Azure 现有的应用程序功能。按需计算意味着用户只需要为使用的资源付费。Azure Functions 帮助开发人员连接到数据源 / 消息服务,让他们能够轻松地处理和响应事件。开发人员还可以利用 Azure Functions 构建基于 HTTP 的 API 端点。

https://azure.microsoft.com/en-us/services/functions/

30+. 团队建设工具

开发团队通常需要定期处理微服务的变更。团队之间需要良好的沟通和合作才能实现真正的团队自治。灵活性和责任感应该贯穿整个应用程序生命周期。有很多工具可用于团队协作,例如视频会议、聊天工具、项目管理应用程序和 wiki,这些工具可以帮助微服务开发人员实现之前提到的微服务三要素。这类工具实在太多了,作为参考,Caylent 团队选择了 Slack、Trello、Google Cloud、Postman 和 Google Meet 来满足开发和沟通需求。

新的开源工具总是不断出现,所以我们要时刻留意。本文所列出的资源只是微服务系统工具的冰山一角。记住,开源的本质就是快速演化,不断推陈出新。

英文原文: https://caylent.com/building-microservices/

感谢张婵对本文的审校。

2018-08-26 10:407396
用户头像

发布了 731 篇内容, 共 433.4 次阅读, 收获喜欢 1997 次。

关注

评论

发布
暂无评论
发现更多内容

从新手游上线看游戏数据库选型

YG科技

[Paddle] ERNIE-UIE 通用信息抽取模型(含自定义细分领域模型训练)

alexgaoyh

paddle 文心 ERNIE 数据标注 ernie-uie doccano

inBuilder今日分享丨RPM包制作入门

inBuilder低代码平台

全量通过!华为云GaussDB首批完成信通院全密态数据库评测

YG科技

悟道·天鹰 Aquila + 天秤 FlagEval,打造大模型能力与评测标准双标杆

硬科技星球

2023-06-27:redis中什么是缓存雪崩?该如何解决?

福大大架构师每日一题

Redis 7 福大大架构师每日一题

瓴羊Quick BI数据门户,让企业数据管理一目了然

巷子

Redis跳跃表是如何添加元素的?

王磊

java面试

数智底座必备能力之轻松驾驭新技术

用友BIP

数智底座 Pass平台

鲸鸿动能对话汽车之家,全链路营销助力新增长

最新动态

路径万千,华为云数据库选择珠峰北坡登顶,给世界一个更优选择

YG科技

解析数字信息时代下的信息安全挑战:大道至简——JNPF快速开发平台的低代码之光

快乐非自愿限量之名

低代码 信息安全 企业数字化 低代码数字转型

停机不收费!华为云RDS for MySQL降本有奇招

轶天下事

go语言中如何实现同步操作呢

高端章鱼哥

Go 语言

MacOS专业截屏指南——截屏技巧和截屏工具分享

互联网工科生

macos mac截图工具

共筑数字化未来 金山办公携手华为云完成文档中心和GaussDB适配

YG科技

宝兰德应用服务器软件与华为云GaussDB完成兼容互认证

YG科技

即时通讯系统为什么选择GaussDB(for Redis)?

YG科技

「悟道·视界」视觉大模型系列,6项领先成果技术详解

硬科技星球

一文弄懂 OceanBase 用户管理和访问控制

爱可生开源社区

MySQL oceanbase

“息壤”引领首个算力互联互通验证平台建设,天翼云开启算力互联网新纪元!

天翼云开发者社区

人工智能 云计算

AI赋能文明的发展,就看低代码了吗?

EquatorCoco

低代码 AI赋能

海量数据运维要给力,华为云GaussDB(for Cassandra)来助力

YG科技

赋能政企深度用云,华为云数据库大咖有话说

YG科技

【精彩回顾】华为云亮相2023开放原子全球开源峰会

华为云开源

#云原生 #开源

分布式机器学习(Parameter Server)

这我可不懂

机器学习 分布式

挑选最佳美国主机,让你的网站飞跃

一只扑棱蛾子

美国主机

苏光牛:坚持产品能力的升级,做金融数字化的坚实数据底座

YG科技

谷歌正研发“人类最强大模型”!开启智能模型的新纪元:探索迭代发展和低代码开发平台的无限可能

不在线第一只蜗牛

低代码 谷歌 人工智能模型 ChatGPT

“云创未来,共享生态”——支付宝小程序云产品发布会,报名开启!

TRaaS

小程序

深耕数据库根技术,华为云云原生数据库推动汽车产业数智升级

轶天下事

推荐30个用于微服务的顶级工具_语言 & 开发_Stefan Thorpe_InfoQ精选文章