品牌名稱
小鵬汽車
所在行業
零售
企業規模
10000人以上

小鵬自動駕駛用 Zadig 云端協同,降低運維 80%工作量

614次閱讀
小鵬成立于 2014 年,是一家專注研發未來出行的科技公司,用科技創造豐富多彩的出行生活。自動駕駛中心是公司核心中心,致力于構建數據平臺全棧自研和數據閉環迭代的能力,為此我們擁有一支多元化創新性人才團隊。
作為自動駕駛中心大數據部門 SRE 團隊,為自動駕駛大數據業務的高速迭代提供強有力的技術支撐,促進公司的技術創新和產品迭代。
 
挑戰分析和方案思考
 
從早期的研發到現在的 SRE 工程師,變化的是從基礎設施能力的使用者,轉變為基礎設施能力的構建者。云原生概念讓我感受較深,很多企業各條業務線都選擇上云并致力于構建云原生能力,隨之業務應用架構也會應變來追求更高的迭代效率,以及更強的穩定性建設。
CI/CD 作為提高軟件迭代效率的重要環節之一,起初我們部門使用 GitLab + Jenkins 腳本配置+ 一部分的自動化模式來構建,這個過程中也面臨諸多痛點。隨著業務的迅猛發展產生越來越多的 Jenkins Job,碎片化腳本導致管理和維護成本過高。
對于交付端混合場景,其部署和運維復雜度都較高,隨著項目的增多,以下痛點尤為明顯:
  • 上線資源設備只能人工確認,資源設備沒有統一的管理平臺。
  • 研發排查問題困難,對于服務進行診斷,每有一個資源設備都需要給研發單獨分配 SSH 權限,管理成本巨高。
  • 開發 debug 過程需要登錄統一的內網主機使用 Kubectl 操作,權限不可控,風險大。
  • 對于新上項目,面對不同的使用場景,需要創建多條 Jenkins Job,配置繁瑣,維護負擔重。
基于此,讓我們不得不重新思考是否需要迭代一套新的 CI/CD 體系,其中我們調研了 ArgoCD、Tekton 等方案,它們的功能點都較為豐富,并且易于擴展,但是基于它們,我們內部需要花較長時間來構建上層體系,周期較為長。我們亟待建設應用構建與運營一體、權限管控、多環境管理以及效能洞悉等工程能力。
在調研其中,Zadig 開源平臺是從朋友處了解到,然后我們就嘗試去了解與試用。KodeRover 團隊把構建與部署原本繁瑣的操作做的簡單明了,讓使用者或者流程構建者不用太費精力去構建繁瑣的步驟,大部分操作都在一個平臺完成,并且豐富的權限管控以及多集群接入等等功能能很好滿足我們的需求。在完成調研后,我們選擇 Zadig 作為我們下一階段的 CI/CD 體系建設的重要組件。落地和實踐過程
由于我們大數據部門有大量的采集車,需要對采集車的采集軟件平臺進行管理以及版本發布,同時內部有很多平臺軟件,最終我們采用 Zadig 的主機和 Helm 兩種方式接入。Zadig 的主機管理方式可以批量管理我們的采集車軟件平臺,而大數據部門內部的所有平臺軟件都通過 Helm 方式接入管理,形成了較為統一的 GitLab + Zadig 的管理模式。以下我們對兩種接入方式的看法與了解
Zadig 的主機方式:
  • 支持系統主機管理的同時支持了項目級別的主機管理,項目成員可以自己上下線資源設備
  • 主機管理支持強大的探活機制(TCP/HTTP 協議),精準檢測資源設備是否在線
  • 服務可以查看到關聯的主機資源,支持登錄主機,方便開發登錄資源設備診斷問題
  • 完備的權限控制,極大降低了管理成本,實現安全風險可控
Helm 場景接入服務
由于我們微服務體量比較可控,根據 Zadig K8s Helm Chart 教程我們很快搭建起來基礎的項目環境和工作流,然后采用 K8s 集群拓展不同的測試環境(dev/staging) 來滿足不同團隊的環境需求。通過 Zadig 環境管理,給研發提供統一協作平臺:
截至目前,Zadig 已經全面推廣了,基本上覆蓋了 90% 以上業務,研發非常喜歡使用,涵蓋了國內和北美團隊的工程師日常開發、測試、驗證工作。
 
當前的成果及未來計劃
在我們場景下,主要有以下的亮點,讓工程師日常工作極其便利:
  • 統一協作平面:不需要切換各種平臺和系統,通過 Zadig 提供統一的開發者入口,只要通過代碼觸發和日常環境的協作就能完成大部分工程師的日常工作。
  • 環境隨時取用:在 Zadig 上一鍵創建 dev 和 staging 環境,在不同的集群上隨時幾分鐘復制環境,隨時滿足自測需求
  • 日常開發過程更便利:直接在 Zadig 上查看服務的狀態、服務日志、登錄到容器中排查診斷問題,減少多平臺切換
  • 高并發工作流觸發:在 Zadig 上觸發多服務的構建,研發更新服務更方便,不需要額外維護工作流的負擔。

截至目前,已有 11 個集群,44 個項目、三百多個服務接入 Zadig,滿足工程師日常代碼驗證的需求。

undefined

對于未來計劃,由于我們有北美的同事,期待 Zadig 可以支持英文版 i18n。