大會背景介紹
2019年6月24-26日,KubeCon + CloudNativeCon + Open Source Summit大會在上海世博中心舉行。本次大會是由CNCF的LC3和Linux基金會的OSS兩個大會合并而成的,是以規模空前甚大,估計有超過40多個國家,3000多名開發者參與會議。
由于最近兩年在從事Service Mesh方面的一些工作,而本次大會中有多個關于Service Mesh和Istio/Envoy相關的議程,我向公司申請報名參加了這次大會。
會議期間上海天氣很好,雖然已經是夏天,但這幾天的天氣并不熱,大部分時間天高雲淡,中間下了一場小雨。參會地點所在的世博中心在江邊,旁邊就是世博中國館,景色很好。

SOFAStack Workshop
會議第一天參加了螞蟻金服的SOFAStack Workshop。螞蟻的同學在國内Service Mesh非常活躍,是中文Istio文檔翻譯和國内Service Mesh社群 http://servicemesher.com 的主要組織者。像小劍、Jimmy、花肉等,我之前和他們在社群中就很熟悉了,是以這次見面感覺很親切,就像老朋友重逢一樣。
可以看出螞蟻同學為這次Workshop準備得很充分,提供給參與者的材料非常細緻,每一步操作都有詳細的指導。螞蟻同學帶着參與workshop的開發者使用SOFAStack在雲上建立一個網上書店demo程式,demo涉及了微服務建構,動态政策,分布式事務,Serverless,CloudMesh灰階釋出等主要的微服務開發和部署流程。感興趣的同學可以從該位址檢視和下載下傳workshop的相關資料:https://github.com/sofastack-guides/kubecon-workshop-demo-2019
據螞蟻的同學介紹,相比阿裡系的淘寶而言,螞蟻金服由于曆史技術棧的包袱較小,在雲原生這一塊是跟進得比較快的,其内部政策基本上是全面擁抱雲原生的技術棧,是以一些新出的熱點技術如Service Mesh,Serverless等很快就會使用。
workshop參與者在螞蟻同學的指導下建立demo
抽獎喜提螞蟻同學編寫的《未來架構-從服務化到雲原生》一本
SOFAStack Cloud Native Workshop 使用CloudMesh 輕松體驗ServiceMesh
Keynote
大會第二天的Keynote一直是Linux基金會宣傳其理念,願景以及贊助商進行市場宣傳的重要活動。但當天最讓人期待的莫過于Linus在keynote後的一次嘉賓談話。為了一睹Linus的真容,很多人一早就在舉行活動的red hall前排起了長隊。我由于來得較早,非常幸運地搶到了一個較好的位置,位于第六排中間,正好正對台上的演講嘉賓。
首先是Linux基金執行董事Jim Zemlin的開場演講,他的演講中提到幾個重要的事實和資料:
- Linux已經成為世界上最重要的軟體平台:100%的超級計算機,82%的收集,68%的企業伺服器,90%的公有雲負載,62%的嵌入式作業系統都運作在Linux上
- 中國已經成為第二大Kubernetes貢獻者
- 開源代碼通常占現代作業系統代碼總量的80%-90%
- 10%的CNCF會員來自中國,在會議中,宣布了螞蟻金服充值成為CNCF黃金會員
從他的演講中可以感受到來自中國的公司和開發者在開源軟體,特别是雲原生領域中發揮了越來越重要的作用。由于中國的市場體量很大,中國公司在在使用開源軟體時會面臨一些國外難以遇到的問題,例如如何應對數以億計的使用者量。在解決這些問題的同時,很多中國公司也将這些優化和改進貢獻到了上遊項目,造福整個開源社群,形成了良性的互動和循環。從後面兩天的主題演講,我也看到中國公司,特别是阿裡系在回饋上遊開源社群方面是做的非常好的。
Zemlin還提到開源蓬勃發展的一個原因是因為開源不是一個零和遊戲,無論是開發者,使用者還是商業公司都可以從開源中獲益。從開發者角度而言,積極參與開源軟體可以獲得就業市場上廣泛認可的能力,而不是隻能做一個公司的某個随時被替換的螺絲釘。從商業公司而言,參與和使用開源軟體可以借助社群的力量,并且可以很容易招聘到符合自己要求的人才。從使用者而言,開源加速了技術的發展,間接降低了使用者擷取新技術,新産品的成本。
Linux基金執行董事Jim Zemlin介紹Linux基金會下覆寫的開源項目及相關行業
Zemlin後面是CNCF執行董事Dan Kohn的演講,Dan沒有考慮到中國聽衆的文化背景,講得比較晦澀,我沒有仔細聽。
然後是Huawei的贊助廣告演講,印象最深的是華為将開源方舟編譯器,看得出是在為鴻蒙作業系統的生态圈布局。
最激動人心的時刻莫過于Linux上台了,Linus一上台就開了一個典型的Linus類型的玩笑:I don’t like presentation, because I don’t like preparing the slides and worrying about the audience’s response. So I do talk instead of presentation, if it turns out well, it’s my credit; if it sucks, you should blame the one who asks silly questions.
看着Linus淘氣的小眼神,Dirk Hohndel的内心是崩潰的,下面的問題可不能問錯了 :-)
當然這隻是一個玩笑而已,不過Linus的性格在這個玩笑中也展現無遺。談話過程中的一個話題也展現了Linus這種我行我素的性格。當問到如何看待技術和市場時,Linus答到:我隻關心技術,我認為如果技術夠好,就能赢得市場;當然,有時候行動更快的會赢得市場;但是,I just don’t care! 大牛就是霸氣,按自己的興趣而活,希望我有一天也能達到這種境界!
當被問到其它項目可以從Linux項目中借鑒哪些經驗時,Linus提到了兩點:
- Don’t break your users 保持各個版本之間的相容性,不要影響使用者對你的信任
- Common goal 項目内要有統一的目标和共同的文化,這個目标不是一個非常具體的目标,而是一個類似願景的長遠目标
參加的一些Session
大會的Session非常多,我根據自己的興趣選擇性地參加了一些Session。
Envoy的可觀察性
該Session的内容本身沒有太多特别之處,主要是根據HashiCorp内部使用Envoy的經驗講了Envoy提供了哪些可以用于可觀察性的配置/接口。
我在會後和主講人Nic Jackson聊了一下HashiCorp的Consul Connect項目,Consul Connect是一個支援Hybrid Cloud的Service Mesh項目,采用了Consul作為Service Registry,Envoy作為Sidecar,自己寫的控制面,後面會相容SMI(Service Mesh Interface)。
Consul connect在進行sidecar導流時沒有使用IPTables,而是将所有upstream的Service全部映射到了locahost的端口上,并通過Envoy監聽Localhost來實作Sidecar流量攔截。這種方式去掉了IPtables,Nic說他們目前的測試性能非常理想。
HashiCorp的方案主要是面向多雲環境以及同時存在Kubernetes和VM,bare metal場景的企業使用者。其方案和我們目前自己使用的方案比較類似,後面值得長期關注。如果希望了解更多Consul Connect的内容,可以關注HashiCorp的部落格及網站: https://www.hashicorp.com/blog/layer-7-observability-with-consul-service-mesh
Nic Jackson講解Envoy的可觀察性
基于Envoy和Apache Skywalking的服務網格的可觀察性
Tetrate分享了“基于Envoy和Apache Skywalking的服務網格的可觀察性”。通過Envoy的ALS(Access log Service)接口直接從Envoy擷取通路日志,并結合Istio對Inbound和Outbound的服務命名規則,以及Sidecar的命名規則分析出網格中服務調用的topo和Metrics資訊。該方案直接去掉了Mixer,以解決目前Mixer占用資源較大,以及對服務調用的Latency等問題。該方案的思路很好,但采用了一些Hack,不是一個正式方案,希望以後能正式合入社群。
邊緣計算的前5大問題
中國移動的一個很有意思的演講,講述了目前營運商在進行邊緣雲試點時遇到的一些實際問題。新技術在工程化時常常會遇到一些意想不到的實際問題,例如該演講中提到的邊緣機房中的電力問題。由于邊緣雲節點規模較小,一般不會從頭建立新的機房,而是選擇重用小區目前的機房,是以會遇到電源功率不足和不夠穩定的問題。
我想到的另一個問題是:雖然邊緣雲和5G這兩個詞經常一起出現,但其實邊緣雲和5G并不是強綁定的。很多邊緣雲的業務場景在4G的速度和帶寬下也可以實作,隻要在4G網絡中部署類似5G UPF的節點,将流量按一定規則導流到邊緣雲即可。以後會不會出現和4G網絡一起部署的邊緣雲節點呢?
邊緣雲架構圖
SPIFFE如何幫助Istio建立服務網格聯邦
介紹了一種多個Istio叢集(或稱為信任域)之間建立互相信任的機制。該機制可以解決跨叢集的服務通路的身份認證問題。其基本思路是在兩個信任域之間互相交換證書資訊,然後使用得到的證書資訊對對方的服務進行身份認證。
交換信任域之間的證書資訊
用得到的證書資訊對來自另一個信任域的請求進行身份認證
完整PPT連結
IngressRoute:如何為 Kubernetes 提供更好的 Ingress 對象
介紹了Kubernetes Ingress的局限性和Contour的解決方案:采用一個新的CRD。Ingress的局限性一直為社群所诟病,Kubernetes中的Ingress隻是七層代理的一個最小集合,為了解決該問題,幾乎每個Ingress Controller項目都使用了自定義的擴充,包括Annotation和自定義CRD兩種方式。
Session後和David Cheney交流了兩個問題:
- 是否會把IngressRoute CRD中的特性貢獻到Kubernetes社群,他答複說可能會在Kubernetes Ingress的下一個版本中加入部分新特性。
- Contour是否會和Istio進行內建,以支援Service Mesh的一些特性,例如路由控制等。他答複是很可能會和SMI內建,而不是直接和Istio綁定。
其實各個具體的産品對Ingress的要求各不相同,如何在Kubernetes自身API的簡潔性和産品要求的功能實用性之間進行平衡是一個難題,是以該問題應該還會存在很長時間。我的建議是采用一個API Gateway + Sidecar 來代替 Kubernetes Ingress,參見我之前的文章如何為服務網格選擇入口網關?
完整PPT連結
其它
大會上的job board
會場上專門設立了一面job board,可以在上面張貼求職資訊或者招聘資訊。從内容來看,大部分是和雲原生相關的工作崗位,集中在北上深地區。找了很久,沒有看到成都的招聘資訊,看來成都雖然是西南IT行業的中心,但離北上深還是有不小差距。
從這位同學的發量來看,他應該可以找到一個好工作。
ServiceMesher社群的朋友
這次大會上見到了很多在ServiceMesher社群中聊過多次,但未曾謀面的朋友,包括小劍,Jimmy,崔總,超盟,fox …等等, 還有好些以前不認識的同學主動過來給我打招呼說看過我的部落格文章。非常高興能有機會見到這些志同道合的朋友,也希望我們的ServiceMesher社群能越辦越好,沖出中國,走向全球!(已經遇到讀過我文章的外國朋友向我打聽ServiceMesher社群了,他的原話是:Would you agree to say that this is the only place where such in depth material is available?)
ServiceMesher社群的朋友們
恩格斯也來搞Kubernetes了!
最後一天中午時,大會的各個廠商開始陸陸續續拆展台了。我領了一個便當坐在展館門口的台階上吃,旁邊一個國外的參會者在等他的朋友,我就和他聊了兩句。他來自德國漢堡,是一個服裝公司的IT工程師。目前他們公司正在向雲上遷移,使用了Private cloud/public cloud的hybrid方案。前端的Web伺服器放在AWS上,後端的業務應用放在公司的資料中心,采用V**連接配接資料中心和AWS。從他們公司的案例可以看出,混合雲方案将在非常長的時間記憶體在,也難怪在展會上看到了多家做多雲管理服務的公司。
聊了一會兒後,他指着自己胸牌上的名字問到,你知道恩格斯嗎?我一時還沒有回過神來,他又問了一次,你知道恩格斯嗎?他在中國很有名的。我這才想起,問到:是那個搞共産主義的恩格斯嗎?他興奮地說,是的,他是我曾曾曾祖父的侄子。What a small world!沒想到恩格斯家族也來搞Kubernetes了。不過Kubernetes的理念和恩格斯、馬克思提出的那個世界大同的理想是不是也很相似呢?
參會的幾點感想
- Kubernetes已經成為雲上的标準,Cloud Native正當時:這個觀點是阿裡在演講中提出來的,我非常贊同。從這次大會的參展廠商和技術分享中可以看到,幾乎所有的雲廠商/營運商/企業都已經采用了容器和Kubernetes,并且在積極推進Service Mesh等雲原生技術棧的實踐和運用。
- Service Mesh已經從去年的概念階段逐漸進入試商用階段,并且成為各大雲平台基礎設施的一部分。
- 由于多廠商競争和對hybrid cloud的支援要求,SMI(Service Mesh Interface)得到了較多支援,雖然目前還不成熟,但估計在下半年到明年會逐漸成熟并形成生态,到時Istio也不得不加入SMI并對其進行相容。
- 對于中小企業而言,hybrid cloud是一個強需求。需要用一個統一的界面來屏蔽差異,共同管理private/public/multi cloud。