執行器
GitHub Actions 的歐洲執行器
在 CRACI 的執行器上執行您的 GitHub Actions 作業:位於歐洲的裸機基礎設施、由歐洲公司維運、速度約為 GitHub 託管執行器的兩倍,並記錄每次建置取用的內容。GitHub 仍是您的控制平面。本頁將清楚說明這代表什麼。
更新日期
歐洲執行器會改變什麼,又不會改變什麼
GitHub Actions 管線由多個層級組成,每一層都可以位於不同的地方。 CI 執行器只是其中一層:也就是作業執行的那台機器。以下列出三種常見架構中,每一層由誰維運、位於何處。
| 層級 | github.com 上的 GitHub 託管執行器 | 具歐盟資料落地的 GitHub Enterprise Cloud | CRACI 執行器 |
|---|---|---|---|
| 儲存庫與原始碼儲存 | GitHub;github.com 預設將資料儲存在美國 | GitHub,位於歐盟區域 | GitHub,與您目前的架構相同。CRACI 在作業的虛擬機器中處理程式碼,且不會儲存程式碼 |
| 協調、工作流程執行記錄、日誌、檢查介面 | GitHub | GitHub;Actions 資料與日誌儲存在歐盟區域 | GitHub,與您目前的架構相同 |
| 機密儲存 | GitHub | GitHub | GitHub;作業開始時傳送給 CRACI 執行器 |
| 建置執行 | Microsoft Azure 上的 GitHub 託管執行器,部分標準 Linux 作業使用 AWS;未說明區域 | 透過 Azure 私人網路,在歐盟 Azure 區域執行的託管執行器 | 在歐洲裸機基礎設施上執行的 CRACI 執行器 |
| 建置取用內容的記錄 | 不記錄 | 不記錄 | SBOM 與網路追蹤記錄,由 CRACI 保存,託管於歐洲 |
來自 actions/upload-artifact 的建置產物 |
GitHub | GitHub;Actions 資料儲存在歐盟區域 | GitHub,與您目前的架構相同 |
| 由誰維運 | GitHub(Microsoft 旗下公司) | GitHub(Microsoft 旗下公司) | 控制平面由 GitHub 維運;執行器由芬蘭公司 CRACI Corporation Oy 維運 |
簡單來說:使用 CRACI 時,建置期間會接觸到您程式碼與機密的運算資源在歐洲執行,並由歐洲公司維運;建置引入的每個套件的記錄也是如此。GitHub 仍保存程式碼並協調作業。CRACI 取代的是執行器,而不是 GitHub Actions。
資料落地不等於主權
資料落地關注的是資料儲存與處理的位置。主權則多了兩個問題:由誰控制資料,以及該方適用哪個法律,包括哪個司法管轄區能強制維運者交出資料。由歐洲以外公司經營的歐洲資料中心,提供的是資料落地,而不是主權。哪些司法管轄區與您的情況相關,應由您的法律顧問判斷,而不是執行器廠商。
經得起稽核的判斷原則:列出上表中的每一層,寫下由誰維運、在哪裡執行,再與您的要求比較。如果要求只涵蓋建置在哪裡執行、建置資料存放在哪裡,歐洲執行器就能滿足。如果要求涵蓋控制平面或程式碼儲存,單靠執行器無法做到。
您在歐洲的選項
| 選項 | 在歐洲執行的部分 | 由誰維運 | 限制 |
|---|---|---|---|
| 具資料落地的 GitHub Enterprise Cloud(GHE.com) | 程式碼與 Actions 資料位於歐盟區域;託管執行器透過 Azure 私人網路在歐盟 Azure 區域執行(x64 位於 France Central 與 Sweden Central,arm64 位於 France Central) | GitHub | 僅限 Enterprise Cloud;需另設 GHE.com 企業帳戶 |
| CRACI | 在歐洲裸機基礎設施上的代管 Linux 執行器,並包含建置佐證資料 | 歐洲公司 CRACI Corporation Oy | 目前僅支援 GitHub Actions 與 Linux |
| Ubicloud | 在其位於德國與芬蘭的歐洲區域提供 GitHub Actions 執行器 | Ubicloud,在 San Francisco、Amstelveen 與 Istanbul 設有辦公室 | Ubuntu 執行器 |
| Avrea | Avrea 列出的託管供應商包括 Aiven、Google Cloud 與 OVHcloud,並請客戶與其討論資料位置需求 | Avrea,創立於 Helsinki | 資料位置需與 Avrea 協議,未依區域公開 |
| Blacksmith | 除了美國之外,也在 Amsterdam 與 Frankfurt 設有機器;組織可要求移至其他區域 | Blacksmith,其控制平面位於 AWS | 機器位於歐洲,但維運者不是歐洲公司 |
| 歐洲雲端上的自架執行器 | 您的執行器位於歐洲供應商的伺服器上,使用 Actions Runner Controller 或一般虛擬機器 | 您自己 | 修補、隔離與擴充都由您負責 |
| 歐洲託管環境上的另一套 CI 平台 | 全部,包括控制平面:自行管理的 GitLab,或 Forgejo、Gitea 執行個體 | 您自己或您的託管合作夥伴 | 這是 CI 遷移,而不只是更換執行器 |
一對一的詳細比較請參閱 CRACI vs Ubicloud、 CRACI vs Avrea 與 CRACI vs Blacksmith;更廣泛的比較請參閱 GitHub Actions 執行器供應商比較。若您正在考慮自行執行,請參閱代管與自架執行器的比較。
CRACI 在歐洲執行的內容
- 託管於歐洲的代管執行器。建置在歐洲的裸機基礎設施上執行,由 CRACI Corporation Oy 維運。CRACI 目前提供代管執行器;由客戶自行託管的執行器已列入產品藍圖。
- Enterprise 方案提供歐盟資料落地。Enterprise 方案列有歐盟資料落地,以及自訂保留期限與 SAML SSO。
- 隔離。每個作業都在各自獨立的虛擬機器中執行。
- CRACI 會保存什麼、不會保存什麼。CRACI 在作業的虛擬機器中處理您的原始碼,且不會儲存原始碼。它會保存建置中繼資料、套件資料、網路追蹤記錄、SBOM、來源證明、快取與稽核記錄。快取中保存的是您的工作流程存入的任何內容。
- 固定的對外連線 IP 範圍,可用於您的建置所連線服務的允許清單。
- 認證。CRACI Corporation Oy 針對 CRACI 平台開發與營運的資訊安全管理系統,已由 Into Certification 驗證通過 ISO/IEC 27001。CRACI 符合 GDPR。
資安審查所需的詳細資訊,請參閱資安、 Trust Center 與 CRACI 能存取哪些內容。
為何值得移動建置層
即使 GitHub 保持不變,執行器仍是最值得優先移動的一層。您的程式碼在這裡帶著機密進行編譯,第三方套件也從這裡進入您的產品。在歐洲基礎設施上執行,能讓這些執行過程,以及其取用的每個套件的記錄,都留在由歐洲公司維運的基礎設施上,而不是美國超大規模雲端業者的運算資源上。
這份記錄同時也是佐證資料。CRACI 在失效即封鎖(fail closed)的對外連線政策下,將每個作業的相依套件記錄為附有完整性狀態的 SBOM,並持續監控其中是否出現新漏洞。 Cyber Resilience Act 等歐洲法規,正越來越常要求製造商提供的正是這類記錄。
遷移只需更改一個標籤:runs-on: craci。由於硬體更快、排隊時間更短並搭配快取,CRACI 的建置速度約為 GitHub 託管執行器的兩倍,且只收取建置分鐘數費用:每 vCPU 分鐘 $0.002(預設 2 vCPU 執行器為 $0.004),按秒計費,無月費。請參閱
CRACI 的執行器、價格方案與
如何更換執行器供應商。
何時 CRACI 不是答案
- 您的要求涵蓋控制平面或程式碼儲存。歐洲執行器並不足夠。您需要在歐洲使用自行管理的 GitLab 或自行託管的程式碼代管平台;請參閱 GitLab 替代方案。CRACI 目前僅支援 GitHub Actions,GitLab CI 與 Jenkins 已列入產品藍圖。
- 執行器必須在您自己的硬體或雲端租戶中執行。由客戶自行託管的 CRACI 執行器已列入產品藍圖,目前尚未提供。
- 您需要在歐洲進行 macOS 或 Windows 建置。CRACI 目前在 x86-64 與 ARM64 上執行 Linux,Windows 與 macOS 已列入產品藍圖。
- 您需要每分鐘最低的價格。其他歐洲選項的牌價更低。
歐洲 GitHub Actions 執行器:常見問題
GitHub Actions 建置可以在歐盟執行嗎?
可以。建置會在執行器所在的位置執行,因此位於歐洲基礎設施上的執行器,就會在歐洲執行您的建置。您可以向 CRACI 等代管服務供應商取得執行器,也可以使用具資料落地功能的 GitHub Enterprise Cloud(可將託管執行器放在歐盟的 Azure 區域),或在歐洲雲端上執行自架執行器。
有歐洲的 GitHub Actions 執行器供應商嗎?
有。CRACI 是一家歐洲公司,其 GitHub Actions 代管執行器在歐洲的裸機基礎設施上執行。其他供應商也在歐洲設有機器;請同時確認機器所在位置,以及由哪家公司維運。
如果我的執行器在歐盟,我的 CI 就具有主權嗎?
單靠執行器還不夠。歐洲執行器移動的是建置的執行,以及建置取用內容的記錄。GitHub 仍會儲存程式碼、機密、日誌與建置產物,並協調每個作業。若要讓 GitHub 完全退出,您需要在歐洲託管環境上使用另一套 CI 平台。
使用歐洲執行器時,哪些資料仍留在 GitHub?
儲存庫、工作流程檔案、機密儲存區、工作流程執行記錄與日誌、檢查介面,以及透過 actions/upload-artifact 上傳的建置產物。作業執行期間,執行器會收到程式碼與該作業的機密。CRACI 在作業的虛擬機器中處理您的程式碼,且不會儲存程式碼。
GitHub 是否為 Actions 提供歐盟資料落地?
在託管於 GHE.com、具資料落地功能的 GitHub Enterprise Cloud 上,您可以選擇歐盟區域,GitHub 會將儲存庫及 Actions 的資料與日誌儲存在該區域。其託管執行器可透過 Azure 私人網路在歐盟的 Azure 區域執行。不過維運者仍是 GitHub,且此方案僅提供給 Enterprise Cloud 客戶。
歐盟資料落地與主權有什麼不同?
資料落地關注的是資料儲存與處理的位置。主權則進一步關注由誰控制資料,以及該方適用哪個法律。由歐洲以外公司經營的歐洲資料中心,提供的是資料落地,而不是主權。請列出管線的每一層、由誰維運以及位於何處,再與您的要求比較。