天天看點

9 年雲原生實踐全景揭秘|《阿裡巴巴雲原生實踐 15 講》正式開放下載下傳如何下載下傳你為什麼要讀這本書書中精彩幹貨集合

9 年雲原生實踐全景揭秘|《阿裡巴巴雲原生實踐 15 講》正式開放下載下傳如何下載下傳你為什麼要讀這本書書中精彩幹貨集合
點選圖檔或戳我檢視詳情和投履歷

以容器、服務網格、微服務、Serverless 為代表的雲原生技術,帶來一種全新的方式來建構應用。同時,雲原生也在拓展雲計算的邊界,一方面是多雲、混合雲推動無邊界雲計算,一方面雲邊端的協同。在雲的趨勢下,越來越多的企業開始将業務與技術向“雲原生”演進。

在這個演進過程中,企業都或多或少都面對一些困惑與挑戰,其中如何将應用和軟體向 Kubernetes 體系進行遷移、傳遞和持續釋出是一個普遍的難題。

阿裡巴巴從 2011 年開始通過容器實踐雲原生技術體系,在整個業界都還沒有任何範例可供參考的大背境下,從最初獨自摸索到擁抱開源回饋社群,阿裡巴巴逐漸摸索出了一套比肩全球一線技術公司并且服務于整個阿裡集團的容器化基礎設施架構。九年的前行,讓阿裡巴巴在交流互動中不斷吸收和貢獻好的理念、技術、思想,也積累了最為豐富和寶貴的實踐經驗。

2019 年 6 月 24 日至 6 月 26 日,由 Cloud Native Computing Foundation (CNCF) 主辦的雲原生技術大會 KubeCon + CloudNativeCon + Open Source Summit(上海 ),阿裡巴巴在大會上為全球企業和開發者分享了 26 場實踐經驗、行業趨勢和技術演講,我們篩選了其中 15 場有代表性的演講進行重新編排成書,旨在全面揭秘阿裡巴巴雲原生之路上的探索與實踐,為準備踏上雲原生之旅的開發者,提供一些實踐參考。

9 年雲原生實踐全景揭秘|《阿裡巴巴雲原生實踐 15 講》正式開放下載下傳如何下載下傳你為什麼要讀這本書書中精彩幹貨集合

如何下載下傳

電子書的專頁連結:

https://developer.aliyun.com/topic/download?id=202

你為什麼要讀這本書

在雲原生領域,開發者的訴求和使用方法永遠是豐富的、複雜的、多樣的。在這種背景下,短時間内很難有技術能夠大一統地解決開發者面臨的所有問題,阿裡巴巴内部對雲原生的探索也一直在進行中。從外向内引入社群技術,讓阿裡巴巴的基礎設施完成了一次自我更新,并變得更加開放标準;從内向外的輸出,對社群提出有價值的代碼,推動整個雲原生社群向更大規模的方向演進。

本書整合阿裡巴巴九年雲原生技術沉澱,分析真實的技術案例,發現問題,理清思路,解決問題,總結方法,把自我成長和專業精進的技術養料,回饋給廣大雲原生開發者。本書包含 3 個系列,阿裡雲原生實踐,阿裡新技術方案及阿裡開源貢獻,共 16 篇文章。每篇文章都凝結着阿裡巴巴雲原生落地實踐的寶貴經驗和面對困惑的解決方法,相信能夠在最短的時間内,幫助你全面了解阿裡巴巴雲原生實踐經驗,踏上最适合自己的雲原生之路。

本書目錄

9 年雲原生實踐全景揭秘|《阿裡巴巴雲原生實踐 15 講》正式開放下載下傳如何下載下傳你為什麼要讀這本書書中精彩幹貨集合

書中精彩幹貨集合

《堅持探索與落地開源,阿裡巴巴雲原生之路全景揭秘》

阿裡雲已經成功地規模化落地雲原生,本文将分享阿裡巴巴具體的雲原生實踐經驗分享給各位觀衆,涉及規模擴充、可靠性、開發效率、遷移政策等方面,并探讨針對大規模場景進行優化。 Cloud native works for Alibaba. Cloud native  works for (almost) everyone.

《1-5-10:如何快速恢複大規模容器故障》

在雲時代,企業中基于容器的應用激增,由于人工操作、硬體故障等,發生容器故障的可能性大幅增加。是以,如何在不增加資源投入的情況下保證大規模容器的可靠性成為雲平台面臨的一個巨大挑戰。阿裡巴巴運作着數百萬個容器,為恢複容器相關故障提出了 1-5-10 理論:MTTD(平均檢測時間)為 1 分鐘,MTTI(平均識别時間)為 5 分鐘,MTTR(平均解決時間)為 10 分鐘。我們将讨論如何利用 1-5-10 提高大規模容器的可靠性:

  • 如何在本地建立一個有效代理,在 1 分鐘内檢測到問題;
  • 如何借助專家知識庫智能診斷容器問題;
  • 如何以故障驅動型方式自動恢複容器問題。

