前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用于在所有级别上构建微服务的29个顶级工具

用于在所有级别上构建微服务的29个顶级工具

作者头像
February
发布2018-12-06 14:09:22
1.5K0
发布2018-12-06 14:09:22
举报
文章被收录于专栏:技术翻译技术翻译

关于微服务有很多很棒的文章。对于那些一直没有接受微服务的人,或者新手,本文是为了提供顶级开源工具的整合。微服务架构,或仅微服务,是用于开发软件系统的高度可扩展的结构风格。这种体系结构可用于企业,政府,学校和慈善机构等的企业应用程序。它与传统风格的单片体系结构完全相反,它专注于单个单元应用程序。

微服务很小,独立且独特。在建筑和维护方面,架构可能很复杂。微服务相互通信,利用同步协议,HTTP / REST或异步协议服务于业务目标。HTTP / REST或AMQP是协作服务的示例,这些协作服务实现彼此相关的功能以尽可能高效地工作。

微服务可能听起来很合理,但是使用所需的各种工具构建微服务应用程序并不容易。这不仅仅是开发软件,测试和部署软件的传统问题。需要进行持续监控,当出现故障时,需要快速解决。

请记住,没有工具可以为微服务提供任何单一答案。相反,根据Mike Amundsen概述的微服务架构三大支柱构建您的系统。阿蒙森认为,组织设计有三个组成部分,它们确立了微服务成功的关键:沟通,团队和创新。在所有支柱中,沟通无疑是最不可或缺的。

有许多工具可用于支持构建微服务架构,大多数工具将免费执行特定任务,但许多工具也支持升级额外的功能和服务。

API管理和测试

1. API Fortress

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

2. Postman

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

3. Tyk

Tyk是一款开箱即用的开源API管理平台,具有快速,可扩展和现代的特点。 无论您是需要安装内部部署,还是作为云服务,或者您更喜欢使用两者的混合体,Tyk都是多功能的。使用Tyk,您可以在最低的总拥有成本之上获得高可用性和低延迟。

通信

4. RabbitMQ

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

5. Amazon Simple Queue Service (SQS)

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

6. Apache Kafka

消息排队在微服务架构中是必要的,以处理所有微服务和微服务 - 外部源通信。这是用于密集数据处理还是API调用等.Apache Kafka是一个具有高容错性和弹性的分布式流处理平台。

7. Google Cloud Pub / Sub

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

监控

8. Logstash

您已经部署了微服务,现在您必须对其进行监控。然而,许多元素都会进入监控阶 例如,特定的微服务是否响应良好或需要调整?其他系统部件是否正常工作,例如数据库?您需要检查日志并执行此操作,Logstash是一个很好的工具。它是一个开源平台,您可以在其中集中,存储和转换数据。

9. Graylog

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

Kube 开发

10. Kubernetes

虽然Kubernetes肯定属于容器编排,但在微服务领域,它也应该得到一个部分。Kubernetes已成为最佳部署实践的黄金标准。在容器调度,负载平衡,服务发现等方面,Kubernetes特别强大。

对于使用Kubernetes构建的微服务开发人员,这里有一些其他开源工具可用。(别忘了在这里查看我们更全面的Kubernetes工具列表。)

11. Telepresence

远程呈现是Kubernetes的快速本地开发。等待容器部署可能会加剧。通过远程呈现,可以使用混合模型。因此,您的服务编码在您的笔记本电脑上本地完成,同时通过双向代理连接Kubernetes中的服务。不推荐用于生产,但非常适合开发。

12. Istio

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

13. Minikube

Minikube是一个方便的开源工具,可让您在笔记本电脑上运行Kubernetes而无需WiFi。例如,当您在飞机上并且需要编码时,这会派上用场,但您没有WiFi。

编排

14. Conductor

Conductor是Netflix的微服务编排引擎,是Netflix OSS生态系统的一部分。指挥在云中运行并实现流协调器以通过微服务执行任务。它还有助于控制和可视化微服务之间的所有交互。

编程语言

15. 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的微服务工具包)轻松构建基于消息的微服务流程。使用此工具包,您可以编写干净,有组织的代码,并轻松地将应用程序的业务逻辑系统化。

29 Top Tools for Building Microservices on All Levels

These tools come together to help you orchestrate your microservices' messaging, testing, monitoring, and more.

by

Stefan Thorpe

·

Aug. 27, 18

·

Microservices Zone

·

Opinion

Like (3)

Comment (0)

Save

Tweet

4,411 Views

Join the DZone community and get the full member experience.

JOIN FOR FREE

Learn why microservices are breaking traditional APM tools that were built for monoliths.

There are many great articles out there on microservices. For those who have been hiding under a rock about the controversial technique—or are new to the idea—this article simply aims to collate the top open source tools available in one handy place. Microservice architecture, or just microservices, is a highly scalable structural style for developing software systems. Such architecture can be used for enterprise applications for businesses, governments, schools, and charities, etc. It is quite the opposite of the legacy-style monolithic architecture that focuses on a single unit application.

