雲原生技術在效率上的巨大優勢,使其日益成為IT發展的主流趨勢。根據Gartner的預測,到2025年,雲原生平台将成為95%以上的新數字化計劃的基礎。
圍繞雲原生中的各個方面,都有這非常出色的開源工具,涵蓋容器排程、可觀察性、持久性存儲、容器運作時和其他領域。我們需要的就是發現優秀的工具,并在工作中合理的運用,讓雲原生之旅更加便捷高效。
本文繼續為大家推薦雲原生各方面的優秀開源工具。
Service Proxies
CNCF對service proxy給出的說明是:攔截進出給定服務的流量,對其應用一些邏輯,然後将該流量轉發到另一個服務。 它本質上充當“中間人”,收集有關網絡流量的資訊和/或對其應用規則。
在系列前面文章中推薦過service mesh的開源工具,service meshd的實作實際上也依賴于service proxy工具,比如Istio、kuma等項目就是基于Envoy實作的。
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIwJWZ3xCdh1mcvZ2LcRDOxEzX3xCZlhXam9VbsUmepNXZy9CXldWYtlWPzNXZj9mcw1ycz9WL4xSPrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdsAjMfd3bkFGazxCMx8VesATMfhHLlN3XnxCMz8FdsYkRGZkRG9lcvx2bjxSa2EWNhJTW1AlUxEFeVRUUfRHelRHL0EzXlpXazxyayFWbyVGdhd3LcV2Zh1Wa9M3clN2byBXLzN3btg3PwJWZ35SO0cTM4IjZ5QjMzgzY4MDNzYzX3QzNwETMwEzLcBTMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.webp)
要推薦的是Envoy。
Envoy 的項目介紹中描述自己為“為雲原生應用程式設計的開源邊緣和服務代理”。微服務從業者很快意識到的那樣,遷移到分布式架構時出現的大多數操作問題最終都基于兩個領域:網絡和可觀察性。 與單個單體應用程式相比,聯網和調試一組互相交織的分布式服務隻是一個數量級的問題。Envoy 最初是在 Lyft 建構的,是為單一服務和應用程式設計的高性能 C++ 分布式代理,也是為大型微服務“服務網格”架構設計的通信總線和“通用資料平面”。 基于對 NGINX、HAProxy、硬體負載均衡器和雲負載均衡器等解決方案的學習,Envoy 與每個應用程式一起運作,并通過以與平台無關的方式提供通用功能來抽象網絡。 當基礎設施中的所有服務流量都通過 Envoy 網格流動時,通過一緻的可觀察性可視化問題區域、調整整體性能并在一個地方添加底層功能變得很容易。
網站:https://www.envoyproxy.io/
除了Envoy以外,還可以關注的開源ce proxy工具包括BFE ,OpenELB等。
相關項目位址如下:
https://github.com/bfenetworks/bfe/
https://github.com/openelb/openelb
Persistent Storage
在容器化方面,實施資料的持久存儲有點違反直覺。 臨時容器是一個短暫的計算環境,代碼不會永遠存儲。 但是您仍然需要将資料存儲在某處。是以雖然持久化存儲的問題一直在雲原生範疇内被讨論這,圍繞着這一領域也有着很多優秀的開源工具。
首先推薦的是Rook.
Rook 對自身的定位是Storage Operators for Kubrnetes。Rook 将分布式存儲系統轉變為自我管理、自我擴充、自我修複的存儲服務。 它可以自動執行存儲管理者的任務:部署、引導、配置、供應、擴充、更新、遷移、災難恢複、監控和資源管理。
Rook 使用 Kubernetes 平台的強大功能通過 Kubernetes Operator for Ceph 提供其服務。
網站:https://rook.io/
項目:https://github.com/rook/rook
接下來是Longhorn
Longhorn的自我定位是Cloud-native distributed storage built on and for Kubernetes。Longhorn 是 Kubernetes 分布式塊存儲的開源工具。 使用 Longhorn,您可以為 Kubernetes 叢集複制存儲,并利用持久卷的内置增量備份。 您可以使這些快照重複出現并将它們備份到輔助對象存儲。 根據文檔,這是通過“将大型塊存儲控制器劃分為多個較小的存儲控制器”來實作的,進而有助于緩解與各種基于容器的微服務的存儲相關的問題。 Longhorn 還與非雲托管的 K8s 叢集相容,并具有可免費使用的時尚圖形管理 UI。 與 Rook 類似,它是 Kubernetes 原生的。 Longhorn 最初由 Rancher 開發,現在是 CNCF 内的一個孵化項目。
網站:https://longhorn.io/
項目:https://github.com/longhorn/longhorn
其他推薦的雲原生 持久化存儲項目包括: CubeFS, K8up, OpenEBS, ORAS, Piraeus Datastore 等
Cloud-Native Database Tools
除非您的應用程式完全是無狀态的,否則它将需要存儲和檢索持久資料。 這就是資料庫的用武之地——它們使用一種簡單的查詢語言,允許授權使用者檢索和編輯資料。 現在已經在支援有狀态的 Kubernetes 部署方面取得進展,許多組織正在尋求将容器化和 Kubernetes 的相同可擴充性優勢帶入資料庫管理。
首先要說到Vitess。
Vitess為解決MySQL橫向擴充而實作的叢集管理系統。
Vitess 誕生于 2010 年,旨在解決在 YouTube 上大規模運作 MySQL 時遇到的問題。 Vitess 被描述為 MySQL 的分片中間件。 使用 Vitess,您可以對 MySQL 資料庫進行分片,同時從一開始就好像您正在與一個統一的資料庫進行通信,所有這些都無需向您的應用程式添加額外的邏輯。
由于 MySQL 本身不支援分片,Vitess 是一個有用的中間件,可以保留 MySQL,同時支援更多的分布式資料庫架構。 Vitess 還包括其他智能功能,例如自動處理故障轉移和備份以及重寫可能導緻性能不佳的查詢。 YouTube、Weave、Square、Slack 和 Hubspot 隻是衆多使用 Vitess 的公司中的一部分。
網站:https://vitess.io
項目:https://github.com/vitessio/vitess
另一個推薦的是TiKV
TiKV 是一個擅長處理大量資料的鍵值資料庫。 它本質上是一個統一的分布式存儲層,旨在擴充到 PB 級部署或數萬億行。 TiKV 提供了一個符合 ACID 的事務鍵值 API,并擁有極短的響應時間。
TiKV 的結構包括存儲鍵值對的 TiKV 節點和管理 TiKV 叢集的 Placement Driver (PD) 節點。 TiKV 的靈感來自 Google 的 Spanner,這是一個全球分布的資料庫。 TiDB、Zetta、Tidis、Titan 和 JuceFS 等項目都使用 TiKV。 要開始使用 TikV,您可以按照此處的分步說明進行操作。
需要特别提到一點,TiKV 最初由 PingCAP 建立,是我們中國的開源項目,現在是 CNCF 旗下的一個畢業項目。
網站:https://tikv.org/
項目:https://github.com/tikv/tikv
安全和合規性
在安全和合規性方面,開源項目推薦HummerRisk。HummerRisk 是一款開源的雲原生安全平台,以非侵入的方式解決雲原生的安全和治理問題。核心能力包括混合雲的安全治理和K8S容器雲安全檢測。
首先可以快速實作跨雲的持續合規性檢測,因為是國内開源,對國内的雲支援度非常好。另外就是可以對雲原生資源進行安全檢測,比如鏡像、容器、K8s以及源代碼等。同時項目保持了高度的靈活性,針對規則和檢測都可以快速的實作自定義,以及産品擴充。
網站:https://www.hummercloud.com/
項目位址:https://github.com/HummerRisk/HummerRisk