《阿裡巴巴利用 K8S、Kata 容器和裸機雲建構無伺服器》

無伺服器計算是目前流行的計算形式,極大降低了開發人員部署、管理、運作應用的成本。在無伺服器平台中,不同使用者的服務通常混部在同一個節點上,為此,需要在多租戶場景下提供可信的運作環境。在阿裡巴巴,我們使用 Kata Containers 作為安全容器運作時,在存儲、網絡、硬體等層面確定多租硬隔離和服務運作時的性能。文章将根據我們的生産實踐,詳細讨論多租場景下如何實作硬多租和服務運作的高性能。

《CafeDeployment:為網際網路金融關鍵任務場景擴充的 Kubernetes 資源》

Kubernetes 原生社群 Deployment 和 StatefulSet 解決了“服務節點版本一緻性”的問題,并且通過 rolling update 實作了滾動更新,提供了基本的復原政策。對于高可用建設要求不高的“年輕”業務,是一個不錯的選擇。但是,在金融場景下,要解決的場景複雜得多,是以我們在金融分布式架構-雲應用引擎( SOFAStack-CAFE )中提出了 CafeDeployment 的雲原生模型,緻力于解決,IP 不可變;金融體系下的高可用;靈活的部署政策的問題。

在面對以上這些問題的時候,我們思考:能不能有一個類似 Deployment 的東西,不僅可以實作副本保持,而且還能協助使用者管控應用節點部署結構、做 Beta 驗證、分批釋出,減少使用者幹預流程,實作最大限度減少釋出風險的目标,做到快速止損,并進行修正幹預。本篇文章中将詳細解釋我們為什麼選擇定義了自己的 CRD——CafeDeployment 。

《Severless 市場觀察和落地挑戰》

KubeCon China 2019 大會上, 螞蟻 SOFAStack CAFE Serverless 應用服務(SAS)正式亮相,在工作坊吸引了百餘名參與者同場體驗。Serverless 将資源管理的粒度更加細化,使開發者更快上手雲原生,并且倡導事件驅動模型支援業務發展。進而幫助使用者解決了資源管理複雜、低頻業務資源占用等問題;實作面向資源使用,以取代面向資源配置設定的模式。

《有效可靠地管理大規模 Kubernetes 叢集》

Kubernetes 以其超前的設計理念和優秀的技術架構,在容器編排領域拔得頭籌。越來越多的公司開始在生産環境部署實踐 Kubernetes,在阿裡巴巴和螞蟻金服 Kubernetes 已被大規模用于生産環境。Kubernetes 的出現使得廣大開發同學也能運維複雜的分布式系統,它大幅降低了容器化應用部署的門檻,但運維和管理一個生産級的高可用 Kubernetes 叢集仍十分困難。本文将分享螞蟻金服是如何有效可靠地管理大規模 Kubernetes 叢集的,并會詳細介紹叢集管理系統核心元件的設計。

《雲原生應用 Kubernetes 監控與彈性實踐》

雲原生應用的設計理念已經被越來越多的開發者接受與認可,而 Kubernetes 作為雲原生的标準接口實作,已經成為了整個 stack 的中心,雲服務的能力可以通過 Cloud Provider 、 CRD Controller 、 Operator 等等的方式從 Kubernetes 的标準接口向業務層透出。開發者可以基于 Kubernetes 來建構自己的雲原生應用與平台, Kubernetes 成為了建構平台的平台。本文将向大家介紹一個雲原生應用該如何在 Kubernetes 中無縫內建監控和彈性能力。

《了解 Kubernetes Master 的可擴充性和性能》

目前,Kubernetes 的規模限制是 5k 節點,是以如果您想用它來管理像 10k 節點這樣的 Web 規模叢集,您可能無法實作。 您是否想知道 Kubernetes 管理超過  5k 節點的性能瓶頸是什麼?當你想将其可擴充性擴充到一個新的水準時,是哪個元件阻礙? etcd,apiserver 或者 scheduler? 了解這些問題是營運大型 Kubernetes 叢集的關鍵。在阿裡巴巴,我們遇到了很多問題,比如随着叢集變得越來越大,pod 建立變得非常慢。本文将分享我們如何進行各種基準測試和分析,并找到瓶頸,以及如何調整控制元件,并實作了超過 100 倍的性能提升。

《雲原生時代加速鏡像分發的三種方法》

本文将分享從阿裡巴巴網絡規模提高鏡像分發效率的實踐和經驗教訓。根據不同的場景,我們利用不同的鏡像分發方法。基于 P2P 的 CNCF/Dragonfly 分發是緩解鏡像中心帶寬和減少分發時間的最直接方式。此外, CNCF/containerd 中的遠端檔案系統快照程式直接遠端存儲鏡像,使容器引擎通過網絡讀取鏡像内容,幾乎不需要時間分發。你會發現第二種方式依賴于網絡穩定性,那麼如何根據鏡像内容讀請求動态加載從遠端到本地存儲的鏡像作為權衡?最後,我們将總結如何選擇适合鏡像分布的方式。

