HashiCorp發(fā)布了一個(gè)Terraform推薦算法實(shí)踐指南來幫助那些希望擁抱云技術(shù)和架構(gòu)即代碼(IaC, Infrastructure as Code)的企業(yè)。其中提供了一個(gè)典型的推薦Terraform工作流(其中涉及到組織角色),還給出了一個(gè)“供應(yīng)成熟度模型(provisioning maturity model)”,同時(shí)它還提供了許多建議來指導(dǎo)企業(yè)如何從一個(gè)階段過渡到下一個(gè)階段來對(duì)當(dāng)前的實(shí)踐進(jìn)行演進(jìn)。該指南是由HashiCorp與Contino共同合作完成的。HashiCorp是諸多開源以及商業(yè)基礎(chǔ)架構(gòu)工具的創(chuàng)造者,例如:Terraform、Packer和Vault;Contino是HashiCorp系統(tǒng)集成的合作伙伴。
HashiCorp發(fā)表了一篇博客,該博客宣布了該指南的發(fā)布,并指出了基于云端的服務(wù)能夠使得開發(fā)團(tuán)隊(duì)更大程度地獨(dú)立于傳統(tǒng)基礎(chǔ)架構(gòu)的底層操作約束。然而,從傳統(tǒng)的私有數(shù)據(jù)中心的“機(jī)架”物理基礎(chǔ)設(shè)施遷移到軟件定義一切(Software Defined Everything,SDx)的數(shù)據(jù)創(chuàng)建和管理架構(gòu)中存在著技術(shù)上和組織上的雙重挑戰(zhàn)。比如說,通過編程API或SDK對(duì)計(jì)算資源進(jìn)行協(xié)調(diào)管理以及使用軟件定義網(wǎng)絡(luò)(SDN)和軟件定義存儲(chǔ)(SDS)。
HashiCorp Terraform使得工程師能夠以一種“安全的、可預(yù)測(cè)的”方式將基礎(chǔ)架構(gòu)指定為聲明性代碼、計(jì)劃以及供應(yīng)環(huán)境?,F(xiàn)在有許多關(guān)于使用Terraform來結(jié)構(gòu)化代碼以及合作的經(jīng)驗(yàn)報(bào)告和推薦的最佳實(shí)踐,包括Charity Majors的系列博客、 Yevgeniy Brikman的博客文章。后者是 O'Reilly系列書籍《Terraform: Up and Running》 的校對(duì)者以及修訂者。
然而,當(dāng)我們咨詢?nèi)魏瓮扑]的實(shí)踐時(shí),我們都該注意到,由于框架本身還在不斷地發(fā)展中,而昨天的推薦時(shí)間很快就會(huì)被融入到Terraform本身的工作流中,或者被視作一種不必要的解決方案用以克服對(duì)框架的誤解。
盡管Terraform是一個(gè)開源工具,但是也有商業(yè)級(jí)的Terraform企業(yè)產(chǎn)品,并且該指南聚焦于指導(dǎo)企業(yè)采用Iac(以及Terraform Enterprise)。然而,對(duì)于希望采用Iac方法來對(duì)云基礎(chǔ)架構(gòu)進(jìn)行管理的組織來說,其中仍然有許多有用的工作流和相關(guān)的推薦實(shí)踐。
該指南分為三個(gè)部分:
第一部分:推薦工作流概覽。該部分是對(duì)Terraform的代碼即架構(gòu)工作流的協(xié)作基礎(chǔ)架構(gòu)的整體概述。其中闡述了基礎(chǔ)架構(gòu)是如何被組織的、被管理的,并且闡述了人們是如何與其進(jìn)行交互的。 第二部分:評(píng)價(jià)你們目前的供應(yīng)實(shí)踐。這一部分提出了一系列問題來幫助大家評(píng)價(jià)一個(gè)組織的基礎(chǔ)架構(gòu)供應(yīng)實(shí)踐的狀態(tài)。該指南針對(duì)該問題提出了一個(gè)四階段基礎(chǔ)架構(gòu)成熟度模型。 第三部分:如何演進(jìn)供應(yīng)實(shí)踐。這一部分內(nèi)容講述了該如何利用四階段操作成熟度模型來提升供應(yīng)實(shí)踐。指南中的第一部分討論了將IaC引進(jìn)企業(yè)的組織上以及技術(shù)上的挑戰(zhàn),并且給出了規(guī)?;芾砘A(chǔ)架構(gòu)的四個(gè)主要角色:中心IT(Central IT),負(fù)責(zé)定義公共基礎(chǔ)設(shè)施和對(duì)應(yīng)的執(zhí)行策略;組織架構(gòu)師( Organisation Architect),定義全局基礎(chǔ)架構(gòu)是如何劃分和委托給業(yè)務(wù)部門的團(tuán)隊(duì)的;工作空間所有者(Workspace Owner),他們是擁有指定工作空間的個(gè)體,并且是領(lǐng)域內(nèi)生產(chǎn)變革的主要支持者;工作空間貢獻(xiàn)者(Workspace Contributor),他們通過將(非生產(chǎn))更新作為代碼配置,把該更改提交給工作空間。
它為每個(gè)角色都提供了推薦的實(shí)踐,它使用了一個(gè)工作空間的基本概念,工作空間表示的是需要運(yùn)行的東西的集合,例如:Terraform配置、變量以及狀態(tài)數(shù)據(jù),工作空間被用于管理以及代理控制。
指南中的第二部分闡述了一個(gè)IaC“供應(yīng)成熟度模型”,其中包括:手動(dòng)、半自動(dòng)、架構(gòu)即代碼以及協(xié)作式架構(gòu)即代碼。該指南還向組織提出了一系列問題,以便組織能夠進(jìn)行自我評(píng)估。在這部分內(nèi)容的基礎(chǔ)上,第三部分內(nèi)容闡述了將組織從當(dāng)前成熟度階段過渡到下一個(gè)階段中所必須的步驟。
例如,指南中有一節(jié)內(nèi)容介紹了如何“從半自動(dòng)演進(jìn)到架構(gòu)即代碼”,這部分內(nèi)容涵蓋了版本控制的推薦用法、學(xué)習(xí)創(chuàng)建Terraform模塊的指南(允許重用的組件化Terraform單元)以及如何定義組織的指導(dǎo)方針和相關(guān)政策。
這些指南很大程度上是基于來自以下云服務(wù)提供商的十分有用的架構(gòu)指南和推薦實(shí)踐:
Oracle Public Cloud:Oracle Cloud最佳實(shí)踐。Terraform指南中總結(jié)了幾個(gè)更高級(jí)的推薦實(shí)踐的主題,其中包括:將Terraform與圖像構(gòu)建工具(如
HashiCorp和Contino的Terraform推薦實(shí)踐指南可以在Terraform文檔網(wǎng)站進(jìn)行訪問。
查看英文原文:HashiCorp and Contino Share Enterprise Terraform Recommended Practices