30个不错的微服务工具推荐

本文涉及的产品
云原生网关 MSE Higress,422元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 微服务架构,或说是微服务本身,是一种用于提升软件系统可扩展性的架构风格。与微服务相关的好文章不胜枚举,而本文希望能够为那些从未尝试过、或只是刚刚开始尝试微服务的人,提供一份顶级开源工具的清单。微服务架构可用于企业、政府、学校和慈善机构等的企业级应用程序。与传统风格的单体架构完全相反,微服务专注于单个单元应用程序。微服务微小、独立且独特。微服务架构的构建和维护都可能非常复杂。微服务之间可以相互通信,利用同步协议、HTTP / REST或异步协议来服务于整体的业务目标。HTTP / REST或AMQP就是协作服务的示例,这些协作服务通过实现彼此相关的功能来尽可能高效地协同工作。

微服务架构,或说是微服务本身,是一种用于提升软件系统可扩展性的架构风格。与微服务相关的好文章不胜枚举,而本文希望能够为那些从未尝试过、或只是刚刚开始尝试微服务的人,提供一份顶级开源工具的清单。

微服务架构可用于企业、政府、学校和慈善机构等的企业级应用程序。与传统风格的单体架构完全相反,微服务专注于单个单元应用程序。

微服务微小、独立且独特。微服务架构的构建和维护都可能非常复杂。微服务之间可以相互通信,利用同步协议、HTTP / REST或异步协议来服务于整体的业务目标。HTTP / REST或AMQP就是协作服务的示例,这些协作服务通过实现彼此相关的功能来尽可能高效地协同工作。

微服务这一概念听起来清晰明了,但在实际操作中,想用所需的各种工具来构建微服务应用程序并非易事。这不仅仅是开发、测试或部署软件的传统问题。我们还需要进行持续监控,确保出现故障时,问题能够快速解决。

时刻谨记,并不存在哪个完美工具能够给微服务提供一站式的解决方案。Mike Amundsen的《微服务架构三大支柱》一文中曾经提出过,微服务成功的关键因素中,在组织设计的层面有三大关键组成部分:沟通、团队和创新。而在所有支柱中,沟通无疑是最不可或缺的。

市场中有许多工具可用于支持构建微服务架构,其中大多数工具中的某些特定功能都是免费的,但是许多工具也可以为额外的功能和服务提供额外的付费升级。

API管理与测试

01 API Fortress

API Fortress是一个API测试及健康工具,它可以自动执行企业API的功能测试、运行状况监控和负载测试。它的设计实际上是无代码的,完全基于现代API架构实践和模式构建。

02 Postman

Postman是适合个体开发人员和团队的API开发套件,它可让您轻松运行UI驱动的API测试。Postman是一个功能强大的HTTP客户端,通过它,RESTful API探索变得轻而易举。用户可以快速将简单和复杂的HTTP请求组合在一起,以便立即测试、开发和记录API。

03 Tyk

Tyk是一款开箱即用的开源API管理平台,具有快速、可扩展和现代的特点。

无论您是本地部署,还是使用云服务,或者喜欢混合场景,Tyk都能满足您的需求。使用Tyk,您可以在最低的成本之上获得极其可观的高可用性和低延迟。

消息服务

04 RabbitMq

RabbitMQ可帮助您使用不同的模式在您的微服务之间进行通信,扩展应用程序,并解决大多数分布式系统的问题。你可以在各种微服务环境或任何其他分布式系统中使用RabbitMQ连接竞争微服务。您还可以使用该工具在服务之间交换事件。

05 Amazon简单队列服务(SQS)

Amazon SQS(Simple Queue Service,简单队列服务)提供了强大、灵活和可靠的微服务通信功能。如果选择发布–订阅微服务的通信模型,像Amazon SQS这样的消息队列服务可以解决好几个开发人员的问题。除了更好的安全性之外,队列还可以存储待处理消息的可靠位置,从而来增强消息传递。

06 Apache Kafka

消息队列在微服务架构中至关重要,因为需要它处理微服务彼此之间、以及微服务与外部源之间的通信。不论是用于密集数据处理还是API调用,Apache Kafka都是一个具有高容错性和弹性的分布式流处理平台。

07 Google Cloud Pub/Sub

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

监控

08 Logstash

部署完微服务之后,您必须对其进行监控。此时你需要考虑很多问题,例如:特定的微服务是否响应良好或需要调整?其他系统部件(比如数据库)是否正常工作?您需要检查日志并执行此操作,此时Logstash将会是一个很好的工具。它是一个开源平台,您可以在其中集中、存储和转换数据。

09 Graylog

不妨试试将Logstash与Graylog结合,作为集中式服务器来使用。它易于使用、交互性良好、且速度很快。用户可以使用系统轻松浏览数据。它具有可扩展性,可根据开发的需求随用户的业务增长而设计。Graylog不是免费的,但价格实惠。

