王治治

王治治 查看完整檔案

填寫現居城市  |  填寫畢業院校  |  填寫所在公司/組織填寫個人主網站
編輯

學者所志至大,猶恐所得淺。

個人動態

王治治 發布了文章 · 3月1日

編碼技術新突破:字節跳動 AVG 讓視頻縮小 13%

字節跳動的海外技術團隊在全球視頻編碼領域實現最新突破。

據聯合視頻專家組 JVET 官網顯示,字節跳動 AVG(先進視頻團隊)今年 2 月發起一項視頻壓縮的技術提案,該提案能夠在優化壓縮質量的同時,節約至少 13% 的存儲和帶寬。例如,一段 180 分鐘 H.266/VVC 標準的高清視頻(1080P 分辨率),大約需要 3GB 的數據體積,應用新技術后只需要 2.6GB。這是業界公開的單個智能編碼工具的最佳性能增益。

字節跳動 AVG 在美國加州建立研發團隊,成員有來自高通、微軟、英特爾等巨頭的資深研究員,也有出身海內外頂級院校的新生代。在此前 JVET 制定新一代國際視頻編解碼標準 H.266/VVC 的過程中,字節跳動 AVG 累計提交 260+ 項技術提案,其中 130+ 項被采納,被采納提案數和采納率均排在世界前列,是 H.266/VVC 核心算法的主要貢獻者之一。

視頻是由一張張圖片連接起來的動態圖像序列,視頻編解碼則是視頻應用的底層核心技術,作用是對圖像進行壓縮和數字編碼,以盡可能小的帶寬傳送高質量的視頻數據。H.266/VVC 能夠在不影響畫質的情況下,把視頻碼率降低到前一代標準 H.265/HEVC 的一半。本來只夠放標清視頻的網速,也能流暢播放高清視頻。

此次字節跳動 AVG 提出的新算法,旨在通過深度學習技術構建減少視頻壓縮失真的濾波器(DAM),主干是基于殘差單元堆疊的深度卷積網絡,輔以自適應模型選擇以最大程度適應特性復雜的自然視頻。所謂殘差單元是指通過引入跳層連接,允許網絡把注意力放在變化的殘差上,這與視頻圖像幀之間的殘差有異曲同工之妙,比如武林高手決斗,“劍光一閃”,每一幀圖像絕大部分內容是相同的,閃動的劍光形成殘差,這也是視頻編碼壓縮的重點關注對象。

實驗結果顯示,相比 H.266/VVC 最新標準,字節跳動的 DAM 解決方案能夠為視頻編碼性能帶來顯著提升,亮度信號 Y 可實現 10.28% 的性能增益,兩個色度信號 U 和 V,性能增益也分別達到 28.22% 和 27.97%,在視頻質量有所優化的同時,至少還可縮小 13% 的數據體積。

測試用例來自國際標準組織的測試視頻
圖:測試用例來自國際標準組織的測試視頻

據悉,字節跳動 AVG 已自主研發了 BVC2.0 編碼器,首次參加國際權威的 MSU 2020 視頻編碼器大賽,就在四項評價指標上包攬第一。AVG 的各項研究成果,也將通過 BVC 編碼器的升級換代投入應用,包括抖音、西瓜視頻、今日頭條等 App 的視頻類內容處理,以及云計算、云游戲等基礎架構領域,從而為用戶帶來更高清畫質、更流暢播放的視頻體驗。

AVG 除了深度參與國際視頻標準制定外,也為國產新一代視頻壓縮標準 AVS3 做出重要貢獻,包括塊劃分、運動矢量編碼及預測、色-亮度幀內預測等多項原創性技術被 AVS3 視頻標準所采納。字節跳動因此獲得 2019 年度 AVS 產業技術創新之提案獎,是迄今唯一獲獎的互聯網企業。

字節跳動 AVG 的張莉博士介紹說,視頻壓縮標準作為服務商必須遵循的規范,不僅蘊含著難以估量的商業價值,也會為用戶帶來實實在在的便利。通過標準制定與產品研發,字節跳動會持續創新并輸出技術能力,與行業一起為用戶提供更優質的視頻服務。

segmentfault 思否

查看原文

贊 1 收藏 0 評論 0

王治治 發布了文章 · 2月26日

火山引擎智能容器云 veCompass v3.0 重磅發布!

火山引擎智能容器云 veCompass v3.0

在剛剛過去的一年,云原生技術在全球范圍內取得了長足進展。正如 Gartner 研究副總裁 Sid Nag 所言:疫情印證了云的價值,這種按需使用、彈性可擴展的技術模型可以為企業實現成本效益和業務連續性,也是企業推動業務數字化轉型的重要動力。

從 2010 年 Paul Fremantle 在博客中首次提出 Cloud Native(云原生)到現在,云原生已經不再局限于容器編排、容器管理等基礎架構層面的功能,而是被成功應用到企業核心業務中,成為業務創新和業務增長的重要推動力。

在日前結束的 2021 年春節聯歡晚會上,抖音順利支撐起了高達 703 億的紅包互動總數和累計 12.21 億的春晚直播間觀看人次,這背后有火山引擎提供的云原生技術能力支持。其彈性容器底座設計和敏捷開發流程設計,保障了研發團隊在短短 27 天內迅速完成春晚活動應用的開發、迭代和上線,并利用資源智能調度系統、自動擴縮容設計、自定義監控穩定應對流量洪峰。

作為火山引擎在云原生領域的重量級產品,智能容器云 veCompass 是一種全鏈條、全自動的云端服務,覆蓋企業 IT 開發、測試、部署、生產、智能監控、運維全流程。它深度整合 Kubernetes,可為企業級客戶提供以多集群、多租戶為核心的高效虛擬化與彈性資源管理能力,以應用商店、可視化編排為核心的應用部署能力。

從實現商業化至今,veCompass 已經對外發布了數個大版本:

  • 2015 年 11 月,v1.0 發布,聚焦權限管理、應用編排、灰度部署、日志、監控等特性,旨在幫助企業在云服務上建立自己的業務應用和處理自己的業務開發流程,從而令開發者向云端開發模式轉變;
  • 2017 年 5 月,v2.0 發布,根據客戶業務場景需求,圍繞應用編排、微服務、多集群管理、用戶權限等功能進行了優化,并設計了多種負載均衡服務、多種存儲后端、多種網絡方案,增強了平臺的適用性。

經過金融、制造、零售、文旅、教育等行業大量 500 強企業的復雜真實業務考驗,時隔四年,火山引擎智能容器云 veCompass v3.0 正式發布。新版本全面吸收字節跳動基礎架構最佳實踐經驗,進一步融合了云原生技術能力,在基礎架構層面鞏固了容器集群管理、容器編排等能力,在云原生應用層面實現了微服務架構支持、服務治理能力的全面升級,可幫助企業一站式實現敏捷的交付與迭代,打造以應用為中心的云時代基礎設施。

亮點一:云原生核心組件全面升級

長期以來,veCompass 的重要定位之一是基于云原生開源生態打造企業級容器平臺,因此它與時俱進引入了大量云原生核心組件。隨著開源社區迅速發展,這些組件也不斷推陳出新,釋放了眾多新特性。在 3.0 版本中,為了方便用戶更便捷地把這些特性引入生產環境,veCompass 做了以下升級:

  • 核心組件升級:Kubernetes 版本升級到 v1.19,Harbor 版本升級到 v2.1,Calico 版本升級到 v3.17.0;
  • Runtime 升級:支持 containerd,兼容 CRI;
  • 治理能力升級:服務網格支持跨集群的服務發現和路由、SpringCloud 應用無侵入接入、不間斷升級網格。

同時,為了更好地支持用戶構建自己的微服務體系架構,veCompass 將原有微服務模塊抽離形成獨立產品,通過服務網格技術為用戶提供了更全面的微服務治理能力;服務網格服務同樣基于開源 Istio 方案,確保兼容擴展的同時,也提供了跨集群路由、無侵入接入、不間斷升級等增強特性。

亮點二:云原生平臺分層重構

在產品交付過程中,除了提供 veCompass 的私有化部署和定制化二開,火山引擎也提供從容器云咨詢、設計到實施的專業容器技術服務,幫助企業輕松突破云原生應用構建、交付和運行的限制和瓶頸,因此 veCompass 的用戶大多對云原生技術已經有深入了解,也熟悉云原生組件的概念和所提供的能力。

考慮到云原生理念日益深入人心,云原生技術的使用人群逐年擴大,為了貼合用戶的使用習慣,充分釋放原生組件能力,veCompass v3.0 在產品設計中對云原生組件和業務平臺進行了分層重構,并提供了更多原生接口和工具:

  • 分層設計:底層基于開源打造 ContainerOS,持續提升穩定性和可擴展性;上層業務平臺敏捷迭代,更快滿足用戶個性化需求;
  • 原生接口和工具:新版本向用戶開放 Kubernetes API,支持通過 kubectl 直接訪問 Kubernetes 集群和基于 Helm 的應用發布管理。

亮點三:融合字節跳動最佳實踐

從 2015 年起,字節跳動內部就已經開始采用 Kubernetes 和容器作為在線服務運行環境的統一標準,發展至今,這套云原生基礎底座支撐著包括今日頭條、抖音、西瓜視頻等產品線。

