阿里巴巴的雲原生與開發者

做者 | 李響 阿里雲資深技術專家編程

關注「阿里巴巴雲原生」公衆號,回覆關鍵詞「容器」,可下載雲棲大會容器專場所有 PPT微信

摘要:利用雲原生技術構建應用簡便快捷,部署應用輕鬆自如,運行應用按需伸縮。現在,雲原生已經成爲下一代技術發展的趨勢。在 2019 杭州雲棲大會開發者峯會上,阿里巴巴資深技術專家李響就爲你們分享了阿里巴巴的雲原生技術與開發者的那些故事。

爲何選擇雲原生?

雲原生的本質目標就是充分釋放雲計算帶來的紅利,阿里巴巴但願開發者可以使用雲上極致彈性的資源交付能力,也可以使用雲上極爲便捷的產品和服務。阿里巴巴實踐雲原生也已經走過了幾年時間,並在去年啓動了全站上雲。阿里巴巴但願業務能夠更好地擁抱雲,更加全面地推動雲原生。架構

a001

雲原生既帶來了技術紅利,同時也帶來了業務紅利。框架

  • 在資源效率方面,雲原生爲資源效率帶來了極大提高。使用容器、調度等技術不只提升了單機維度的部署密度和資源效率,還提升了集羣維度資源配置的合理性和使用率。除此以外,將業務搬到雲上,還可使用雲的極致彈性的資源交付能力,既可以應對流量洪峯,也下降了資源的使用成本。
  • 在開發效率方面,使用 Kubernetes 這樣的平臺加強了運維自動化的能力,也加強了對應用和資源進行編排的能力,並下降了運維負擔,提升了開發效率。同時,阿里雲也在推進 CI/CD 系統的演進,但願加速應用從完成到上線的過程,並提升這一過程的穩定性和肯定性,提升開發人員迭代的信心。此外,阿里雲也但願將通用框架下沉到基礎設施中,使得開發者可以在多語言的環境下更容易地接入和使用平臺的能力,其中具備表明性的就是對服務網格的探索。
  • 在標準與開放方面,經過雲原生能夠幫助阿里巴巴實現基礎設施和生態標準的徹底融合。這不只能夠將開源生態中的新技術、新理念引入到阿里巴巴的基礎設施中,利用阿里內部的大規模場景和複雜業務進行打磨、錘鍊,並將通過打磨的結果回饋給社區,讓它帶給廣大開發者更多的技術紅利。還能夠將打造的技術引入阿里雲,打造出一套完整的雲原生產品技術家族,幫助雲上的開發者。

從 Kubernetes 開始

談到實踐雲原生,其實能夠從 Kubernetes 這個雲原生的基石開始。從 Kubernetes 開始實踐雲原生的緣由主要有兩點:less

  • 一是 Kubernetes 向下能夠對接各類不一樣的資源層,既能夠對接像阿里雲這樣的公有云,也能夠對接專有云,所以能夠利用 Kubernetes 構建混合雲平臺。
  • 二是 Kubernetes 向上提供了強大的自動化運維能力、編排能力以及強大的拓展性,所以能夠在 Kubernetes 上層構建一些垂直性的平臺能力,好比可觀測性、服務治理以及無服務化。基於這些垂直能力,能夠進一步構建更貼近業務的平臺,這也正是 Kubernetes 自己「Platform for Platform」的定位。

a002

阿里巴巴的規模

阿里巴巴的規模很是龐大,內部有超過 10 個集羣,超過 10 萬個節點,以及超過百萬級別的容器。那麼,開源技術和開源項目是否可以承受阿里巴巴的體量?可以抗住雙11峯值規模的考驗呢?運維

阿里巴巴堅信必定要和上游共建生態,阿里不但願只是去 Fork
Kubernetes,而但願去錘鍊和打造 Kubernetes,所以有三個策略:機器學習

  • 第一個策略是對自身業務進行負載的追蹤和模擬,並將追蹤和模擬的結果應用到 Kubernetes 雲原生體系中進行測試。
  • 第二個策略是對於測試過程當中發現的規模性問題,會持續優化,並反饋到上游,使得整個社區受益,進而推進雲原生領域的發展。
  • 第三個策略是持續推進社區去接受這些可擴展的能力,阿里巴巴也定製了本身的調度器和控制器,來知足自身的業務場景。

Kubernetes 1.16 和 etcd 3.4

在最近發佈的 Kubernetes 1.16 和 etcd 3.4 版本中,阿里巴巴和螞蟻金服也一同做出了大量貢獻,單機的數據存儲規模提高了 50 倍,單集羣節點規模也提高了 3 倍,徹底能夠知足阿里巴巴這樣體量的公司在雙 11 這種場景下的需求。今年的 618,螞蟻金服已經對 Kubernetes 集羣進行了驗證,在即將到來的雙 11,阿里會對 Kubernetes 集羣進行再次驗證。若是阿里巴巴可使用 Kubernetes 做爲雲原生的基石,相信 99.9% 的企業均可以信任 Kubernetes 以及雲原生技術。分佈式

