There are tons of good articles about microservices. For those who haven’t experienced microservices or heard the concept for the first time, this article puts a list of top open source tools in front of them. Microservices are an architectural style for developing highly scalable software systems. This architecture can be used to develop enterprise-level applications for businesses, governments, schools and charities. It is the opposite of the traditional monolithic architecture, which focuses on a single application.

Microservices are small and independent, but their architectures can be complex when it comes to development and maintenance. Microservices communicate with each other through synchronous protocols (such as HTTP/REST) or asynchronous protocols (such as AMQP) to achieve business goals.

But some things are easier to do than others. Microservices architecture may seem like a coherent structure, but it’s not easy to actually build microservices using tools. Unlike traditional development, testing, and deployment, it also requires constant monitoring and the ability to quickly resolve problems when they do occur.

Keep in mind that no tool can provide a one-stop solution for microservices. In his article “Three Elements of microservices Architecture”, Mike Amundsen points out that there are three key factors that determine the successful implementation of microservices: communication, team and innovation. Of these three factors, communication is undoubtedly the most indispensable one.

There are a number of tools available for building microservices, most of which are free and can be used to perform specific tasks, while some offer a fee-for-service capability.

API management and testing

1. API Fortress

API Fortress is an API testing and health checking tool that provides automated functional testing, health checking, and load testing for enterprise apis. It is designed to be code free and built entirely on the basis of modern API architectural practices and patterns.

http://apifortress.com/

2. Postman

Postman is an API development suite for individual developers and teams that makes it easy to run UI-driven API tests. Postman is also a powerful HTTP client that makes RESTful API exploration a breeze. Users can combine simple and complex HTTP requests for quick API testing, development, and documentation.

https://www.getpostman.com/

3. Tyk

Tyk is an open source API management platform out of the box, fast and scalable. Whether deployed in-house, in the cloud, or using a mixture of the two, Tyk has no problem. In addition to reducing administrative costs, Tyk will bring you high availability and low latency.

Home

Message service

4. RabbitMQ

RabbitMQ acts as a communication bridge between microservices, supporting a variety of patterns to improve application scalability and solve problems common to most distributed systems. RabbitMQ can be used in microservice environments or any other distributed system. You can also use this tool to exchange events between services.

https://www.rabbitmq.com/

5. Amazon Simple Queue Service (SQS)

Amazon SQS provides a powerful, flexible and reliable microservices communication mechanism. As a publish-subscription-based microservice communication model, Amazon SQS can help developers solve many problems. In addition to better security, queues enhance reliability by providing storage for messages to be processed.

https://aws.amazon.com/sqs/

6. Apache Kafka

Message queues are important to microservice architectures to handle communication between microservices and between microservices and external sources, whether it is intensive data processing or API calls. Apache Kafka is a distributed stream processing platform with high fault tolerance and resiliency.

https://kafka.apache.org/

7. Google Cloud Pub/Sub

Google Cloud Pub/Sub is a fully hosted real-time messaging service that lets you send and receive messages between microservices. Integrating the application with Google Cloud Pub/Sub will help handle all asynchronous requests and reduce the time users wait for a response.

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

Supervisor control

8. Logstash

After the microservices are deployed, they must be monitored. However, there are many factors to consider for good monitoring. For example, is a microservice working well and needs to be adjusted? Are other components, such as the database, working properly? You need to check these issues by checking your logs, and Logstash is a great logging tool. It’s an open source platform where you can collect, store, and transform data with Logstash.

https://www.elastic.co/products/logstash

9. Graylog

You can use Logstash in conjunction with Graylog as a centralized server. Graylog provides an interactive interface that is easy to use and fast. Users can easily browse data in Graylog. It is scalable and can grow as the business grows. Graylog isn’t free, but the price is great.

https://www.graylog.org/

Kube development

10. Kubernetes

Although Kubernetes is a container allocator, it also has a place in the microservices space. Kubernetes has become the gold standard for best deployment practices. Kubernetes is a leader in container scheduling, load balancing, and service discovery.

https://kubernetes.io/

11. Telepresence

Telepresence is a native development tool for Kubernetes. Waiting for container deployment to complete can be time-consuming, and with Telepresence, a hybrid model can be used. You do your local coding on your laptop while connecting to services in Kubernetes via a two-way proxy. However, Telepresence is not recommended in a production environment and is more suitable for local development.

https://www.telepresence.io/

12. Istio

Istio supports service deployment on Kubernetes. Istio service grid technology brings reliability, security, and manageability to microservice communications. Service grid technology can be used to improve the relationships and interactions between applications and microservices.

https://istio.io/

13. Minikube

Minikube is a handy open source tool that allows you to run Kubernetes on your laptop without WiFi. For example, when you’re on a plane and need to write code, this comes in handy.

https://github.com/kubernetes/minikube

Make up with

14. Conductor

