“Cloud Native is eating the world”,有人認為這是聳人聽聞,有人認為這是大勢所趨。作為一個近兩年最熱門的技術趨勢,雲原生在吸引了業界廣泛關注的同時,也存在一些問題亟需解決,一些概念亟需厘清。
雲原生到底是什麼?它能做什麼?它能給企業帶來什麼?它對開發人員意味着什麼?又帶來了哪些新的要求和挑戰?它的實踐進行到哪一步了?3月14日,眺望曙光-騰訊雲TVP技術閉門會探讨了那些有關雲原生你不得不知的秘密。
雲原生:讓雲的技術适配企業架構

工業界發展的趨勢帶來雲原生的需求
“企業架構從2000年以前數據量MB級别的單機時代下的單體應用架構,曆經數據量GB級别的互聯網時代的SOA架構,再到數據量TB級别的移動互聯網時代的分布式雲計算架構,最後到現在數據量高達PB級别的産業互聯網時代下的分布式應用平台架構。每個不同階段的發展,都對應着不同的企業架構、服務化的發展,本質上都是朝着平台化的方向在發展。”
酷殼博主、MegaEase創始人陳皓老師高屋建瓴地解釋了雲原生産生、發展的曆史背景,他指出,企業平台化(雲原生)架構具備以下幾個優勢:
·小前台大平台:打造企業中台服務,快速靈活支撐前端業務;
·能力開放體系:打破豎井、應用和平台解耦,支撐企業生态圈建設;
·統一管理建設運營:提升運維效率、資源利用率,降低成本。
陳皓老師舉了兩個實際發生的例子(閉門會敏感内容不能公開),說明了企業為了高強度的競争走向雲化架構的必要性。
雲原生的本質是什麼?
“雲原生是一個完整的生态,層是基礎環境,底層之上是存儲、計算、網絡,再上層是服務發現、遠程調用、RPC及一些類分布式數據庫的技術,在此以外還需要強大的運維能力。”
陳皓老師根據CNCF官網給出的雲原生概念做了拆解,他提到網上一張“Cloud Native is eating the world”的漫畫特别有意思:
“Software是閉源的,而Open Source在互聯網時代更能适應市場的發展,Cloud則是把企業需要的運維、編譯、上線、高可用和開源軟件的能力集成在一起,提供一攬子方案,本質上還是閉源的,走回了老路。而Cloud Native的趨勢将把分布式的技術門檻下壓,讓Cloud技術主動适配适配企業的架構,為企業提供自主可控的能力,這是一個颠覆性的概念。”
陳皓老師感慨到,在他20多年的軟件開發生涯中,聽說過太多名詞和概念,他認為不管新技術是什麼,本質上基本都是期望給企業以高可用的系統、自動化的運維。他指出,雲原生分布式系統的本質就是在玩調度,從整體監控,資源和服務的調度,狀态和數據的調度,以及流量的調度,甚至包括性能、穩定性、運維等層面本質上也還是在做調度。
陳皓老師指出,雲原生的落地形式有以下幾種特質:
·一定是建平台的;
·一定要自動化;
·一定要分層開放;
·一定是以服務化的形式出現;
·一定要高可用、高性能;
·一定是追求DevOps理念的。
陳皓老師最後指出,建立雲原生架構還要求工程能力的演進,這背後還伴随着組織架構、思維方式的轉變,并不隻是單純使用個雲原生的技術便能稱得上企業級的雲原生架構。
騰訊雲容器技術探索和思考