a003

應用運維與交付

除了雲原生的基石 Kubernetes 之外,阿里巴巴還但願推進總體基礎設施的全面升級,但願把雲原生技術的紅利傳導到更上層。微服務

基礎設施中一個重要的應用就是交付和運維,之前面向虛擬機的交付和運維很是複雜,而且不一樣企業有本身不一樣的運維模式和方法,多是手動也多是半自動,甚至在同一家企業內,運維手段也不盡相同。雲原生倡導的是統一的平臺和統一的理念,但願可以實現自動化運維,所以構建統一的應用模型和統一的應用架構分層就很是重要。學習

所以,阿里巴巴也同社區一塊兒在推動雲原生領域中應用交付與運維分層模型。而且將這一理念在阿里內部進行了規模化落地,目前已經推進了阿里內部的 4 個應用管理產品線面向雲原生全面升級,構建了 100 多個應用。阿里認爲這套應用結構很是有意義和價值,所以也與 CNCF 成立了應用交付領域小組,並由阿里的張磊擔任小組聯繫主席 ,但願與社區一塊兒推動這個項目。

a004

服務網格

在雲原生領域中,位於更上層的系統就是服務網格。服務網格的好處在於具備強大的多語言支持能力,可以下降業務對接服務治理的難度,更易於實現統一的基礎設施升級。在真正的實踐中,Service Mesh 也會面臨一些挑戰,好比如何支持更多的協議,可否在大規模場景下得以較好運用,數據鏈路、服務面是否足夠穩定等。

a005

爲了解決 Service Mesh 面臨的上述挑戰,阿里巴巴和螞蟻金服率先決定選用一套與社區兼容的體系,並在阿里巴巴和螞蟻金服內部的雲原生系統當中進行打磨。今年 618 螞蟻金服已經完成核心繫統上到 SOFAMosn 的驗證工做,在立刻來臨的今年的雙 11,阿里巴巴和螞蟻金服將會在覈心繫統大規模上線 Service Mesh,同時會把自身技術演進的結果及時反饋到上游去,和社區一塊兒把 Service Mesh 從一個很是先進的技術變成一個很是穩定和可靠的技術,而且會在阿里雲推出 Service Mesh 服務,讓阿里雲上的開發者可以便捷地使用服務網格技術。

FaaS

FaaS 是開發人員很是喜歡的技術和概念,它能夠極大地提高開發效率,使得開發者無需關注腳手架,能夠直接以響應式模式來填充代碼。同時,FaaS 能夠幫助你們實現自動的擴容和縮容,當遇到問題時也能夠幫助你們自動恢復,免去了運維的困擾。

a006

但 FaaS 自己也存在幾個問題:

  • 第一個問題是如何找到一個既可以適應不一樣業務,也可以適應複雜業務邏輯的編程模型。
  • 第二個問題是如何在提供運維和彈性的自動化能力的同時,不增長額外的開銷。

阿里巴巴但願在今年的雙 11 考驗 FaaS 服務的極致彈性和極致的啓動時間,阿里也會把 FaaS 的研究結果及時反饋到上游和阿里雲中去,爲廣大開發者提供更大的便利和紅利。

開源社區貢獻

阿里巴巴與螞蟻金服對於核心開源社區的雲原生領域都作出了巨大的貢獻,而且在 etcd、Kata Containers、Containerd 以及 Dragonfly 等項目中都有核心 Maintainer。除這些項目外,咱們也會持續向 Kubernetes 等雲原生其餘領域提供貢獻,但願經過咱們的努力,可讓雲原生成爲一個穩定、可靠的技術,成爲企業將來的 IT 基石。

a007

引領開發者走向雲原生

阿里巴巴在中國的開源社區以及開發者社區中有深厚的積累,以前就一直在運做不少開源項目。阿里巴巴但願用自身構建的土壤引領中國開發者走向雲原生模式。

Dubbo

Dubbo 是國內最受開發者歡迎的微服務引擎之一,最近阿里把 Dubbo 捐獻給了 Apache 基金會,但願它能夠成爲更加開放、更加標準的微服務引擎,但願可以與社區和開發者共建這個引擎。

a008

如今,阿里巴巴對 Apache Dubbo 有了新的指望,但願 Apache Dubbo 可以成爲更雲原生的微服務框架。所以,在 Apache Dubbo 將來的演進道路中,有三個具體目標:

  • 第一個目標是但願 Apache Dubbo 做爲 RPC 框架能夠更好地結合 Service Mesh,並對 Apache Dubbo 進行必定程度的瘦身,將一些能力下沉到 Service Mesh 上去。
  • 第二個目標是但願 Apache Dubbo 能夠變得更加標準,可以和其餘生態體系互融互通,可以支持 HTTP/2,可以融入 gRPC、Spring Cloud、Kubernetes 體系,爲開發者提供更多選擇。
  • 第三個目標是但願提高 Dubbo 自己的可觀測性,支持 OpenTracing 等,使得基於 Apache Dubbo 構建的分佈式系統可以具有更高的可運維能力。