目前 veCompass 已接入字節跳動技術體系,完全融入火山引擎產品生態,成為具備企業級 Kubernetes 服務、多云多活全局調度能力的新一代云原生架構基礎。在服務客戶的過程中,veCompass v3.0 可以為用戶提供更豐富的解決方案,支撐更多元的使用場景:

  • 全新界面:引入全新火山引擎界面風格和頁面設計,為客戶提供更便捷的操作體驗和一致產品使用體驗;
  • 統一的賬號和權限體系:新版本支持客戶用統一賬號登錄訪問,方便技術人員無縫訪問多種火山引擎產品,提升效率;
  • 基礎設施資源深度融合:新版本完成了與火山引擎基礎設施的技術整合,幫助企業一站式構建完整云原生產品閉環。

其他重要更新

除了以上亮點,veCompass v3.0 還增加了許多新特性,重點包括:

  • 多版本 Kubernetes 支持:支持靈活選擇和部署多版本(v1.17 和 v1.19)的 Kubernetes 集群;
  • 資源彈性擴縮容:基于多年生產環境大流量場景應對實踐,集群的節點組資源現可根據業務負載動態更精細地擴縮容;
  • 自定義部署方案:客戶可根據業務情況和實際需求自定義按需進行部署配置,包括集群配置、節點配置、組件配置等;
  • 多類型負載均衡:支持創建公網/內網類型的負載均衡實例;
  • 更靈活的容器部署方案:支持原生 YAML 與 Web 界面配置的相互轉換;
  • 更強大健康的監控系統:內置報警,覆蓋平臺和 K8s 關鍵組件;
  • 細顆粒度的指標查詢:可以執行無限數量的高基數查詢,按照任何維度對任何指標進行切片和分塊;
  • 更便捷實用的 DevOps:提供跨平臺鏡像倉庫同步,并支持流水線環境變量設置。

小結

云原生技術及產品,可以幫助企業級客戶從原有傳統 IT 架構向現代應用架構演進。從 v1.0 到 v3.0,火山引擎智能容器云 veCompass 的主要功能在不同行業的各類企業中經過不斷打磨,已趨于穩定。

在服務客戶的過程中,火山引擎也根據客戶不斷提出新業務需求,不斷開拓云原生技術在企業 IT 環境中應用的巨大發展空間。隨著 veCompass 日漸成熟,未來,火山引擎將持續發力容器服務、鏡像倉庫等面向應用的 aPaaS 智能彈性底座能力的深度優化,并不斷提升微服務、服務治理、CI/CD、DevOps 等能力,幫助企業打造面向開發者的端到端敏捷開發解決方案,快速構建現代化應用架構。

業務咨詢請撥打客服熱線:400-850-0030

segmentfault 思否

查看原文

贊 1 收藏 0 評論 1

王治治 發布了文章 · 2月26日

比爾·蓋茨 ClubHouse 首秀,探討操作系統、疫情、比特幣與氣候變化

比爾蓋茨 x ClubHouse

近期,微軟聯合創始人比爾·蓋茨(Bill Gates)正在通過各種渠道推廣他的新書《如何避免氣候災難》(How to Avoid a Climate Disaster)。本周三,他首次來到最近火爆的語音社交平臺 Clubhouse,與 CNBC 記者安德魯·羅斯·索爾金(Andrew Ross Sorkin)在一個小時的交流中分享了對新冠疫情、比特幣與氣候變化的聯系、為何使用 Android 手機等觀點,以及他在疫情期間居家隔離時的追劇軼事。以下是蓋茨此次分享的主要內容:

一、習慣 Android,但和使用 iPhone 并不矛盾

由于 Clubhouse 目前只兼容 iOS 系統,所以很多人好奇這位微軟聯合創始人是否投入了老對手的懷抱,購買了一部iPhone手機。但蓋茨表示,其實并非如此,他平時常用的手機并非蘋果制造。

“有的 Android 廠商預裝的微軟軟件對我來說很方便?!鄙w茨說,“他們處理軟件與操作系統之間的關系時更加靈活。這也是我最終習慣 Android 的原因……我有很多朋友用 iPhone,所以這并不矛盾?!?/p>

Clubhouse 聯合創始人保羅·戴維森(Paul Davison)也曾在對話期間短暫進入房間,他告訴蓋茨和索爾金,Android 版 Clubhouse 是該公司目前的重中之重。

二、不像馬斯克那么有錢,就慎入比特幣

"馬斯克有很多錢,他是個很前沿的人,所以我并不擔心他的比特幣會隨機上漲和下跌。但我認為,沒有相同儲蓄的人可能會陷入一種妄想,如果不像伊隆馬斯克那么富有,那可能就需要小心謹慎。"蓋茨在直播間里表示,他對比特幣匯率的上漲并不樂觀。并且制造比特幣需要大量的能量,對環境不利。

索爾金問蓋茨,他對比特幣引發的“氣候爭論”有何看法。這種觀點認為,加密貨幣的挖礦過程需要消耗大量的計算能力,而且非常耗電。事實上,蓋茨之前也針對這一問題明確表態并不看好比特幣。

“比特幣在每筆交易過程中消耗的電量超過人類已知的任何一種支付方式。所以從氣候角度來講,它的影響很大?!鄙w茨說,“如果使用綠色能源,而且沒有排擠其他使用方式,那或許沒有大礙。盡管你可能因為我還沒有投資比特幣就給我貼上‘比特幣懷疑論者’的標簽,但我不認為這些事情之間有太多關聯。我投資瘧疾疫苗、麻疹疫苗,還投資生產各種產品的公司。但這種模式不是為了低買高賣。不過,如果其他人能用這種方式發家致富,我會為他們鼓掌?!?/p>

蓋茨補充說,其實還有其他方式來做數字貨幣,但重點并不在于秘密交易。他透露,比爾和梅琳達蓋茨基金會就在投資這樣的服務,幫助印度和非洲最貧困的人口脫貧。

三、新冠疫情中犯的錯誤太多了,政府需要吸取教訓

蓋茨一周前注射了第二劑新冠疫苗,與第一劑大約間隔一個月?!斑@是我唯一一次因為自己是一個 65 歲的老人而感到慶幸?!彼f。根據蓋茨所在的華盛頓州的規定,老年人享有新冠疫苗的優先接種權。

在被問及何時才能安心出行時,蓋茨回答道:“我希望樹立一個好的榜樣。你即使注射了疫苗,依然會傳染病毒。我不會因此就不戴口罩,或者放松警惕,尤其是在跟其他還沒有打疫苗的老年人相處時。應該要到春末或者夏天才能通過數字了解情況,那時才能‘放肆’一些?!?/p>

蓋茨重申應該在所有國家或地區分發疫苗,而不能只在富裕國家接種,只有這樣次才能真正放松全球旅行限制。他預計美國到今年夏天會有很大改觀,所有學校應該在秋天開學,但兒童仍然應該佩戴口罩。

“戴口罩不是什么了不起的事情,價格不貴,我們也已經漸漸習慣了?!彼f,“我會一直以身作則,一直戴到秋天,直到明確感染人數已經大幅減少為止?!?/p>

談到整個美國社會是否通過這場疫情意識到相信科學的重要性時,蓋茨表示,領導力在危機中至關重要,領導人應該愿意分享負面消息,并制定一套合適的測試系統。

“疫情中犯的錯誤太多了,多到不可思議?!鄙w茨說,“我們很慶幸病毒的致命性還不算太強。但仍然有 50 萬美國人死亡,這個數字難以置信。我認為,這至少會給一代人留下記憶,政府也會吸取教訓,采取恰當的措施,即便可能還是會有 10% 或 20% 的人永遠不會相信——大選顯然也是這種情況——但這是件嚴肅的事情。多數人身邊都有人死于疫情?!?/p>

在蓋茨的新書《如何避免一場氣候災難》(How to Avoid a Climate Disaster)中,他為全球實現凈零排放制定了一份全面的戰略路線圖,指出了需要哪些額外的創新才能獲得成功。

image.png

鑒于此,蓋茨基金會也正在強烈呼吁各國政府、私營部門和國際組織加強社會保障體系,幫助最脆弱社區的人獲得信貸、保險和儲蓄的機會。此外,因為氣候變化對水資源、土壤、森林等其他重要的自然資源都造成了越來越惡劣的影響,公共政策應及時認識到這些問題,并盡可能保護好這些自然資源。

四、與 10 年前相比,現在的內容制作之精良令人震驚

與普通人一樣,蓋茨也在疫情中花了很多業余時間觀看 Netflix 等平臺上的電視節目。他表示,與 10 年前相比,現在的內容制作之精良令人震驚,出現了很多讓人愛不釋手的內容。

“復雜的情節,精良的制作,就連紀錄片的效果都很驚人?!鄙w茨說。他還補充道,他本周有一天晚上原本準備看完一本書,結果卻迷上了 Netflix 上的一部法語懸疑驚悚劇《亞森·羅賓》(Lupin)。

“當我回過神來,發現已經連續看了 4 個小時。我那天晚上有點不加節制,連我自己都覺得不好意思。我很少這樣,但內容確實讓你難以自拔。你就那么坐在那里不停地追劇?!?/p>

蓋茨還使用 The Great Courses 參加大學課程,因為他堅持“活到老,學到老”——當然,這都是在不追劇的時候。

部分參考資料:

