天天看點

專訪 Christian Posta:Istio 1.7 将成為生産可用的最穩定版本Istio 逐漸走向架構簡化Istio 的未來發展趨勢首屆雲原生微服務大會

專訪 Christian Posta:Istio 1.7 将成為生産可用的最穩定版本Istio 逐漸走向架構簡化Istio 的未來發展趨勢首屆雲原生微服務大會

作者 | 田曉旭、Christian Posta

2017 年,Istio 釋出了 0.1 release 版本之後,其優雅的架構設計就獲得了大家的認可。随着版本疊代,有開發者吐槽 Istio 太複雜。于是,Istio 1.5 版本推翻了之前的架構設計,提出了“回歸單體”的架構設計,1.6 版本的 Release note 更是在開篇就表明了要将極簡主義進行到底。

Istio 1.5 和 1.6 版本的架構設計變化引發了衆多開發者的讨論,大家都很關心 Istio 架構簡化将會走向何方?即将推出的 1.7 版本又會有哪些驚喜?萬衆期待的 Envoy 與 WebAssembly 內建的進度如何?...... 為了揭開以上問題的答案,在雲原生微服務大會開幕之際,我們采訪到了前 Red Hat 首席架構師、Istio in action 作者、solo.io Field CTO Christian Posta。

Istio 逐漸走向架構簡化

從 1.5 版本開始,Istio 就走上了架構簡化的道路,這是因為 Istio 自身的控制面元件在運維方面遇到了很多難題,例如管理職責劃分的問題,将控制元件拆分出來的初衷是為了分離功能職責,由不同的運維或開發人員單獨管理,但是實際應用中,運維往往是由一個人或團隊管理,并沒有起到單獨管理的作用;部署複雜的問題,元件拆分之後,系統的可運維性難度陡然上升,增多的配置和參數增加了部署的複雜性等等。

正是因為這些複雜性,GitHub 中出現了各種各樣的部署相關 issue,例如 lstio operator、Istioctl 等等,但遺憾的是均未取得突破性的進展。Istio 1.5 版本大膽進行了一次“自我革命”,将控制平面的所有元件組合并成一個單體結構 Istiod。

Istiod 的設計初衷是“How I Learned to Stop Worrying and Love the Monolith”,并在一開始就明确提出了設計目标:降低安裝複雜度、降低配置複雜度、增加控制面可運維性、提高問題診斷能力、提高效率和響應速度、消除不必要的耦合。Istiod 是一個單體,支援以前版本的所有功能,之前組成控制平面的服務在項目中仍然是作為子子產品實作(包括邊界和契約等),但操作體驗得到改善。

Istio 1.6 版本其實是對 1.5 版本未完成工作的收尾,其中最大的簡化工作是将原有元件的功能完全整合入 Istiod ,讓 Istiod 更加完整,也徹底移除了 Citadel、Sidecar Injector 和 Galley。另外,添加了 istioctl install 指令來替代 manifest apply 的安裝過程,用更直覺、更精簡的指令改善安裝過程的體驗。

Istio 的未來發展趨勢

經過 1.5 和 1.6 兩個版本的疊代,Istio 的架構簡化已經逐漸成型,但是目前仍有功能和需求未能實作,例如結束 Mixer 之後,中心化的限流、黑白名單等功能還未出現相應的補償措施。是以,大家對于 Istio 1.7 版本充滿了期待與好奇,接下來我們就看看 Christian Posta 是如何解讀 Istio 未來發展趨勢的。

Q:Istio 1.5 版本提出了要“回歸單體”,接着 1.6 版本提出了将極簡主義進行到底,社群對于 Istio 架構的簡化工作是如何考慮的?

Christian Posta:在 Istio 1.5 釋出之前,我寫過一篇詳細的部落格《 Istio as an example of when not to do microservices》來讨論這個問題。在部落格中,我探讨了建構分布式元件(微服務)的動機以及一些缺點,探索了 Istio 項目重新架構的動機,其中一個非常明顯的原因是分布式元件的技術紅利并未實作。我們需要非常坦誠地評估系統架構過程中的權衡(tradeooff),尤其是當這些權衡(tradeooff)最終無法使系統獲得技術紅利。這時候,最好是“修正路線”,這正是 Istio 所做的。