Nacos

a009

Nacos 是阿里巴巴去年開源的一個項目,開源以後很快就收到了普遍的好評。目前在 GitHub 上有超過 8000 個 Star,也有數十家企業已經將 Nacos 應用到了生產環境中。Nacos 自己在阿里巴巴內部也支撐了巨大致量微服務的註冊。Nacos 的研發目標是簡單且易用,其提供了一組很是簡單的 API,方便開發者使用 HTTP 或 DNS 進行服務發現。阿里巴巴但願 Nacos 可以成爲聯動傳統微服務框架和雲原生微服務框架的橋樑,所以也但願 Nacos 既能夠註冊傳統服務,又能註冊雲原生服務,讓兩邊的服務實現互融互通。這樣才能幫助阿里巴巴以及廣大開發者平滑、穩定地從傳統服務治理模式演進到雲原生的服務治理模式。

Apache RocketMQ

a010

Apache RocketMQ 也是一個來自阿里巴巴的開源消息系統,它的目標是低延遲、高可靠、高穩定。Apache RocketMQ 在國內也收到了廣大開發者的好評,而且今年在各大城市都舉辦了 Apache
RocketMQ 開發者自發組織的 Meetup。除此以外,阿里雲還提供了豐富的消息產品家族,而它們的內核都是 Apache RocketMQ。

將來,阿里巴巴也但願 Apache RocketMQ 能夠進一步融入雲原生。但願 Apache RocketMQ 更有彈性,可以作到自動的擴容和縮容,也但願它可以更容易地被部署和運維。所以,如今阿里巴巴也在作 Apache RocketMQ Operator,但願可以讓 Apache RocketMQ 更容易地融入到 Kubernetes 生態體系中。此外,阿里巴巴也但願 Apache RocketMQ 可以更加開放和標準,而且目前在推廣 OpenMessaging 標準協議,但願讓 Apache RocketMQ 兼容 Cloudevent 體系,成爲 Serverless 的橋樑。

ElasticDL

Deep Learning 是一個和雲原生同一時代發展起來的領域。Deep Learning 對兩件事情有很高的要求:

  • 第一件事情是資源效率,Deep Learning 須要利用巨大的算力作 Training。
  • 第二件事情是 Deep Learning 對模型和調參的迭代效率有很是高的要求,而且從模型訓練完成到上線的過程須要自動化能力。

所以,Deep Learning 能夠和雲原生進行完美的融合,能夠利用容器和調度的能力,把集羣內部的異構資源合理地分配給 Deep Learning 框架使用,也能夠將雲原生所推廣的自動化部署和運維能力提供給 Deep
Learning,縮短 Deep Learning 模型端到端上線的時間,加強 AI 的核心競爭力。

a011

ElasticDL 是螞蟻金服剛剛發佈的新一代基於雲原生的開源 AI 學習平臺,它的架構基於原生的 Kubernetes 體系,所以具備強大的容錯能力和彈性調度能力。另外,ElasticDL 可以支持新一代的 TensorFlow 2.0 框架,也但願引領 AI 開發者走向新一代的機器學習。將來,ElasticDL 會支持更多的 AI 模型,讓它自己變得更強大,也會更好地融入雲原生體系和 Kubernetes 體系。

雲原生技術公開課

除了對開源技術的貢獻以外,阿里巴巴認爲在知識、理念方面的推進也很是重要。所以,在今年年初,阿里巴巴上線了和 CNCF 聯合出品的雲原生技術公開課,目前服務了超過 1 萬名開發者。後續,阿里巴巴還將會把課程的內容文字化,方便你們利用零散時間進行閱讀。此外,阿里巴巴也正在作雲原生技術手冊,但願能夠採訪一些中小型公司和互聯網企業,探討他們在雲原生領域的實踐。阿里巴巴但願不只可以爲你們提供理念上的知識,還能夠提供實踐上的幫助。

a012

雲原生與開源 Meetup

最後,阿里巴巴也在舉辦不少雲原生以及開源相關的 Meetup,但願藉助這樣的活動拉近阿里巴巴和線下開發者的距離,傾聽開發者的聲音,瞭解開發者對社區的需求。也但願促進國內開發者的線下互動,增進相互瞭解,共同推進雲原生領域在中國的落地和發展。

a013

「 阿里巴巴雲原生微信公衆號(ID:Alicloudnative)關注微服務、Serverless、容器、Service Mesh等技術領域、聚焦雲原生流行技術趨勢、雲原生大規模的落地實踐,作最懂雲原生開發者的技術公衆號。」

搜索「阿里巴巴雲原生公衆號」獲取更多K8s容器技術內容

相關文章
相關標籤/搜索