1、新浪科技:《比爾·蓋茨首次在Clubhouse“開房”:平時常用手機并非蘋果制造》
2、蓋茨基金會:《蓋茨基金會CEO:新冠未平 世界又將迎戰更大危機》
3、TechWeb:《比爾·蓋茨:未投資比特幣 更愿投資制造業公司》

image.png

查看原文

贊 2 收藏 0 評論 0

王治治 發布了文章 · 2月18日

有錢任性!90 歲老爺爺因網速太慢,刊登 10000 美元報紙廣告投訴!

AT&T

你家的網速怎么樣?因為自己家的光纖速度太慢,一位 90 歲的老爺爺花了 10000 美元在報紙上刊登廣告,最終效果很明顯,不僅接到了 AT&T 首席執行官約翰·斯坦基(John Stankey)的私人電話,還造福了鄰居,一起升級了光纖。


這位老爺爺的名字叫做艾倫·愛潑斯坦(Aaron Epstein),曾經在 AT&T 工作過 60 年,退休在家后最喜歡在互聯網上觀看流媒體電影和看電視,但用他的話來說,他所在地區的光纖速度“快如閃電”,家里的網速最高也才 3M/s,看電影就像在看幻燈片。

AT&T

在過去的五年中,他不斷的給 AT&T 的客戶服務部打電話投訴,但問題一直沒有被解決。于是,一個想法冒了出來。

“好吧,只有一種方法可以解決了。讓我在讓我們在紐約市版的《華爾街日報》上刊登一則廣告吧?!?/p>

最終,愛潑斯坦為《華爾街日報》的廣告支付了 10,099 美元,刊登的內容包含他的電話號碼、電子郵件地址以及給 AT&T 公司的公開信。

花錢能解決的問題果然都不是問題,廣告刊登出去之后問題確實得到了解決。很多人給老爺子打來電話發來郵件,為其聲援或者提供解決方案。據報道他還接到了 AT&T 首席執行官約翰·斯坦基(John Stankey)的私人電話。

電話的內容我們不得而知,但據 AT&T 公司的公開渠道消息表示,該公司將愛潑斯坦的鄰里全部進行了升級,作為洛杉磯地區電信光纖網絡計劃擴展的一部分。

光網改造的那些事兒

隨著現在網絡的不斷發展,百兆、千兆的寬帶基本上成為了家庭寬帶的標配。但在固話流行的年代,最初的寬帶網絡以ADSL方式接入,俗稱電話線。寬帶通過電話線接入,電話線接貓(學名調制解調器)出網線接電腦(或路由器),這種接入模式最高速率僅僅是 8M。

雖然現在看比較落后,但在那個年代電話線接入寬帶上網卻是極少數人才享受的,安裝一戶寬帶往往得花費幾千塊。

近幾年,ADSL 接入方式寬帶網絡不能適應互聯網時代的發展趨勢,漸漸走上被淘汰替換的道路。以光纖接入替代 ADSL 接入,實現光網絡改造的工程,是為光網改造。

光纖接入,光纖到達樓棟、小區、單元、用戶家,再以 pon 設備接入用戶家,接入互聯網,目前家用光纖接入模式速率已經可達千兆級別。

這也是光纖改造不用入戶的原因,只要入戶銅線支持百兆或者千兆網絡,運營商只要升級小區的入戶線路為光纖,然后升級網絡設備就可以了。但如果光改以前用的是 ADSL 撥號上網,那就需要換一個光貓了。

相關資料來源:
https://www.wistv.com/2021/02...

segmentfault 思否

查看原文

贊 1 收藏 1 評論 0

王治治 發布了文章 · 2月15日

全世界第二受歡迎的 React UI 組件庫,一夜之間不見了...

Ant Design

據 Ant Design 官方賬號表示,Ant Design 在 Github 上的倉庫在沒有任何原因的情況下突然消失了,團隊正在聯系 GitHub 官方尋求幫助和反饋。

截止發稿時間, Ant Design 官方 GitHub 賬號頁面仍然顯示 404。

全世界第二受歡迎的 React UI 組件庫

Ant Design 是螞蟻金服推出的一套企業級 UI 設計語言和 React 組件庫,從 2015 年推出開始便受到廣泛的關注與使用,Ant Design 官網的標題也設置為: 全世界第二受歡迎的 React UI 組件庫。

作為一個設計體系,Ant Design 包含的不僅僅是一個組件庫。除了耳熟能詳的 Ant Design React 外,還有 Angular 版本的 NG-ZORRO、Ant Desin Mobile、Ant Design Landing、HiTu React,以及來自社區志愿者的 Ant Design Vue。

垂直方向開箱即用的中臺前端 / 設計解決方案 Ant Design Pro 和對應的區塊市場,以及衍生組件庫 Pro Layout 和 Pro Table。設計上也提供了非常多的規范文檔以及相關的設計資產。

一夜之間消失,原因不明

Ant Design

賬號頁面消失的具體原因目前尚未公布,有網友表示或許是在從 GitHub 向 Gitee 進行遷移,也有網友表示疑似被黑客入侵導致。

Ant Design

具體原因我們尚未可知,但據悉 Ant Design 團隊正在積極聯系 GtiHub 官方進行協調幫助。開發者們依然可以在官網或者 Gitee 上查看及使用相關代碼:

https://ant-design.gitee.io
https://gitee.com/ant-design/...

segmentfault 思否

查看原文

贊 6 收藏 1 評論 1

王治治 發布了文章 · 2月15日

黑客自述:我是如何侵入蘋果、微軟和數十家其他公司的...

黑客的工作在我們普通人看來,更像是一門看不懂的“玄學”。但這項玄學的背后,很多看起來高深莫測的網絡攻擊,使用的都是非常簡單卻有效的方法。

最近,一位名叫 Alex Birsan 的黑客,正式通過一種非常簡單卻實用的方法,發現了 30 多家科技公司存在的漏洞,并因此獲得了高額的漏洞賞金。

下面是這位黑客在個人博客中的自述,我們可以通過這篇文章了解一下玄學背后的故事。


作者:Alex Birsan
原文鏈接:https://medium.com/@alex.birs...

自從我開始學習如何編程以來,我一直對這一句簡單的代碼指令有些疑惑:

pip install package_name

某些編程語言(例如 Python)使用一種簡單的官方方法來為項目安裝依賴項。這些安裝程序通常與公共代碼存儲庫綁定,在那里任何人都可以自由上傳代碼包供他人使用。

當下載和使用其他來源的安裝包時,我們基本上是信任其發行者在我們的機器上運行代碼。那么這種盲目的信任會被惡意行為者利用嗎?

答案是當然可以。

任何程序包托管服務都無法保證其用戶上傳的所有代碼均不含惡意軟件。過去的研究表明,「域名搶注(利用包名稱的錯字版本進行的攻擊)」在獲得對全球隨機 PC 的訪問方面非常有效。

其他眾所周知的依賴項攻擊路徑包括使用各種方法來破壞現有軟件包,或以不再存在的依賴項名稱上傳惡意代碼。

image.png

想法

在 2020 年夏季嘗試與我入侵 PayPal 時,Justin Gardner(@Rhynorater)分享了在 GitHub 上發現的有趣的 Node.js 源代碼。

該代碼是供內部 PayPal 使用的,并且在其 package.json 文件中似乎包含公共和私有依賴項的混合 —— 來自 npm 的公共軟件包以及非公共軟件包的名稱,這些很可能是 PayPal 內部的私有軟件包,由 PayPal 內部托管。因為這些名稱當時在公共 npm 注冊表中不存在。

image.png

這個邏輯會引起一些問題:

  • 如果以這些名稱將惡意代碼上傳到 npm 會發生什么?PayPal 的一些內部項目是否有可能開始默認為新的公共軟件包而不是私有軟件包?
  • 開發人員或者一些自動化系統會開始在庫中運行這些軟件包嗎?
  • 如果這種方法行得通,我們可以借助這個方式從科技企業獲得漏洞賞金嗎?
  • 這種攻擊還會對其他公司起作用嗎?

事不宜遲,我開始制定計劃來回答這些問題。

這個想法是將我自己的“惡意” Node 程序包以所有無人認名的名稱上載到npm注冊表中,這將從安裝它們的每臺計算機上“打電話回家”。如果最終將任何軟件包安裝在 PayPal 擁有的服務器上,則其中的代碼會立即通知我。

在這一步中,我覺得很重要的一點是,必須明確指出,在此研究過程中所針對的每個組織都已允許通過公共漏洞賞金計劃或通過私人協議來對其安全性進行測試。未經授權,請勿嘗試這種測試。

“總是 DNS”

值得慶幸的是,npm 允許在安裝軟件包時自動執行任意代碼,這使我可以輕松創建一個 Node 軟件包,該軟件包收集有關通過其 preinstall 腳本安裝在其上的每臺計算機的一些基本信息。

為了在基于數據識別組織的能力與避免收集太多敏感信息之間取得平衡,我決定只記錄用戶名,主機名和每個唯一安裝的當前路徑。與外部 IP 一起使用的數據就足夠了,可以幫助安全團隊根據我的報告確定可能受到攻擊的系統,同時避免將我的測試誤認為是實際的攻擊。

現在剩下的一件事 —— 如何將這些數據還給我?

知道大多數可能的目標都將位于受良好保護的公司網絡內部,我認為 DNS 滲透是解決之道。

image.png

通過 DNS 協議將信息發送到我的服務器對于測試本身能否正常工作不是必不可少的,但它確實確保了在出站時不太可能阻止或檢測到流量。