Conductor is Netflix’s microservice orchestration engine, which is part of Netflix’s OSS ecosystem. Conductor runs in the cloud and implements the orcheation of microservices. It can also be used to control and visualize interactions between microservices.

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

A programming language

15. Elixir

Expand your programming skills with Elixir, a general-purpose functional concurrent programming language that runs on top of Erlang VM (also known as BEAM).

https://elixir-lang.org/

16. Spring Boot

Using the Spring Boot framework can greatly simplify the creation of REST microservices in just a few lines of code. You can start your project quickly using the examples provided by Spring Boot or Spring Initializr.

http://spring.io/

kit

17. fabric8

As an open source platform-as-a-service tool, Fabric8 provides developers with a Git-based configuration management system that handles IP address complexity, port mapping, and load balancing of services. Fabric8 also gives us scalability and high availability.

http://fabric8.io/

18. Seneca

Developers can easily build message-based microservices using Seneca, the Node.js microservices toolkit that allows you to write clean, well-structured code and easily systematize your application’s business logic.

http://senecajs.org/

19. Google Cloud Functions

Cloud Functions (BETA) of the Google Cloud Platform is a lightweight serverless Platform that is easy to deploy and maintain. Its console provides developers with a great solution for building event-driven, low-coupling microservices applications. The platform charges for containers based on usage. In addition, developers can connect Cloud Functions to other products through the Google Compute API.

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

Architectural framework

20. goa

Goa is a framework developed using the Go language for building REST apis and microservices. In GOA, developers can design the API and then generate everything from JSON documents to command-line applications and JavaScript libraries. All Goadesign services run on the Google Cloud Platform.

https://stackshare.io/goa

21. Kong

Kong can be installed in a variety of operating environments, and it utilizes a large number of Read-to-deploy plug-ins to assist in the development and deployment of microservices. With Kong, you can better leverage microservices and container design patterns to quickly build API-centric applications.

Home

None Server Tools

22. Claudia

By using Claudia, developers can focus on the business and not waste energy dealing with AWS deployments. Claudia handles deployments related to AWS Lambda and API Gateway. Claudia can also automate error-prone deployment and configuration tasks. In addition, it provides enhancement tools such as Claudia API Builder and Claudia Bot Builder.

https://claudiajs.com/

23. Apache Openwhisk

Apache Openwhisk is an event-based programming service and an easy-to-scale serverless computing platform that helps developers create, test, connect, and debug microservices. Users can install and use OpenWhisk via Docker on Mac, Windows, or Linux.

https://openwhisk.apache.org/

24. Serverless

True to its name, this tool combines FaaS/ serverless technology with other cloud services to help developers build complex systems. Serverless also provides scalability, integrated security, and improved operability.

https://serverless.com/

25. Kubeless

Kubeless is a native Kubernetes serverless framework that allows users to deploy a small amount of code without worrying about the underlying infrastructure. Kubeless is aware of Kubernetes resources and provides automatic scaling, API routing, monitoring, and troubleshooting. Kubeless relies entirely on K8s primitives, so Kubernetes users can also use a combination of the native K8s API server and API gateway.

https://github.com/kubeless/kubeless

26. IronFunctions

IronFunctions is an open source serverless (or FaaS) platform that can run anywhere. IronFunctions is developed in the Go language, but can support functions written in any language. The main advantage of IronFunctions is that it supports the AWS Lambda format and can import and run functions directly from Lambda.

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

27. AWS Lambda

AWS Lambda provides infrastructure-less servers for building microservices, with users being charged for usage. Lambda can also be used in conjunction with AWS API Gateway, which can be used to host REST or API services. Combining the two allows your API to handle any request made by the user.

https://aws.amazon.com/lambda/

28. OpenFaas

An open source serverless software that promises to “make serverless function simple”. OpenFaaS can help you package any process or container as a serverless function for Windows or Linux. Like other serverless technologies, it has the benefit of allowing developers to focus on the business rather than working on the underlying application structure.

https://www.openfaas.com/

29. Microsoft Azure Functions

This is an event-driven, on-demand computing function that enhances existing Azure application capabilities. On-demand computing means that users only pay for the resources they use. Azure Functions help developers connect to data sources/messaging services, allowing them to easily process and respond to events. Developers can also leverage Azure Functions to build HTTP-based API endpoints.

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

30. Team building tools

Development teams typically need to deal with changes to microservices on a regular basis. Good communication and cooperation between teams are needed to achieve true team autonomy. Flexibility and accountability should continue throughout the application life cycle. There are many tools available for team collaboration, such as video conferencing, chat tools, project management applications, and wikis, that can help microservices developers implement the three elements of microservices mentioned earlier. There are so many of these tools that the Caylent team chose Slack, Trello, Google Cloud, Postman, and Google Meet for their development and communication needs as a reference.

New open source tools are always coming out, so keep an eye on them. The resources listed in this article are just the tip of the iceberg of microservices system tools. Remember, open source is all about rapid evolution.

英文原文 :

https://caylent.com/building-microservices/