30+微服务构建的顶级⼯具清单
吐⾎整理30+微服务构建的⼯具清单,API管理与测试、消息服务、监控、Kube开发、编排、编程语⾔、⼯具包、架构框架、⽆服务器⼯具等各⽅⾯⼯具⼀应俱全!
微服务架构,或说是微服务本⾝,是⼀种⽤于提升软件系统可扩展性的架构风格。与微服务相关的好⽂章不胜枚举,⽽本⽂希望能够为那些从未尝试过、或只是刚刚开始尝试微服务的⼈,提供⼀份顶级开源⼯具的清单。
微服务架构可⽤于企业、政府、学校和慈善机构等的企业级应⽤程序。与传统风格的单体架构完全相反,微服务专注于单个单元应⽤程序。
微服务微⼩、独⽴且独特。微服务架构的构建和维护都可能⾮常复杂。微服务之间可以相互通信,利⽤同步协议、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的微服务的创建,只需⼏⾏代码即可完成。您可以使⽤其中⼀个可⽤的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为中⼼的应⽤程序。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论