9 年云原生實(shí)踐全景揭秘|《阿里巴巴云原生實(shí)踐 15 講》正式開放下載

以容器、服務(wù)網(wǎng)格、微服務(wù)、Serverless 為代表的云原生技術(shù),帶來(lái)一種全新的方式來(lái)構(gòu)建應(yīng)用。同時(shí),云原生也在拓展云計(jì)算的邊界,一方面是多云、混合云推動(dòng)無(wú)邊界云計(jì)算,一方面云邊端的協(xié)同。在云的趨勢(shì)下,越來(lái)越多的企業(yè)開始將業(yè)務(wù)與技術(shù)向“云原生”演進(jìn)。

在這個(gè)演進(jìn)過(guò)程中,企業(yè)都或多或少都面對(duì)一些困惑與挑戰(zhàn),其中如何將應(yīng)用和軟件向 Kubernetes 體系進(jìn)行遷移、交付和持續(xù)發(fā)布是一個(gè)普遍的難題。

阿里巴巴從 2011 年開始通過(guò)容器實(shí)踐云原生技術(shù)體系,在整個(gè)業(yè)界都還沒(méi)有任何范例可供參考的大背境下,從最初獨(dú)自摸索到擁抱開源回饋社區(qū),阿里巴巴逐漸摸索出了一套比肩全球一線技術(shù)公司并且服務(wù)于整個(gè)阿里集團(tuán)的容器化基礎(chǔ)設(shè)施架構(gòu)。九年的前行,讓阿里巴巴在交流互動(dòng)中不斷吸收和貢獻(xiàn)好的理念、技術(shù)、思想,也積累了最為豐富和寶貴的實(shí)踐經(jīng)驗(yàn)。

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

image.png

你為什么要讀這本書

在云原生領(lǐng)域,開發(fā)者的訴求和使用方法永遠(yuǎn)是豐富的、復(fù)雜的、多樣的。在這種背景下,短時(shí)間內(nèi)很難有技術(shù)能夠大一統(tǒng)地解決開發(fā)者面臨的所有問(wèn)題,阿里巴巴內(nèi)部對(duì)云原生的探索也一直在進(jìn)行中。從外向內(nèi)引入社區(qū)技術(shù),讓阿里巴巴的基礎(chǔ)設(shè)施完成了一次自我升級(jí),并變得更加開放標(biāo)準(zhǔn);從內(nèi)向外的輸出,對(duì)社區(qū)提出有價(jià)值的代碼,推動(dòng)整個(gè)云原生社區(qū)向更大規(guī)模的方向演進(jìn)。

本書整合阿里巴巴九年云原生技術(shù)沉淀,分析真實(shí)的技術(shù)案例,發(fā)現(xiàn)問(wèn)題,理清思路,解決問(wèn)題,總結(jié)方法,把自我成長(zhǎng)和專業(yè)精進(jìn)的技術(shù)養(yǎng)料,回饋給廣大云原生開發(fā)者。本書包含 3 個(gè)系列,阿里云原生實(shí)踐,阿里新技術(shù)方案及阿里開源貢獻(xiàn),共 16 篇文章。每篇文章都凝結(jié)著阿里巴巴云原生落地實(shí)踐的寶貴經(jīng)驗(yàn)和面對(duì)困惑的解決方法,相信能夠在最短的時(shí)間內(nèi),幫助你全面了解阿里巴巴云原生實(shí)踐經(jīng)驗(yàn),踏上最適合自己的云原生之路。


image.png

本書目錄


image.png

書中精彩干貨集合

《堅(jiān)持探索與落地開源,阿里巴巴云原生之路全景揭秘》

阿里云已經(jīng)成功地規(guī)?;涞卦圃?,本文將分享阿里巴巴具體的云原生實(shí)踐經(jīng)驗(yàn)分享給各位觀眾,涉及規(guī)模擴(kuò)展、可靠性、開發(fā)效率、遷移策略等方面,并探討針對(duì)大規(guī)模場(chǎng)景進(jìn)行優(yōu)化。Cloud native works for Alibaba. Cloud native works for (almost) everyone.

《1-5-10:如何快速恢復(fù)大規(guī)模容器故障》