數據經過十六進制編碼,并用作 DNS 查詢的一部分,該 DNS 查詢直接或通過中間解析器到達了我的自定義名稱服務器。服務器配置為記錄每個接收到的查詢,實質上記錄了下載軟件包的每臺計算機的記錄。

多多益善

有了攻擊的基本計劃,現在是時候發現更多可能的目標了。

第一個策略是尋找類似的生態系統進行攻擊。因此,我將代碼移植到了 Python 和 Ruby 上,以便能夠分別將相似的軟件包上傳到 PyPI(Python 軟件包索引)和 RubyGems。

但是可以說,該測試最重要的部分是找到盡可能多的相關依賴項名稱。

在搜索了一些目標公司的私有軟件包名稱的整整幾天后,發現可以在 GitHub 以及主要軟件包托管服務(偶然發布的內部軟件包內部)甚至內部的主要軟件包托管服務中找到許多其他名稱,或者各種互聯網論壇上的帖子。

但是,到目前為止,找到私有程序包名稱的最佳位置竟然是在各家公司或平臺的的 javascript 文件中。

顯然,package.json 包含 javascript 項目依賴項名稱的內部文件在其構建過程中會嵌入到公共腳本文件中,從而暴露內部包名稱,這是很常見的。同樣,require() 這些文件中泄漏的內部路徑或調用也可能包含依賴項名稱。蘋果、Yelp 和特斯拉只是以這種方式公開內部名稱的公司的一些例子。

image.png

在2020年下半年,由于@streaak的幫助和他出色的偵察技能,我們能夠自動掃描屬于目標公司的數百萬個域,并提取數百個尚未在 npm 注冊表中聲明的 javascript 程序包名稱。

然后,我將代碼上傳到所有找到的名稱下的包托管服務中,并等待回調。

結果

成功率簡直是驚人的。

從開發人員在自己的計算機上犯下的一次性錯誤,到內部或基于云的構建服務器配置不當,再到系統易受攻擊的開發管道,一件事很明顯:搶占有效的內部軟件包名稱幾乎是一種不會失敗的方法。一些最大的科技公司的網絡,可以遠程執行代碼,并且可能允許攻擊者在構建過程中添加后門。

迄今為止,我已經在超過 35 種組織中的所有三種經過測試的編程語言中檢測到了這種類型的漏洞,我將這種漏洞稱為「依賴混淆」。絕大多數受影響的公司屬于 1000 多名員工類別,這很可能反映了大型組織內部使用內部軟件庫的普遍性。

由于更容易找到 javascript 依賴項名稱,幾乎所有已記錄的回調中有 75% 來自 npm 軟件包 —— 但這并不一定意味著 Python 和 Ruby 不太容易受到攻擊。實際上,盡管在我的搜索過程中只能識別出屬于八個組織的內部 Ruby 名稱,但事實證明,其中有四家公司很容易通過 RubyGems 造成依賴混淆。

加拿大電子商務巨頭 Shopify 是這樣的公司之一,其構建系統 shopify-cloud 僅在我上傳 Ruby 幾個小時后自動安裝了一個名為 Ruby 的 Ruby gem ,然后嘗試在其中運行代碼。Shopify 團隊在一天之內準備好修復程序,并為發現問題的我提供了 30,000 美元的漏洞賞金。

在我于 2020 年 8 月上傳到 npm 的 Node 包中的代碼在其網絡內的多臺計算機上執行之后,蘋果也提供了 30,000 美元的獎勵。受影響的項目似乎與 Apple 的身份驗證系統(外部稱為 Apple ID)有關。

當我提出這個漏洞可能允許威脅者向 Apple ID 注入后門的想法時,Apple 并不認為這種影響水平可以準確地表示問題所在,而是說:

在運營服務中實現后門需要更復雜的事件序列,并且這是一個帶有附加含義的非常特定的術語。

但是,Apple 確實確認使用此 npm 軟件包技術可以在 Apple 服務器上執行遠程代碼。根據軟件包安裝的流程,該問題在我報告的兩周內得到解決,但僅在發布此帖子之前不到一天就授予了賞金漏洞。

image.png

在針對其他公司的其他幾次成功攻擊中,可以看到在內部服務器和個人開發人員的 PC 上都安裝了相同主題的 npm 軟件包,其中一些安裝通常是在軟件包上載后數小時甚至數分鐘進行的。

實際上,大多數已授予的 Bug 賞金都設置為每個程序的策略所允許的最高數額,有時甚至更高,這證實了依賴混淆 bug 的嚴重性通常很高。其他受影響的公司包括 Netflix,Yelp 和 Uber。

“這不是一個錯誤,這是一個功能”

盡管有大量的依賴混淆的發現,但一個細節在某種程度上仍然是(現在仍然是)尚不清楚:為什么會這樣?此類漏洞的主要根源是什么?

可以理解,大多數受影響的組織都不愿透露有關其根本原因和緩解策略的更多技術細節,但是在我的研究過程中以及與安全團隊的溝通中確實出現了一些有趣的細節。

例如,Python 依賴關系混亂的罪魁禍首似乎是錯誤地使用了“設計不安全”命令行參數 --extra-index-url。使用此參數 pip install library 指定您自己的包索引時,您可能會發現它可以按預期工作,但是 pip 幕后的實際操作是這樣的:

  • 檢查指定(內部)包索引上是否存在庫
  • 檢查公共包索引(PyPI)是否存在庫
  • 安裝找到的任何版本。如果兩個軟件包均存在,則默認從具有更高版本號的源進行安裝。

因此,library 9000.0.0在上面的示例中,上傳名為 PyPI 的程序包將導致依賴關系被劫持。

盡管這種行為已經廣為人知,但僅在 GitHub 上搜索 --extra-index-url 就足以找到一些屬于大型組織的易受攻擊的腳本 —— 包括一個影響 Microsoft .NET Core 組件的錯誤。不幸的是,該漏洞可能允許向 .NET Core 添加后門程序,但該漏洞在 .NET Bug 賞金計劃中未被發現。

Ruby 的 gem install --source 工作方式也與此類似,但是我無法確定其用法是否是我發現的根本原因。

當然,更改 --extra-index-url--index-url 是一種快速而直接的解決方法,但是事實證明,依賴混淆的其他一些變體很難得到解決。

與此同時,Microsoft 還提供了類似的名為 Azure Artifacts 的程序包托管服務。根據我的一份報告,對該服務進行了一些小的改進,以確保它可以為依賴項混淆漏洞提供可靠的解決方法。有趣的是,沒有通過測試 Azure Artifacts 本身發現此問題,而是通過成功攻擊 Microsoft 自己的基于云的 Office 365 來發現此問題,該報告得到了 Azure 可能獲得的最高獎勵 40,000 美元。

未來的研究?

盡管許多大型科技公司已經意識到這種漏洞,并已在其基礎架構中對其進行了修復,或者正在努力實施緩解措施,但我仍然感到還有很多發現的感覺。

具體來說,我相信找到泄漏內部程序包名稱的新方法將揭示更多易受攻擊的系統,而尋找替代的編程語言和目標存儲庫將揭示依賴混淆錯誤的其他攻擊面。

話雖這么說,無論您的經驗水平如何,我都竭誠鼓勵您花一些時間在腦海中嘗試一下該想法 —— 無論它是否與依賴項管理安全性相關。

image.png

查看原文

贊 0 收藏 0 評論 0

王治治 贊了文章 · 2月9日

云原生中間件的下一站

作者:于雨

于雨(github @AlexStocks),dubbogo 社區負責人,一個有十年服務端基礎架構和中間件研發一線工作經驗的程序員,陸續參與和改進過 Redis/Pika/Muduo/dubbo-go/Sentinel-go 等知名項目,目前在螞蟻金服可信原生部從事容器編排工作。

自從以 2013 年開源的 docker 為代表的的容器技術和以 2014 年開源的 K8s 為代表的容器編排技術登上舞臺之后,相關技術從業人員從認知和體感上接受,云原生時代真的到來了。

當然也有很多資深技術人員認為,云原生時代要從 2010s 時以 OpenStack 為代表的虛機編排時代開始。 當然,也有人說其實云原生技術誕生很早,可以從巨型機時代在巨型機上虛擬出若干小型機開始追溯。

在云原生時代,不變鏡像作為核心技術的 docker 定義了不可變的單服務部署形態,統一了容器編排形態的 k8s 則定義了不變的 service 接口,二者結合定義了服務可依賴的不可變的基礎設施。有了這種完備的不變的基礎設置,就可以定義不可變的中間件新形態 -- 云原生中間件。

云原生時代的中間件,包含了不可變的緩存、通信、消息、事件(event) 等基礎通信設施,應用只需通過本地代理即可調用所需的服務,無需關心服務能力來源。

1 微服務框架


從最早的單體應用時代到分布式技術時代,流行的是微服務技術。微服務時代各大公司都沉淀出了具有代表性的一些服務通信框架,如 Google 的 gRPC,阿里的 Dubbo 和 HSF,百度的 bRPC 等等。多個服務通信框架之間的競爭,基本上是在大公司之間進行角力。

站在使用者的角度,當然期待一個網絡框架在進化過程中能夠保持向前兼容性,多個框架之間保持互通性。

1.1 服務框架的向后兼容性

