阿里雲《雲原生》公開課筆記 第一章 雲原生啓蒙

阿里雲《雲原生》公開課筆記 第一章 第一講

課程課件:https://edu.aliyun.com/lesson_1651_16823?spm=5176.10731542.0.0.58ef20beiGWfiF#_16823

  1. 雲原生技術發展史
  • 2004-2007,google使用cgroup技術
  • 2008,google將cgroup合併到linux內核
  • 2013年docker項目發佈
  • 2014年kubernetes(容器設計模式)發佈,本來google內部使用的Borg/Omega
  • 2015-2016,Mesos(技術)、Docker swarm(生態)、kubernetes競爭(生態和技術兼具)
  • 2017年,kubernetes勝出,swarm停止維護,docker公司宣佈核心產品內置了kubernetes服務(有kubernetes鏡像了),swarm不在維護
  • 2019年,阿里巴巴“全面上雲”,各大公司開始關注k8s以及微服務
  • 未來需求:不僅要會使用kubernetes,還需要懂kubernetes,熟悉雲原生架構
  1. CNCF 全景圖:
  • CNCF Landscape是CNCF中的一個重要項目,它始於2016年11月,旨在爲雲原生應用者提供一個資源地圖,幫助企業和開發人員快速瞭解雲原生體系的全貌。CNCF Landscape項目在Github上已經獲得超過5000顆星,表明廣大開發者和使用者對該項目的關注和重視。CNCF Landscape通過對雲原生技術中的大多數項目和產品進行分類,來追蹤整個生態中的大量應用。
  • 相關文章:http://www.geekpark.net/news/243185
    • RDMA:遠程直接數據存取
    • 國內唯一列入容器存儲的組件:焱yan融雲YRCloudFile
  • github地址:https://github.com/cncf/landscape?spm=5176.10731542.0.0.2fd320bewddcxw
  • https://www.cncf.io/ cncf本身託管了20多個項目,kubernetes是其中之一
  • 其他
    • 雲原生基金會CNCF(cloud native computing foundation)
    • 雲原生技術社區(kubernetes是世界第四活躍的開源項目)
  1. 教學大綱
  • 第一期:容器和kubernetes(課後自測題+雲端實踐)
  • 基礎,更高級:代碼剖析
  • 之後:service mesh,serviceless等高級概念
  1. 雲原生概念:
  • docker:應用的最小可運行單位,不需要依賴Paas
  • 可擴展、可複製、敏捷;全新的軟件開發、發佈、運維
  • 容器技術是雲原生技術的底盤
  1. 技術範疇
  • 第一部分是雲應用定義與開發流程。這包括應用定義與鏡像製作、配置 CI/CD、消息和 Streaming 以及數據庫等。
  • 第二部分是雲應用的編排與管理流程。這也是 Kubernetes 比較關注的一部分,包括了應用編排與調度、服務發現治理、遠程調用、API 網關以及 Service Mesh。
  • 第三部分是監控與可觀測性。這部分所強調的是雲上應用如何進行監控、日誌收集、Tracing 以及在雲上如何實現破壞性測試,也就是混沌工程的概念。
  • 第四部分就是雲原生的底層技術,比如容器運行時、雲原生存儲技術、雲原生網絡技術等。
  • 第五部分是雲原生工具集,在前面的這些核心技術點之上,還有很多配套的生態或者周邊的工具需要使用,比如流程自動化與配置管理、容器鏡像倉庫、雲原生安全技術以及雲端密碼管理等。
  • 最後則是 Serverless。Serverless 是一種 PaaS 的特殊形態,它定義了一種更爲“極端抽象”的應用編寫方式,包含了 FaaS 和 BaaS 這樣的概念。而無論是 FaaS 還是 BaaS,其最爲典型的特點就是按實際使用計費(Pay as you go),因此 Serverless 計費也是重要的知識和概念。
  1. 理論基礎:基礎設施(容器鏡像)+編排理論(容器設計模式)
  • 雲上的更新基礎設施:新服務替換舊服務
  • 自包含:包含所有依賴
  • 自運維:通過kubernetes來實現
  • 一致性且可靠性、自漂移、可擴展
  1. 技術點
  • 自包含、自定製的應用鏡像
  • 快速部署和隔離
  • 基礎設施創建和銷燬的自動化管理
  • 可複製的管控和支撐組件
  1. 其他
  • 鳥哥的第一本linux
  • docker run、docker build
    • https://docs.docker.com/get-started/part2/
  • 雲相關的分層
    • Iaas:infrastructure as a service (基礎設施即服務)
    • Paas:platform as a service(平臺即服務)
    • Saas:software as a service(軟件即服務)
  1. 習題(不得不說,這個習題真不錯)
  • Mesos(twitter)、Docker Swarm、Docker Swarm(SwarmKit)、Cloud Foundry哪個和k8s項目功能重合度最高
    • Mesos是一個分佈式內核,目前發展方向是數據中心操作系統DCOS
    • Docker Swarm和k8s對比
      • Docker Swarm支持容器的跨宿主節點的集羣管理, 後來發展SwarmKit與k8s參考鏈接
      • Swarm 的最新進化,是在2016年 6 月 DockerCon 大會上發佈的 Docker 1.12 內置了 Docker 公司聲稱的“最佳的容器編排工具”——Swarm 模式(Swarm mode),引入了服務的概念,不再以容器作爲主要管理對象單元,不再需要額外的KV存儲支持服務模型,讓擴容縮容、服務發現、滾動更新、負載均衡和路由等功能都更容易實現。
      • 作爲 Docker 的編排模式,Swarm mode 是通過獨立開發的 SwarmKit 項目來實現的。 的主要功能包括節點發現、基於raft算法的一致性和任務調度等。SwarmKit 通過 Containerd 類似的方式接入Docker Engine,最終通過新的 Docker API 對外提供容器集羣服務。根據 Docker 公司的態度,Swarm mode 將會取代之前的 Docker Swarm。新的 Swarm 吸收了 Kubernetes 的一些優點,但作爲內置的可選工具讓開發者更易於使用——不用另外部署第三方的 Kubernetes 了。
    • Cloud Foundry, 也有基金會,認證的供應商Pivotal Cloud Foundry
    • Cloud Foundry最重要的特點是,它是一個PaaS。Kubernetes則不太像PaaS,有些人把它看做IaaS+ 參考這篇鏈接關於CF和k8s區別
    • Pivotal 2020年正式被vmware收購了,變成vmware的全資子公司
    • Pivotal的GemFire技術
  • 容器啓動之後,ssh進入容器裏面寫了很多文件,破壞了雲原生的理念
    • 一旦容器崩潰,這些文件就都丟失了
  • 容器化應用,會將日誌文件寫在路徑寫死的目錄裏面,這破壞了雲原生理念
    • 日誌文件應該寫在外部的持久卷裏面,不應該放在容器裏
  • 考察是否是雲原生的標準
    • 實例可以快速水平擴展
    • 應用可以使用鏡像打包保證環境一致性
    • 應用數據是否寫在容器數據卷(不應該)
      • 永久保存:應該寫在k8s的數據卷
      • 容器的數據卷會隨着容器的消失而消失
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章