“财富100強企業裡,50%的企業已經在使用Kubernetes;騰訊雲Top 100客戶裡,42%的企業已經在使用Kubernetes,這個數據還在快速增長中。一旦企業使用了Kubernetes,其所管理的資源占企業總計算資源的比例也同樣在快速地增長。這些數據都說明了一個事實,Kubernetes已經進入了大規模的商用階段,它的好處正在被大衆所認可。”
Kubernetes取得如此大的成功的原因是什麼?騰訊雲容器産品中心總經理鄒輝指出,Kubernetes部署方便,具有可靠性高、可維護性強的優點,可以讓開發和運維更加“簡單”。他表示,企業在Kubernetes容器化過程中會碰到一些問題,關鍵在于如何解決交付流程和工具、運維規劃及工具以及人和理念的問題。
“當企業做容器化或者雲原生技術改造的過程中,可以把一些公共的基礎部分能力交給雲來做,限度地去複用雲上已有的一些基礎能力。同時在Kubernetes容器化改造的過程中,不用完全拘泥于Kubernetes已有的能力,Kubernetes本身支持非常好的擴展能力,團隊可以根據公司内部業務的一些業務實際特點針對Kubernetes做出一些擴展,從而讓傳統業務架構能夠更方便的遷移到Kubernetes上,減少這裡的改造和遷移阻力。其實在騰訊内部業務Kubernetes容器化改造過程中,我們也做了大量的擴展能力,比如說固定IP、Pod原地重啟、灰度發布……等的能力,都是為了讓業務更加方便地從傳統架構往雲原生架構遷移和改造。”
Kubernetes正在Serverless化
“目前Kubernetes的主流用法,仍然是每個租戶/集群采購一批物理機/虛拟機加入到Kubernetes中,由公司的運維團隊按照不同的方式将資源分給各個業務線使用;而serverless重點在于資源,Kubernetes Serverless讓用戶能夠直接使用Pod/容器,不用再去單獨購買Node節點加入到集群中,計費方式也是按照Pod使用時長來定。”
鄒輝老師認為未來将有越來越多的企業往這個serveless方向走。
“騰訊雲 Kubernetes Serverless(EKS)服務具有擁抱原生、無服務器、安全可靠、的速度、優化成本、GPU支持等優勢,目前已開始廣泛應用在在線業務場景 +大數據、AI、音視頻轉碼等場景中。”
Kubernetes “逐漸基礎設施化,成為水和電”
“根據騰訊雲的數據,顯示出雲上越來越多的企業,正在将他們的大數據/AI 相關系統跑在Kubernetes之上。Kubernetes正逐漸成為一種基礎設施,成為水和電,以後會成為一個業務的操作系統。”
鄒輝表示,出現這種情況的原因主要有兩方面考慮:
·一是資源成本。雲上很多客戶白天在線業務高峰期,晚上負載率低,而其大數據/AI的業務則正好相反。在将其容器化以前,二者分屬兩套不同的調度系統,存在很大的資源浪費。容器化以後,可以讓Kubernetes統一調度資源,減少成本。
·二是運維成本。對于已經将在線業務Kubernetes化的客戶而言,而大數據/AI框架 本質上也是一個個的軟件服務,容器化改造後,同樣能夠在自動伸縮、故障檢測、故障替換……等一些運維動作上享受Kubernetes帶來的好處。
“騰訊雲容器團隊和大數據團隊基于大數據套件ON TKE/EKS的實踐,目前已經集成了Flink、Spark、KV 存儲、分布式Kafka等能力,經過适配和優化過的大數據相關套件将在5月份于騰訊雲上,以應用市場或者PAAS服務的方式對外輸出。”
Kubernetes “逐漸延伸到邊緣計算場景”
“據IDC數據顯示,到2020年将有超過500億的終端和設備聯網,其中超過50%的數據需要在網絡邊緣側處理,使用邊緣計算之後能給企業帶來高達約1/3的成本下降。這些邊緣設備情況複雜,可能分布在多個site,如何将這些設備統一管理是企業面臨的難題。包括分布到這些設備商的應用程序如何統一部署升級,故障處理也是問題。本質上這其實是一個分布式的資源管理和應用管理問題,而這些恰好是Kubernetes擅長的地方。”
鄒輝指出,Kubernetes應用到邊緣計算場景還需要做一些增強,主要有兩點:
1.邊緣設備網絡複雜,少有内網專線連接,有些設備甚至隻能單通訪問外網,如果構建master和node節點之間的網絡通道 是Kubernetes需要解決的問題。
2.網絡可能不太穩定,在弱網絡情況下,設備上的應用需要具備一定的自管控和恢複能力。
鄒輝以騰訊雲邊緣容器(TKE Edge)技術的實現方式,對以上問題提供了解決思路:
·雲端部署一套K8S Master,即可管理多個邊緣site,且兼容K8S API标準用法
·邊緣設備可以位于雲機房,也可是用戶自有設備,隻要能夠運行容器所需操作系統即可。
·Tunnel隧道:構建節點與master的安全加密通道,同時解決單向通情況下,master到節點的流量(例如登陸容器)
·Hub-edeg:代理節點上組件訪問Master請求,并緩存Master部分信息,用戶節點網絡中斷情況下,節點上容器自治問題)
·分布式健康檢測:關閉master探活機制,避免弱網絡下,節點被大面積誤剔除;同一site内 節點互相進行健康檢查打分,并上報給master決定是否剔除。
·ServiceGroup opreator:自定義工作負載,便捷管理多個邊緣Site的相同的服務組。
·根據Site節點拓撲進行負載均衡,節點上的kube-proxy隻會保存本site機房的endpoint。
Kubernetes “逐漸service mesh網格化”
“騰訊雲觀察到,已經有越來越多的客戶在生産環境中使用Service Mesh(Istio)。Istio 通過接管流量,在不侵入業務代碼的情況下,很好地解決了微服務架構複雜性和運維體系要求的問題。”
在鄒輝看來,Service Mesh是一個非常好的設計理念, 真正讓一個大的系統處在“一切盡在掌控”的狀态。但Istio并不是萬能的,企業應用過程中同樣會遇到諸如控制面闆系統維護成本高、性能開銷大、協議擴展下發、監控體系構建以及多平台和異構系統支持的問題。為此,他同樣以騰訊雲Service Mesh (TKE Mesh)為例,介紹了解題思路:
·性能優化:針對Istio遙測上報模塊優化、内核優化等;
·開箱即用:提供Istio控制面獨立部署和全托管兩種模式;
·提供多集群方案;
·提供私有協議注冊框架。
“容器混合雲平台逐漸成為一種趨勢”,鄒輝最後總結道。
雲原生究竟該如何落地?
雲原生是概念還是追風?
兩輪分享過後,參會者對雲原生有了一些了解,卻多了更多困惑。對于雲原生究竟是概念還是盲目的追風,陳皓老師表達了自己的觀點:
“我覺得這些都是形式,叫什麼名字不重要,重要的是能解決什麼樣的問題。我覺得問題的本質,還是看目前的業務形态發展還有技術架構。技術能不能跟得上是其中一個因素,今天管你是Cloud還是Cloud Native,企業的核心訴求都是降本增效加穩定。這裡面會有一些權衡和其他因素的影響,本質上來說所謂去IOE就是因為IOE無法自主可控,企業需要自己接管。雲原生也是類似,有很多的分布式組件其實會有業務的侵入,也就一定會有定制化,越往上做越會有定制化的東西。我覺得自主可控肯定是每個企業希望擁有的,不希望把很多東西交到别人的手裡,企業級的雲原生架構會是企業追求的目标。技術和企業級是兩碼事,企業級是奔着自主可控的,不管叫什麼,叫Cloud Native或者Cloud也好,能解決這個問題就是好的技術。”
雲原生會被雲廠家綁架嗎?
同程藝龍機票事業群CTO王曉波給騰訊雲容器産品中心總經理鄒輝挖了個坑:現在很多雲原生的落地都是在基于雲在做,企業的雲原生實現路徑會被雲廠家所綁架嗎?這是不是又跟陳皓老師提的自主可控形成了一個悖論?鄒輝坦率地分析道:
“目前雲廠商在做雲原生服務的過程中,越來越朝開源、标準化的一些思路演進,而不是做一個封閉式的技術體系。現在大家做雲原生的技術過程中,無論是騰訊雲還是其他雲廠商,強調的重點都是原生,一定要原生化、标準化,實際上這也是在公有雲上的取舍,在私有雲這個地方會更加明顯一點,在近一兩年雲原生的技術推廣以後,我們發現私有雲行業裡各個企業采購各家不同的廠商的服務,提到最多就是要原生,能夠跟其他的服務對接,能夠跟開源的軟件、開源的服務保持标準一樣。這也反過來推進各家雲廠商都必須按照雲原生的思路去跑去運作。”
他同時補充到,對于雲廠商而言,把雲原生的技術放到雲上,更多還是把雲原生的服務更好地跟雲的基礎設施适配起來,降低用戶進一步去适配這些基礎設施的成本,同時也能夠有更多的技術力量去給到更多的用戶提供更好的服務和支撐,讓客戶遇到問題的時候能夠資源去解決問題。
CTO怎麼看雲原生?

