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

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

内容简介:微服务架构,或说是微服务本身,是一种用于提升软件系统可扩展性的架构风格。与微服务相关的好文章不胜枚举,而本文希望能够为那些从未尝试过、或只是刚刚开始尝试微服务的人,提供一份顶级开源工具的清单。微服务架构可用于企业、政府、学校和慈善机构等的企业级应用程序。与传统风格的单体架构完全相反,微服务专注于单个单元应用程序。微服务微小、独立且独特。微服务架构的构建和维护都可能非常复杂。微服务之间可以相互通信,利用同步协议、HTTP / REST或异步协议来服务于整体的业务目标。HTTP / REST或AMQP就是协作

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

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

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

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

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

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

API管理与测试

01 API Fortress

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

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

链接: https://apifortress.com

02 Postman

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

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

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

03 Tyk

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

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

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

链接: https://tyk.io

消息服务

04 RabbitMq

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

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

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

05 Amazon简单队列服务(SQS)

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

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

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

06 Apache Kafka

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

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

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

07 Google Cloud Pub/Sub

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

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

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

监控

08 Logstash

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

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

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

09 Graylog

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

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

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

Kube开发

10 Kubernetes

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

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

链接: https://kubernetes.io

11 Telepresence

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

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

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

12 Istio

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

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

链接: https://istio.io

13 Minikube

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

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

链接: https://github.com/kubernetes/minikube

编排

14 Conductor

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

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

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

编程语言

15 Elixir

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

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

链接: https://elixir-lang.org

16 Spring Boot

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

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

链接: http://spring.io

工具包

17 fabric8

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

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

链接: http://fabric8.io

18 Seneca

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

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

链接: http://senecajs.org

19 Google Cloud Functions

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

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

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

架构框架

20 goa

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

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

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

21 Kong

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

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

链接: https://konghq.com

无服务器工具

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

22 Claudia

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

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

链接: https://claudiajs.com

23 Apache Openwhisk

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

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

链接: https://openwhisk.apache.org

24 Serverless

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

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

链接: https://serverless.com

25 Kubeless

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

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

链接: https://github.com/kubeless/kubeless

26IronFunctions

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

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

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

27 AWS Lambda

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

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

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

28 Openfaas

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

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

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

29 Microsoft Azure Functions

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

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

链接: https://azure.microsoft.com/en ... ions/

团队建设工具

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

结语

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

原文链接: 30+Top Tools for Building Microservices on All Levels


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

查看所有标签

猜你喜欢:

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

Developer's Guide to Social Programming

Developer's Guide to Social Programming

Mark D. Hawker / Addison-Wesley Professional / 2010-8-25 / USD 39.99

In The Developer's Guide to Social Programming, Mark Hawker shows developers how to build applications that integrate with the major social networking sites. Unlike competitive books that focus on a s......一起来看看 《Developer's Guide to Social Programming》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

在线进制转换器
在线进制转换器

各进制数互转换器

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

HEX CMYK 互转工具