在云時(shí)代,企業(yè)中基于容器的應(yīng)用激增,由于人工操作、硬件故障等,發(fā)生容器故障的可能性大幅增加。因此,如何在不增加資源投入的情況下保證大規(guī)模容器的可靠性成為云平臺(tái)面臨的一個(gè)巨大挑戰(zhàn)。阿里巴巴運(yùn)行著數(shù)百萬(wàn)個(gè)容器,為恢復(fù)容器相關(guān)故障提出了 1-5-10 理論:MTTD(平均檢測(cè)時(shí)間)為 1 分鐘,MTTI(平均識(shí)別時(shí)間)為 5 分鐘,MTTR(平均解決時(shí)間)為 10 分鐘。我們將討論如何利用 1-5-10 提高大規(guī)模容器的可靠性:

  • 如何在本地建立一個(gè)有效代理,在 1 分鐘內(nèi)檢測(cè)到問(wèn)題;

  • 如何借助專家知識(shí)庫(kù)智能診斷容器問(wèn)題;

  • 如何以故障驅(qū)動(dòng)型方式自動(dòng)恢復(fù)容器問(wèn)題。

《阿里巴巴利用 K8S、Kata 容器和裸機(jī)云構(gòu)建無(wú)服務(wù)器》

無(wú)服務(wù)器計(jì)算是當(dāng)前流行的計(jì)算形式,極大降低了開發(fā)人員部署、管理、運(yùn)行應(yīng)用的成本。在無(wú)服務(wù)器平臺(tái)中,不同用戶的服務(wù)通?;觳吭谕粋€(gè)節(jié)點(diǎn)上,為此,需要在多租戶場(chǎng)景下提供可信的運(yùn)行環(huán)境。在阿里巴巴,我們使用 Kata Containers 作為安全容器運(yùn)行時(shí),在存儲(chǔ)、網(wǎng)絡(luò)、硬件等層面確保多租硬隔離和服務(wù)運(yùn)行時(shí)的性能。文章將根據(jù)我們的生產(chǎn)實(shí)踐,詳細(xì)討論多租場(chǎng)景下如何實(shí)現(xiàn)硬多租和服務(wù)運(yùn)行的高性能。

《CafeDeployment:為互聯(lián)網(wǎng)金融關(guān)鍵任務(wù)場(chǎng)景擴(kuò)展的 Kubernetes 資源》

Kubernetes 原生社區(qū) Deployment 和 StatefulSet 解決了“服務(wù)節(jié)點(diǎn)版本一致性”的問(wèn)題,并且通過(guò) rolling update 實(shí)現(xiàn)了滾動(dòng)升級(jí),提供了基本的回滾策略。對(duì)于高可用建設(shè)要求不高的“年輕”業(yè)務(wù),是一個(gè)不錯(cuò)的選擇。但是,在金融場(chǎng)景下,要解決的場(chǎng)景復(fù)雜得多,因此我們?cè)诮鹑诜植际郊軜?gòu)-云應(yīng)用引擎( SOFAStack-CAFE )中提出了 CafeDeployment 的云原生模型,致力于解決,IP 不可變;金融體系下的高可用;靈活的部署策略的問(wèn)題。

在面對(duì)以上這些問(wèn)題的時(shí)候,我們思考:能不能有一個(gè)類似 Deployment 的東西,不僅可以實(shí)現(xiàn)副本保持,而且還能協(xié)助用戶管控應(yīng)用節(jié)點(diǎn)部署結(jié)構(gòu)、做 Beta 驗(yàn)證、分批發(fā)布,減少用戶干預(yù)流程,實(shí)現(xiàn)最大限度減少發(fā)布風(fēng)險(xiǎn)的目標(biāo),做到快速止損,并進(jìn)行修正干預(yù)。本篇文章中將詳細(xì)解釋我們?yōu)槭裁催x擇定義了自己的 CRD——CafeDeployment 。

《Severless 市場(chǎng)觀察和落地挑戰(zhàn)》