通信框架的基礎是通信協議和序列化協議,這其中很重要的問題就是新版本協議對舊版本的向后兼容性。在一個組織中一般都使用統一的通信框架,但現實中可能因為各種原因,同一個框架的序列化協議或者通信協議的向后兼容能力差會,導致使用不同版本通信框架的各個服務之間的異構化。如采用了 pb v2 和 pb v3 的通信框架不兼容,不遑多讓的 Thrift 0.8.x 與Thrift 0.9.x 之間也不兼容。

不過 Protobuf v3 或者 Protobuf v2 的各個子版本之間的向前和先后兼容性還是不錯的,但還是有一些弱雞公司的內部序列化協議無論是否采用 TLV 形式,其協議各個版本的之間還是無法兼容,進而導致各個子版本的服務框架相互異構,最終導致使用了不同版本的服務框架的業務背上大量包袱無法快速演進,有些新版本的業務中存在各種神邏輯可能不是為了兼容舊版本的業務邏輯,而是為了兼容舊版本框架的通信協議。

1.2 多框架之間的互通性

一個常識是,組織規模膨脹到足夠大的程度后,不可能有一個通用的框架適用于所有的場景,一些大經濟實體隨著業務體量變大,業務類型變得龐雜,不可避免地存在一些重復的輪子,這些龐大規模的組織因為其規模效應,任何一個適用于特定場景的框架只要能在內部找到若干落地應用場景就足以讓其開發維護成本變得可負擔且收益甚大。

公司內部各個分公司之間可能存在不同服務框架導致各個服務之間通信異構化越來越嚴重,如阿里內部早前存在異構的 Dubbo 和 HSF(目前阿里內部 HSF 和 Dubbo 已經開始融合, HSF 已經采用 Dubbo 作為內核以 Dubbo 插件的形式存在),如當下的阿里的 HSF 和各個收來的新公司之間的網絡通信,其間通信可能不得不借助于 Proxy 形式的通信網關。

每個服務框架各個子版本之間需要保持向后兼容,各個服務框架之間的兼容可能需要網關代理。

1.3 多語言框架之間的互聯

除了序列化協議、通信框架的異構外,還普遍存在著因為各個不同語言技術棧之間差異導致的異構:每種語言都有個各自的序列化協議和通信框架。如 Java 世界就存在著 Spring Cloud 和 Dubbo 兩大服務治理框架,Spring Cloud 尚無多語言版本實現,相比之下 Dubbo 的多語言工作稍好一些。

1.4 打通打平不同的技術體系

同一實體內部不同公司之間有兩三個不同服務框架的情況已經算是很好了,大公司組織內部可以容忍適量的重復造輪子,但大量的重復造輪子就過猶不及了。據說有巨頭內部不同部門之間存在各自的 RPC 服務框架 ,其總體服務框架超 100+!

隨著國內互聯網行業發展由于頭部效應趨向性明顯,在大魚吃小魚的時代背景下,大公司與收購來的公司之間的技術體系異構也是云原生時代中間件面臨的一個問題,二者之間因為業務規模不同帶來的服務注冊中心、配置中心、語言技術棧、服務鑒權、緩存和存儲等諸多技術不統一。有的剛收來的公司甚至使用了大公司的競爭對手的云平臺,這就又帶來了平臺級的差異,諸如此類的異構問題不一而足。

借助網絡代理技術,可以初步快速打通不同技術體系之間的異構差異。

1.5 通信代理的必要性

除了南北向通信的網絡接入層代理外,微服務時代使用同一通信框架的各個服務實體之間直接進行通信,很少聽說各個服務實體之間通過代理 Proxy 進行通信,其根由是各個通信實體之間通信框架同構。

或者說,網絡通信代理被各個強悍的通信框架給消化掉,以 Proxyless SDK 的形式存在,如服務發現、服務路由、容災限流、負載均衡等功能都存在于各個服務框架的 SDK 中。

但隨著多協議多語言等各種因素導致的各個框架之間的各種異化,大家普遍相信:沒有什么差異不是一層 Proxy 解決不了的。

1.6 Service Mesh

2016 年之后興起的 Service Mesh 技術區分為 Proxy Service Mesh 和 Proxyless Service Mesh,至于二者之間的差異可參見本文 2019 年的一篇文章 Service Mesh 形態芻議。目前比較流行的 Service Mesh 技術形式是 Proxy Service Mesh,其比較有代表性的組件有數據面的 envoy 和控制面的 Istio。

一些 Service Mesh 技術文檔宣稱,將服務框架的序列化協議、通信能力、服務治理能力沉淀到服務網格的代理(如 envoy 這類數據面 sidecar)中,可有如下收益:

  • 1 服務框架 SDK 會變的非常輕量,甚至完全沉淀到 sidecar 中。
  • 2 多語言、多協議和多種通信方式之間的差異將被磨平。
  • 3 統一流量控制,提升系統的彈性。
  • 4 統一監控設施,提高可觀測性。
  • 5 統一安全可信認證,提升安全性。
  • 6 升級過程業務無感,做到平滑升級,提升可靠性。
  • 7 提升業務版本迭代速度。
  • 8 快速打通不同技術治理體系之間的差異。
  • 9 在 Mesh 和 非Mesh 模式之間快速切換。

有人可能據此誤以為 Service Mesh 技術可將業務和服務框架的復雜性消滅于無形,將 Istio + sidecar 形式為代表的服務網格可以定義為 Service Mesh 的終極形態。

2 Sidecar 與中間件


Proxy Service Mesh 的數據面的 sidecar 僅具備通信能力,業務應用和 sidecar 之間仍然存在一個 gap:微服務時代應用所使用的中間件系統的能力需要沉淀到 sidecar 中。

2.1 sidecar 的能力

Proxy Service Mesh 中 sidecar 的一個典型代表是 envoy,其本質是一個具備通信能力的 local proxy,具備如下數據面能力:

  • 流量控制
  • 序列化協議轉換
  • 通信協議轉換
  • 數據路由控制

實際上, envoy 僅僅是提供了這些能力的接口,至于具體的序列化協議轉換、通信協議轉換插件等工作還是需要相關的基礎設施開發人員去做的。

除了序列化協議和通信協議轉換,中間件的其他能力向 Proxy 下沉的過程中,都需要做大量的 envoy filter 層面的工作。相對于 Proxyless 形式的 Service Mesh,Proxy Service Mesh 成本沒有任何變化,其對業務的侵入性也沒有減輕更多。

2.2 協議下沉

如果說 Proxyless Service Mesh 形態下的 SDK 升級需要業務層面做很多改造,Proxy Service Mesh 形態下的業務從 Proxyless 向 Proxy 形態升級過程中改造成本也不可謂不小。如果通信協議采用了 Protobuf V3,Proxy Serivce Mesh 形態下的業務升級協議時可能做到平滑升級:只升級 Proxy 不用升級業務服務實體。但現實是一些公司內部的私有協議根本做不到向后兼容,其成本就是升級協議時服務網格的 Proxy 和業務實體一起升級,至于期望的平滑升級就很難做到了。

諸般問題的核心是 Local Proxy 沒有統一通信協議和序列化協議,僅僅注重于流量劫持。

2.3 有狀態的應用

Service Mesh 技術的一些鼓吹者假設服務實體是一個無狀態的服務,其代理也當然是一個無狀態的 sidecar,然后宣傳 Service Mesh 時代的各種紅利。

至于那些有狀態的應用,大公司有人有錢耗費巨量人日成本后,把狀態轉移到 Proxy 中去,讓應用無狀態,但業務無感知的平滑升級是就難做到了。這個成本對大經濟實體來說當然是可負擔且收益甚大的,但不是一些中小廠家所能承受的,他們在踩完各種坑后,可能神奇的發現他們根本沒有實力實現有狀態的 sidecar。

2.4 復雜性守恒

總結一番,基于 sidecar 搭建一個 Proxy Service Mesh 可能存在如下工作:

  • 不同序列化協議轉換
  • 不同通信協議之間的轉換
  • 同一序列化協議多版本之間的轉換
  • 私有和公開通用的序列化協議之間的轉換
  • 對單體時代或者微服務時代的業務進行改造升級
  • 業務應用和 sidecar 同時升級帶來的額外運營維護
  • 有狀態的 Sidecar 的開發測試與維護
  • 應用和代理的優雅退出和平滑升級
  • 不同技術體系之間的互通
  • Mesh 模式和非 Mesh 模式之間的切換

面對這些難度層層遞進的工作,中小廠家很有可能就會退縮到微服務技術體系。其最根本的原因是:同等級別的業務形態下,技術復雜性守恒,總成本守恒。一如微服務技術至于單體技術:各個單一服務都被拆分的足夠簡單,但單體技術的復雜性轉換為了巨量服務之間的復雜性。

3 另一種 Mesh


以 Service Mesh 技術為代表的的云原生技術體系根植于以 k8s 為代表的的云原生基礎設施之上。

3.1 協議標準化

云原生中間件 Proxy 的下一站除了被動地去兼容各種協議,更應該主動的去統一序列化協議,如自身直接支持 Protobuf v3 協議,業務也采用這種可保證向后兼容的協議即可。

除了被動地去兼容各種通信框架做互聯互通,可以更主動地向事實上的通信框架 gRPC 或者通信協議 HTTP 靠攏。gRPC 有各種語言的 SDK 庫。各種語言自身會主動提供 HTTP 通信協議庫,且 HTTP2.0 向后兼容 HTTP 1.1。例如微軟的 Dapr,就直接提供 gRPC 和 HTTP 兩種通信協議的 API,上層業務需要做的是選擇其中一種通信協議的 API 進行開發。