https://blog.christianposta.com/microservices/istio-as-an-example-of-when-not-to-do-microservices/

Q:Istio 的版本釋出周期改為了季度釋出,那麼新的版本中有哪些可以透露的新功能?

Christian Posta:Istio 1.7 版本很快就會釋出(Beta 2  8 月 12 日才釋出),此版本的一些主要功能是用于多個群集的中央 Istiod 控制器,對 VM 支援的持續增強,還有最重要的是穩定性方面的改進。

Q:國内很多技術人員都很關心 Envoy 與 WebAssembly 的強強聯手,不知道社群現在有什麼動作和規劃?

Christian Posta:沒錯! WebAssembly(WASM)越來越接近內建到上遊 Envoy proxy 項目中,并且我們一直在努力改善使用 WASM 和 WASM + Envoy 的開發體驗。我們在 2019 年 12 月宣布了 WebAssembly Hub,并在 2020 年 3 月對 Istio 1.5 進行了重大改進,特别是使用 wasme(WebAssembly Hub CLI)來作為使用 WebAssembly 擴充 Istio 的官方正式方法。一般而言,WASM 和 WASM + Envoy 都在與社群進行合作中,并且還有很多工作要做,敬請期待!

Q:Kubernetes 在 1.8 版本的時候基本已經穩定,現在 Istio 已經到了 1.6 版本,您預測 Istio 到哪個版本可以達到穩定?

Christian Posta:對于要避免使用哪些版本、要采用哪些版本,我一直很坦誠。可以這麼講,在 1.5 之前的 1.x 系列中,1.4.x 是最穩定的。現在,在 1.5 之後,我認為 即将推出的 1.7 會成為生産可用的穩定版本。

Q:您是如何看到目前全球整個 Service Mesh 的市場格局?Istio 在這個格局中又扮演什麼樣的角色?

Christian Posta:Service Mesh 的全球市場仍在迅速發展!早在 2018 年 11 月的 Solo.io,我們就 預測将有多個網格實作,并且沒有明顯的勝者 。這個預測已經實作。市面上不僅有多個服務網格選項,雲廠商們都開始提供自己的服務網格實作。例如 AWS AppMesh、Google Traffic Director、阿裡雲ASM,最近,微軟引入了 Open Service Mesh,我們相信它将成為微軟雲的一部分。我們在 Solo.io 建立了 Service Mesh Hub,以幫助減輕這種波動性和多樣性,以統一跨多個服務網格部署的各種工作負載。總體而言,我們現在看到越來越多的組織開始采用開源或廠商提供的服務網格技術,而不是自建。我個人認為,Istio 将繼續成為組織用于“自管理”服務網格的主導服務網格技術,并将長期與雲廠商的服務網格一起發展下去。

嘉賓介紹

Christian Posta  前 Red Hat 首席架構師、Istio in action 作者、solo.io Field CTO 。在金融、保險、零售等傳統行業從事分布式系統的開發工作近 20 年。從 Kubernetes 1.0 版本前,就一直在使用 K8s,并一直參與社群工作;在 Istio 公開釋出之前,在社群中就非常活躍。目前在 Solo.io 擔任 Field CTO,全職緻力于建構下一代 API 基礎設施,包括 API 網關、服務網格、 Web Assembly 等等。

首屆雲原生微服務大會

首屆雲原生微服務大會正在火熱直播中,點選 PC 端位址即可觀看:

https://developer.aliyun.com/topic/microservices2020#/
阿裡巴巴雲原生 關注微服務、Serverless、容器、Service Mesh 等技術領域、聚焦雲原生流行技術趨勢、雲原生大規模的落地實踐,做最懂雲原生開發者的公衆号。”

繼續閱讀