原文地址:jimmysong.io/posts/kuber…html
去年我寫了Kubernetes與雲原生2017年年終總結及2018年展望,按照慣例也應該推出2018年的總結和2019年的展望了,寫這篇文章的時候已是2019年的1月末了,若是不寫點什麼回顧下2018年總以爲這一年過的不完整。git
本文將回顧 Kubernetes 與雲原生在2018年的進展,能夠說2018年是 Kubernetes 大規模落地,Service Mesh 蓄勢待發的一年。github
首先我先帶你們回顧下2017年時我對2018年的預測。2017年末我預測2018年的Kubernetes和雲原生將向如下方向發展:服務器
服務網格(Service Mesh),在Kubernetes上踐行微服務架構進行服務治理所必須的組件;架構
無服務器架構(Serverless),以FaaS爲表明的無服務器架構將會流行開來;app
增強數據服務承載能力,例如在Kubernetes上運行大數據應用;less
簡化應用部署與運維包括雲應用的監控與日誌收集分析等;運維
下面我來分別總結下以上四點預測:機器學習
其中服務網格(Service Mesh)是我2018年一直在大力主張和推廣的,並創立了ServiceMesher社區,業界已經對服務網格有了普遍的認知,其在微服務和分佈式架構領域將有廣闊的前景,2018年7月31日Istio發佈1.0,預示着服務網格即將走向成熟;分佈式
無服務器架構的理念提出已久但仍需找到合適的應用場景來大面積鋪開,2018年Google、Pivotal等公司新開源的knative更加弱化了底層平臺的差別,開發者直接定義服務,應用自動打包和部署;
關於Kubernetes承載大數據計算,已經有不少公司應用它來運行大數據應用,還有一些創業公司提供基於Kubernetes的異構計算平臺,在大企業內部也有使用Kubernetes來統一大數據、機器學習、人工智能等平臺的需求,大數據行業領先的兩家公司Cloudera與Hortonworks的合併勢必也會在雲原生領域發力;
隨着愈來愈多的公司選擇Kubernetes做爲底層的基礎設施平臺,Kubernetes周邊的生態愈來愈完善,圍繞發佈部署、監控和APM相關的SaaS類應用層出不窮;
2018年至今按照時間順序,CNCF中畢業的項目有:
2018年3月:Kubernetes 畢業
2018年8月,Prometheus 畢業
2018年11月,Envoy 畢業
2019年1月,CoreDNS 畢業
截至本文發稿,已有4個項目畢業,2019將會有更多的項目走向成熟。CNCF 託管的所有項目狀態請見:www.cncf.io/projects-gr…。
2018年3月Kubernetes通過CNCF基金會的投票正式畢業,這意味着它擁有足夠多的提交者和貢獻人員,並被業界普遍的採納,已經能夠依靠社區的維護健康的發展。關於CNCF項目的畢業標準的詳情請參考CNCF Graduation Criteria v1.1。
一年裏按計劃發佈了4個版本,詳見如下更新日誌:
早在2017年的北美 KubeCon 上就有一種論調說 Kubernetes 正變得 boring,由於它已經愈來愈成熟,在將來不會出現大的變更,從以上更新日誌中也能夠看到,大可能是一些功能進入 beta 或者 stable 狀態,不多有新的功能出現。
下圖是 Google trend 中過去一年來全球搜索 Kubernetes 的趨勢圖。
從圖中能夠看出 Kubernetes 在全球搜索趨勢在2018年末已經達到了最巔峯,2019年可能會開始走降低趨勢。
下圖是最近5年來 Kubernetes 關鍵詞的百度指數。
上圖來自百度指數,能夠大致歸納 Kubernetes 關鍵字在中國的搜索狀況,同 Kubernetes 在全球的搜索狀況同樣,可能已通過了巔峯期。
以 Kubernetes 爲核心來運維上層應用,誕生了一種名爲」Kubernetes Native「的新型運維方式,真正踐行 DevOps 理念的產物,開發者將於軟件的運維邏輯寫成代碼,利用 Kubernetes 的控制器模式(Controller Pattern)和 CRD 來擴展 Kubernetes 的 API,各類 Operator 層出不窮,awesome-operators 列舉了目前全部的 Operator。例如咱們熟悉的 Istio 中就有50個 CRD。
CNCF 生態中的諸多應用都已支持 Kubernetes Operator,能夠說 Operator 將成爲雲原生中默認的軟件動態運行時管理工具,參考 CoreOS(已被 RedHat 收購,RedHat 已被 IBM 收購) CTO Brandon Philips 的這篇文章 Introducing the Operator Framework: Building Apps on Kubernetes。
既然 Kubernetes 已經開始變得無聊,2018年落地 Kubernetes 已經不是初創公司的事情了,不少大公司甚至傳統企業都開始試水或者大規模落地,在 Kubernetes 進一步成熟之時,以 Kubernetes 爲基礎向上發展,開闢新的戰場就能收穫更多的業務場景和需求。
Kubernetes 並不直接對外提供業務能力,而是做爲應用運行的底層平臺,在應用和平臺間還有一個 Gap,這須要中間件的能力來補充。
2018年5月,ServiceMesher 社區由螞蟻金服發起成立。
2018年5月30日,Envoy最新官方文檔中文版發佈——由Service Mesh愛好者傾情奉獻。
2018年6月21日,啓用新的社區logo。
2018年6月30日,開啓新域名servicemesher.com。
2018年6月30日,舉辦了第一屆 Service Mesh Meetup 杭州站,見ServiceMesher杭州Meetup圓滿完成。
2018年7月,ServiceMesher 社區成爲 Istio 社區中國合做夥伴。
2018年7月29日,舉辦了第二屆 Service Mesh Meetup 北京站,見第二屆Service Mesh Meetup北京站回顧、視頻回放和資料下載。
2018年8月25日,舉辦了第三屆 Service Mesh Meetup 深圳站,見Service Mesh Meetup深圳站回顧、視頻回放及PPT資料分享。
2018年9月19日,開始了開源電子書 istio-handbook 的創做。
2018年11月13日,ServiceMesher社區成員聚首KubeCon&CloudNativeCon上海。
2018年11月25日,舉辦了第四屆 Service Mesh Meetup 上海站,見第四屆 Service Mesh Meetup 上海站活動回顧與資料下載。
2019年1月6日,舉辦了第五屆 Service Mesh Meetup 廣州站,見第五屆 Service Mesh Meetup 廣州站活動回顧與資料下載。
這一年 ServiceMesher 社區爲你們帶來5次 Meetup 共 20 次 Topic 分享:
敖小劍(螞蟻金服):大規模微服務架構下的 Service Mesh 探索之路
劉超(網易):網易雲的 Service Mesh 產品架構和實現
唐鵬程(才雲科技):在 Kubernetes 上搭建高可用 Service Mesh 監控
徐運元(諧雲科技):Service Mesh 結合容器雲平臺的思考與實踐
張亮(京東金融數據研發負責人):Service Mesh的延伸 —— 論道Database Mesh
吳晟(Apache SkyWalking創始人):Observability on Service Mesh —— Apache SkyWalking 6.0
朵曉東(螞蟻金服,高級技術專家):螞蟻金服開源的Service Mesh數據平面SOFA MOSN深層揭祕
丁振凱(新浪微博,微博搜索架構師):微博Service Mesh實踐 - WeiboMesh
張超盟(華爲):Kubernetes容器應用基於Istio的灰度發佈實踐
朱經惠 (聯邦車網):Istio控制平面組件原理解析
邵俊雄(螞蟻金服):SOFAMesh 的通用協議擴展
楊文(JEX):Kubernetes、Service Mesh、CI/CD 實踐
吳晟(Apache SkyWalking 創始人):Observability and Istio telemetry
敖小劍&張瑜標(螞蟻金服):螞蟻金服 Service Mesh 漸進式遷移方案
徐運元(諧雲科技):探討和實踐基於Isito的微服務治理事件監控
馮瑋(七牛容器雲平臺產品架構師):Envoy、Contour與Kubernetes實踐
鄭德惠(惟品會Java資深開發工程師):惟品會的Service Mesh 實踐與分享
陳逸凡(螞蟻金服):SOFAMosn 持續演進路徑及實踐案例
崔秀龍(HPE 軟件分析師):在網格的邊緣試探——企業 Istio 試水指南
宋淨超(螞蟻金服):Service Mesh 圓桌討論
咱們再看 CNCF 的 Landscape,其中右下部分有一個單列的 Serverless 單元,詳見 landscape.cncf.io/。
咱們再看下 Kubernetes、Service Mesh、Istio 三者之間的關係:
Kubernetes 負責應用的生命週期管理,最小的治理單元是 Pod;
Service Mesh 解決服務間的流量治理,最小的治理單元是 Service(能夠類比爲 Kubernetes 中 Service 資源);
而 Serviceless 是更高一層的抽象,最小的治理單元是 APP;
越向上層就越不關心應用的底層實現,到了 Serverless 開發者只須要關心代碼邏輯,其餘的一塊兒都是配置,所以 Google 聯合 Pivotal 等其餘公司於2018年7月建立了 knative 這個基於 Kubernetes 和 Istio 的 Serverless 的開源項目。
一個繁榮的生態將有大量的開發者支持,有開發者的地方就會有出版物。2018年至本文發稿關於 Kubernetes 和雲原生的中文出版物(譯做或原著),根據出版時間排序以下:
2018年3月:《天天5分鐘玩轉Kubernetes》,CloudMan 著
2018年7月:《Python 雲原生——構建應對海量用戶數據的高可擴展 Web 應用》,Manish Sathi著,宋淨超 譯
2018年7月:《雲原生 Java——Spring Boot、Spring Cloud 與 Cloud Foundry 彈性系統設計》,Josh Long & Kenny Bastani著,張若飛 宋淨超 譯
2018年9月:《雲原生基礎架構:構建和管理現代可擴展基礎架構的模式及實踐》,Justin Garrision & Kris Nova著,孫杰、肖力 譯
2018年10月:《Kubernetes經典實例》,Sébastien Goasguen & Michael Hausenblas 著,馬晶慧 譯
2018年11月:《雲原生分佈式存儲基石:etcd深刻解析》,華爲容器服務團隊 杜軍 等著
2018年12月:《Kubernetes即學即用》,Kelsey Hightower & Brendan Burns & Joe Beda 著,韓波 譯
2018年12月:《Kubernetes 進階實戰》,馬永亮 著
注:以上僅列舉了2018年至本文發稿時已上市發售的書籍,並不表明本人立場推薦以上書籍。
預告:2019年2月,《將來架構——從服務化到雲原生》張亮 吳晟 敖小劍 宋淨超 著即將上市。
另外還有不少線上、線下的 Kubernetes 實訓課程、電子出版物不勝枚舉,例如極客時間出品的深刻剖析 Kubernetes。
2019年纔開始學 Kubernetes 依然不晚,這多是影響雲計算將來10年的技術,甚至有人預測,將來的開發者可能一上手就是在雲上開發,從提交代碼、測試到發佈一鼓作氣,直接基於 Git 操做便可完成,徹底感覺不到 Kubernetes 的存在。展望2019年,我在2017年的預測的趨勢依然不變,2019年將更加深化。若是以 Kubernetes 的發展階段類比,就像2017年時的 Kubernetes 同樣,在一部分企業中 Service Mesh 已經開始快速落地,而 Knative 更像 2015 年時的 Kubernetes,一塊兒纔剛剛開始,畢竟也是 2018 年中才開源。
2018年11月 CNCF 在上海舉辦了第一屆中國 KubeCon + CloudNativeCon,2019年6月大會將升級爲 KubeCon + CloudNativeCon + Open Source Summit,將進一步推送中國的開源發展與雲原生的應用,查看大會詳情。
本文歸檔到 kubernetes-handbook,更新以 Handbook 爲準。