3.2 Service Proxy

一些的云原生時代的事實上的標準通信設施有:2008 年開源的 protobuf v2 和 2014 年開源的 protobuf v3 統一了序列化協議;2016 年 gRPC 發布 v1 之后逐漸成了跨語言首選的通信庫。

除了序列化協議和通信協議,微服務時代的中間件體系大概有如下技術棧:

  • RPC,其代表是 Dubbo/Spring Cloud/gRPC 等。
  • 限流熔斷等流控,如 hystrix/sentinel 等。
  • Cache,其代表是 Redis。
  • MQ,其代表有 kafka/rocketmq 等。
  • 服務跟蹤,如兼容 Opentracing 標準的各種框架。
  • 日志收集,如 Flume/Logtail 等。
  • 指標收集,如 prometheus。
  • 事務框架,如阿里的 seata。
  • 配置下發,如 apollo/nacos。
  • 服務注冊,如 zookeeper/etcd 等。
  • 流量控制,如 hystrix/sentinel 等。
  • 搜索,如 ElasticSearch。
  • 流式計算,如 spark/flink。

把各種技術棧統一到一種事實上的技術標準,才能反推定義出不可變的中間件設施的終態。把上面這些事實上的中間件梳理一番后,整體工作即是:

  • 統一定義各服務的標準模型
  • 定義這些標準模型的可適配多種語言的 API
  • 一個具備通信和中間件標準模型 API 的 Proxy
  • 適配這些 API 的業務

上圖定義一種不同于 istio + Envoy 的另一種可能的 Proxy Service Mesh 進化路徑。該 Service Mesh 模型下的 sidecar 不僅僅是一個 Local Proxy,更應該是一個提供各個中間件技術棧標準能力的 Service Proxy。

Service Proxy 可能是一個集狀態管理、event 傳遞、消息收發、分布式追蹤、搜索、配置管理、緩存數據、旁路日志傳輸等諸多功能于一體的 Proxy, 也可能是分別提供部分服務的多個 Proxy 的集合,但對上提供的各個服務的 API 是不變的。

3.3 Application Mesh

或者更進一步,可以把 Service Proxy 拆分為兩個 Proxy:

  • 仍然以現有的以劫持網絡流量的 sidecar 形式存在的 Local Proxy。
  • 另一個專門提供各個 Service API 的 Application Proxy。

Application Proxy 可以是一個獨立存在的進程或者容器,也可以是一個可被應用調用嵌入式的 SDK 庫。無論是 Proxy 形式還是 Proxyless 形式,這都是一種新形態的 Service Mesh,可被稱之為 Application Mesh。

Application Proxy 可以依賴于 Local Proxy,亦可不依賴。如人們常說的三級緩存其實也是一種 Application Mesh 形態,從進程內的 local cache 到本機(容器、虛擬機 or 物理機)cache proxy 一直回溯到 cache cluster, 應用只需要從 local cache 處獲取數據即可。

當然,Application Mesh 亦可不依賴于特定的基礎設施平臺,包括 k8s,本文就不展開討論了。

除了 Service Mesh 技術帶來的收益,Application Mesh 具有如下更多的收益:

  • 更好的擴展性與向后兼容性

    基于標準的 API,其服務的不變性得到極大改善,不變性可以確保中間件的向后兼容與更好的擴展能力?;跇藴?API,第三方服務商可以在云廠商提供的基礎設施之上擴展出更多形態的中間件設施。

  • 與語言無關

    統一序列化協議和通信協議后,無特定語言依賴是很自然的事情。主流語言都會支持 HTTP 協議,gRPC 庫自身能夠提供主流語言的支持。無特定語言綁定帶來的另一個間接好處是更好的可移植性。

  • 與云平臺無關

    通過標準的服務讓應用做到無云平臺依賴,統一了中間件技術棧的平臺提供的技術能力相同的,云平臺使用者沒有被云服務提供商綁架的危險。

  • 應用與中間件更徹底地解耦

    通過標準協議和標準 API 讓應用與中間件徹底解耦,讓開發者在開發階段對新類型 Proxy 的有感,做到業務上線后業務對 Proxy及其底層系統的升級過程無感知,即更好地平滑升級。

  • 應用開發更簡單

    基于標準 API,應用開發者甚至可以用單體時代的服務框架開發分布式應用,提升應用版本迭代速度。

  • 更快的啟動速度

    狀態從應用轉移到代理后,可以通過提前預熱代理,讓應用瞬時批量啟動。

4 未來的收益


任何技術都不是沒有代價的。誠如微服務技術帶來了服務數量的劇增,Service Mesh 技術帶來了吞吐的降低和延時的增加,但下一站的云原生中間件形態會帶來的是另一種新的價值形態,相比而言這個代價是可以接受的。

4.1 業務價值

就其淺顯的技術價值而言,做到基礎中間件技術的統一后,即可做到無關語言,無關各個具體的中間件實體。減輕業務開發人員負擔,使其專注于業務邏輯,做到真正的快速迭代與平滑升級,提升研發效率的同時降低各種成本。

4.2 云平臺無關

新形態帶來的商業價值就是無云平臺依賴,各平臺間相互之間的競爭就不會停留在某種獨有的核心技術優勢上,而是在同一技術體系下不斷降低服務成本,提供更好的用戶體驗、更強的服務能力與更親民的價格。

能夠且愿意實現這種終態 proxy 的組織當然不是各中小型業務廠家,所以統一了這些標準服務 API 的 Proxy 之下的應該是提供這些標準服務的各大云廠商。越早向統一服務模型靠攏的云廠商越快得利,越相信自己私有服務能力的云廠商越孤立。

4.3 初創公司的機會

基于大廠提供的基礎設施,可以孕育出一個獨立的 service proxy 生態:一些第三方的初創廠家專職提供云原生中間件解決方案。

基于新形態的中間件方案,Low Code 或者 No Code 技術才能更好落地。單體時代的 IDE 才能更進一步 -- 分布式時代的 IDE,基于各種形態中間件的標準 API 之對這些中間件的能力進行組合,以 WYSIWYG 方式開發出分布式應用。

4.4 打破大廠內部藩籬

對一些大廠組織內部而言,可借助真正形態的 Service Mesh 技術??梢越y一大經濟實體內部技術棧,打破人為的各種異構隔離,提升研發運維效率和物理資源利用效率,降低整體人力與資源的交付運維成本。

4.5 走向新時代

以統一技術形態的 Service Mesh 為基礎的云原生中間件技術體系真正發起起來,在其之上的 Serverless 才有更多的落地場景,廣大中小企業才能分享云原生時代的技術紅利,業務開發人員的編碼工作就會越來越少,編程技術也會越來越智能--從手工作坊走向大規模機器自動生產時代。

歡迎對 apache/dubbo-go 項目有興趣的同學歡迎釘釘掃碼加入交流群【或搜索釘釘群號 31363295】:

查看原文

贊 9 收藏 2 評論 0

王治治 發布了文章 · 2月8日

從推薦算法到前端開發,字節跳動技術 Leader 們都在學什么?

本文為授權轉載內容。內容來源:字節跳動技術范兒

“春季招聘和金三銀四要開始了,我想提升技術,更上一層樓,除了投簡歷刷題,還有什么可以努力的方向???”

如果你是技術領域的新人,或者已經畢業多年、正在考慮轉向新的技術方向,上面這個問題可能正在困擾著你。

為了回答這個問題,技術范兒找到了多媒體、推薦算法、計算機視覺、強化學習、機器翻譯、知識圖譜、安卓、iOS、前端等幾個方向的 Leader,推薦了各個技術方向的自學資源。

其中,有不少業界知名的書籍、全球 CS 名校的公開課程,可以系統性地幫你了解一個領域的全貌。

還有不少應用技術和開源項目,工業界的常備工具都列齊了。

另外,也有一些是 Leader 們推薦團隊內部同學學習的資料,如果你理解掌握得足夠好,說不定可以在面試官心目中留下不錯的印象。

如果你是正在準備春招的在校生,或者已經畢業并希望在金三銀四獲得更好的平臺,不妨收藏起來,慢慢學習。

image.png

多媒體

多媒體團隊 Leader Jessica 推薦了三類內容:

第一類是圖像、視頻處理的基礎理論書籍;

第二類是視頻編碼標準方面的書籍;

第三類是業內常用的開源項目。

《數字圖像處理》

作者:Rafael C. Gonzalez 等

image.png

數字圖像處理領域的經典教材,也普遍作為學習圖像處理、計算機視覺的入門必備書籍,經久不衰。

《視頻處理與通信》

作者:王瑤 等

image.png

系統性介紹視頻處理關鍵技術的一本經典教材,從視頻基礎理論到視頻編碼、視頻通信等。適合有一點信號系統或者圖像處理理論基礎的同學進一步學習使用。

《新一代視頻壓縮編碼標準--H.264/AVC》

作者:畢厚杰、王健

image.png

一本能讓讀者很好地了解主流視頻編碼技術的參考書。

《Audio Signal Processing and Coding》

作者:Andreas Spanias, Ted Painter, Venkatraman Atti

image.png

音頻的書相比視頻而言少很多,但這本算是音頻信號處理與編碼領域較為經典的了,可以作為音頻處理學習相關的參考書。

