歡迎光臨
每天分享高質量文章

30個不錯的微服務工具推薦

微服務架構,或說是微服務本身,是一種用於提升軟體系統可擴充套件性的架構風格。與微服務相關的好文章不勝列舉,而本文希望能夠為那些從未嘗試過、或只是剛剛開始嘗試微服務的人,提供一份頂級開源工具的清單。
微服務架構可用於企業、政府、學校和慈善機構等的企業級應用程式。與傳統風格的單體架構完全相反,微服務專註於單個單元應用程式。
微服務微小、獨立且獨特。微服務架構的構建和維護都可能非常複雜。微服務之間可以相互通訊,利用同步協議、HTTP / REST或非同步協議來服務於整體的業務標的。HTTP / REST或AMQP就是協作服務的示例,這些協作服務透過實現彼此相關的功能來盡可能高效地協同工作。
微服務這一概念聽起來清晰明瞭,但在實際操作中,想用所需的各種工具來構建微服務應用程式並非易事。這不僅僅是開發、測試或部署軟體的傳統問題。我們還需要進行持續監控,確保出現故障時,問題能夠快速解決。
時刻謹記,並不存在哪個完美工具能夠給微服務提供一站式的解決方案。Mike Amundsen的《微服務架構三大支柱》一文中曾經提出過,微服務成功的關鍵因素中,在組織設計的層面有三大關鍵組成部分:溝通、團隊和創新。而在所有支柱中,溝通無疑是最不可或缺的。
市場中有許多工具可用於支援構建微服務架構,其中大多數工具中的某些特定功能都是免費的,但是許多工具也可以為額外的功能和服務提供額外的付費升級。


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完全依賴於Kubernetes原語,因此Kubernetes使用者也可以使用原生Kubernetes API伺服器和API閘道器。
連結:https://github.com/kubeless/kubeless
26IronFunctions
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/


團隊建設工具

開發團隊經常需要對微服務進行定期處理。要實現真正的團隊自治,團隊成員之間良好的溝通和合作必不可少。應用程式生命週期的所有部分、所有環節都需要靈活性和責任感。在團隊協作方面有許多工具可用,例如影片會議、聊天工具、專案管理應用程式和維基,這些工具有利於微服務開發人員遵守前文提到的微服務三大支柱。這類工具種類繁多且不少已經非常成熟,大家可以自行嘗試與選擇。
結語

軟體世界中不斷有新的開源工具湧現,我們應當時刻保持關註。本文的這一微服務系統工具清單是一個不錯的起點,但在未來勢必會有更多更好的工具出現,畢竟這正是開源的本質意義所在。
本文轉載自:RancherLabs

Kubernetes實戰培訓

Kubernetes應用實戰培訓將於2018年10月12日在深圳開課,3天時間帶你係統學習Kubernetes本次培訓包括:容器基礎、Docker基礎、Docker進階、Kubernetes架構及部署、Kubernetes常用物件、Kubernetes網路、儲存、服務發現、Kubernetes的排程和服務質量保證、監控和日誌、Helm、專案實踐等,點選下方圖片檢視詳情。

贊(0)

分享創造快樂