我們請來技術大咖講講雲原生:上雲只是開端,實現雲原生才是更重要棋局
距離 8 月 26 日由 Pivotal 攜手極客邦科技在北京舉辦的中國首屆 Spring Summit 2017 還有半個多月時間,伴隨越來越多嘉賓、演講話題的披露,Spring Summit 2017 逐漸揭開神秘面紗。火爆的 Spring、Cloud Foundry、微服務、Cloud Native 不僅僅是浮於表面的「談資」,更因為眾多國內外技術大咖齊聚 Spring Summit 2017,讓我們有了近距離聆聽這些概念如何落地、有哪些失敗和成功案例、從實踐出發的思考的機會。
從官網日程來看,Keynote 將聚焦企業數字化轉型戰略的制定和執行,三場平行分論壇既邀 Spring 社區大牛進行熱門技術的深入解讀,也有國內客戶使用 Spring 技術的現身說法。除論壇之外,主辦方還設置了晚場活動——讓大家近距離與講師們進行深入交流;圓桌論壇——邀請企業級客戶介紹在數字化轉型中的經驗;以及 Live Demo——Pivotal 技術團隊和其行業合作夥伴一起,帶來技術與行業熱點應用的展示和互動。
作為 Pivotal 技術推廣人員,Michael Coté 一直擔任 451 Research 和 RedMonk 的行業分析師;過去在 Dell 工作期間,曾負責軟體和雲計算領域的公司戰略和併購工作;更早之前,他一直從事編程工作達十年之久。在 Spring Summit 2017 上,他將帶來《走出「生存不是強制性的」思維桎梏》的演講,從實踐角度提供在企業中實施 DevOps 的建議,也算給過熱的 DevOps 潑潑冷水。
InfoQ:業界已經開始關注「雲原生」,您同時也寫了一本名為《Crafting Your Cloud-Native Strategy》的書。您能否為我們主要解釋下「雲」與「雲原生」的區別?哪些企業需要率先轉向雲原生?
Michael Coté:「雲」是一個術語,其涉及面很廣,有時候它似乎意味著「IT 中的一切新興事物」。我認為最為貼切的定義應該是所有的自動化、虛擬化 / 容器和基礎設施技術。其中,用於運行基礎設施即服務(IaaS)「雲」,如 AWS,Azure 和 Google Cloud 等供應商。將軟體即服務(SaaS)視為雲也是非常有用的。對於那些應該將所有打包軟體(從電子郵件到 ERP)從內部部署到 SaaS 模型的組織來說,這是非常重要的。
當這些服務是以公有雲的形式提供的時候,用戶企業不需要運行、管理和維護所有硬體。你可以通過自助的形式自動地獲取資源,而無需請求資源並等待其他人響應。也就是說,你獲取新伺服器的需求並不需要先填寫申請 ticket,也不需要等待別人給你分配了;你無須其他人許可便可以在你的郵箱或者 CRM 系統中添加新用戶。這意味著人們日常工作的效率更高,因為他們節省掉了等待的時間。同時,IT 運行和管理變得集中化和標準化,比如不需要花費精力和財力維護不同類型的伺服器。高效、經濟,但是人們往往不能及時轉變,採用的還是數十年前繁瑣的操作。
還有 Platform-as-a-Service (PaaS)。2009 年左右,業界開始有很多雲究竟怎樣分類的思考爭論,最終美國國家標準與技術研究院(NIST)給出了它的定義。
https://www.nist.gov/news-events/news/2011/10/final-version-nist-cloud-computing-definition-published
這裡面定義的「雲」是中間件、框架、集成和運行時工具等一系列為運行不同的用戶軟體所組成的技術棧。一些早期的 PaaS 以 SaaS 的插件形式存在,使用者可以為其 CRM 系統編寫自定義頁面,現在看來這種形式其實類似於 Java 應用程序伺服器,LAMP 堆棧和其他「運行時環境」。與雲廣義定義一樣,在 PaaS 中有很多標準化來提高效率,儘可能多的自動化和自助服務工作流程。例如,使用 Pivotal Cloud Foundry,開發團隊可以使用命令行工具將其應用程序部署到生產中:他們不需要創立 IT 票據、審批和配置伺服器和網路等等。 PaaS 為他們完成所有這些。
到目前為止,我所談論的大部分都是公共雲。 「私有」雲只是意味著公司需要負責 IT 組織,自己運行和管理一切。 這樣做,仍然可以從雲技術和硬體標準化方面獲得巨大的效率,但您必須承擔運行所有這些責任的負擔。 許多組織認為這種負擔是值得的,所以運行私有雲。不過大多數人都希望,最終停止管理自有的數據中心,將大部分的 IT 遷入公共雲。
那麼如何「雲原生」呢?我認為雲原生本身就是 DevOps 和敏捷、IaaS 和 PaaS、商業模型和定製軟體三個維度的組合。其中商業模型需要專註於營收增長(最好是盈利的),並且可以與軟體設計效果、運行效率等正相關,如果這裡面沒有涉及到可定製化的軟體,那麼就不是雲原生。
簡單而言,DevOps 指的是快速發布軟體的工具和方法(即使不是日常,也可以做到周常),需要確保軟體在生產環境可擴展、易於管理。我個人更傾向於將敏捷開發歸類為如今的 DevOps 中,比如持續集成和交付、微服務架構和其他許多又酷又新的工具。IaaS、PaaS 都是可以用來運行雲原生應用的平台,並且使用者可以在生產環境中進行操作。
IaaS、PaaS 亦或是現在正在興起的 Serverless 都是技術手段;而雲原生是理念文化範疇,採用了包含 DevOps 和敏捷開發的作風。
不過,雲原生還有一種更為流行的定義,將雲原生等同於容器和容器編排技術。我確實認為容器技術重要甚至至關重要,但是我認為這樣的定義過於狹隘,不能代表雲原生。
最後,企業必須真正知道如何通過使用快速反饋循環來發明新業務模型和功能,從而每周發布軟體的功能。 也就是說,企業需要「創新」,嘗試新事物賺更多的錢,在保留現有客戶的基礎上,獲得更多的客戶。 如果業務需求是固定且永遠不會改變,所有工作都可以以「雲原生」的方式運行;最好使用和創造成本很低,你甚至幾乎可以不用上班;但是實際上這樣的 IT 架構可以讓你掙更多的錢。更多關於雲原生的詳細剖析在我們的官網上:
https://pivotal.io/cloud-native
InfoQ:「公有雲的所有努力和改善的最終目的都是:降低花銷和簡化工作」,您怎樣解讀這樣的觀點?在這兩個目標上,雲原生的作用又是怎樣的?
Michael Coté:沒錯。不過,實現了這兩個巨大的目標之後,下一個目標是可以更快速的嘗試新的事務,或者簡化將做事情的流程。你聽到人們在討論「速度」,這是有價值的能力:能否將新的 app 趁熱地快速推向,對公司在行業市場的布局至關重要。並且,你有更多的時間去經歷和去學習,你可以去嘗試新的東西,你可以失敗、失敗、再失敗直到正確位置。只有當失敗的成本更低,你才會嘗試更多的創新。這就是廠商和機構們所錨定的:以全新的、更好的方式去做事情。其實我是想說:有誰完全滿意大公司或政府的軟體開發運作方式呢?我們都非常願意去改善,將大量高質量的軟體置入數字化模擬進程是非常重要的第一步。
InfoQ:能否分享一個雲原生的實際落地案例?
Michael Coté:Home Depot 是一個很大的五金器具商店,在全球有 2200+ 家分店相關物品應有盡有。有一種可刷漆的桌子,客戶可以根據自己的房間、天花板等進行配色。這樣的個性化賣點很好,但是卻帶來了麻煩——有些時候客戶想要的顏色並不能完美匹配,Home Depot 想確保提供的顏色恰好是客戶的訂單顏色。這個流程中涉及到店員、油漆混合師,當客戶說想要哪種顏色的時候,流程啟動;在流程中有一個軟體程序,它用於存放店員們告知的客戶們想要的顏色配方,那麼油漆混合師就可以直接工作了。
看起來似乎沒有問題,那為什麼還會出錯呢?有一部分原因是軟體並沒有設計得足夠好,導致店員們不喜歡使用這個軟體。於是,Home Depot 採用了雲原生的方式修復軟體;因為他們使用了 Pivotal Cloud Foundry,可以快速且高效地每周部署,同時可靠地運行。這使得他們落地 DevOps 和敏捷開發,通過小批量的改進方法提升軟體。如果新特性成功地提升了顏色定製流程,就進行下一個改進;如果沒有提升,甚至得到了更寶貴的失敗經驗教訓,則會轉而進行新思考、新嘗試。每周都做這樣的變更,你回開始明白最終得到的是真正有幫助作用的軟體,而不是最初設想和計劃的那樣。這兩個版本往往相去甚遠。
這裡面我提到了所有雲原生的元素:IaaS、PaaS 可以自動化、提速,將整個預備和運行周期降低到一周;採用以用戶為中心方式去迭代軟體;可以為公司業務帶來持續增長的商業驅動力。
更多的案例可以參見如下鏈接:
(https://www.youtube.com/watch?v=9FKJ_cyGT1o), Comcast, Liberty Mutual
(https://www.youtube.com/watch?v=STx6L0r_juk),HCSC
(https://www.youtube.com/watch?v=rGNlSCquZIc), JPMC,
the US Airforce (https://cote.io/2017/07/20/us-air-force-pivotal-digitizing-flight-ops-together-2-7m-contract/),
還有一些不願透漏姓名的公司,這麼多實例的目的都是一樣的,儘可能地自動化一起,落地一個可在生產環境中彈性伸縮平台,運行各種可以承載商業業務需求的定製化軟體。
InfoQ:如果一個公司希望成為雲原生,有哪些必要的步驟?(過程、組織、技術等)
Michael Coté:或許,我有偏見,但是首先要弄清楚:這家公司的商業策略是什麼;為了達到預期的商業目標,它想做什麼、怎麼做。通常, 在真正完成的成果面前,大多數策略都是空話廢話:比如「提高用戶服務」、「擴大國際化市場份額」,知道如何實現這樣的目標才是重要的。你需要專業的 IT 公司來幫助你,雲原生的目的是促進商業,不僅僅是降低現有的 IT 開銷(比如,2000 年左右將 IT 資源虛擬化是非常炫酷的,但是這個技術哽住的是節約成本而不是增加收入)。
一旦有來自商業的驅動力,你就需要攻克一系列的小項目,選取二三個開始工作,注意不是重要主幹。以上文提及的 Home Depot 的染色桌子為例,觸及不是核心項目,既不是存貨管理系統也不是他們的.com 網站。你集合一些真正天才的 DevOps 和敏捷開發團隊,小批量、以周為單位地工作,然後所有都運行在 Pivotal Cloud Foundry(公有雲或私有雲中)。我們會在 Pivotal Labs 提供諮詢服務,以幫助使用和運維。如果沒有這樣的強烈願望,也可以使用 Spring 編程,因為 Spring 很多項目是與 Pivotal Cloud Foundry 高度集成的。
接下來,當學習到了新的雲原生過程實踐知識,你會不斷擴展。一些公司會建立單獨的組織(比如『Labs』實驗室一類),盡量避免對架構進行大規模重組;但是其他的公司則直接對現有架構進行調整。
InfoQ:您曾經說過,如果想變得雲原生,公司需要一個平台,而自建平台往往是個錯誤的想法。能否對此進行簡要闡明?
Michael Coté:這是個好問題,我試著將問題變簡潔。建立自己的平台,意味著要篩選、編寫代碼、不斷完善大量的組件。下圖是摘抄自 Pivotal 的白皮書
https://content.pivotal.io/white-papers/the-upside-down-economics-of-building-your-own-platform
最開始,沒有人有概念自建平台需要多少個功能、子系統和平台中要運行的組件。建立自己的平台,意味著首先你要實現上圖中的所有內容,隨後你需要維護和改善它。根據我們的經驗和預測,自建平台需要花費 2 年時間,並且這只是 1.0 階段,僱傭工程師等每年需要花費 1.4 億美元。很有可能的是,你需要不斷根據新的需求加入新的功能。這就像從零開始建立自己的操作系統和文件系統:為什麼要自討苦吃呢?
InfoQ:開源項目 Cloud Foundry 是 Pivotal 開發的,能否向我們簡單介紹下?Pivotal 是從什麼時候開始向其中加入了雲原生元素?Cloud Foundry 又能怎樣幫助到雲原生?
Michael Coté:Pivotal Cloud Foundry 歸屬於 PaaS 範疇,即構建在 IaaS(VMare、OpenStack、AWS、Google Cloud 或 Azure 等)紙上。首先,它可以為應用自動分配預計的伺服器、網路和存儲資源,如此用戶們只需在雲上編寫自己的軟體。同時,它還表明了在雲中運行應用,然後為應用部署、配置和集成所需相應的中間件和服務(資料庫、身份訪問驗證、監控工具等)。它同時還有所有種類的生產工具,伺服器的健康狀況檢測和修復,微服務治理,A/B 測試,灰度發布,更新所有軟體(包括 Pivotal Cloud Foundry 自身)。下面是一個組件組成全局圖。
https://pivotal.io/platform#architecture
https://www.youtube.com/watch?v=jRsBaaFYoUk是一個解釋 Pivotal Cloud Foundry 的視頻鏈接,雖然有一點點舊了,但是還是很有參考價值的。
InfoQ:你上面說到 Cloud-Natvie 由 DevOps 和敏捷開發,IaaS 和 PaaS,商業模型等組成。這也就意味著雲原生是一個很大的系統工程,那麼採用雲原生的平台就是最簡單最快捷的方案嗎?這樣的平台真的能解決所有問題嗎?
Michael Coté:是的,就像構建一個 pipeline 一樣,如果你沒有一個足夠好的雲平台,我認為事情沒法順利運行。
我們曾經配合的一個大公司採用雲平台之後,研發周期從 123 天變成 23 天。這樣的提升速度對使用了 Pivotal Cloud Foundry 的公司很常見,例子不勝枚舉。比如美國康卡斯特電信公司(Comcast),曾經需要 4-6 周完成一個測試環境,可是現在只需要 10-15 分鐘就可以搭建自助服務終端。
更多信息可以參考:https://cote.io/2017/04/28/cloud-native-at-comcast-working-with-pivotal-highlights/。
一個 IT 部門的經歷也是類似的,在沒有採用 Pivotal Cloud Foundry 之前,開發團隊要花費 3 到 6 個月獲得開發環境才能開始工作,但是使用了雲平台之後他們就可以立刻開始編程,並且將軟體在四個月內打包。
更多信息可以參考:http://itblog.emc.com/2016/01/04/application-delivery-platform-as-a-service/
使得 Pivotal 變得獨特的是,充分利用技術優勢幫助企業轉型。我們幫助他們使用 Pivotal 通過雲原生的方式開發軟體,並且確保他們能夠通過小批量時間任務進行敏捷 /DevOps 化。 來自 AllState 的 Doug Safford 說,在沒有採用 Pivotal 的雲原生平台之前,開發者們只發揮了 20% 的工作能力,如今可以高效工作,發揮 80%-90% 的產能。
http://www.altoros.com/blog/top-100-quotes-from-the-cloud-foundry-summit-2016/
InfoQ:有一種觀點是「所有的 IT 科技的發展趨勢都體現在開源界中」,Pivotal 是重度開源公司(擁有 Redis、RabbitMQ、Greenplum、Spring 等),同時 Pivotal 也是 CNCF 基金會的會員。您怎樣解讀開源和商業的關係?
Michael Coté:廠商和雲服務供應商們基於開源項目搭建自己的技術堆棧,這是非常重要的創新模式。有時他們售賣的是 open source(開源),但是更經常的是他們售賣的是 open core(開放的內核);開源代碼只是其中的組成部分,而「closed source」(閉源)才是真正的商業價值所在。這是 Pivotal 和基本上所有的 IT 廠商們採用的商業模式。
開源對軟體開發有著巨大的積極作用,比如 Linux 系統。開源幾乎為雲上的所有都奠定了基礎。雖然 Amazon 和 Google 自己寫了好多沒有開源的軟體;但是我不確定如果沒有開源的 Linux 或者其他庫包,他們是否還能如今天這般成功。今天很多知名的軟體都是開源項目,大量的各種各樣創新不斷湧現。當然,不是所有的開源項目都是好的,但是你真的可以找到用來構建使用的相當不錯的項目。
現在登錄 Spring Summit 2017 官網(www.pivotal-china.com),可以第一時間了解大會日程和嘉賓介紹。
點擊展開全文


※大浪淘沙下的金融企業練就的十八般武藝
※股權、期權有哪些坑?從技術創業的角度說開去
※阿里巴巴國際環境下的SRE體系實踐
※一個程序員的審美情感
※如何成為機器學習工程師?
TAG:InfoQ |
※原生缸造景:為什麼他們的原生會勾起我們的食慾?
※原生家庭,從來都不應該是你人生路上的絆腳石
※關於雲原生,這是最詳細的技術知識
※原生家庭的問題,就是你身上的問題
※關於雲原生,需要了解什麼?
※原生缸,原生魚景還原自然本來樣子。
※《都挺好》談原生家庭:你們不好好養我,為什麼要把我生下來?
※超越原生家庭,孩子是你最好的機會
※原生缸造景:又想要原生的野性、也想要草缸的乾淨,不如這樣?
※《都挺好》:原生家庭的戰爭,要麼生,要麼生不如死
※做翡翠,一定要懂翡翠的原生,次生,否則就無條件做賭石生意
※為此我可以追求一生,雷龍原生造景缸!
※失敗的人生,罪魁禍首是原生家庭?那是你還沒看清你的心
※現實版「蘇明玉」:你對原生家庭的解讀,讓你成為了現在的自己!
※伊能靜含淚演講:原生家庭欠你的,你要自己贏回來
※《都挺好》揭露原生家庭最大謊言:女兒總要嫁出去!涼薄的現實
※你是生活在什麼樣的「原生家庭」?
※要想打破原生家庭魔咒,必須要做哪些事?
※什麼是原生缸
※為什麼我們要窮盡一生和原生家庭帶來的負面影響作鬥爭?