以容器、服務網格、微服務、Serverless 爲表明的雲原生技術,帶來一種全新的方式來構建應用。同時,雲原生也在拓展雲計算的邊界,一方面是多雲、混合雲推進無邊界雲計算,一方面雲邊端的協同。在雲的趨勢下,愈來愈多的企業開始將業務與技術向「雲原生」演進。api
在這個演進過程當中,企業都或多或少都面對一些困惑與挑戰,其中如何將應用和軟件向 Kubernetes 體系進行遷移、交付和持續發佈是一個廣泛的難題。安全
阿里巴巴從 2011 年開始經過容器實踐雲原生技術體系,在整個業界都尚未任何範例可供參考的大背境下,從最初獨自摸索到擁抱開源回饋社區,阿里巴巴逐漸摸索出了一套比肩全球一線技術公司而且服務於整個阿里集團的容器化基礎設施架構。九年的前行,讓阿里巴巴在交流互動中不斷吸取和貢獻好的理念、技術、思想,也積累了最爲豐富和寶貴的實踐經驗。服務器
2019 年 6 月 24 日至 6 月 26 日,由 Cloud Native Computing Foundation (CNCF) 主辦的雲原生技術大會 KubeCon + CloudNativeCon + Open Source Summit(上海 ),阿里巴巴在大會上爲全球企業和開發者分享了 26 場實踐經驗、行業趨勢和技術演講,咱們篩選了其中 15 場有表明性的演講進行從新編排成書,旨在全面揭祕阿里巴巴雲原生之路上的探索與實踐,爲準備踏上雲原生之旅的開發者,提供一些實踐參考。網絡
電子書的專頁連接: https://yq.aliyun.com/download/3616?utm_content=g_1000066691架構
在雲原生領域,開發者的訴求和使用方法永遠是豐富的、複雜的、多樣的。在這種背景下,短期內很難有技術可以大一統地解決開發者面臨的全部問題,阿里巴巴內部對雲原生的探索也一直在進行中。從外向內引入社區技術,讓阿里巴巴的基礎設施完成了一次自我升級,並變得更加開放標準;從內向外的輸出,對社區提出有價值的代碼,推進整個雲原生社區向更大規模的方向演進。less
本書整合阿里巴巴九年雲原生技術沉澱,分析真實的技術案例,發現問題,理清思路,解決問題,總結方法,把自我成長和專業精進的技術養料,回饋給廣大雲原生開發者。本書包含 3 個系列,阿里雲原生實踐,阿里新技術方案及阿里開源貢獻,共 16 篇文章。每篇文章都凝結着阿里巴巴雲原生落地實踐的寶貴經驗和麪對困惑的解決方法,相信可以在最短的時間內,幫助你全面瞭解阿里巴巴雲原生實踐經驗,踏上最適合本身的雲原生之路。
本書目錄
運維
阿里雲已經成功地規模化落地雲原生,本文將分享阿里巴巴具體的雲原生實踐經驗分享給各位觀衆,涉及規模擴展、可靠性、開發效率、遷移策略等方面,並探討針對大規模場景進行優化。 Cloud native works for Alibaba. Cloud native works for (almost) everyone.分佈式
在雲時代,企業中基於容器的應用激增,因爲人工操做、硬件故障等,發生容器故障的可能性大幅增長。所以,如何在不增長資源投入的狀況下保證大規模容器的可靠性成爲雲平臺面臨的一個巨大挑戰。阿里巴巴運行着數百萬個容器,爲恢復容器相關故障提出了 1-5-10 理論:MTTD(平均檢測時間)爲 1 分鐘,MTTI(平均識別時間)爲 5 分鐘,MTTR(平均解決時間)爲 10 分鐘。咱們將討論如何利用 1-5-10 提升大規模容器的可靠性:ide
無服務器計算是當前流行的計算形式,極大下降了開發人員部署、管理、運行應用的成本。在無服務器平臺中,不一樣用戶的服務一般混部在同一個節點上,爲此,須要在多租戶場景下提供可信的運行環境。在阿里巴巴,咱們使用 Kata Containers 做爲安全容器運行時,在存儲、網絡、硬件等層面確保多租硬隔離和服務運行時的性能。文章將根據咱們的生產實踐,詳細討論多租場景下如何實現硬多租和服務運行的高性能。微服務
Kubernetes 原生社區 Deployment 和 StatefulSet 解決了「服務節點版本一致性」的問題,而且經過 rolling update 實現了滾動升級,提供了基本的回滾策略。對於高可用建設要求不高的「年輕」業務,是一個不錯的選擇。可是,在金融場景下,要解決的場景複雜得多,所以咱們在金融分佈式架構-雲應用引擎( SOFAStack-CAFE )中提出了 CafeDeployment 的雲原生模型,致力於解決,IP 不可變;金融體系下的高可用;靈活的部署策略的問題。
在面對以上這些問題的時候,咱們思考:能不能有一個相似 Deployment 的東西,不只能夠實現副本保持,並且還能協助用戶管控應用節點部署結構、作 Beta 驗證、分批發布,減小用戶干預流程,實現最大限度減小發布風險的目標,作到快速止損,並進行修正干預。本篇文章中將詳細解釋咱們爲何選擇定義了本身的 CRD——CafeDeployment 。
KubeCon China 2019 大會上, 螞蟻 SOFAStack CAFE Serverless 應用服務(SAS)正式亮相,在工做坊吸引了百餘名參與者同場體驗。Serverless 將資源管理的粒度更加細化,使開發者更快上手雲原生,而且倡導事件驅動模型支持業務發展。從而幫助用戶解決了資源管理複雜、低頻業務資源佔用等問題;實現面向資源使用,以取代面向資源分配的模式。
Kubernetes 以其超前的設計理念和優秀的技術架構,在容器編排領域拔得頭籌。愈來愈多的公司開始在生產環境部署實踐 Kubernetes,在阿里巴巴和螞蟻金服 Kubernetes 已被大規模用於生產環境。Kubernetes 的出現使得廣大開發同窗也能運維複雜的分佈式系統,它大幅下降了容器化應用部署的門檻,但運維和管理一個生產級的高可用 Kubernetes 集羣仍十分困難。本文將分享螞蟻金服是如何有效可靠地管理大規模 Kubernetes 集羣的,並會詳細介紹集羣管理系統核心組件的設計。
雲原生應用的設計理念已經被愈來愈多的開發者接受與承認,而 Kubernetes 做爲雲原生的標準接口實現,已經成爲了整個 stack 的中心,雲服務的能力能夠經過 Cloud Provider 、 CRD Controller 、 Operator 等等的方式從 Kubernetes 的標準接口向業務層透出。開發者能夠基於 Kubernetes 來構建本身的雲原生應用與平臺, Kubernetes 成爲了構建平臺的平臺。本文將向你們介紹一個雲原生應用該如何在 Kubernetes 中無縫集成監控和彈性能力。
目前,Kubernetes 的規模限制是 5k 節點,所以若是您想用它來管理像 10k 節點這樣的 Web 規模集羣,您可能沒法實現。 您是否想知道 Kubernetes 管理超過 5k 節點的性能瓶頸是什麼?當你想將其可擴展性擴展到一個新的水平時,是哪一個組件阻礙? etcd,apiserver 或者 scheduler? 瞭解這些問題是運營大型 Kubernetes 集羣的關鍵。在阿里巴巴,咱們遇到了不少問題,好比隨着集羣變得愈來愈大,pod 建立變得很是慢。本文將分享咱們如何進行各類基準測試和分析,並找到瓶頸,以及如何調整控制組件,並實現了超過 100 倍的性能提高。
本文將分享從阿里巴巴網絡規模提升鏡像分發效率的實踐和經驗教訓。根據不一樣的場景,咱們利用不一樣的鏡像分發方法。基於 P2P 的 CNCF/Dragonfly 分發是緩解鏡像中心帶寬和減小分發時間的最直接方式。此外, CNCF/containerd 中的遠程文件系統快照程序直接遠程存儲鏡像,使容器引擎經過網絡讀取鏡像內容,幾乎不須要時間分發。你會發現第二種方式依賴於網絡穩定性,那麼如何根據鏡像內容讀請求動態加載從遠程到本地存儲的鏡像做爲權衡?最後,咱們將總結如何選擇適合鏡像分佈的方式。
阿里巴巴這樣規模龐大的全球電商巨頭,其所擁有的應用數量和應用種類的都是超大規模的。如何科學合理管理這些容器的資源,一直是咱們面臨的巨大挑戰。在本文中,咱們將從技術和社區演進等多種維度爲你們分享咱們的實際工做經驗和技術成果。其中包括:
衆所周知,準確的異常發現和快速的問題分析是保證 Kubernetes 集羣可用性和穩定性的關鍵所在。但在整個 Kubernetes 項目中,有着不可勝數的監控指標數據。僅以咱們的 Kubernetes 集羣爲例,咱們觀察到像這樣的監控數據每秒鐘就會產生幾千條。如何合理地利用這些複雜而大量的數據和指標,對它們有效的進行記錄和分析,變成簡單易懂的可視化展現,變成準確的告警信息,是一個很是有挑戰性的工做。
本文將分享阿里巴巴在 Kubernetes 集羣監控、審計和巡檢方面的實踐和經驗。 談談 Kubernetes 與穩定性相關的重要數據和指標,以及如何去理解它們。以案例的形式,具體講解咱們如何對這些數據和指標進行整合與解析,並分享阿里巴巴高效、實時的對這些數據進行自動化巡檢與分析的最佳實踐。
職優你是一個電子學習職業發展平臺,旨在知足全球學生和在職專業人士的各類需求,併爲來自世界多個地區的用戶提供服務。這些應用部署於在阿里雲的不一樣區域上的多個 Kubernetes 集羣上,以減小不一樣區域內的服務訪問延遲。 爲了有效地管理這些微服務,須要一個多集羣服務網格來控制微服務流量、保證服務到服務通訊等。
Istio 是一個創建在 Kubernertes 上的服務網格,可支持多種拓撲來管理多個 Kubernetes 集羣上的應用流量統一管理。在整個案例研究中,咱們將使用 Istio 服務網格分享多集羣流量管理相關的部署設計和技術,並根據底層平臺的需求和限制討論一些挑戰和相應的實踐。
愈來愈多的數據科學家在 Kubernetes 上運行基於 NvidiaGPU 的深度學習任務。與此同時,他們發現集羣中的空閒 GPU 浪費了超過 40% 的成本。所以,如何能幫助提升 GPU 使用效率成爲一個重要挑戰。本文將介紹一款基於原生 Kubernetes 的 GPU 共享解決方案:
本文將從 containerd 架構設計理念出發,向聽衆分享如何使用插件化能力來加強 containerd,提供不一樣鏡像存儲以及強隔離容器運行時的解決方案。同時,還會展現 containerd 同 gVisor, Firecracker 容器運行時集成的演示案例,會讓讀者更好地理解 containerd 最佳集成方式。
隨着容器技術在工業中的應用愈來愈普遍,如何安全高效地分發映像是工程師們所面臨的新挑戰。蜻蜓項目是基於開源智能 P2P 的映像和文件分發系統。該項目旨在解決雲原生場景中的全部分發問題。目前,蜻蜓項目專一於如下方面:
本文將重點介紹經過蜻蜓分發容器映像。咱們將回顧組織面臨的挑戰,包括大規模分發、安全傳輸、帶寬成本,並提供解決方案。
雲原生浪潮滾滾而來,企業紛紛上雲。這條路上,阿里巴巴不是踽踽獨行。不論是開源回饋社區或是分享最佳案例,但願阿里巴巴在雲上的探索,可以爲業界提供借鑑意義,共同推進雲計算的應用和發展。
本文做者:一綠舟
本文爲雲棲社區原創內容,未經容許不得轉載。