值得考慮的9個(gè)開源云原生項(xiàng)目
譯文【51CTO.com快譯】本文介紹CNCF九個(gè)值得關(guān)注的畢業(yè)和孵化開源項(xiàng)目。
畢業(yè)的項(xiàng)目
畢業(yè)的項(xiàng)目被認(rèn)為很成熟——且被許多組織采用,須遵守CNCF的指導(dǎo)方針。下面是三個(gè)受歡迎的開源CNCF畢業(yè)項(xiàng)目。
Kubernetes
談?wù)撛圃鷳?yīng)用程序不得不提Kubernetes。Kubernetes由谷歌發(fā)明,無疑是著名的容器編排平臺(tái),面向基于容器的應(yīng)用程序,它也是一個(gè)開源工具。
什么是容器編排平臺(tái)?基本上,容器引擎本身可用于管理幾個(gè)容器。然而,面對(duì)數(shù)千個(gè)容器和數(shù)百個(gè)服務(wù)時(shí),管理這些容器變得異常復(fù)雜。這時(shí)候容器引擎有了用武之地。容器編排引擎通過使容器的部署、管理、網(wǎng)絡(luò)和可用性實(shí)現(xiàn)自動(dòng)化來幫助擴(kuò)展容器。
Docker Swarm和Mesosphere Marathon是另外的容器編排引擎,但可以肯定地說Kubernetes成為了贏家(至少目前如此)。 Kubernetes還催生了OKD之類的容器即服務(wù)(CaaS)平臺(tái),OKD是Kubernetes的Origin社區(qū)發(fā)行版,為Red Hat OpenShift提供支持。
想開始入手,請(qǐng)?jiān)L問Kubernetes GitHub代碼庫,并從Kubernetes文檔頁面訪問其文檔和學(xué)習(xí)資源。
Prometheus
Prometheus是2012年在SoundCloud構(gòu)建的開源系統(tǒng)監(jiān)控和警報(bào)工具包。從那時(shí)起,許多公司和組織采用了Prometheus,該項(xiàng)目有一個(gè)很活躍的開發(fā)者和用戶社區(qū)。它現(xiàn)在是一個(gè)獨(dú)立于該公司來維護(hù)的獨(dú)立開源項(xiàng)目。
想認(rèn)識(shí)Prometheus,不妨想象需要每天24小時(shí)、每年365天正常運(yùn)行的生產(chǎn)系統(tǒng)。沒有哪個(gè)系統(tǒng)是完美的,有技術(shù)可減少故障(名為容錯(cuò)系統(tǒng))。然而,如果出現(xiàn)問題,最重要的是盡快找到問題。這時(shí)候像Prometheus這樣的監(jiān)控工具派得上用場。Prometheus不僅僅是一個(gè)容器監(jiān)控工具,它在云原生應(yīng)用程序公司當(dāng)中也極受歡迎。此外,包括Grafana在內(nèi)的其他開源監(jiān)控工具也使用Prometheus。
想開始入手Prometheus,推薦方法是查看其GitHub代碼庫。在本地運(yùn)行Prometheus很容易,但您需要安裝容器引擎。你可以在Prometheus網(wǎng)站上查看詳細(xì)文檔。
Envoy
Envoy(或Envoy Proxy)是一個(gè)為云原生應(yīng)用程序設(shè)計(jì)的開源邊緣和服務(wù)代理。Envoy創(chuàng)建于Lyft,是一種高性能C++分布式代理,專為單一服務(wù)和應(yīng)用程序設(shè)計(jì),還是一種為大型微服務(wù)服務(wù)網(wǎng)格架構(gòu)設(shè)計(jì)的通信總線和通用數(shù)據(jù)平面。Envoy基于Nginx、HAProxy、硬件負(fù)載均衡系統(tǒng)和云負(fù)載均衡系統(tǒng)等解決方案的學(xué)習(xí),與每個(gè)應(yīng)用程序并行運(yùn)行,通過以一種與平臺(tái)無關(guān)的方式提供通用功能來抽象網(wǎng)絡(luò)。
基礎(chǔ)設(shè)施中的所有服務(wù)流量流經(jīng)Envoy網(wǎng)格時(shí),在一個(gè)地方通過一致的可觀察性直觀地顯示問題區(qū)域、調(diào)整總體性能以及添加底層功能變得很容易。Envoy Proxy基本上是一種服務(wù)網(wǎng)格工具,可幫助組織為生產(chǎn)環(huán)境構(gòu)建容錯(cuò)系統(tǒng)。
服務(wù)網(wǎng)格應(yīng)用有很多替代方案,比如優(yōu)步的Linkerd(下有討論)和Istio。Istio通過部署為Sidecar并利用Mixer配置模型來擴(kuò)展Envoy Proxy。Envoy值得注意的特點(diǎn)如下:
- 包括所有的“基本”功能(與Istio等控制平面結(jié)合使用時(shí))
- 核心層面充當(dāng)L3/L4過濾器,默認(rèn)提供許多L7過濾器
- 支持gRPC和HTTP/2(上游/下游)
- 由API驅(qū)動(dòng),支持動(dòng)態(tài)配置和熱重載
- 側(cè)重于度量標(biāo)準(zhǔn)收集、跟蹤和總體可觀察性
想了解Envoy、驗(yàn)證其功能并獲得充分的好處,需要在運(yùn)行生產(chǎn)級(jí)環(huán)境方面擁有豐富的經(jīng)驗(yàn)。您可以訪問GitHub代碼庫,從詳細(xì)文檔中了解更多信息。
孵化項(xiàng)目
以下是六個(gè)受歡迎的開源CNCF孵化項(xiàng)目。
rkt
rkt是一個(gè)pod原生容器引擎。它擁有用于在Linux上運(yùn)行容器的命令行界面(CLI)。從某種意義上說,它類似其他容器,比如Podman、Docker和CRI-O。
rkt最初由CoreOS開發(fā)(后被Red Hat收購),您可以在官網(wǎng)上找到詳細(xì)的文檔,在GitHub上訪問源代碼。
Jaeger
Jaeger是一個(gè)面向云原生應(yīng)用程序的開源端到端分布式跟蹤系統(tǒng)。一方面,它與Prometheus一樣是監(jiān)控解決方案。不過它又不一樣,因?yàn)槠涫褂脠鼍翱蓴U(kuò)大到:
- 分布式事務(wù)監(jiān)控
- 性能和延遲優(yōu)化
- 根本原因分析
- 服務(wù)依賴項(xiàng)分析
- 分布式上下文傳播
Jaeger是優(yōu)步開發(fā)的一種開源技術(shù)。您可以在官網(wǎng)上找到詳細(xì)的文檔,在GitHub上訪問源代碼(。
Linkerd
與Lyft開發(fā)Envoy Proxy一樣,優(yōu)步開發(fā)了Linkerd這個(gè)開源解決方案,以維護(hù)其生產(chǎn)級(jí)服務(wù)。在某些方面,Linkerd就像Envoy,因?yàn)閮烧叨际欠?wù)網(wǎng)格工具,旨在提供整個(gè)平臺(tái)的可觀察性、可靠性和安全性,無需配置或代碼更改。
然而兩者存在一些細(xì)微差別。雖然Envoy和Linkerd充當(dāng)代理,可以報(bào)告已連接的服務(wù),但Envoy不像Linkerd那樣旨在成為Kubernetes Ingress控制器。Linkerd的顯著特點(diǎn)包括:
- 支持多種平臺(tái)(Docker、Kubernetes、DC/OS、Amazon ECS或任何獨(dú)立機(jī)器)
- 內(nèi)置的服務(wù)發(fā)現(xiàn)抽象,以統(tǒng)一多個(gè)系統(tǒng)
- 支持gRPC、HTTP/2和HTTP/1.x請(qǐng)求以及所有TCP流量
您可以在Linkerd的網(wǎng)站上閱讀更多相關(guān)信息,并在GitHub上訪問源代碼。
Helm
Helm基本上是Kubernetes的包管理器。如果您用過Apache Maven、Maven Nexus或類似的服務(wù),就會(huì)了解Helm的用途。 Helm可幫助您管理Kubernetes應(yīng)用程序。它使用“Helm Charts”來定義、安裝和升級(jí)哪怕復(fù)雜的Kubernetes應(yīng)用程序。Helm不是完成這項(xiàng)任務(wù)的唯一方法,另一個(gè)流行起來的概念是Kubernetes Operators,Red Hat OpenShift 4使用該概念。
您可以按照其文檔中的快速入門指南或GitHub指南來試用Helm。
Etcd
Etcd是可靠的分布式鍵值存儲(chǔ)項(xiàng)目,可用于存儲(chǔ)分布式系統(tǒng)中關(guān)鍵的數(shù)據(jù)。其主要特點(diǎn)如下:
- 定義明確、面向用戶的API(gRPC)
- 自動(dòng)TLS,擁有可選的客戶證書驗(yàn)證
- 速度快(每秒10000次寫入)
- 可靠性(使用Raft來分發(fā))
Etcd用作Kubernetes和其他許多技術(shù)的內(nèi)置默認(rèn)數(shù)據(jù)存儲(chǔ)。話雖如此,它很少獨(dú)立運(yùn)行或作為單獨(dú)的服務(wù)運(yùn)行;相反,它使用集成到Kubernetes和OKD/OpenShift的服務(wù)或另外的服務(wù)。還有etcd Operators可用來管理生命周期并發(fā)掘其API管理功能。
您可以在etcd的文檔中了解更多信息,在GitHub上訪問源代碼。
CRI-O
CRI-O在遵守開放容器倡議(OCI)的情況下實(shí)現(xiàn)了Kubernetes運(yùn)行時(shí)接口。CRI-O用于各種功能,包括:
- 運(yùn)行時(shí)環(huán)境使用runc(或任何OCI運(yùn)行時(shí)規(guī)范實(shí)現(xiàn))和OCI運(yùn)行時(shí)工具
- 使用容器/映像的映像管理
- 使用容器/存儲(chǔ)來存儲(chǔ)和管理映像層
- 通過容器網(wǎng)絡(luò)接口(CNI)提供網(wǎng)絡(luò)支持
CRI-O提供了大量文檔,包括指南、教程、文章甚至播客,您還可以訪問其GitHub頁面。
原文標(biāo)題:9 open source cloud native projects to consider,作者:Bryant Son
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】