Infra即資料與Infra即程式碼:有什麼區別?

danny_2018發表於2022-06-01

Kubernetes帶來的最大挑戰之一是在不同的雲和內部部署環境中部署微服務和應用程式。正如後端開發人員和運維團隊所知,配置和管理不同的環境仍然主要是一個手動過程,不僅對於主要的應用程式部署,對於任何程式碼、應用程式、微服務、安全性或其他更新都是如此。

因此,為了減輕運維和後端開發人員的負擔,簡化和自動化此過程是一個高度優先事項。

最終,團隊應該能夠透過單個介面在多雲環境、Kubernetes叢集和內部部署環境中無縫輕鬆地部署應用程式、微服務或更新。對於Ops工程師來說,這將是多雲和雲原生計算的聖盃。

最近,VMware工程師將開源基礎設施即資料Idem專案引入,由SaltStack的創始人兼技術長Tom Hatch領導,以幫助實現這一目標。

由此產生的開源工具是為了減少與為每個雲部署和API編排大量程式碼庫相關的巨大複雜性,使其成為一種由資料組成的格式,專案建立者表示,人類可以輕鬆理解和管理這些資料。

其建立者表示,Idem代表為雲配置的基礎設施即資料(IaD),因為它將雲配置簡化為資料。它的設計使雲配置變得更易於為應用程式部署進行配置和管理。

但在許多方面,Idem的創作者希望達到的最終結果與紅帽的Ansible據稱為IaD提供的結果非常相似。Ansible的創始人Michael Dehaan在2013年為O'Reilly's Radar撰寫的文章中寫道,IaD基於“基於文字、中間和資料驅動的策略”,而不是將基礎設施建模為程式碼(IaC)或GUI。

“我稱之為‘基礎設施即資料’——用簡單的機器可讀資料格式描述系統的樣子。”Dehaan寫道,“讓程式執行這些資料格式,並確保你的基礎設施匹配。結果是,配置可以靈活,而且易於原型化、易於稽核和維護。”

然後是面向多雲和多環境資源調配的基礎設施即程式碼。隨著HashiCorp的開源Terraform(現在有數百萬個用例,是領先的IaC平臺)和Idem直接競爭的相關HashiCorp產品,許多使用者已經依賴IaC跨多雲和內部資料中心環境提供和管理應用程式。

在高層次上,基礎設施即資料工具(如VMware的Idem和Ansible)和基礎設施即程式碼(以Terraform為主),幫助DevOps團隊實現其目標,即簡化和自動化跨多雲和不同環境的應用程式部署,同時幫助減少手動配置和流程。

在這裡,我們將比較IaD和IaC,以及它們在某些情況下是如何相互補充的。

基礎設施即資料解決的問題

DevOps團隊繼續面臨著降低調配多個雲環境的複雜性的挑戰。

Enterprise management Associates分析師Torsten Volk表示:“CI/CD管道特定於程式碼庫的特性與雲原生應用程式開發的不變原則相沖突。DevOps工具鏈的每個元件都構成了一個潛在的整合點,需要設定、初始配置和管理。”。

“這就是為什麼我們需要特定於雲的基礎設施工程師團隊來研究如何在AWS、Azure、GCP等平臺上建立最佳的特定於應用程式的環境。”

Hatch說,就採用而言,Terraform“迄今為止擁有市場”。“當然,與Terraform競爭是一個需要攀登的大山。”他補充道,但使用基礎設施即程式碼與基礎設施即資料之間有很大的區別。

當雲架構需要使用程式碼來表達時,“你只是在編寫越來越多的Terraform。”他說,“Idem與你通常想的基礎設施即程式碼不同,一切都歸結為這些可預測的資料集。”

“你可以將Idem指向你的雲,而不是坐下來說,‘我要在Terraform中編寫一個雲’,它將自動生成所有資料、所有程式碼和執行時,以在當前狀態下強制執行。”

同時,Idem和Ansible在一定程度上都旨在使雲資源調配更加自動化和易於管理。

“雖然這聽起來很神奇,但Idem恰恰解決了許多Terraform使用者(開源和商業使用者)所表達的問題。”

“編寫傳統的任何型別的基礎設施即程式碼都會導致基礎設施程式碼層出不窮,需要不斷調整,以跟上雲API的變化、應用程式需求的變化以及整個業務環境的變化。”

改進基礎設施即程式碼工具

與此同時,HashiCorp透過Terraform的每個後續版本及其提供的相關工具,繼續完善和改進基礎設施即程式碼。Terraform的關鍵特性是HashiCorp聲稱的任何IT基礎設施的可擴充套件性。

IaC也是HashiCorp定義的Terraform中“基礎設施自動化”的一個元件,目的是:

採用基礎設施即程式碼。

為IaC的組合、協作和重用構建工作流。

根據安全、合規性和管理要求標準化工作流。

透過為終端使用者應用程式開發人員和交付團隊提供自助式基礎設施選項,提供創新。

HashiCorp產品營銷高階總監Meghan Liese表示:“Terraform在基礎設施層工作,而基礎設施即程式碼是提供自動化的最佳方式,可以從任何雲平臺、私有資料中心等提供任何基礎設施。”

“Terraform實際上是指運維人員能夠定義需要配置的基礎設施,以便開發人員可以在自助服務模型中使用。因此,在另一層,像Waypoint這樣的工具會說,‘嘿,開發人員,你將應用程式需求編碼,然後透過Waypoint執行,Waypoint將為平臺提供自助服務。’”

IaC和IaD的使用方式可能存在重疊。Liese沒有對Idem做出具體評論,但表示,在以基礎設施即程式碼跨多個環境提供基礎設施時,為基礎設施即資料使用Ansible可以補充Terraform。

Liese說:“Ansible和Terraform的建立者看到了相同的問題,兩者能很好地合作。我們與使用Terraform鋪設基礎設施和多次使用Ansible配置機器的組織合作。在這種情況下,隨著市場的不斷成熟,這些工具可能會提供一些重疊的功能。”

來自 “ 開源雲中文社群 ”, 原文作者:開源雲中文社群;原文連結:https://thenewstack.io/infrastructure-as-data-vs-infrastructure-as-code-whats-th,如有侵權,請聯絡管理員刪除。

相關文章