雲原生:打造「阿拉丁神燈式」應用廚房

{"type":"doc","content":[{"type":"blockquote","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"編者按:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"《2001太空漫遊》的作者、英國科幻作家Clarke曾提出著名的“克拉克三定律”,最後一條說的是「足夠先進的科技與魔法無異」。在近年興起的雲原生領域,這個觀點有望得到再一次證明。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在雲原生賦能下,未來企業的IT基礎架構將從以資源爲核心轉變爲以應用爲核心,應用開發的效率和體驗將獲得根本性改善,終極願景甚至是用簡單的語義表達就能實現應用功能開發。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"面對雲原生「神器」,本期晨思嘗試回答以下幾個問題:如何理解雲原生和雲計算的差異,雲原生代表技術價值何在、是如何運作的,雲原生江湖有哪些主要玩家,中國雲原生髮展現狀,以及初創公司可能的突破方向。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"閱讀愉快。"}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"numberedlist","attrs":{"start":1,"normalizeStart":1},"content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":1,"align":null,"origin":null},"content":[{"type":"text","text":"如果說雲計算給了企業一臺可以彈性伸縮、按需配置的“集成竈”,那麼雲原生就是給了企業一張可以隨意組合、心隨意動的“做菜臺”。"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":2,"align":null,"origin":null},"content":[{"type":"text","text":"強大的核心技術、深刻的企業級產品理解能力和龐大的生態羣是奠定雲原生企業成功的“三座大山”。"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":3,"align":null,"origin":null},"content":[{"type":"text","text":"初創公司想要殺出重圍,不僅要學會避開大廠的舒適區域,更要構建自己在服務或技術上的護城河。"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/1c\/1cc0cdc32aab2f2ea6182ff49fa8d13c.gif","alt":null,"title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"理念先行:以應用爲核心的雲計算2.0"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"雲計算的時代從2006年Eric Schmidt首次提出、同年Amazon推出AWS雲服務至今,已沒有人再懷疑它是否只是曇花一現。隨着全球和國內IaaS市場格局的逐漸塵埃落定,巨頭間的廝殺也已接近尾聲。就在所有人覺得大局已定,準備平靜地接受雲計算時代洗禮的時候,“雲原生”這個詞悄然出現在了大衆的視野裏,並在這些年隨着容器、K8S等技術的成熟愈演愈烈,似乎正在掀起另一波IT基礎架構創新的浪潮。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"不同於雲計算從一開始就有着清晰而系統化的認識,雲原生這個詞直到今天都很難出現一個統一的描述,如果我們引用CNCF(Cloud Native Computing Foundation)的官方定義:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"blockquote","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"雲原生技術有利於各組織在公有云、私有云和混合雲等新型動態環境中,構建和運行可彈性擴展的應用。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"雲原生的代表技術包括容器、服務網格、微服務、不可變基礎設施和聲明式API。這些技術能夠構建容錯性好、易於管理和便於觀察的松耦合系統。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"結合可靠的自動化手段,雲原生技術使工程師能夠輕鬆地對系統作出頻繁和可預測的重大變更。"}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"似乎依然很難用非常通俗的方式去理解?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"好的,那我們來用一個比較形象的例子來闡述吧!"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"假如我們把企業的整個開發體系比作飯店做菜的廚房,它的內部有着一個個廚師們使用的工作臺,工作臺的結構如圖所示:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/ed\/ed199ea4f3939b83fc356196b665fe0b.webp","alt":null,"title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"我們一層層來看——"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"底層"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"燃氣、管道和竈臺代表企業底層的IT資源,包括計算、存儲和網絡。傳統的形態和配置方式所帶來的的問題包括:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"1."},{"type":"text","text":" "},{"type":"text","marks":[{"type":"strong"}],"text":"資源浪費"},{"type":"text","text":"。每個工作臺炒菜所需的資源各有不同,大鍋菜的燃氣需要給足一些,管道要粗一些,家常小炒則火候要小一些,容易造成給多了或者給少了的情況,而且每一個工作臺的資源配置都各不相同,無法複用。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"numberedlist","attrs":{"start":2,"normalizeStart":2},"content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":2,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"配置效率低"},{"type":"text","text":"。每當需要新增工作臺的時候,得一個一個按部就班地佈置新的燃氣、竈臺和管道。"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"所以理想化的狀態應該是,實現燃氣、竈臺、管道的資源池化並統一管理,每一個做菜工作臺按配置、按需求配套提供做菜工作基礎資源。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"現實中,計算、存儲、網絡這些IT基礎資源,以前都被鎖定在一個個孤立的主機或者服務器之中,雲計算通過虛擬化技術將這些資源池化;而以Openstack爲代表的雲計算管理框架,對這些資源實現高效、統一的管理,用戶於是可以按需來快速創建自己的虛擬主機。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"中間層"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"中間層則是針對不同的做菜方式(蒸、炒、煎、炸)所需的廚具以及針對具體菜品所需的配菜,代表了企業針對不同的應用開發類型所需要的的配置、運行環境、組件插件等。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"應用層"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"類似的,在企業IT上雲並擁有可以彈性伸縮、按需配置的工作臺之後,應用開發就成了下一個需要解決的問題。爲了擁有靈活、簡單但又強大的業務開發能力,雲原生這一概念也就應運而生,讓我們來看它是如何解決這些問題的。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/ba\/bab29ab9dac670c6e1c348031466ca8d.webp","alt":null,"title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"如果說雲原生是一棵大樹,那容器\/K8S就是它的根和土壤,微服務就是它四通八達的樹枝,服務網格就是它內部輸送養分的管道,無服務器就是它最後結出的果實"},{"type":"text","text":"。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"容器和K8S"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"當我們在實際配置和炒菜的過程中,首先會遇到這樣一些問題:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"1. 效率問題"},{"type":"text","text":"。比如土豆燒牛肉,如果要做一百份,那就要一個一個地準備一百份土豆燒牛肉的配菜、鍋具和鍋鏟。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"2. 兼容問題"},{"type":"text","text":"。比如普通炒菜需要炒鍋,東北鐵鍋燉需要燉鍋,廣式點心需要蒸籠,互相之間難以兼容。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"3. 版本問題"},{"type":"text","text":"。不同廚師對於同一道菜的配菜和做法,甚至同一個廚師做同一道菜每一次可能都有或大或小的差別。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"4. 歷史版本記錄問題"},{"type":"text","text":"。比如三個月前某一個版本的土豆燒牛肉特別受歡迎,希望現在可以快速推廣,卻很難做到快速、完美的復刻。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"而容器和K8S可以完美解決這些問題,容器對每道菜的每一個版本所需的所有炒菜環境、配菜等進行封裝,使其可以在任何類型的工作臺製作;而K8S(kubernetes)作爲容器的調度和編排框架,則實現了對容器的統一管理,包括容器的自動化部署和複製、自動伸縮集羣規模、容器間的負載均衡、版本升級等。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"微服務"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"假設廚房又租了一臺切土豆機,現在的收費模式是按天或者按年去收費。如果機器某個部分壞了,那麼首先整個機器就不能用了,而且很有可能需要對整個機器進行維修或者更換;如果有性能更好的刀片或者容量更大的土豆盒子,那麼需要推出新的產品系列;如果廚房土豆實在太多或者客人要得急,那隻能多租幾臺。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"這個時候市場上出現了一款全新切土豆機,它把切土豆機解耦成了土豆盒子和切片器兩個功能。這樣用戶如果覺得土豆太多放不下,或者土豆盒子夠用但希望能切快一點,只需要分別增加土豆盒子或者換更好的切片器就可以,並基於盒子的大小或刀片的質量階梯式付費。如果盒子或者切片器壞了,另一個部分還能正常工作,只需要分別更換或維修即可。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"這其實就是應用的微服務化,微服務松耦合的特性使得應用能夠實現開發階段的快速響應,部署上線後一個服務出現問題不會影響整個應用。還能更大程度地實現按需付費、節約成本。團隊能夠更關注自己的工作成果,聚焦指定的業務功能或業務需求,大大提高了開發效率。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"服務網格(Service Mesh)"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"現在整個飯店都被你微服務化了,每一個廚房員工就是一個微服務,比如洗菜(青菜、雞肉、魚肉等等)、切菜、炒菜......結果問題又來了:很多員工是從別的飯店僱來的,有的講英語、有的講中文、有的講方言,甚至就算語言相通,不同飯店來的各自的溝通方式也完全不一樣,互相無法高效交流;之前爲整個飯店量身制定了很多規章制度和考覈指標,但現在具體到個人,如何實現透明化高效管理呢?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"這時候一種叫服務網格的溝通器出現了,它可以很方便地分發給所有人,所有的指令和溝通都可以通過這個翻譯器進行傳達。這樣整個飯店的信息溝通就被溝通器給抽象了,方便飯店進行統一的管理。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"所以服務網格的理念就是希望通過Sidecar(邊車模式)這種無侵入的方式運行在每個應用旁邊,獨立部署於業務之外,形成抽象的應用網絡網格。當基礎設施中的所有服務流量通過Sidecar網格流動時,不僅可以通過一致的可觀察性進行高效監控,還可以實現統一的網絡策略配置。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"無服務器(Serverless)"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"基於以上打造的這些能力,你終於可以實現阿拉丁神燈式的飯店了,今後每一次做菜你只需要告訴廚房你需要什麼菜,沒有配置和管理竈臺、柴火、鍋碗瓢盆的煩惱,也不需要去關心後廚人員之間的篩選跟配合,短短數秒,菜品就會來到你面前。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"無服務器(Serverless)就代表了這樣一種終極理想,讓開發者專注於業務代碼的開發,無需關注平臺運行的差異性,也不需要關心應用邏輯以外服務相關的事情,包括管理、配置、運維。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"綜上,通過雲原生的賦能,我們認爲在雲原生的時代,企業IT基礎架構將實現從以資源爲核心到以應用爲核心的轉變,同時應用開發的效率和體驗將會獲得根本性的改善,最終甚至實現:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"用簡單的語義表達就能實現一個應用功能開發"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"用拖拉拽的方式就可以實現業務的組合開發"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"底層和運維對用戶完全透明"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"應用的計費可以精確基於功能的實際調用和資源的實際消耗"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在這樣一種願景中,開發和產品之間的界限或許會越來越模糊,產品經理可以通過高效、簡易的開發方式直接實現業務需求。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"雲原生的江湖史"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在亞馬遜的AWS確立了雲計算各個部分的邊界,IaaS層塵埃落定的時候,大家爭奪的焦點終於轉到了PaaS層面。如果說IaaS層的核心是圍繞着資源(計算、存儲、網絡),那麼PaaS層的核心就是應用。而目前以K8S爲核心主導江湖的現狀是如何逐漸形成的呢,這其中其實經歷了兩次PK,主要玩家包括:Cloud Foundry、Mesos(現更名爲“D2IQ”)、Docker Swarm以及K8S。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/06\/062fc13fca61e911fe9afb7aecc6d6f1.webp","alt":null,"title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"K8S與Cloud Foundry"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"K8S(Kubernetes)脫胎於Google內部的分佈式集成管理系統Borg,在開源之後大受歡迎,目前已經是絕對主導的容器集羣管理方案。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Cloud Foundry包括它內置的容器引擎Warden的出現還要略早於K8S與Docker,是第一個開源PaaS雲平臺,最初由VMware開發,後來轉入了Pivotal。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"與K8S相比,Cloud Foundry的步子邁得更大一些,它讓開發人員更專注於應用的開發而屏蔽了底層的資源管理,同時採用類似Spring的框架,對於不同的開發語言定製了固定的開發模板,同時提供了一個服務市場,可以在上面很方便綁定一些開箱即用的服務,比如數據庫、監控工具和消息代理。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"但最終Cloud Foundry還是落於下風,並且開始向K8S生態靠攏,要原因在於三個方面:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第一,對於Docker沒有及時接納,固執堅持底層使用自己的容器引擎,忽視了Docker在容器引擎中的帶來的變革性優勢,以至於當Docker倒向K8S之後,二者原本就廣闊的生態羣體產生的疊加效應一下子就拉開了差距。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第二,夢想太過美好以至於左腳邁得太大,右腳卻沒有跟上。雖然CF的概念更符合PaaS的定義,完全屏蔽了資源層,希望讓開發人員專注於應用層,但事實上在開發過程中,你很難去定義哪些是開發者要做的,哪些是IT管理員要做的,尤其是在DevOps這個概念提出之後。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第三,類似Spring框架的開發模式對開發人員的限制過多,對於已經有比較固定的開發框架或流程的大型企業來說在初期會比較有優勢,但是卻很限制其他廣大開發人員的發揮和創造力,也極大程度限制了生態的發展。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"K8S與Docker Swarm、Mesos"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"業界一般稱Cloud Foundry爲上一代的PaaS平臺,而這一代的PaaS平臺注重於對容器的編排和管理,在最初則有三位主要玩家:Google的K8S、Docker自己推出的Docker Swarm,以及Mesosphere公司推出的Mesos + Marathon。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"由於在最早的時候,雖然Google內部有自己的一套針對內部容器集羣的調度和編排流程Borg,但出於對暴露自己的基礎架構風險考慮,選擇了針對市面上的開源容器引擎重新編寫形成了K8S,並且慧眼識珠的擁抱了Docker。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"而Docker在自己的容器引擎大火之後,也有了自己的野心,推出了配套的一系列工具,包括調度平臺Docker Swarm。然而由於自身並沒有大規模節點的調度經驗(上千或者上萬),以至於在性能上很難滿足企業需求,只能供個人或實驗場景下使用,最終在宣佈停止維護Docker Swarm、全面擁抱K8S之後,這場競爭也終於落下了帷幕。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Mesos本身其實是一個通用的資源管理平臺,它選擇了Marathon作爲容器調度方案,在技術上最初是具有一定的領先性的,但最終的失敗主要是由於K8S + Docker生態的建立,最終使得自己失去了市場中的地位。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Docker在最重要的容器編排之戰中失敗,可以借鑑的教訓包括:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"開源並不是免費,開源作爲一種商業模式,需要時刻思考組織和項目的生存問題,要保持自己被普遍使用且不可替代"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"開源技術在成功的路上不可避免會走向商業,包括Docker,提前思考企業市場的挑戰是非常重要的"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"開源項目在企業級市場中,優勢與劣勢並存,優勢就是它所裹挾的龐大的開發者生態,而劣勢則是對於企業級產品的理解"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"Docker的失利,乍一看可能是時機和生態構建的問題,但歸根結底是基因和能力問題"}]}]}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"中國雲原生進行時"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"目前在CNCF的全景圖中,各個領域已經擁有超過1500個知名項目,總計吸引超過650億美元的融資規模,創造了超過19萬億美元的市場規模;而中國在其中扮演着越來越重要的角色:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"從數量上來看,共有50位來自中國的CNCF成員,超過總成員數的10%,其中白金會員3位,黃金會員6位,銀牌會員37位"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"從代碼貢獻來看,中國是世界Top3的項目貢獻國家,PingCAP和華爲作爲國內兩個最大的項目貢獻單位,總計提交105,482次項目貢獻,分別名列全球第6和第8"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"從社區來看,2019年總共有3,500名來自中國的程序員參加了全球K8S+雲原生大會,中國累計完成K8S和雲原生官方課程的人員數量已超過20,000人"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"除此之外,雲計算帶來的IT基礎設施的變革已經從根本上爲雲原生的發展提供了強大的驅動力和穩定的基礎支撐。到2022年,預計將有多達60%的組織使用外部服務提供商的雲託管服務產品,這個比例是2018年的兩倍,雲原生能力將成爲技術產品經理的重要差異化因素。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"對於雲計算未來新技術展望方面,雲原生的兩大主流方向Serverless以及Service Mesh分列第一第二位,而Kubeflow也代表了雲原生在應用端賦能的機會。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"公有云PaaS市場規模繼續保持高速增長,市場規模爲41.9億元,同比增長92.4%。雲原生產業作爲現階段雲計算PaaS市場的重要支點,也延續了高速增長態勢,根據中國信息通信研究院相關調研數據顯示,2019年中國雲原生市場規模已達350.2億元。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"初創公司的機會在哪?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"巨頭型企業以大型雲廠商和大型科技廠商爲代表,比如華爲、阿里、騰訊等,它們對於敏捷開發流程全生命週期的管理有着深刻的理解,在大規模集羣化管理有無法替代的實踐經驗。但相對的,從產品上看則更多是圍繞自己的公有云平臺進行開發,基於這樣的認知,我們認爲初創型公司可從以下兩個角度進行突破:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"解決方案式"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"通過提供基於新技術或框架實現企業級產品矩陣和解決方案,以解決方案的完整性和底層多雲環境的兼容性作爲自己的產品壁壘,同時實現高效、強大的服務質量。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"單點突破式"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"擁有絕對領先的核心技術能力,從價值和延展性很高的領域入手,以點帶面,典型例子有HashiCorp(CI\/CD)、Kong(API管理)。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"同時我們認爲在雲原生體系裏,開源模式可能會比以往發揮更大的作用,原因主要包括:開源項目更容易被其它產品支持和集成;雲原生架構早期使用者以開發者爲主,開源項目更容易快速建立口碑和影響力;在社區支持下,開源項目質量更容易得到保證。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"相信在不久的將來,雲原生將成爲在雲計算時代的二級火箭,助推企業和社會在數字化時代中,真正實現數據驅動的產業互聯網。我們也期待着越來越多的初創企業,能夠一起構建中國在基礎設施領域的強大競爭力。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"作者介紹:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"錢進,晨山資本投資經理,[email protected]。"}]}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章