相關開源工程

FFmpeg:https://github.com/FFmpeg/FFmpeg

迄今為止最流行的開源多媒體框架之一,非常強大,基本算是互聯網視頻技術相關的必修開源工程了。

vlc:https://github.com/videolan/vlc

Ijkplayer:https://github.com/bilibili/i...

exoplayer:https://github.com/google/Exo...

播放器相關三大經典開源工程,了解主流視頻解碼、播放技術必選。

Jessica說,上述這些開源工程基本上是各個方向上不同時期最top的了,業內從業者對它們都非常熟悉。

image.png

推薦算法

抖音推薦團隊Leader William同學推薦了5本書,基本都是深度學習、機器學習方面非常經典的書。

《Deep Learning深度學習》

作者:Ian Goodfellow、Yoshua Bengio、Aaron Courville

image.png

這本書就是業內知名的「花書」,是深度學習領域奠基性的經典教材。

《動手學深度學習》

作者:李沐 等

image.png

William說,這是他見過最好的機器學習、深度學習教材,理論與實踐結合,并且中英雙語都有,而且還是免費開源的資源。

資源鏈接

電子版:https://zh.d2l.ai/index.html

GitHub:https://github.com/d2l-ai/d2l-zh

《百面機器學習》

作者:諸葛越

image.png

William說,這本書的作者是Hulu中國負責人,書里知識點很多,也有不少工業界的觀點,相關知識點最好都弄清楚,對從事算法工作會有比較大的幫助。

《深度學習推薦系統》

作者:王喆

image.png

William認為,這本書可以幫助讀者了解業界推薦系統的基礎知識體系,梳理推薦算法的發展脈絡。

《推薦系統實踐》

作者:項亮

image.png

推薦系統入門必備,非常適合初學者。

image.png

計算機視覺

圖像算法方向的Leader吳辛隆說,團隊同學主要靠學習CV論文來提升自己的技術能力。除了歷年頂會的論文之外,他也推薦了業界最常用的PyTorch和TensorFlow兩大框架,以及影響力最大的幾位專家的書籍課程。

吳恩達深度學習工程師全套課程

主講:吳恩達

桃李滿天下的吳恩達老師的課程,深度學習方向的同學應該都聽說過。

鏈接:https://mooc.study.163.com/sm...

斯坦福 CS231n:用于視覺識別的卷積神經網絡

主講:李飛飛

斯坦福一大知名課程,主講人是推動了CV行業飛速發展的ImageNet發起人李飛飛。

鏈接:http://cs231n.stanford.edu/

《機器學習》

作者:周志華

image.png

這本書也是業界知名的教材,它從“如何挑西瓜”這個例子開頭,又被稱作「西瓜書」,來自南京大學周志華教授。

PyTorch教程-Yunjey Choi

image.png

PyTorch作為備受歡迎的深度學習兩大框架之一,對于計算機視覺等方向的研究者來說是必備技能。如果你已經看過了PyTorch官方教程,來自韓國NAVER AI Lab研究員Yunjey Choi的開源PyTorch教程是不錯的補充,在GitHub上有將近20000顆星,教程中的大多數模型是由不到30行代碼實現的。

鏈接:https://github.com/yunjey/pyt...

TensorFlow中文官方文檔

image.png

深度學習另一大框架TensorFlow官方教程的中文版,由極客學院Wiki翻譯。

鏈接:https://github.com/jikexueyua...

CVF頂會論文庫

image.png

計算機視覺基金會(CVF)贊助了包括CVPR、ICCV等在內業界主流的幾大計算機視覺頂會,他們的論文庫也結構性地整理了這些頂會歷年的所有論文,可以方便同學們系統性的查找計算機視覺相關各方面的論文。

鏈接:https://openaccess.thecvf.com...

image.png

強化學習

強化學習研究員Flood Sung和ChnX兩位的推薦名單里除了一本名為《強化學習》的經典書目之外,還有斯坦福和UC伯克利的開源教學內容。

《Reinforcement Learning: An Introduction》

作者:Richard S. Sutton and Andrew G. Barto

image.png

這本書是強化學習最全面、最基礎的教材,兩位研究員強烈建議每一位同學通讀一至兩遍英文原版。

前面抖音推薦團隊Leader William也非常推薦這本書,這本強化學習綜述書, 可以幫助初學者建立相關知識體系。

英文原版:http://incompleteideas.net/bo...

相關課程:https://www.davidsilver.uk/te...

UC伯克利CS285:Deep Reinforcement Learning

主講:Sergey Levine

這套課程包含23節課程和5個課后作業,適合對強化學習、機器學習有一定了解的人。

鏈接:http://rail.eecs.berkeley.edu...

斯坦福CS 330:Deep Multi-Task and Meta Learning

主講:Chelsea Finn

CS 330整體課程比較長,大約需要3個月的學習時間,不過兩位研究員更推薦課程中Meta-RL的部分,壓力會小一點。

鏈接:https://cs330.stanford.edu/

image.png

機器翻譯

機器翻譯團隊Leader王萱選擇了經典的書目和課程。

《統計學習方法》

作者:李航

image.png

王萱認為,這本書由淺入深,涉及的知識面非常廣,算法包括NB、LR、SVM、CART、GBDT、感知機、最大熵、EM、HMM、CRF等,書中例子、推導、算法介紹相對比較詳細,適合花比較完整的時間,細細賞讀。

另外,這本書還有一個優勢是網上的解析、課程甚至所有算法的GitHub開源都非常完整,碰到難懂的問題,都可以很快找到答案。

前面抖音推薦團隊Leader William同學也認為,這本書每個模型講的很透徹,對提升機器學習背后的數學能力有幫助。

斯坦福CS 224N:Natural Language Processing with Deep Learning

主講:Christopher Manning, John Hewitt

王萱說,斯坦福的自然語言處理課程非常棒,主要介紹深度學習相關知識,從 word2vec 開始,到機器翻譯、Transformer、BERT 都有詳細的介紹。所有的課程設置也非常合理,包括練習、代碼、slides、相關文獻官方都做了非常好的整理。

鏈接:http://web.stanford.edu/class...

image.png

知識圖譜

字節跳動知識圖譜算法工程師David推薦了兩本知識圖譜相關的中文書籍和一本英文書,斯坦福CS 520也是業界備受推崇的課程。

《知識圖譜:概念與技術》

作者:肖仰華

image.png

這本書系統地介紹知識圖譜概念、技術與實踐,可以幫助讀者建立知識圖譜學科體系,貼近工業界的情況。

《知識圖譜》

作者:趙軍

image.png

知識圖譜方面全面綜述性的書籍,方方面面都有講到,是不錯的入門書。

《Linguistic Categorization》

作者:John R. Taylor

image.png

牛津語言學教科書,涵蓋了1987年以來認知語言學的重大發展,也是相對基礎的一本書。

斯坦福CS 520:Knowledge Graphs

主講:Vinay K. Chaudhri, Naren Chittar, Michael Genesereth等

飽受好評的斯坦福CS系列,授課人是30余位來自學術界和工業界的專家,在國內也有相當多的簇擁。

鏈接:https://web.stanford.edu/clas...

image.png

安卓

在安卓開發Leader JackLin看來,安卓開發者官方網站是最適合初學者的地方,問答社區Stack Overflow中的安卓板塊也是一個寶藏平臺。

安卓開發者官方網站

image.png

JackLin說,谷歌的安卓官方網站是最為嚴謹的學習資料,適合絕大多數安卓開發學習者,可以解決安卓初學者的絕大多數問題。

鏈接:https://developer.android.com/

Stack Overflow 社區

image.png

Stack Overflow是程序員們基本都知道的社區,有很多高質量的問答和資料,社區很活躍,信息全面,也可以看到業界對前沿技術的討論。

鏈接:https://stackoverflow.com/que...

image.png

iOS

iOS開發Leader趙子真同樣推薦了業內知名的三大技術博客/社區。

技術博客NSHipster

image.png

NSHipster是iOS大神發起的技術博客,涵蓋了OC、Swift、Cocoa那些被忽略的特性。

鏈接:https://nshipster.com/

技術社區raywenderlich

趙子真稱raywenderlich為「iOS界的百科全書」,它適合初學者,各種tutorial非常淺顯易懂。

網站:https://www.raywenderlich.com...

視頻:https://www.youtube.com/user/...

iOS社區objc.io

image.png

這個社區的內容高質量、深入深入再深入,對國內很多iOS社區影響深遠。

鏈接:https://www.objc.io/

image.png

前端

前端Leader月影推薦了不少在線課程。

HTML: The Living Standard

image.png

月影說,這份資料有助于大家理解HTML標準和語義化,打好前端基礎。

鏈接:https://html.spec.whatwg.org/...

MDN Web文檔

這份文檔比較全面的介紹最新的 HTML/CSS/JavaScript 標準和特性,非常好的參考資料。

鏈接:https://developer.mozilla.org...

JavaScript高級程序設計(第4版)

作者:Matt Frisbie

image.png

幾代前端人的JavaScript“紅寶書”,李松峰老師翻譯。

image.png


最后,在你擅長的領域,還有什么你覺得非常好的學習資源?歡迎在評論區留言,寫下讓你收獲豐富的書籍/論文/開源項目/公開課或任何形式的資料。

查看原文

贊 16 收藏 9 評論 0