Kube开发

10 Kubernetes

虽然Kubernetes肯定属于容器编排领域,但它在微服务领域也应该有一席之地。 Kubernetes已成为最佳部署实践的黄金标准。在容器调度、负载均衡、服务发现等方面上,Kubernetes特别强大。对于使用Kubernetes构建微服务的开发人员来说,同样有不少开源工具可供使用。

11 Telepresence

Telepresence是Kubernetes的一种快速的本地开发工具。通过Telepresence,用户可以使用混合模型,服务编码可以在用户的笔记本电脑上本地完成,同时通过双向代理连接Kubernetes中的服务。我不推荐将Telepresence用于生产环境,但它真的非常适合在开发环境中使用。

12 Istio

Istio支持Kubernetes上的服务部署。通过Istio的service mesh技术,可以为微服务通信增加可靠性、安全性和可管理性。service mesh技术让您可以改善应用程序和微服务之间的关系和交互。

13 Minikube

Minikube是一个方便的开源工具,可让您无需Wi-Fi而在笔记本电脑上运行Kubernetes。例如,当您想在飞机上写代码,而此时没有随机Wi-Fi,那Minikube的作用就显现出来了。

编排

14 Conductor

Conductor是Netflix的微服务编排引擎,是Netflix OSS生态系统的一部分。Conductor可以在云上运行,并使用流协调器来通过微服务执行任务。它还有助于控制微服务之间的交互并将其可视化。

编程语言

15 Elixir

您可以尝试使用Elixir扩展您的编程技能。Elixir是一种并发的、功能性的、通用的编程语言,与Erlang VM(也称为BEAM)上的字节码一起工作。

16 Spring Boot

使用Spring Boot框架可以大大简化基于REST的微服务的创建,只需几行QQ转让平台代码即可完成。您可以使用其中一个可用的Spring Boot示例或Spring Initializr快速轻松地启动项目。

工具包

17 fabric8

fabric8是一种“开源平台即服务”工具,它能够帮助开发人员通过Git提供配置管理系统,处理IP地址复杂性和端口映射,并能够对服务执行负载均衡。fabric8还提供了可扩展性和高可用性。

18 Seneca

Seneca,是一种Node.js的微服务工具包,通过它,您可以轻松构建基于消息的微服务流程,可以编写干净、有组织的代码,并轻松地系统化应用程序的业务逻辑。

19 Google Cloud Functions

Google Cloud Platform的Cloud Functions(BETA)非常轻量、无服务器、易于部署和维护。它的控制台可以帮助开发人员来通过事件驱动架构,来构建低耦合的微服务应用程序。它是按使用量收费的,用户可以使用Google Compute的API将Cloud Functions链接到其他产品。

架构框架

20 goa

goa提供了一个框架,使用设计优先的方法,在Golang编程语言中构建REST API和微服务。使用goa,开发人员可以设计API,然后生成其他所有内容:JSON文档、命令行应用程序、JavaScript库等等。所有goadesign服务都在Google Cloud Platform之上运行。

21 Kong

Kong可以在多个操作环境中安装,它利用大量的读取–部署插件来帮助开发和部署微服务。使用Kong,您可以利用微服务和容器设计模式快速构建以API为中心的应用程序。

无服务器工具

无服务器技术或“功能即服务(Function-as-a-service)”是微服务的重要组成部分。它优化了将事物分解为最小功能的方法。

22 Claudia

使用Claudia的Lambda微服务后,用户可以专注于业务而不是处理AWS部署。 Claudia负责AWS Lambda和API Gateway的部署。Claudia还可以自动执行容易出错的部署和配置任务,一切开箱即用。除此之外,它还包含增强工具,如Claudia API Builder和Claudia Bot Builder。

23 Apache Openwhisk

除了作为基于事件的编程服务之外,Apache Openwhisk还是一个易于扩展的无服务器计算平台,支持开发人员创建、测试和连接其他人的操作以及帮助调试。通过Mac、Windows或Linux上的Docker,您都可以安装使用OpenWhisk。

24 Serverless

这个工具正如它所说的那样:它是一个控制台,将FaaS /无服务器技术与其他云服务相结合,帮助开发人员构建复杂的系统。serverless还提供可扩展性、集成安全性和增强的可操作性。

25 Kubeless

Kubeless是一个Kubernetes原生的无服务器框架,它让用户可以只部署少量代码,而无需担心底层基础架构管道。Kubeless可以感知Kubernetes的开箱即用资源,还提供自动扩展、API路由、监控和故障排除等功能。Kubeless完全依赖于Kubernetes原语,因此Kubernetes用户也可以使用原生Kubernetes API服务器和API网关。

26 IronFunctions

