盘点那些你可能错过的CNCF优秀开源项目
自2015年成立以來,云原生計算基金會(CNCF)已經成為開源生態系統中最重要的推動者之一,特別是當涉及到影響容器和其他“云原生”技術的工具時。CNCF成立的目的是促進和組織與大型行業趨勢相關的項目,包括容器化、編排和微服務架構。自那以后,CNCF已經增加了10個開源項目。
即使您從未聽說過CNCF,一定也聽說過比它更受歡迎的項目之一:Kubernetes容器編排平臺,但是CNCF比Kubernetes要大得多。如果您想要了解容器和云計算領域的重要發展,可以看看下文中介紹的CNCF生態系統中其他值得關注的重要項目。
LINKERD
第一個是Linkerd,一個基于微服務的原生云應用程序的開源“服務網格”項目。
Linkerd背后的想法是:微服務固然很好,但是只有當你有一個好方法來連接它們、形成完整的應用程序時,微服務的好處才能夠體現。如若不然,你的微服務應用程序就會變成一個笨重的移動部件,它們彼此也不能很好地結合在一起。
Linkerd是一個開源項目,旨在通過提供開發人員所說的“service mesh(服務網格)”來解決這一挑戰。Linkerd的服務網格提供了一個方便可靠的接口,不同的服務可以交互運行。除了通過為連接服務提供簡單的方式和一致的抽象層來簡化程序員的工作之外,Linkerd還具備可伸縮性、高可用性和安全性等特點。該項目由Buoyant監管,于2017年初加入CNCF。
FLUENTD
度量只是微服務應用程序可見性難題的一個方面。集中化的日志則是另一個。
隨著應用程序的數量和公司規模的增長(尤其是越來越多的服務被容器化),在一個地方收集、分析和查詢結構化日志是非常重要的。
這就是Fluentd的初衷。Fluentd是一個日志收集器(類似于logstorage),通過它可以對日志進行過濾、清潔和路由到各種目的地。與其他日志收集器一樣,Fluentd可以與各種核心和第三方輸入及輸出插件(如Elasticsearch插件、S3插件等)一起使用。
Fluentd還具有一定的內存存儲和可靠性。從多個主機到Fluentd、接著到Elasticsearch集群的rsyslog文件的日志路徑極其簡潔,這一簡單的例子也充分證明了使用Fluentd的益處所在。
OPENTRACING
值得關注的第三個項目是分布式跟蹤。隨著單體應用程序被分解為各種更小的服務,自然會有越來越多的數據在服務中傳輸,從前端傳輸到后端,從一個服務傳輸到另一個服務。但是,當一個具有各種依賴關系的公共應用程序突然出現延遲時,會發生什么情況呢?這就是分布式跟蹤的由來。其核心在于,跟蹤是通過不同的請求調用、線程和流程來傳播元數據,并最終基于此元數據構建一個圖表。
OpenTracing是一種跟蹤標準,它是為響應分布式跟蹤領域長期存在的問題而創建的——即,當一個公司的堆棧可能由大量第三方軟件、操作系統和自定義應用程序組成的時候,如何協調跟蹤?OpenTracing,一種標準化的跟蹤程式,就是這一難題的解決方案。該項目為跨越(即計時操作)管理和進程間傳播,提供了的儀器API的標準化服務。因此,用戶可以輕松地切換到跟蹤庫或集中式跟蹤系統(如Zipkin、Dapper等),無須復雜的配置,免去了很多麻煩。
GPRC
到目前為止,我們已經知道了如何部署、調度和了解云中的微服務。但是他們之間的交流方式是什么呢?
讓我們來看看“遠程程序調用(RPC)”。
遠程程序調用的概念已經存在了一段時間了,它指的是一種模式,在這種模式中,函數被稱為遠程調用,通常在系統中使用,而不是基于RESTful服務的CRUD模型。
但是,gRPC指的是谷歌實現的遠程程序調用,它利用了http/2和協議緩沖區。與基于jsf的RPC相比,gRPC已經被證明在數量級上更快,這使得它成為大型分布式平臺的優秀選擇。事實上,etcd(來自CoreOS的流行鍵值存儲)和谷歌自己的BigTable都是gRPC!
RKT
最后一個值得關注的項目是rkt(也稱為Rocket),一個容器運行時。盡管Docker的containerd運行時可能是以推廣容器概念的容器為目的的運行時,但是Docker仍然是編排生態系統中常用的運行時,因此我們相信RKT在后期會變得越來越受歡迎。
兩者之間的差異也是顯而易見的。雖然Docker已經選擇了在集群中打包,并由一個守護進程和通過REST API與保護進程通信的可執行程序組成,但是RKT要簡單得多。它由一個簡單的命令行工具組成,當給定一個鏡像、一個規范格式和一個鏡像發現機制時,RKT就能運行一個容器。
使用RKT,用戶可以在配置容器運行時時避免像systemd這樣的問題。此外,RKT不僅可以運行App Container format中的鏡像,還可以運行標準的Docker鏡像。
結論
我們正在一步步更快地向微服務架構的世界邁進,與此同時,越來越多的開源項目涌現,以期為那些真正想要做到“云原生”的用戶服務。CNCF有大量優秀卻未必廣為人知的項目,本文只涵蓋了其中一部分,建議您也可以多了解其他的項目,為未來儲備:https://www.cncf.io
作者簡介
Sneha Inguva是一位熱心的軟件工程師,目前正在DigitalOcean研發軟件開發工具。在過去的幾年里,她在各種各樣的初創公司里工作過,并且對折衷垂直領域(教育、3D打印和賭場等)的軟件構建和部署擁有獨特的視角。
原文:http://rancher.com/cncf-proje...
微信號:RancherLabs
總結
以上是生活随笔為你收集整理的盘点那些你可能错过的CNCF优秀开源项目的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mongo索引命令
- 下一篇: 除了航拍,无人机也许能用于救火救灾