Microservices are small, independent, and unique. And the architecture can be complex in both construction and maintenance. Microservices communicate with each other to serve business goals utilizing synchronous protocols, HTTP/REST or asynchronous protocols. HTTP/REST or AMQP are examples of collaborating services that implement functions related to one another to work as efficiently as possible.

Microservices may sound logical, but building a microservice application, with the variety of tools needed, is not easy. It’s not just the conventional matter of developing software, testing and deploying it. Constant monitoring needs to occur, and when there are malfunctions, they need to be addressed quickly.

Keep in mind that no tool provides any single answer to the puzzle that is microservices. Instead, construct your system according to the three pillars of microservices architecture as outlined by Mike Amundsen. Amundsen argues that there are three components of organizational design which establish the keys to microservice’s success: communication, teams, and innovation. Of all of the pillars, communication is undoubtedly the most integral.

There are a wide variety of tools available to support building microservices architecture, most will perform specific tasks free of charge, but many also have paid upgrades for extra features and services too.

API Management and Testing

1. API Fortress

Both an API test and health tool, API Fortress automates the functional testing, health monitoring, and load testing of enterprise APIs. It’s designed to be practically code-free and is built entirely around modern API architectural practices and patterns.

2. Postman

An API development suite for individual devs and teams, Postman allows you to easily run UI-driven API tests. As Postman is a powerful HTTP client, RESTful API exploration becomes a breeze. Users can quickly put together simple and complex HTTP requests to test, develop and document APIs in no time.

3. Tyk

Fast, scalable, and modern, Tyk is an out-of-the-box open source API management platform. Whether you need to install on-premise, as a cloud service or if you prefer to use a hybrid of both, Tyk is versatile. With Tyk, you gain high availability and low latency, on top of the lowest total cost of ownership.

Messaging

4. RabbitMQ

RabbitMQ helps you utilize patterns to communicate between your microservices to scale applications and solve most distributed systems’ problems. Connect competing microservices using RabbitMQ in a microservice environment or in any other distributed system. You can also use the tool to exchange events between services.

5. Amazon Simple Queue Service (SQS)

Amazon SQS provides robust, flexible, and reliable microservices communication. A message queue service like Amazon SQS solves several developer problems if choosing a publish-subscribe microservices’ communication model. In addition to better security, queues make messaging stronger by providing a reliable place to store pending messages.

6. Apache Kafka

Message queuing is necessary within microservices architecture to handle all the inter-microservice and microservices-external-source communications. Whether this is for intensive data processing or API calls, etc. Apache Kafka is a distributed stream processing platform with high fault tolerance and resilience.

7. Google Cloud Pub/Sub

A fully-managed real-time messaging service, Google Cloud Pub/Sub allows you to send and receive messages between microservices. Integrating your application with Google Cloud Pub/Sub will help handle all the asynchronous requests you are bound to receive and endeavor to mitigate the time that users wait for a response.

Monitoring

8. Logstash

You’ve got the microservice deployed, and now you have to monitor it. Many elements go into monitoring though. For example, is a particular microservice responding well or are tweaks needed? Are other system parts working correctly, such as the databases? You'll want to check the logs and to do that, Logstash is a great tool. It’s an open source platform where you can centralize, stash, and transform data.

9. Graylog

Use Logstash in conjunction with Graylog as a centralized server. It bills itself as easy to use, interactive, and fast. A user can easily explore data with the system. It’s scalable, and it is designed to grow with a user’s business depending on the needs that develop. Graylog is not free, but it’s affordable.

Kube Development

10. Kubernetes

Whilst Kubernetes certainly comes under container orchestration, in the world of microservices, it also deserves a section to itself. Kubernetes has become the gold standard for best deployment practices. When it comes to container scheduling, load balancing, service discovery, and more, Kubernetes is particularly powerful.

For microservices developers that build with Kubernetes, here are some other open source tools available. (Don’t forget to check out our more comprehensive list on Kubernetes tools here.)

11. Telepresence

Telepresence is a speedy local development for Kubernetes. Waiting for containers to deploy can be aggravating. With Telepresence, a hybrid model can be employed. So, coding of your service is done locally on your laptop with simultaneous connecting of services in your Kubernetes by away of a two-way proxy. Not recommended for production use, but great for development.

12. Istio

Istio supports service deployment on Kubernetes. Add reliability, security, and manageability to microservices communications through Istio’s service mesh technology. The service mesh tech allows you to improve the relationships and interactions between your application and microservices.

13. Minikube

Minikube is a handy open source tool that lets you run Kubernetes on your laptop without the need for WiFi. For example, this comes in handy when you’re on an airplane and you need to code, but you don’t have WiFi to do so.

Orchestration

14. Conductor

Conductor is Netflix’s microservices orchestration engine as part of its Netflix OSS ecosystem. Conductor runs in the cloud and implements a flow orchestrator to carry out tasks through microservices. It also facilitates control and visualization of all interactions between microservices.

