30+微服务构建的顶级工具清单

吐血整理30+微服务构建的工具清单,API管理与测试、消息服务、监控、Kube开发、编排、编程语言、工具包、架构框架、无服务器工具等各方面工具包罗万象!git


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

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

微服务微小、独立且独特。微服务架构的构建和维护均可能很是复杂。微服务之间能够相互通讯,利用同步协议、HTTP / REST或异步协议来服务于总体的业务目标。HTTP / REST或AMQP就是协做服务的示例,这些协做服务经过实现彼此相关的功能来尽量高效地协同工做。数据库

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

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

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

API管理与测试api

01安全

API Fortress服务器

API Fortress是一个API测试及健康工具,它能够自动执行企业API的功能测试、运行情况监控和负载测试。它的设计其实是无代码的,彻底基于现代API架构实践和模式构建。

连接:https://apifortress.com

02

Postman

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

连接:https://www.getpostman.com

03

Tyk

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

不管您是本地部署,仍是使用云服务,或者喜欢混合场景,Tyk都能知足您的需求。使用Tyk,您能够在最低的成本之上得到极其可观的高可用性和低延迟。

连接:https://tyk.io

消息服务

04

RabbitMq

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

连接:https://www.rabbitmq.com

05

Amazon简单队列服务(SQS)

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

连接:https://aws.amazon.com/cn/sqs/

06

Apache Kafka

消息队列在微服务架构中相当重要,由于须要它处理微服务彼此之间、以及微服务与外部源之间的通讯。不管是用于密集数据处理仍是API调用,Apache Kafka都是一个具备高容错性和弹性的分布式流处理平台。

连接:https://kafka.apache.org

07

Google Cloud Pub/Sub

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

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

监 控

08

Logstash

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

连接:https://www.elastic.co/cn/products/logstash

09

Graylog

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

连接:https://www.graylog.org

Kube开发

10

Kubernetes

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

连接:https://kubernetes.io

11

Telepresence

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

连接:https://www.telepresence.io

12

Istio

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

连接:https://istio.io

13

Minikube

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

连接:

https://github.com/kubernetes/minikube

编 排

14

Conductor

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

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

编程语言

15

Elixir

您能够尝试使用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提供了一个框架,使用设计优先的方法,在Golang编程语言中构建REST API和微服务。使用goa,开发人员能够设计API,而后生成其余全部内容:JSON文档、命令行应用程序、JavaScript库等等。全部goadesign服务都在Google Cloud Platform之上运行。

连接:https://stackshare.io/goa

21

Kong

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

连接:https://konghq.com

无服务器工具

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

22

Claudia

使用Claudia的Lambda微服务后,用户能够专一于业务而不是处理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是在Golang上编写的,而且真正支持任何语言的函数。 IronFunctions的主要优势是它支持AWS Lambda格式。您能够直接从Lambda导入函数并在任何地方运行它们。

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

27

AWS Lambda

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

连接:https://aws.amazon.com/cn/lambda/

28

Openfaas

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

连接:https://www.openfaas.com

29

Microsoft Azure Functions

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

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

团队建设工具

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

结 语

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

相关文章
相关标签/搜索