fbpx

HashiCorp VaultㄧGithub 在 Vault 的陪伴下成為全球首屈一指的開源社群

全球最大的開發者協作平台使用 HashiCorp 解決方案來鞏固內部流程,並以更低的成本與更快的速度提供重要功能。

github-vault

公司介紹

GitHub 是專為開發者打造的公司。作為全球超過 6,500 萬開發者的家園,GitHub 是開發人員可以建立、共享和發布最佳代碼的地方。GitHub 使協作、解決問題和技術交流變得更容易。
 

面臨營運中的障礙

對於為全球超過 6,500 萬用戶服務的最大、最先進的開發者協作平台 GitHub 而言,設定基礎架構以支援應用程式開發、協調各種雲環境的微服務並保持它們之間連接安全,可說是一項艱鉅的任務。


該公司自己的機密管理系統,需要手動設定組態和代碼來連接數百個應用程式和服務,同時手動管理密鑰和機密。對保護公司服務和應用程式機密所進行的任何更改,都意味著在與其連接的無數系統中更改和更新該機密。


負載平衡伺服器 (load balancing) 等其他核心項目同樣需要手動操作,而且非常耗時,這迫使團隊開發了軟體,為特定時刻可用的每台主機編寫固定配置。如果團隊想要添加服務容量或新服務,在某些情況下,他們首先必須為特定的負載平衡器添加新配置,這可能會對整個團隊造成負面影響。


GitHub 基礎架構第二負責人 Scott Sanders 說:「在過去,我們使用一系列自己開發的系統來做機密管理及負載平衡等所有事情,這需要跨數百個服務和數千個節點進行大量整合和制定編碼。」「但隨著我們開始增加更多應用程式、更多節點和更多用戶,這種模式變得難以維持。我們需要一種更高效、更標準、自動化的方式來支援不斷增加的用戶。」 


 「Terraform 幫助我們的開發團隊建立了一個自助服務的商業模式。它省去追蹤審查和批准的過程,因此減少了開發人員間的摩擦。」— Scott Sanders
 

挑戰

  • 擴展後端基礎架構以滿足不斷增長的用戶需求
  • 消除耗時的手動基礎架構配置、服務匹配和機密管理
  • 使開發人員能依需求自行建立基礎架構

為何選擇 Harshicorp ?

一勞永逸的管理模式

隨著 GitHub 繼續進行戰略性基礎架構投資以配合平台的發展,有機會以更靈活和敏捷的方式來發展其先前的技術。這一轉變側重於提供一流的開發人員體驗,將使其成為支援跨雲和平台的優良解決方案。


GitHub 採用 HashiCorp Terraform、Consul Vault,因為該團隊希望用最佳的開源工具,以幫助公司擴展其後端營運,滿足其內部工程團隊和依賴 GitHub 產品的客戶需求。GitHub 想把時間花在如何擴展他們的產品,而不是花在企業內已解決的問題上。


更明確地說,該公司需要成熟、經過驗證的工具,且這些工具需有一系列自動化功能,可以與 Azure、AWS 和 Google Cloud 上的 workloads 流暢協作。
 
「我們知道,我們絕對希望基礎架構和機密管理工具可以自己運行,且具有強大自動化功能,易於設定和配置,」Sanders 説。 「HashiCorp 解決方案直觀、易於使用,並且在初始設定後可以繼續運作,讓我們能夠專注在更高價值的事務。」
 
該公司的軟體工程師 Aaron Brown 表示,GitHub 工程師使用 Terraform 模組之後,讓開發人員在管理 AWS 和 Azure 雲資源方面變得更容易和簡單。為此,Terraform 提供了 workloads 和配置原語 (primitives),與團隊管理其資料庫和 AWS 資源的方式相匹配。現在,當團隊在其各種雲和自己的內部資料中心中使用裸機和虛擬主機建立基礎架構時,團隊成員可以選擇擁有和運行他們的雲資源,或者在基礎架構團隊管理的環境中運行。


「幾乎我們所有的主機,包括資料中心的主機,都由 Terraform 管理,且無論是 Azure、AWS 還是其他平台,都以相同的方式建立,」Brown 說。「Terraform 幫我們的開發團隊建立了一個自助服務的商業模式,因為他們可以使用 Terraform 基礎架構配置模板來配置他們需要的任何東西。或者他們可以來找我們,讓我們去做。它減少了開發人員的摩擦,因為省去了追蹤審查和批准的過程。」


同時,Consul 重要的價值儲存功能是團隊如何處理入職和離職服務的基本工具。這個意外發現的解決方案部署到數千台主機,將註冊服務集中化,並在 GitHub 的各種雲和私有資料中心的主機之間自動進行服務探索,甚至啟動維護狀態,從而大幅簡化和加快服務的連接。


此外,Vault 取代了手動機密管理功能,只要部署應用程式,就會自動導入機密 —— 管理憑證和權限。當公司運行數十個 Kubernetes 集群時,Vault 的公鑰基礎架構 (PKI) 非常有用,這些集群以前是用指令在管理的。Vault 會動態生成機密,使 GitHub 能夠自動化操作,並每天管理數十萬個機密請求,從而節省寶貴的時間和資源。與其要求整個團隊拉高自身的機密解決方案水準,不如讓他們從事更大、更有挑戰性的項目。


此外,GitHub 的資安團隊使用 Vault 的憑證管理來管理權限,確保只有擁有特定權限的團隊能訪問機密。
 

優先考慮安全性、效率和可靠性

Sanders 指出,擁有流暢、一流的開發者體驗非常重要,尤其當新的工程師入職時,他們對內部開發的解決方案不太熟悉。由於該技術平易近人且操作方式在公司內皆可查看,因此團隊能夠節省成本和時間,讓開發人員快速上手。它還藉由自動保護關鍵連接點和高敏感資料,以加強公司的合規性和安全,這對於平台有大量私人資訊和專有資料的公司來說是不可或缺的。


採用 HashiCorp 解決方案還為公司的日常營運帶來很多改善。「以前,部署一個新服務需要向不同的資源庫提出請求,且需要為每個主機發布至少一個配置指令,」Sanders 説。「有了 Consul 的模板和內建負載平衡配置,過去需要 30 分鐘才能完成所有手動步驟來為新服務重建負載平衡配置,現在則不用一分鐘。」


Brown 補充說,Terraform 也提供了類似的好處。「在 HashiCorp 之前,新應用程式的原始模型和開發過去需要幾天時間才能將其帶到主機,對其進行負載平衡,然後注入秘密 —— 只是為了達到最低的產品可用標準,」他說。「有了 Terraform,整個過程現在不用一個小時,當我們追蹤數百個不同的內部服務時,所節省的每一分鐘都非常珍貴,讓我們能更專注於工程方面的事務。」


GitHub 發現的另一個好處是 Terraform 的可擴展性。Terraform 的擴展性讓他們可以使用已經在雲環境用到的類似工作流程和架構,這對他們管理其內部資料中心的基礎架構來說非常有效,他們也能將此功能延伸到 GitHub 其他的工程部分。
Sanders 強調,「HashiCorp 解決方案讓我們能夠審視龐大的 OSS 工具生態系統,以解決 GitHub 的問題,然後將它們組合成解決方案,當作我們營運及如何在 GitHub 建立基礎架構的基石。」
 

成果

  • 標準化開源解決方案,以支援多雲環境
  • 降低入職和培訓開發人員的成本和工作量
  • 在數百個服務和數千個節點上進行自動化服務和機密管理
  • 將負載平衡配置時間從 30 分鐘減少到 1 分鐘以內

相關文章