對現在的中小企業、創業團隊而言,雲原生又該怎麼落地?要不要上雲?要不要做自建?AfterShip CTO洪小軍也給出了自己對雲原生的看法。
·第一,所有的事情前提還是看業務需要什麼。陳皓老師分享中提到從以前的各個階段到現在的産業互聯網,這裡面很多的業務場景是不一樣的。從我們業務角度來看,首先看我們的産品是什麼樣的,我們在什麼樣的階段,然後更進一步看生态技術,Cloud Native也好還是什麼技術也好,更多還是這個理念,包括看技術背後的生态是什麼樣的。
·第二,我們發現一個現象,企業想要靈活可控,Cloud Native本質不一定就是公有雲,鄒輝老師也提到,雲應該是廣義的,公有雲、私有雲、混合雲或者說多個雲之間的互相連通,要做到這樣的靈活性,一定要有一定的标準,要有一定的相關機制來支持。CTO還是要更全方位地去整合和應用整個行業的生态技術,比如說像整個CNCF的體系,這裡面有很多的東西我們可以去應用。
·第三,我這幾年的觀察來看,公有雲服務體系也在跟整體生态在更好地銜接,比如随着K8s的不斷發展和更多被應用到業務裡,到後面大家也都看到了它已經被基本上所有的雲廠商兼容,我相信未來雲原生技術也會得到更多廠商更好的支持。我相信接下來的行業融合,會進一步加快雲原生的落地,未來我們也具備較強的可控力,同時我們也可以更加聚焦好我們的業務。
雲原生對開發者意味着什麼?

