0

作者 | 胡喆
對云計算市場而言,IDC日前發布的《中國云運營服務市場(2021上半年)跟蹤》報告顯示,京東云在中國云運營服務市場份額居于第四位。京東云已經連續五年穩居第一陣營,也是京東提出“技術、技術、技術”的第五年。
對京東的業務支撐而言,2021年京東11.11、618的訂單,百分之百是在云上完成的,包括京東零售、京東物流等。受益于云原生架構,京東技術團隊對業務支撐能力非常強,已經連續數次大促零技術事故。
僅僅在十年前,人們還在爭論云計算是否有未來,而十年后,云計算的未來已來。
今年11.11的技術備戰期間,京東不僅要求技術質量,還減少1/4的備戰時間、備戰人力,同時還有降低能耗實施綠色低碳備戰指標,技術團隊都很從容的完成了。
這就是技術進步的力量,至少,說明京東的云計算團隊在應對超大規模并發場景時,已經游刃有余。
曾經很多人都把京東當做一家零售公司,從某種意義上說,這也并沒有錯。不過,即使是零售公司,京東也是一家跑在互聯網上、云上的零售公司,而今天所有人都知道,京東這樣C端屬性的新型實體企業,其實是AI、云計算、大數據等技術最好的培育土壤。
規模決定了需求的高度,實踐密度決定了進步的速度,而業務的復雜性則決定了所發展出來的云計算體系的承載力。
京東具備一切孕育先進云計算技術和應用的場景和條件,但在實踐中,這一切來的并不容易。
不同的公司有不同的發展路徑,京東最早以零售起家,后來因為2003年的“非典”的倒逼,把全部業務搬到了網上。這個權宜之舉,后來成就了京東。
很長一段時間以來,京東都是典型的“研發跟著業務走”的發展路徑,先有業務,再招人做研發,以至于成立后很長一段時間里,都將研發定位于業務的支持體系。而據《決戰618—探秘京東技術取勝之道》一書,2008年京東618正式推出的第一年,京東備戰的技術人員仍少之又少。
后來,天極網的副總裁李大學被京東以20萬元的高薪聘請來當了技術總監。據說,他帶著十幾個年輕人連打了三個月的地鋪,每天只睡三四個小時,重新給京東設計了一套系統。
這套系統設計容量是日均十萬單,而當時京東日均單量是5000單,2008年11月1日,新系統上線,當天的日均單量達到了一萬單。
然而,2011年京東日單量的峰值達到了50萬單,遠超過這套系統的容量。
《彭博商業周刊》記載了這樣一件事,2011年11月1日圖書限時3小時促銷期間,很多用戶在大促開始之前就將要買的書放進了購物車,結果到了活動時間提交訂單的時候,發現訂單怎么都下不了了。因為高并發容量超過了當時系統所能承載的極限,系統分辨不出圖書庫存情況,用戶不斷刷庫存,系統就癱瘓了。
其實,這也怪不得技術人員,誰也無法預期,隨著移動互聯網的滲透率暴增,京東的業務從起家到上市,翻了一萬倍。年初設計的目標,年底無論如何也趕不上增長的需求。
老京東都知道,京東內部有兩種錯誤不能犯,第一是貪腐,第二是大促宕機。
這時候就遇到了棘手的問題,大促銷的時候容易出現宕機之類的問題,當時在電商領域非常普遍,不但是京東,別家也是。誰也沒有萬應靈藥,保障一定不會宕機。
其實,很多老牌的互聯網公司,包括BAT都有這個問題——公司發展早期,技術不成熟,請不來一流的人才,寫的代碼有很多bug,被戲稱為“垃圾山”,此后,又反反復復的擴容,這就讓系統的問題更多。然而,因為業務不能停,也沒有人能擔保遷移業務到新的平臺上的風險,“垃圾山”就會一直存在,靠修修補補運轉著。
但事實證明,當問題開始聚焦的時候,解決之路就出現曙光了。
京東有計劃的引入云計算的高級人才,始于何剛,何是亞馬遜早期云存儲項目S3的開發人員,那時候國內公司還沒有云計算的概念。后來,盛大成立創新院,云計算是一個新項目,陳天橋從西雅圖把何剛帶回了國,加上現在Ucloud的創始人季昕華和七牛云的創始人許世偉,創辦了盛大云,但盛大的局面很快急轉直下,何剛來了京東。
不過,事實上,在京東真正上云之前,就已經有許多京東的基層在應用云原生的很多重要內容了,包括Docker(容器)、Kubernetes(K8S)、微服務。
2012年,在開源服務框架基礎上,京東基于Zookeeper注冊中心上線了第一代微服務平臺。同時,在容器化方面,為提升應用部署效率,開發了諸如編譯打包、自動部署、日志收集、資源監控等多個配套工具系統。
有早期的京東員工回憶,京東那時候的云計算項目名還不叫JDOS,有人叫CAP、有人叫J1,后來大家覺得這么大的項目沒有個正式名稱也不好,于是有了正式引入Docker容器,自研容器引擎平臺JDOS1.0。
從容器入手,是11.11這類購物節倒逼使然,也是京東復雜業務發展的必然。在中國電商發展的黃金時期,京東訂單量每年暴增。從2013年開始,京東用容器來改造IT系統。
其中很具體的原因,就是京東當時的技術基礎架構太雜,而容器的好處,簡單說就是,所有的服務都被無差別地封裝在“容器”里,容器可以被無差別地管理和維護,這就大大提升了運維效率。而且,由于有處理特別復雜的架構容器化的經驗,京東后來的“云艦”的一個特點就是兼容性好,此乃后話。
同時起步的,還有微服務,從早期上線的微服務平臺,到JSF1.0以及后續升級版本,都是伴隨著11.11、618一起發展的。
微服務的本質,是一種軟件開發技術。簡單的說,以前開發的軟件,是一個整體,提供一組功能,而微服務是一組服務,在這個結構中,服務是細粒度的,協議是輕量級的。
如果一定要打個比方,那微服務就好像是一盒樂高玩具,你可以拿它們蓋起一座城堡,也可以只修一座小屋。更為重要的是,如果其中某個結構出了問題,你只需要拿出一塊新的換上,而不用拆掉整個房子。
更重要的是,它改變了軟件的開發模式,以前,一組程序員圍繞一個主體建筑組成一支施工隊,但現在很多跨職能的團隊可以聚合在一起,一起用“搭積木”的方式來構建服務,這不僅提升了開發效率,也讓開發者對微服務的開發一開始就基于對業務的需求和洞察而開始。
如果說容器化解決了基礎架構的問題,微服務解決了開發模式的問題,那海外業務的臨門一腳,則推動了云原生在京東體系的全面應用。
2014年為了擴展國際化業務,京東對底層云平臺做徹底的容器化。當重新為海外站點準備“糧草”的時候,京東發現國內現有的系統最重要的問題是“拆不開”,產品、應用都是緊耦合。
所謂的緊耦合,就是應用和跑應用的架構之間的開發的專用度高,通用度低,一旦研發環境和生產環境之間很難做到完全一致地復制,部署資源成本就會很高。也可以通俗的理解為,從A系統上拆下的模塊,很難完好的裝到B系統上并且馬上跑起來。
然而,國內的環境再難,也有大批的技術人員可以隨時修修補補,但國際業務不可能這么做,也不可能有那么多的技術人員駐留海外,這就倒逼京東云必須加強標準化的建設。
在這種背景下,京東第一代容器引擎平臺JDOS1.0就必須升級,技術人員發現,第一代容器引擎的調度方式較為單一,只能簡單根據物理機的剩余資源是否滿足要求來進行篩選調度,在提升應用的性能和平臺的使用率方面無法做更進一步提升。
于是,京東引入Kubernetes,將JDOS1.0升級到JDOS2.0,逐步完善了容器的監控、網絡、存儲,鏡像中心等容器生態建設。
這給京東云帶來的變化是,一方面支持了業務——如京東云總裁高禮強形容當時的成果是:“晚上修改的東西明天就能發布;今天在國內新上線的東西,明天印尼在另外的場景下也能重新把功能組合起來”。
而另一個變化是,解耦合也成為京東云的另一個特色,在未來攻掠公有云市場后,這成為一大競爭力。
京東是國內電商行業業務規模保持快速增長的佼佼者,這是京東云進化的一個始終的動力。
如果說第一代容器云引擎的開發,解決了京東系統跑在過去的“垃圾山”上的問題,2015年后的京東,業務多元化成為新的需求牽引點,京東引入Kubernetes,升級JDOS2.0,研發云原生的阿基米德調度系統,基本都是在這個背景下展開的。
而由于這些技術的應用,提升了整個京東數據中心的資源調度的效率。在保證業務的正常運行下,集群的平均資源利用率提升3倍。僅在11.11備戰期間,節省了數億元的服務器采購成本。
但是,以2015年為一個分水嶺,京東的業務面臨更大的挑戰。
這一年,被稱為移動互聯網的下半場,從網民人數來看,截至2015年6月,互聯網普及率為48.8%,我國網民總數已達6.68億人。
值得注意的是,這一年,中國手機網民規模達5.94億,網民中使用手機上網人群占比升至88.9%。
而在筆者撰文的當下,中國手機網民將將到10億,由于智能手機的普及,人們使用互聯網的方式從幾個人共用一臺PC,變成了人人一部手機,而低線城市、農村的新增網民超過90%的第一臺上網設備就是智能手機,這為電商的滲透率提升搭好了基礎建設,電商繼續呈井噴態勢,龐大的用戶規模和集中的需求響應,仍然對京東的基礎設施提出巨大挑戰。
京東云的內部也感覺到,移動互聯網全面開啟,使得面向多個場景的服務指數級增長,一方面,同一個應用在不同場景中的重復開發,開發成本高而效率低;另一方面,應用的持續增加,給運維工作帶來了挑戰,服務治理勢在必行,驅動敏捷開發與運維。
此刻,早在2014年就開始內部自主研發的的新一代服務平臺JSF1.0開發作用,早期由于代碼切換的問題,京東云不具備服務治理能力。而JSF的突出特性,就是具備服務治理功能,包括常見的分組、上下線、黑白名單、路由等,也做到了具備動態分組、同機房優先、配置下發、調用限流、授權調用等等功能。
事實證明,JSF經受住了多次大促、大流量的考驗,日常調用在千億規模,而大促期間會調用會翻2-5倍,但都能應付裕如。而在至關重要的容器化方面,能力也大幅度提升。
最好的檢驗還是大促,可能,全世界也不會有中國的電商節這樣檢驗云服務能力的大關口了,這可能也是京東自上而下都重視大促的原因,大促不僅是一個收入節點,也間接展示了企業的技術能力,能夠平穩的扛過大促,沒有消費者會點贊,人們認為是自然;而一旦大促宕機,消費者就會對平臺的技術能力產生質疑,而這是任何平臺也不愿意遇到的情況。
事實證明,2015年618大促,京東運行了近萬個Docker容器以及幾百個KVM虛擬機,經受住了大流量的考驗。京東主要的一些核心應用比如商品詳情頁、圖片展現、秒殺、配送員訂單詳情等,以及全球購和O2O新業務都部署在容器云中,有超過1000個應用接入,涵蓋京東各個業務線。而作為當年618大促的擴容和資源池,其Docker應用數是國內甚至世界上最大規模之一。
而經受了2015年618/11.11的考驗,京東云團隊不僅積累了大量的容器運營經驗,對Linux內核、網絡、存儲等深度定制的能力也不斷提升,實現了容器秒級分配,可能也就是從這一刻起,京東云不再是“支持系統”,而是代表京東探索云計算、大數據前沿的一支尖兵。
經過大促反復考驗后,京東內部做了一個重要決定,2016年,在基礎架構細節梳理的比較清晰、底層的基礎設施服務和中間件服務都逐漸成熟、內部的使用和運營非常順暢之后,4月1號正式對外開放公有云服務,正式加入中國云計算賽道。

