殼牌公司是如何在Kubernetes上不到一天就建立了1萬個AI模型的?

語言: CN / TW / HK

現在,殼牌能夠在2個小時而不是4個星期就可以建立數千個機器學習模型,同時能夠有效縮短程式碼的編寫時間,從2個星期縮短到4個小時。

  1  

向綠色和可再生能源擴充套件

在2015年的聯合國氣候變化大會上,195個國家簽署了《巴黎協定》,這是一項在全球範圍內減少溫室氣體排放的協議。該協議的長期目標是將全球溫度的上升限制在工業化前水平的2攝氏度以下,並最終在21世紀下半葉達到全球淨零排放。隨著全球電力消耗預計在2050年翻倍,許多組織已經開始過渡到成為淨零排放企業。

以石油巨頭著稱的殼牌公司近年來已將其重點從化石燃料擴充套件到綠色和可再生能源,如風能和太陽能。據殼牌公司機器學習平臺技術主管Alex Iankoulski說,該公司的目標是在2030年前通過其可再生和能源解決方案倡議(以前的新能源)為發展中國家的1億人提供可靠的電力供應。

殼牌正在投資於低碳技術,包括風能和太陽能等可再生能源,電動汽車充電和氫氣充電等移動性方案,以及互聯的電網。殼牌正在為其新能源業務每年投資多達20億美元,該業務專注於開發更清潔的能源解決方案。

——Alex Iankoulski,Shell

為了有效運營其可再生和能源解決方案,包括向客戶分配電力,殼牌需要一個智慧、快速和靈活的控制系統。更重要的是,該系統必須能夠利用人工智慧(AI),以便有效地管理計算和儲存資源。

殼牌公司的能源供應鏈

殼牌公司依靠Arrikto的MLOps平臺來使用Kubeflow,這是一個開源專案, 旨在使Kubernetes上的機器學習(ML)工作流可移植和可擴充套件 。此外,建立在Kubernetes之上將使殼牌公司能夠在容器的幫助下快速啟動和關閉環境。“Kubernetes和機器學習的結合實際上是天作之合,”Arrikto的社群和營銷副總裁Jimmy Guerrero解釋說。

首先, 容器允許我們在膝上型電腦上建立測試和試驗機器學習模型 。我們非常清楚,我們可以使用容器將這些相同的模型帶到生產中。這裡的想法並不新鮮——我們想一次編寫,複製,然後到處執行。

其次, 膝上型電腦上的機器學習工作流程可能完全用一種語言編寫 ,比如說Python,但當我們把這些模型帶到生產中時,我們可能會想與各種不同的服務和應用程式進行互動。這些都是像資料管理、安全、前端視覺化等方面的東西,在這裡我們可能想採用一個基於微服務的架構。在這裡,對我們來說用Kubernetes來實現是一件輕而易舉的事情。

——Jimmy Guerrero,Arrikto

然而,大規模部署人工智慧並非沒有問題。根據Alex的描述,在為殼牌的可再生和能源解決方案建立基礎時,存在多種技術挑戰。

  • 基礎設施需要是雲原生的且與雲廠商無關的。通過這種方式,如果平臺必須在不同的雲服務上或同時在多個雲服務上執行,程式碼就不需要重寫了。

  • 部署必須是可重複的、可審計的和可逆的,使開發人員能夠檢查公司系統中執行的內容以及它是如何被部署到那兒的。

  • 擴充套件性要保證系統能夠執行在各種不同大小規模的硬體和叢集中。軟體應該在一臺膝上型電腦上和大型雲服務中執行良好。

  • 工具應該是基於網路和自我服務的,使運營團隊能夠專注於自動化,而不是重複的手工任務。

  • 計算資源必須是動態分配的。在計算資源上執行的工作負載應該是有彈性的和可重複的。

  • 儲存必須是高速和具有成本效益的,以實現儲存和計算資源的解耦。

  • 資料在任何時候都是安全的,但對授權使用者是可用的。它還應該是版本化的,因此可以跟蹤變化並在必要時進行恢復。安全必須是端到端的企業級。

  • 編排必須是透明的,不會對使用者造成干擾。

  2  

在Kubernetes上執行

殼牌在Amazon Elastic Kubernetes Service(EKS)上為其可再生能源和能源解決方案部署了基礎設施。Kubernetes API是用於編排工作負載的通用語言,與雲服務無關。

Arrikto的首席技術官和聯合創始人Vangelis Koukis指出,通過實施GitOps方法,團隊可以以可重複的方式在不同的Kubernetes叢集之上進行部署。

一切都從Git倉庫開始。我們選擇不使用kfctl工具,所以我們可以用最簡單的Kubernetes原生的應用清單的方式進行部署。因此,我們支援帶回滾的無縫升級。

——Vangelis Koukis,Arrikto

通過GitOps部署

GitOps將基礎設施作為程式碼,基礎設施的狀態對應於倉庫中的提交。

利用MicroK8s等工具,輕型工作負載可以在一臺膝上型電腦上執行。對於較重的工作負載,亞馬遜EKS會根據需求自動進行無縫擴充套件。

通過GitOps升級