IronFunctions是一个开源的无服务器平台或FaaS平台,您可以在任何地方运行。IronFunctions是在Golang上编写的,并且真正支持任何语言的函数。 IronFunctions的主要优点是它支持AWS Lambda格式。您可以直接从Lambda导入函数并在任何地方运行它们。

27 AWS Lambda

AWS Lambda为您的微服务构建提供基础设施较少的服务器,并且是按使用费收费的。Lambda还可以与AWS API Gateway结合使用,后者可以托管REST或API服务。这两者一起,可以让您的API满足用户提出的任何需求。

28 Openfaas

OpenFaaS是一个开源的无服务器软件程序,承诺“让无服务器function更简单”。OpenFaaS可帮助您将任何进程或容器打包为Windows或Linux的无服务器function。与任何无服务器技术一样,其好处是可以让开发人员专注于提供业务价值,而无需费心于底层应用程序结构的日常管理相关的工作。

29 Microsoft Azure Functions

Microsoft Azure Functions是一种事件驱动的按需计算function,它可以增强Azure现有的应用程序功能。您只需基于规模和需求为您所使用的资源付费。 Azure Functions帮助开发人员连接到数据源/消息服务解决方案,从而可以轻松处理和响应事件。开发人员还可以利用Azure Functions功能构建基于HTTP的API端点。

团队建设工具

开发团队经常需要对微服务进行定期处理。要实现真正的团队自治,团队成员之间良好的沟通和合作必不可少。应用程序生命周期的所有部分、所有环节都需要灵活性和责任感。在团队协作方面有许多工具可用,例如视频会议、聊天工具、项目管理应用程序和维基,这些工具有利于微服务开发人员遵守前文提到的微服务三大支柱。这类工具种类繁多且不少已经非常成熟,大家可以自行尝试与选择。

结语

软件世界中不断有新的开源工具涌现,我们应当时刻保持关注。本文的这一微服务系统工具清单是一个不错的起点,但在未来势必会有更多更好的工具出现,毕竟这正是开源的本质意义所在。

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
关系型数据库 MySQL Go
Go语言微服务框架 - 8.Gormer迭代-定制专属的ORM代码生成工具
我们对比一下GORM库提供的`gorm.Model`,它在新增、修改时,会自动修改对应的时间,这个可以帮我们减少很多重复性的代码编写。这里,我就针对现有的gormer工具做一个示例性的迭代。
98 0
|
消息中间件 测试技术 数据库
消息队列和应用工具产品体系-微服务架构引发的问题
消息队列和应用工具产品体系-微服务架构引发的问题
消息队列和应用工具产品体系-微服务架构引发的问题
|
1月前
|
监控 Java 对象存储
监控与追踪:如何利用Spring Cloud Sleuth和Netflix OSS工具进行微服务调试
监控与追踪:如何利用Spring Cloud Sleuth和Netflix OSS工具进行微服务调试
43 1
|
3月前
|
安全 数据可视化 数据安全/隐私保护
【Azure 微服务】新创建的Service Fabric集群,如何从本地机器上连接到Service Fabric Explorer(Service Fabric状态/错误查看工具)呢?
【Azure 微服务】新创建的Service Fabric集群,如何从本地机器上连接到Service Fabric Explorer(Service Fabric状态/错误查看工具)呢?
【Azure 微服务】新创建的Service Fabric集群,如何从本地机器上连接到Service Fabric Explorer(Service Fabric状态/错误查看工具)呢?
|
4月前
|
Java 微服务 Spring
微服务04---服务远程调用,根据订单id查询订单功能,根据id查询订单的同时,把订单所属的用户信息一起返回,Spring提供了一个工具RestTemplate,Bean写在对象前面,以后可以在任何地
微服务04---服务远程调用,根据订单id查询订单功能,根据id查询订单的同时,把订单所属的用户信息一起返回,Spring提供了一个工具RestTemplate,Bean写在对象前面,以后可以在任何地
|
NoSQL API Nacos
Nacos是一个开源的微服务架构下的服务发现和配置管理工具,
Nacos是一个开源的微服务架构下的服务发现和配置管理工具,
152 2
|
XML 算法 Java
微服务轮子项目(50) -JVM 分析工具详解(下)
微服务轮子项目(50) -JVM 分析工具详解(下)
208 0
|
Java 编译器 C语言
微服务轮子项目(50) -JVM 分析工具详解(上)
微服务轮子项目(50) -JVM 分析工具详解
219 0
|
数据可视化 Java 测试技术
微服务轮子项目(47) -压力测试工具
微服务轮子项目(47) -压力测试工具
107 0
|
JSON 测试技术 Go
微服务性能分析工具 Pyroscope 初体验
Go 自带接口性能分析工具 pprof,接入方式简单,可以暴露接口后采集服务运行状态分析性能。但是 Pyroscope 更为强大,它有一个非常漂亮的 UI 界面!第一眼看到它我就被迷住了!
163 0
微服务性能分析工具 Pyroscope 初体验