KubeCon China 2019 大會(huì)上, 螞蟻 SOFAStack CAFE Serverless 應(yīng)用服務(wù)(SAS)正式亮相,在工作坊吸引了百余名參與者同場(chǎng)體驗(yàn)。Serverless 將資源管理的粒度更加細(xì)化,使開發(fā)者更快上手云原生,并且倡導(dǎo)事件驅(qū)動(dòng)模型支持業(yè)務(wù)發(fā)展。從而幫助用戶解決了資源管理復(fù)雜、低頻業(yè)務(wù)資源占用等問(wèn)題;實(shí)現(xiàn)面向資源使用,以取代面向資源分配的模式。

《有效可靠地管理大規(guī)模 Kubernetes 集群》

Kubernetes 以其超前的設(shè)計(jì)理念和優(yōu)秀的技術(shù)架構(gòu),在容器編排領(lǐng)域拔得頭籌。越來(lái)越多的公司開始在生產(chǎn)環(huán)境部署實(shí)踐 Kubernetes,在阿里巴巴和螞蟻金服 Kubernetes 已被大規(guī)模用于生產(chǎn)環(huán)境。Kubernetes 的出現(xiàn)使得廣大開發(fā)同學(xué)也能運(yùn)維復(fù)雜的分布式系統(tǒng),它大幅降低了容器化應(yīng)用部署的門檻,但運(yùn)維和管理一個(gè)生產(chǎn)級(jí)的高可用 Kubernetes 集群仍十分困難。本文將分享螞蟻金服是如何有效可靠地管理大規(guī)模 Kubernetes 集群的,并會(huì)詳細(xì)介紹集群管理系統(tǒng)核心組件的設(shè)計(jì)。

《云原生應(yīng)用 Kubernetes 監(jiān)控與彈性實(shí)踐》

云原生應(yīng)用的設(shè)計(jì)理念已經(jīng)被越來(lái)越多的開發(fā)者接受與認(rèn)可,而 Kubernetes 作為云原生的標(biāo)準(zhǔn)接口實(shí)現(xiàn),已經(jīng)成為了整個(gè) stack 的中心,云服務(wù)的能力可以通過(guò) Cloud Provider 、 CRD Controller 、 Operator 等等的方式從 Kubernetes 的標(biāo)準(zhǔn)接口向業(yè)務(wù)層透出。開發(fā)者可以基于 Kubernetes 來(lái)構(gòu)建自己的云原生應(yīng)用與平臺(tái), Kubernetes 成為了構(gòu)建平臺(tái)的平臺(tái)。本文將向大家介紹一個(gè)云原生應(yīng)用該如何在 Kubernetes 中無(wú)縫集成監(jiān)控和彈性能力。

《了解 Kubernetes Master 的可擴(kuò)展性和性能》

目前,Kubernetes 的規(guī)模限制是 5k 節(jié)點(diǎn),因此如果您想用它來(lái)管理像 10k 節(jié)點(diǎn)這樣的 Web 規(guī)模集群,您可能無(wú)法實(shí)現(xiàn)。您是否想知道 Kubernetes 管理超過(guò) 5k 節(jié)點(diǎn)的性能瓶頸是什么?當(dāng)你想將其可擴(kuò)展性擴(kuò)展到一個(gè)新的水平時(shí),是哪個(gè)組件阻礙?etcd,apiserver 或者 scheduler?了解這些問(wèn)題是運(yùn)營(yíng)大型 Kubernetes 集群的關(guān)鍵。在阿里巴巴,我們遇到了很多問(wèn)題,比如隨著集群變得越來(lái)越大,pod 創(chuàng)建變得非常慢。本文將分享我們?nèi)绾芜M(jìn)行各種基準(zhǔn)測(cè)試和分析,并找到瓶頸,以及如何調(diào)整控制組件,并實(shí)現(xiàn)了超過(guò) 100 倍的性能提升。

《云原生時(shí)代加速鏡像分發(fā)的三種方法》