通過遵循DevOps模式,工具被轉移到左邊,使開發人員能夠執行他們自己的Visual Studio程式碼伺服器,在Git儲存庫中管理程式碼,並最終在Kubeflow上執行工作負載。

為了使計算資源具有彈性和可重複性,團隊在Kubernetes Pods內使用基於Docker映象的容器。

  3  

資料管理和安全性

通過將儲存從亞馬遜彈性檔案系統(EFS)轉移到使用Arrikto的資料管理平臺Rok提供的本地和掛載檔案系統,團隊可以生成成千上萬的特定時間點的快照,為工作負載提供端到端的可重複性。

我們來以一個時間機器為例。假設我們對notebook伺服器每10分鐘快照一次。你可以回到過去,重現你執行的所有實驗的資料。快照也可以發生在一個管道的每一步,所以你可以確切地知道是什麼系列的事件導致了一個特定模型的產生。於是,你可以調查任何結果的偏差。

——Vangelis Koukis,Arrikto

使用Rok,團隊可以在不同地區的多個叢集中管理儲存。Vangelis解釋說,每個叢集作為一個本地獨立的物件儲存。Rok Registry能夠建立具有細粒度訪問控制的私有和公共組。

與Rok共享資料集和環境

在效能方面,與100GB的亞馬遜EFS例項相比,使用非易失性儲存器標準(NVMe)固態硬碟(SSD)的標準m5d.4xlarge例項的每秒讀取輸入/輸出操作(IOPS)超過10倍,寫入IOPS為400倍。

本地儲存更快

至於安全問題,團隊實施了單點登入(SSO)、單點登出(SLO)、集中認證、基於名稱空間的隔離和共享名稱空間。

帶有SSO/SLO的端到端安全

此外,利用OpenID Connect(OIDC)AuthService,該團隊將Kubeflow擴充套件為OIDC客戶端。OIDC AuthService與Istio和Envoy代理緊密結合。

實施Kubeflow安全

  4  

利用Kubeflow進行快速建模

有了Kubeflow,團隊可以快速建立模型,並利用資料幫助優化與殼牌的可再生和能源解決方案有關的操作。據殼牌的首席資料科學家Masoud Mirmomeni說,Kubeflow給公司帶來了三大優勢。

首先,Kubeflow提供了一個自助服務模式,使資料科學家能夠獲得計算能力和儲存,以及在安全的雲環境中使用預配置的ML工具包。

現在,我們可以擁有所有這些基礎能力,從零開始輕鬆地做機器學習專案。如果你想用老式的方法做這件事,那將需要幾周甚至幾個月的時間。現在,我們可以在幾分鐘內做到這一點。

——Masoud Mirmomeni,Shell

其次,在Kubeflow自動管線引擎(KALE)的幫助下,資料科學家可以簡單地將他們的程式碼傳遞給運營團隊。這減少了將ML程式碼推向生產所需的時間。

第三,由於殼牌使用的是Kubernetes,計算和儲存的資源很容易被共享。例如,Notebooks伺服器使用的計算能力受到監控,當資源閒置時,它們會被釋放,並可用於其他工作負載。

殼牌公司機器學習工作流程的一個例子

Kubeflow將為資料科學家和機器學習工程師創造非常高效的平臺,以進行合作,分享想法,並從他們自己的專案和經驗中學習。它還將通過有效地管理計算和儲存資源來降低模型建設的成本。

——Masoud Mirmomeni,Shell

通過Kubeflow,殼牌大大減少了資料科學家和ML工程師建立模型的時間。以前,建立10,000個模型所需的時間將涉及兩週的編碼和四周的執行。現在,該團隊可以在不到四個小時內編寫程式碼,並在兩個小時內建立所有模型。

推薦閱讀 點選標題可跳轉

《Docker是什麼?》

《Kubernetes是什麼?》

《Kubernetes和Docker到底有啥關係?》

《教你如何快捷的查詢選擇網路倉庫映象tag》

《Docker映象進階:瞭解其背後的技術原理》

《教你如何修改執行中的容器埠對映》

《k8s學習筆記:介紹&上手》

《k8s學習筆記:縮擴容&更新》

《Docker 基礎用法和命令幫助》

《在K8S上搭建Redis叢集》

《灰度部署、滾動部署、藍綠部署》

《PM2實踐指南》

《Docker垃圾清理》

《Kubernetes(k8s)底層網路原理刨析》

《容器環境下Node.js的記憶體管理》

《MySQL 快速建立千萬級測試資料》

《Linux 與 Unix 到底有什麼不同?》

《淺談幾種常見 RAID 的異同》

《Git 筆記-程式設計師都要掌握的 Git》

《老司機必須懂的MySQL規範》

《Docker中Image、Container與Volume的遷移》

《漫畫|如何用Kubernetes搞定CICD》

《寫給前端的Docker實戰教程》

《Linux 作業系統知識地圖2.0,我看行》

《16個概念帶你入門 Kubernetes》

《程式設計師因接外包坐牢456天,長文敘述心酸真實經歷》

《IT 行業老鳥,有話對你說》

《HTTPS 為什麼是安全的? 說一下他的底層實現原理?

免責宣告:本文內容來源於網路,所載內容僅供參考。轉載僅為學習和交流之目的,如無意中侵犯您的合法權益,請及時聯絡Docker中文社群!