Programming Languages

15. Elixir

Expand your programming repertoire with Elixir; a concurrent, functional, general-purpose programming language that works alongside the bytecode seen on the Erlang VM (also known as BEAM).

16. Spring Boot

Simplify the creation of REST-based microservices with Spring Bootframeworks in just a few lines of code. You can use one of the available Spring Boot examples or the Spring Initializr to get started quickly and easily.

Toolkits

17. fabric8

An open source platform-as-a-service tool, fabric8 helps devs provides configuration management system through git, handles IP address complexity and port mappings, and is able to perform load balancing to services. Fabric8 also offers scalability and high availability.

18. Seneca

Build message-based microservice processes with ease through Seneca, a microservices toolkit for Node.js. With this toolkit, you can write clean, organized code and easily systematize the business logic of your app.

19. Google Cloud Functions

Google Cloud Platform的云功能(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为中心的应用程序。

无服务器工具

无服务器技术或功能即服务是微服务的重要组成部分。它优化了将事物分解为最小功能的方法。

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完全依赖于K8s原语,因此Kubernetes用户也可以使用原生K8s 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可帮助您将任何进程或容器打包为Windows或Linux的无服务器功能。与任何无服务器技术一样,其好处是开发人员可以专注于提供业务价值,而不是处理底层应用程序结构的日常管理。

29. Microsoft Azure Functions

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

30+的团队建设工具

开发团队经常需要对微服务进行定期处理。团队之间需要良好的沟通和合作才能实现真正的团队自治。应用程序生命周期的所有部分都需要灵活性和责任感。有许多工具可用,例如视频环聊,聊天工具,项目管理应用程序和维基,这些工具有利于微服务开发人员遵守前面提到的支柱。在这里全面概述太多了。不过,可以给你一个思路,Caylent团队选择了SlackTrelloGoogle CloudPostmanGoogle Meet的工作组合来满足我们的开发和沟通需求。

新的开源工具总是在软件世界中引入,所以要留意它们。该资源是开发微服务系统最有用的工具的一个很好的起点,包括使用Kubernetes。然而,开源的本质意味着不久之后将会出现在现场。

原文标题《29 Top Tools for Building Microservices on All Levels》

作者:Stefan Thorpe

译者:February

不代表云加社区观点,更多详情请查看原文链接

本文系外文翻译,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系外文翻译前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • API管理和测试
    • 1. API Fortress
      • 2. Postman
        • 3. Tyk
        • 通信
          • 4. RabbitMQ
            • 5. Amazon Simple Queue Service (SQS)
              • 6. Apache Kafka
                • 7. Google Cloud Pub / Sub
                • 监控
                  • 8. Logstash
                    • 9. Graylog
                    • Kube 开发
                      • 10. Kubernetes
                        • 11. Telepresence
                          • 12. Istio
                            • 13. Minikube
                            • 编排
                              • 14. Conductor
                              • 编程语言
                                • 15. Elixir
                                  • 16. Spring Boot
                                  • 工具包
                                    • 17. fabric8
                                      • 18. Seneca
                                      • 29 Top Tools for Building Microservices on All Levels
                                        • These tools come together to help you orchestrate your microservices' messaging, testing, monitoring, and more.
                                          • API Management and Testing
                                            • 1. API Fortress
                                            • 2. Postman
                                            • 3. Tyk
                                          • Messaging
                                            • 4. RabbitMQ
                                            • 5. Amazon Simple Queue Service (SQS)
                                            • 6. Apache Kafka
                                            • 7. Google Cloud Pub/Sub
                                          • Monitoring
                                            • 8. Logstash
                                            • 9. Graylog
                                          • Kube Development
                                            • 10. Kubernetes
                                            • 11. Telepresence
                                            • 12. Istio
                                            • 13. Minikube
                                          • Orchestration
                                            • 14. Conductor
                                          • Programming Languages
                                            • 15. Elixir
                                            • 16. Spring Boot
                                          • Toolkits
                                            • 17. fabric8
                                            • 18. Seneca
                                            • 19. Google Cloud Functions
                                          • 建筑框架
                                            • 20. goa
                                            • 21. Kong
                                          • 无服务器工具
                                            • 22. Claudia
                                            • 23. Apache Openwhisk
                                            • 24. Serverless
                                            • 25. Kubeless
                                            • 26. IronFunctions
                                            • 27. AWS Lambda
                                            • 28. OpenFaaS
                                            • 29. Microsoft Azure Functions
                                          • 30+的团队建设工具
                                          相关产品与服务
                                          服务网格
                                          服务网格(Tencent Cloud Mesh, TCM),一致、可靠、透明的云原生应用通信网络管控基础平台。全面兼容 Istio,集成腾讯云基础设施,提供全托管服务化的支撑能力保障网格生命周期管理。IaaS 组网与监控组件开箱即用,跨集群、异构应用一致发现管理加速云原生迁移。
                                          领券
                                          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档