本文將分享從阿里巴巴網(wǎng)絡(luò)規(guī)模提高鏡像分發(fā)效率的實(shí)踐和經(jīng)驗(yàn)教訓(xùn)。根據(jù)不同的場(chǎng)景,我們利用不同的鏡像分發(fā)方法?;?P2P 的 CNCF/Dragonfly 分發(fā)是緩解鏡像中心帶寬和減少分發(fā)時(shí)間的最直接方式。此外,CNCF/containerd 中的遠(yuǎn)程文件系統(tǒng)快照程序直接遠(yuǎn)程存儲(chǔ)鏡像,使容器引擎通過(guò)網(wǎng)絡(luò)讀取鏡像內(nèi)容,幾乎不需要時(shí)間分發(fā)。你會(huì)發(fā)現(xiàn)第二種方式依賴于網(wǎng)絡(luò)穩(wěn)定性,那么如何根據(jù)鏡像內(nèi)容讀請(qǐng)求動(dòng)態(tài)加載從遠(yuǎn)程到本地存儲(chǔ)的鏡像作為權(quán)衡?最后,我們將總結(jié)如何選擇適合鏡像分布的方式。

《在 Web 級(jí)集群中動(dòng)態(tài)調(diào)整 Pod 資源限制》

阿里巴巴這樣規(guī)模龐大的全球電商巨頭,其所擁有的應(yīng)用數(shù)量和應(yīng)用種類的都是超大規(guī)模的。如何科學(xué)合理管理這些容器的資源,一直是我們面臨的巨大挑戰(zhàn)。在本文中,我們將從技術(shù)和社區(qū)演進(jìn)等多種維度為大家分享我們的實(shí)際工作經(jīng)驗(yàn)和技術(shù)成果。其中包括:

  • 目前社區(qū)對(duì)于容器的資源管理現(xiàn)狀是什么?

  • 阿里這種大規(guī)模應(yīng)用部署的具體挑戰(zhàn)是什么?

  • 我們?nèi)绾卧\治資源管理上的各種疑難雜癥?

  • 我們?nèi)绾巫龅劫Y源利用率大幅提升的同時(shí)確保在線服務(wù)穩(wěn)定?

  • 如何平衡基于云原生的演進(jìn)和實(shí)現(xiàn)工作快速交付?

  • 我們的經(jīng)驗(yàn)可以為您帶來(lái)什么幫助以及我們?nèi)绾畏答伾鐓^(qū)做到共贏?

《大規(guī)模 K8s 集群下的巡檢》

眾所周知,準(zhǔn)確的異常發(fā)現(xiàn)和快速的問(wèn)題分析是保證 Kubernetes 集群可用性和穩(wěn)定性的關(guān)鍵所在。但在整個(gè) Kubernetes 項(xiàng)目中,有著不計(jì)其數(shù)的監(jiān)控指標(biāo)數(shù)據(jù)。僅以我們的 Kubernetes 集群為例,我們觀察到像這樣的監(jiān)控?cái)?shù)據(jù)每秒鐘就會(huì)產(chǎn)生幾千條。如何合理地利用這些復(fù)雜而大量的數(shù)據(jù)和指標(biāo),對(duì)它們有效的進(jìn)行記錄和分析,變成簡(jiǎn)單易懂的可視化展示,變成準(zhǔn)確的告警信息,是一個(gè)非常有挑戰(zhàn)性的工作。

本文將分享阿里巴巴在 Kubernetes 集群監(jiān)控、審計(jì)和巡檢方面的實(shí)踐和經(jīng)驗(yàn)。談?wù)?Kubernetes 與穩(wěn)定性相關(guān)的重要數(shù)據(jù)和指標(biāo),以及如何去理解它們。以案例的形式,具體講解我們?nèi)绾螌?duì)這些數(shù)據(jù)和指標(biāo)進(jìn)行整合與解析,并分享阿里巴巴高效、實(shí)時(shí)的對(duì)這些數(shù)據(jù)進(jìn)行自動(dòng)化巡檢與分析的最佳實(shí)踐。

《使用 Istio 管理跨地域多集群的服務(wù)》

職優(yōu)你是一個(gè)電子學(xué)習(xí)職業(yè)發(fā)展平臺(tái),旨在滿足全球?qū)W生和在職專業(yè)人士的各種需求,并為來(lái)自世界多個(gè)地區(qū)的用戶提供服務(wù)。這些應(yīng)用部署于在阿里云的不同區(qū)域上的多個(gè) Kubernetes 集群上,以減少不同區(qū)域內(nèi)的服務(wù)訪問(wèn)延遲。為了有效地管理這些微服務(wù),需要一個(gè)多集群服務(wù)網(wǎng)格來(lái)控制微服務(wù)流量、保證服務(wù)到服務(wù)通信等。