《在 Web 級叢集中動态調整 Pod 資源限制》

阿裡巴巴這樣規模龐大的全球電商巨頭,其所擁有的應用數量和應用種類的都是超大規模的。如何科學合理管理這些容器的資源,一直是我們面臨的巨大挑戰。在本文中,我們将從技術和社群演進等多種次元為大家分享我們的實際工作經驗和技術成果。其中包括:

  • 目前社群對于容器的資源管理現狀是什麼?
  • 阿裡這種大規模應用部署的具體挑戰是什麼?
  • 我們如何診治資源管理上的各種疑難雜症?
  • 我們如何做到資源使用率大幅提升的同時確定線上服務穩定?
  • 如何平衡基于雲原生的演進和實作工作快速傳遞?
  • 我們的經驗可以為您帶來什麼幫助以及我們如何回報社群做到共赢?

《大規模 K8s 叢集下的巡檢》

衆所周知,準确的異常發現和快速的問題分析是保證 Kubernetes 叢集可用性和穩定性的關鍵所在。但在整個 Kubernetes 項目中,有着不計其數的監控名額資料。僅以我們的 Kubernetes 叢集為例,我們觀察到像這樣的監控資料每秒鐘就會産生幾千條。如何合理地利用這些複雜而大量的資料和名額,對它們有效的進行記錄和分析,變成簡單易懂的可視化展示,變成準确的告警資訊,是一個非常有挑戰性的工作。

本文将分享阿裡巴巴在 Kubernetes 叢集監控、審計和巡檢方面的實踐和經驗。 談談 Kubernetes 與穩定性相關的重要資料和名額,以及如何去了解它們。以案例的形式,具體講解我們如何對這些資料和名額進行整合與解析,并分享阿裡巴巴高效、實時的對這些資料進行自動化巡檢與分析的最佳實踐。

《使用 Istio 管理跨地域多叢集的服務》

職優你是一個電子學習職業發展平台,旨在滿足全球學生和在職專業人士的各種需求,并為來自世界多個地區的使用者提供服務。這些應用部署于在阿裡雲的不同區域上的多個 Kubernetes 叢集上,以減少不同區域内的服務通路延遲。 為了有效地管理這些微服務,需要一個多叢集服務網格來控制微服務流量、保證服務到服務通信等。

Istio 是一個建立在 Kubernertes 上的服務網格,可支援多種拓撲來管理多個 Kubernetes 叢集上的應用流量統一管理。在整個案例研究中,我們将使用 Istio 服務網格分享多叢集流量管理相關的部署設計和技術,并根據底層平台的需求和限制讨論一些挑戰和相應的實踐。

《首個普惠社群的平民化方案: GPU 共享排程》

越來越多的資料科學家在 Kubernetes 上運作基于 NvidiaGPU 的深度學習任務。與此同時,他們發現叢集中的空閑 GPU 浪費了超過 40% 的成本。是以,如何能幫助提高 GPU 使用效率成為一個重要挑戰。本文将介紹一款基于原生 Kubernetes 的 GPU 共享解決方案:

  • 如何定義 GPU 共享 API
  • 如何在不更改排程程式裸機代碼的情況下在排程 GPU 共享
  • 如何将 GPU 隔離解決方案與 Kubernetes 相內建
  • 我們還将通過示範介紹 Tensorflow 使用者如何在 Kubernetes 叢集中的同一 GPU 裝置上運作不同的作業

《容器運作時管理引擎 Containerd》

本文将從 containerd 架構設計理念出發,向聽衆分享如何使用插件化能力來增強 containerd,提供不同鏡像存儲以及強隔離容器運作時的解決方案。同時,還會展示 containerd 同 gVisor, Firecracker 容器運作時內建的示範案例,會讓讀者更好地了解 containerd 最佳內建方式。

《基于 P2P 原理的高可用高性能大規模鏡像分發系統 :Dragonfly》

随着容器技術在工業中的應用越來越廣泛,如何安全高效地分發映像是工程師們所面臨的新挑戰。蜻蜓項目是基于開源智能 P2P 的映像和檔案分發系統。該項目旨在解決雲原生場景中的所有分發問題。目前,蜻蜓項目專注于以下方面:

  • 簡單:面向使用者的明确定義的 API (HTTP),對所有容器引擎都無侵入性
  • 高效:CDN 支援、基于 P2P 的檔案分發以節省企業帶寬
  • 智能:主機檢測實作主機層面的速度限制、智能的流量控制
  • 安全:資料塊傳輸加密,HTTPS 連接配接支援

本文将重點介紹通過蜻蜓分發容器映像。我們将回顧組織面臨的挑戰,包括大規模分發、安全傳輸、帶寬成本,并提供解決方案。

雲原生浪潮滾滾而來,企業紛紛上雲。這條路上,阿裡巴巴不是踽踽獨行。不管是開源回饋社群或是分享最佳案例,希望阿裡巴巴在雲上的探索,能夠為業界提供借鑒意義,共同推動雲計算的應用和發展。

繼續閱讀