京東云近年來持續為政府、金融、交通、制造業、醫療等多個行業打造上云以及云持續運營解決方案。來自京東云的數據也顯示,京東云目前已在全國70個城市開展產業數智化實踐,助力政務創新和產業經濟發展。
京東云有哪些獨特的技術特性呢?要了解這個問題,還是要研究京東云的成長。
首先是京東云的彈性云特性。
京東彈性云是京東標志性的戰略研發項目,而它的“地基”,就是基于Docker(容器)簡化了應用的部署和擴容,提高了系統的伸縮能力;京東目前擁有容器數量超過200萬,已經成為全球最大規模Docker集群之一,有力的保障了整個運維系統的平穩運行。
據統計,中國有將近100個“電商節”,京東系則有數十個,可以說,電商節已經常態化,而在一個個電商節掀起的大小高潮里,最好的鍛煉了京東云的彈性能力。
簡單說,京東彈性云通過云計算將用戶的流量均勻分散到彈性云的高性能節點,優化微服務來驅動訂單的生產。京東彈性云會根據歷史數據的計算進行資源預估和儲備,實現自動化運維和精細化管理。
比如,像618大促這樣的流量高峰期,彈性云會自動補充資源,做到彈性擴展,在流量低谷期,又可以進行資源回收,從而將資源靈活地調度起來,在提升資源利用率的同時確保了運維系統的穩定性。
其次,是擁抱云原生Kubernetes,構建阿基米德調度系統。
數智化時代開啟后,跨場景精細化運營管理對資源管理提出新的要求,需要形成數據中臺能力,全面服務多個場景運營管理,也對敏捷、高效提出了更高要求。
云原生這三個字,其實準確的讀法應該是 云-原生。
其中,云(Cloud)是和本地對應的,傳統的軟件跑在本地服務器上,如果要把它們遷移到云端,就需要進行不小的改動,這往往會造成很多問題。
而原生,我們可以理解為“土生土長”的,換句話說,就是云原生的應用,在設計之初,就是考慮到為了云環境而設計的,比如云服務的彈性、分布式優勢等等,京東云完整經歷了從物理機、虛擬機再到云原生的全過程,使得其具有某種戰略級的視野。
容器化并不能解決所有的問題,京東有大量的服務器資源,而資源使用不夠充分,其實,這在每個互聯網業務平臺都存在。
也就是說,在平臺的波峰期,需要靠新增服務器來應對高峰瞬時流量,但在低谷,這些資源就會浪費;同時,不同批次、型號的機器的資源使用率差距較大,資源碎片導致的資源浪費嚴重。
因此,隨著業務的持續發展,簡單的調度分配資源算法已經無法滿足復雜的調度需求,急需找到解題之道。
那就是一套更具有智能屬性的中央調度系統,京東的阿基米德應運而生。作為 JDOS 的核心調度組件,阿基米德是撬動整個數據中心的支點,負責整個京東數據中心的資源調度與驅逐。京東同年引入開源的Kubernetes 技術來重構相關技術棧,全面對技術進行升級。
對于資源碎片和時空不均的情況,阿基米德用批處理任務進行統一填充式調度,以達到資源碎片的充分利用和資源的時空復用的效果。不僅可以對當前的資源和任務進行調度,還可以綜合應用畫像和批處理任務的描述,對未來一段時間的任務調度進行提前規劃,使得業務能夠正常運行的同時,資源得到充分的利用,有效防止了批處理任務與長期服務的資源競爭。
作為支撐京東萬億 GMV 的技術基礎設施,阿基米德由大規模容器集群調度、數據庫與存儲技術平臺、組件化微服務平臺、商品圖片技術平臺、異地多活與智能運維、邊緣計算平臺構成。其中容器技術是所有平臺服務的基石。
2018年京東加入 CNCF 云原生計算基金會,成為白金會員。經CNCF基金會官方確認,京東目前運營著全世界最大規模的Docker集群、Kubernetes集群,以及最復雜的Vitess集群之一,全量100%實現了“All in Containers”,是目前全球容器化最徹底的互聯網企業之一,也是CNCF開源項目最大的使用者與貢獻者之一。
在2016年以前,基本是內部需求在拉著京東云跑,而2016年以后,內外部的業務增長,使得京東云面臨打造行業最復雜的混合數字基礎設施的任務。
例如,2019年,京東物流系統國際化。但是,京東云的基礎設施沒有在歐洲落地,而是通過IaaS層的適配,將技術中臺快速部署在AWS/Google,這使得當地的業務研發不用關心PaaS運行在哪朵云上,而隨著物流國際化進一步加速,京東物流經常性在全世界范圍內開倉,京東云的混合云架構則很好的適應了接下來的快速開倉過程。
同樣,在2020年,經過一年多的產品打磨,重構了公有云托管K8S集群的網絡模型,適配更多的應用場景,為集團業務上公有云托管K8S集群打下堅實基礎;外部支持百家云、三維家、科大訊飛等多個大客戶將業務運行在京東托管k8上;內部支持AI,物流等多個部門逐步將業務遷移到托管k8產品上。
在2021年,京東云發力混合云、多云,進一步開發云艦平臺,支持多平臺的k8s集群的全生命周期管理以及上層的PAAS、SAAS應用接入和整合。
但雷峰網認為,京東云不僅僅是技術上有自己的特色和先進性,更重要的是其戰略思想具有開放、兼容、利他的屬性,而如果脫離了這個屬性去理解京東云,得到的只是對技術片段的理解,只有了解云艦的核心思想,才能從更高層面理解京東云的行業價值和內在競爭力。
京東云進入賽道的時候,中國公有云市場已經發展了一段時間,而這段時間里,很多企業為了增強業務黏性,都或多或少的加強了云的三層架構的耦合,進而引導用戶使用“全家桶”式的服務。
然而,云用戶天然具有分散風險的需求,多云、混合云是必然的發展方向,這就要求京東云能在游戲規則以內,解決客戶被單云鎖定的問題,以云原生應用的開發、部署和運維為核心,提供跨云(不同云形態和云廠商)的技術平臺與運維管理工具,讓客戶無需操心底層各類IaaS的差異,可完全專注于應用業務的開發。
從技術角度來看,筆者認為,能對抗強耦合,京東云首先做到了全面兼容基礎設施,并通過增強的云原生容器內核和開放的技術中臺來作為技術保障。
前面說過,京東云發展早期,也有強耦合的問題。但京東業務的復雜性,使京東云很早就著手解決這個問題,從業務的復雜性來說,京東的業務生態復雜程度,可能是行業中數一數二的。
也正是基于京東多年大規模業務場景的歷練與沉淀,才使得其對于混合IT系統有著不懈的追求。也就是說,僅僅就內部而言,京東云也必須戰勝“復雜”,才能“簡單”的極致生存。
這是京東云發布行業首個混合云操作系統——云艦的歷史背景。
筆者認為,云艦的一個最強底蘊,就是基于京東多年復雜場景的大規模實踐,以及近7年在容器化、云原生領域的實踐和多個行業客戶的成功部署。
加上強烈的可調度、可管理屬性,可以說,云艦將混合云的管理推向了操作系統級別。當然,這里的“操作系統”是一個比喻,但很貼切的體現了云艦的特點。
很多平臺的強耦合,都是在PaaS實現的,方法則是增加用戶的遷移復雜性。而對此,云艦敢于承諾——開放PaaS平臺,支持運行在所有主流公/私有云的IaaS。
也就是說,京東云不僅自己不搞強耦合,還為用戶提供了一定的解耦能力,可以任由用戶根據自己的需求選擇來去。
這種依靠平臺的核心價值,而不是設置耦合障礙的做法,筆者認為符合云計算發展的長期利益,當然,京東云也必須為希望遷移的用戶,或者是希望建立更復雜的混合云的用戶,能夠提供全棧式的解決方案,這才是用戶不僅能自由遷徙,還特別愿意在京東云落戶的前提。
這種承諾賦予用戶的自由度,和對行業現實的沖擊力,都是史無前例的。如京東科技京東云事業群總裁高禮強所說的那樣:“京東云永遠不做產品捆綁,不讓合作伙伴做選擇題。”
當然,我們不能因為一些企業發展有自身特色的PaaS就一味指斥為“捆綁”,畢竟,PaaS層的很多耦合,也有為了提升效率的考慮。
這就要求京東云不僅在解耦上,更要在PaaS的競爭力上超過對手,而對于IaaS的競爭紅利逐漸消耗的當下,云艦通過京東自研PaaS來增強差異化競爭力,方是正道。
比較了不起的,是京東云還同時承諾,引進第三方生態PaaS來豐富應用市場。
這在行業里,不能說絕無僅有,但也相當罕見。
如果你熟悉京東的歷史,也就不會大驚小怪,比如,按照京東經典的“甘蔗理論”,在更多節的甘蔗上開放自己的優勢,和伙伴組成生態,才是爭取更多利益的關鍵。換言之,京東可能放棄了給自有產品差別待遇,但這樣才能吸引更多的“甘蔗節”,用豐富的生態和更多的選擇來吸引用戶。
必須強調的是,京東云的開放姿態,除了價值觀層面的因素外,本身也是提供一種差異化的競爭力。特別是面向客戶構建混合云場景時,可以有效兼顧原有政企客戶的自有云計算設施,最大程度降低復雜性和遷移成本,還能提供更多的SaaS選擇,那它一定可以吸引更多的用戶。
目前云計算的市場競爭已經白熱化,BATJH悉數入場,在這種背景下,京東云一方面從簡化跨云遷移,讓客戶真正做到“上得去,下得來”等方面入手,另一方面又幫助用戶更好的駕馭混合IT系統,同時幫助整個應用服務層的創新,這才是真正有利于構建公平、合理的競爭秩序的得人心的做法。
京東是一家開放的企業,京東云也將贏在開放。
雷峰網(公眾號:雷峰網)雷峰網
雷峰網原創文章,未經授權禁止轉載。詳情見轉載須知。