Base北美的開源愛好者,Tetrate.io Founding Engineer 吳晟老師針對雲原生層面的開源也提出了自己的見解。
雲原生在絕大部分技術上用開源組件是必然選擇。雲原生在做的事情就是那些技術人員把自己從原始的框架狀态下摘出來,變成自己構建一套生态體系的狀态。所以本質上來說,很多的技術是相通的,比如說我們所有的Service Mesh上面所做的能力,以前在原生的内嵌框架上都會做到,Kubernetes做的這些事情原來在做集成的事情也會做到,大家為了能夠讓這套體系更加獨立能夠更加由,更專業的人做專業的事,所以選擇了開源。這是Service Mesh等技術給開發人員帶來的方便。
但同樣,這對所有使用雲原生技術的人也會産生反效應,對他們的要求越來越高,因為高度的集成化,技術的難度直線上升,以前一個熔斷機制可能很簡單,現在集成了太多底層的雲原生技術,對于普通的開發人員理解難度可能在大幅度地提升。尤其是傳統行業,因為這方面的技術人才缺乏甚至對于技術服務商的缺乏,對于這個事情的推進可能會有比較大的阻礙。
雲原生不是一種技術,而是理念

圓桌讨論環節抛出諸多靈魂提問的同程藝龍機票事業群CTO王曉波,在最後也表達了自己對雲原生的理解。在他看來,雲原生不是一種單一的技術,其背後是一個生态和理念在支撐,落地問題的關鍵并不在于技術,雲原生所集成的技術能力相對而言已經較為成熟,真正關鍵的問題仍舊在于開發者自身和技術團隊,是否在組織架構層面适配了雲原生的理念,是否改變了自身對開發、運維等界限的刻闆認知,是否真正了解雲原生能否幫到自己的業務。
Cloud Native is eating the world,這場閉門會結束以後,想必你對這句話會有更深的認識。
---------------------------------------------------------------------
TVP,即騰訊雲價值專家(Tencent Cloud Valuable Professional),是騰訊雲授予雲計算領域技術專家的一個獎項。TVP 計劃緻力打造與行業技術專家的交流平台,構建雲計算技術生态,實現“用科技影響世界”的美好願景。
TVP成立之初,便秉承“用科技影響世界”的願景,讓技術普惠大家,踐行科技向善的初心和本心。如今,IT技術的價值已經廣泛地為普羅大衆所認可,開發者的社會價值前所未有地凸現,我們希望能用這一系列高端、前沿的技術閉門會,在這個疫情發生的艱難時刻,彙聚行業專家,幫助産業找到應對之法。
當神話中的洪水天災來臨時,有的人選擇造方舟求生,而我們卻選擇治水,從源頭上用頭腦、技術解決問題。這一次,也不例外。來,一起眺望光進來的地方!
免責聲明:本文僅代表作者個人觀點,與每日科技網無關。其原創性以及文中陳述文字和内容未經本站證實,對本文以及其中全部或者部分内容、文字的真實性、完整性、及時性本站不作任何保證或承諾,請讀者僅作參考,并請自行核實相關内容。
本網站有部分内容均轉載自其它媒體,轉載目的在于傳遞更多信息,并不代表本網贊同其觀點和對其真實性負責,若因作品内容、知識産權、版權和其他問題,請及時提供相關證明等材料并與我們聯系,本網站将在規定時間内給予删除等相關處理.