王治治 發布了文章 · 2月6日

重磅發布丨2021年OpenAtom XuperChain 開源技術路徑

image.png

本文為授權轉載內容。以下文章來源于 XuperChain 開源社區 ,作者:XuperChain

2020 年,國家發改委公布了加強新型基礎設施建設發展的頂層設計,區塊鏈作為新技術基礎設施首次被寫入新基建發展規劃之中。同時,美國將區塊鏈技術列入國家安全技術清單,未來將對區塊鏈核心技術形成卡脖子問題。

一方面,從數字貨幣單一場景到賦能產業,在多行業、多業務場景落地,對區塊鏈網絡建設底層技術提出了新的挑戰;另一方面,我們需要加強自主創新,明確主攻方向,攻克關鍵核心技術,讓國產區塊鏈技術走在世界前列。

我們認為,2021 的區塊鏈技術要實現“兩個升級”。

  1. 符合中國國情、核心技術持續突破,更加「自主可控」。
  2. 源于產業、服務于產業、深入產業發展,更適合「產業區塊鏈發展」。

當然,我們也面臨以下挑戰:

  1. 不同的落地場景對底層技術的需求是差異化、多樣化的,需要可靈活擴展訂制,多場景適用的區塊鏈網絡建設底層技術。如何做到廣域場景適用,滿足不同場景的個性化需求?
  2. 區塊鏈系統復雜度高、網絡建設維護成本高、業務集成難度高,區塊鏈技術全面賦能產業,就需要打通這最后一公里。如何降低區塊鏈技術落地應用門檻?
  3. 區塊鏈技術支撐大規模應用,對系統擴展能力、性能提出了更高的需求。如何進一步突破區塊鏈性能和擴展能力瓶頸?

針對這些挑戰,開放原子可信賬本工作組 XuperChain 項目,將從架構、易用性、性能提升、開源社區管理四個方面做全面升級,落地新一代自主創新核心技術,更好的支撐區塊鏈技術全面賦能產業,推進數字經濟建設。

01 更靈活擴展、更廣域適用的架構

  • 可靈活擴展的動態架構

在 2021 年,XuperChain 內核技術 XuperCore 將獨立發展,落地由多引擎架構和區塊鏈內核組件編程規范兩大核心設計構成的新一代動態內核技術。通過多引擎架構,讓內核具備可多緯度、輕量級、無代碼侵入訂制擴展核心處理流程和做不同內核組件技術選型的能力;通過區塊鏈內核組件編程規范,讓內核各核心組件可以無代碼侵入自由替換擴展,同時讓引擎訂制變得非常輕量級。首創實現區塊鏈內核核心流程和內核核心組件皆可無代碼侵入擴展訂制,使內核具備極好的可擴展性,滿足不同落地場景對于底鏈技術的個性化訴求。

  • 廣域場景適用的底鏈技術

現有主流的區塊鏈框架基本都有明確的適用場景定位,面向不同應用場景的鏈實現差異是比較大的,一套實現很難適用各種場景。在 2021 年我們將基于新一代的動態內核技術,輕量級定制切合場景的區塊鏈發行版,從而做到廣域創建適用,更好的賦能產業,推進區塊鏈在各行各業落地。

02 更好的易用性,多緯度降低落地應用成本

  • 更豐富的生態工具,全面提升易用性

在生態工具方面,2021 年我們將持續補齊生態工具,全面提升 XuperChain 易用性。我們將在 H1 發布全新設計的開源文檔,引入 EVM 虛擬機,支持以太坊生態工具鏈兼容,并發布 XuperChain 智能合約 IDE 和多語言 SDK 標準實現;在 H2 發布區塊鏈瀏覽器,XuperChain 可視化工具和支持 Python 開發智能合約。從生態兼容、多語言支持、周邊工具建設、文檔優化多個方面,全面提升易用性。

  • 探索構建云原生鏈,打通落地應用屏障

全面賦能產業,必須要解決區塊鏈系統復雜度高、網絡建設維護成本高、業務集成難度高的難題。在 2021 年我們將結合云原生理念,探索設計云原生鏈,結合云原生工具和瀏覽器 admin,對用戶屏蔽區塊鏈系統自身的復雜性,做到全自助云上構建和管理區塊鏈網絡。

03 持續優化性能,進一步突破性能上限

實際業務落地中,存在數據規模大、性能要求高、業務形態復雜的問題,對數據規模、系統性能、組網形態有著更高的要求,但目前區塊鏈在性能和數據規模上還存在瓶頸,難以橫向擴展。在 2021 年我們將探索設計雙層網絡架構,支持在特定超高性能要求的場景下采用分布式子網來替代單機節點,來進一步突破 XuperChain 性能上限。

04 更溫暖、開放的社區,與開發者共同發展、成長

今年已經有 100 多位開發者在社區積極交流、提問,在 github 參與代碼、文檔等貢獻,大力推動了 XuperChain 開源社區發展。即使在疫情下,社區依然高頻舉辦 20 多次線上活動,觀看人數超過 10 萬,生產 100 多篇開發者文檔內容,包括技術開發、應用實踐等。

2021 年,我們會繼續保持高頻的技術沙龍活動,從實踐實操、項目案例的角度,持續分享開發經驗,更好地幫助開發者項目落地。我們也將推出一系列激勵扶持與共同發展計劃,例如針對企業的商機共享、品牌傳播、官方技術方案指導等;針對個人開發者的培訓認證、技術社區榮譽、獎品獎金等,來更好推動社區發展。

同時,我們會建設更完備的社區管理機制,為開源社區推薦貢獻方向、迭代流程等,幫助開發者更好的參與社區貢獻,讓更多優秀的項目回流到開源社區。

立足當下、布局未來。未來,XuperChain 也將不斷鉆研創新,攻克區塊鏈核心技術方向;不斷加大開源力度,讓區塊鏈開發者、企業零成本使用更高性能、更易用的區塊鏈技術;不斷加大開源社區建設,構建更溫暖、更開放的社區,與廣大開發者共建區塊鏈開源生態。

segmentfault 思否

查看原文

贊 10 收藏 0 評論 0

王治治 發布了文章 · 1月27日

傳余承東將負責華為云與計算 BG,任命將在 2 月對外宣布

據知情人士透露,余承東將負責華為云與計算 BG,該項任命將在 2 月對外宣布。此消息已獲得多方證實,但華為方面目前暫無回應。


如知情人士透露的消息顯示,華為內部發文進行了多項人事調整,現任消費者 BG CEO 的余承東,本次擬增任命 Cloud &AI BG 總裁(兼)、Cloud & AI BG 行政管理團隊主任、增任命 Cloud BU總裁(兼)、Cloud BU 行政管理團隊主任。

對于此次人事調整,華為知情人士回應是,手機業務不賣,做大端云協同,余承東兼任華為云與計算總裁目的是為了強化以手機為入口的“端”與云計算的協同,進一步提升內部運作效率,將核心能力進一步整合,加強互聯網業務布局,促進生態發展。

一、「云與計算 BG」在華為的定位

2017 年 3 月,華為宣布成立專門負責公有云的 Cloud BU,當年華為高層喊出了“華為公有云必須三年超過阿里”的目標;隨后,華為將 IoT、私有云等多個產品線合并入 Cloud BU;并最終在 2020 年初成立了云與計算 BG,成為繼運營商 BG、消費者 BG 和企業 BG 之后的第四大 BG。

image.png

而從組織架構來看, Cloud & AI BG 旗下包括 Cloud BU、計算產品線(服務器等)、存儲與機器視覺產品線及相關服務業務。

華為官方也對 Cloud & AI BG 組織給出了官方的定義:

目標是對華為云與計算產業的競爭力和商業成功負責,承擔云與計算產業的研發、Marketing、生態、技術銷售、咨詢與集成使能服務的責任。圍繞鯤鵬、昇騰及華為云構建生態,打造黑土地,成為數字世界的底座。

二、被寄予厚望的余承東

被花粉稱為“余大嘴”的余承東,在加入華為的近 30 年中曾先后挽救過華為的無線部門、終端部門。無論是在 To B 還是 To C 市場,都有著帶領華為實現第一的經驗。

而在華為的云與計算 BG 中,云是最被華為寄以厚望的業務之一。但不可否認的是,在如今的云計算市場,華為云仍與阿里、騰訊存在差距。

在對未來的展望方面,華為方面曾表示,從芯片到數據中心、從 IT 基礎設施到云服務、從邊緣計算到云計算,華為充分整合“5G+云+AI”優勢資源,全面提升華為云的全棧能力。

此次之所以讓余承東兼任云與計算 BG 總裁,可能也是為了補足華為自身生態的短板,將核心能力進一步整合,加強互聯網業務布局,促進生態發展。

image.png

查看原文

贊 2 收藏 0 評論 0

認證與成就

  • 認證信息 SegmentFault 技術編輯
  • 獲得 289 次點贊
  • 獲得 1 枚徽章 獲得 0 枚金徽章, 獲得 0 枚銀徽章, 獲得 1 枚銅徽章

擅長技能
編輯

(??? )
暫時沒有

開源項目 & 著作
編輯

(??? )
暫時沒有

注冊于 2020-04-01
個人主頁被 34.8k 人瀏覽

一本到在线是免费观看_亚洲2020天天堂在线观看_国产欧美亚洲精品第一页_最好看的2018中文字幕 <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>