Istio 是一個(gè)建立在 Kubernertes 上的服務(wù)網(wǎng)格,可支持多種拓?fù)鋪?lái)管理多個(gè) Kubernetes 集群上的應(yīng)用流量統(tǒng)一管理。在整個(gè)案例研究中,我們將使用 Istio 服務(wù)網(wǎng)格分享多集群流量管理相關(guān)的部署設(shè)計(jì)和技術(shù),并根據(jù)底層平臺(tái)的需求和限制討論一些挑戰(zhàn)和相應(yīng)的實(shí)踐。

《首個(gè)普惠社區(qū)的平民化方案: GPU 共享調(diào)度》

越來(lái)越多的數(shù)據(jù)科學(xué)家在 Kubernetes 上運(yùn)行基于 NvidiaGPU 的深度學(xué)習(xí)任務(wù)。與此同時(shí),他們發(fā)現(xiàn)集群中的空閑 GPU 浪費(fèi)了超過(guò) 40% 的成本。因此,如何能幫助提高 GPU 使用效率成為一個(gè)重要挑戰(zhàn)。本文將介紹一款基于原生 Kubernetes 的 GPU 共享解決方案:

  • 如何定義 GPU 共享 API

  • 如何在不更改調(diào)度程序裸機(jī)代碼的情況下在調(diào)度 GPU 共享

  • 如何將 GPU 隔離解決方案與 Kubernetes 相集成

  • 我們還將通過(guò)演示介紹 Tensorflow 用戶如何在 Kubernetes 集群中的同一 GPU 設(shè)備上運(yùn)行不同的作業(yè)

《容器運(yùn)行時(shí)管理引擎 Containerd》

本文將從 containerd 架構(gòu)設(shè)計(jì)理念出發(fā),向聽眾分享如何使用插件化能力來(lái)增強(qiáng) containerd,提供不同鏡像存儲(chǔ)以及強(qiáng)隔離容器運(yùn)行時(shí)的解決方案。同時(shí),還會(huì)展示 containerd 同 gVisor, Firecracker 容器運(yùn)行時(shí)集成的演示案例,會(huì)讓讀者更好地理解 containerd 最佳集成方式。

《基于 P2P 原理的高可用高性能大規(guī)模鏡像分發(fā)系統(tǒng) :Dragonfly》

隨著容器技術(shù)在工業(yè)中的應(yīng)用越來(lái)越廣泛,如何安全高效地分發(fā)映像是工程師們所面臨的新挑戰(zhàn)。蜻蜓項(xiàng)目是基于開源智能 P2P 的映像和文件分發(fā)系統(tǒng)。該項(xiàng)目旨在解決云原生場(chǎng)景中的所有分發(fā)問(wèn)題。目前,蜻蜓項(xiàng)目專注于以下方面:

  • 簡(jiǎn)單:面向用戶的明確定義的 API (HTTP),對(duì)所有容器引擎都無(wú)侵入性

  • 高效:CDN 支持、基于 P2P 的文件分發(fā)以節(jié)省企業(yè)帶寬

  • 智能:主機(jī)檢測(cè)實(shí)現(xiàn)主機(jī)層面的速度限制、智能的流量控制

  • 安全:數(shù)據(jù)塊傳輸加密,HTTPS 連接支持

本文將重點(diǎn)介紹通過(guò)蜻蜓分發(fā)容器映像。我們將回顧組織面臨的挑戰(zhàn),包括大規(guī)模分發(fā)、安全傳輸、帶寬成本,并提供解決方案。

云原生浪潮滾滾而來(lái),企業(yè)紛紛上云。這條路上,阿里巴巴不是踽踽獨(dú)行。不管是開源回饋社區(qū)或是分享最佳案例,希望阿里巴巴在云上的探索,能夠?yàn)闃I(yè)界提供借鑒意義,共同推動(dòng)云計(jì)算的應(yīng)用和發(fā)展。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容