發(fā)布于:2021-01-11 13:39:30
0
95
0
什么是基礎架構即代碼(IaC)?在DevOps Con上,我們與nubeGo的Emma Button討論了IaC,需要什么敏捷方法,最好的工作工具以及她對從開發(fā)領域進入基礎架構的人們的建議。
基礎設施即代碼(IaC)是DevOps團隊的重要概念。在2019年DevOps大會的這次采訪中,艾瑪·巴頓(Emma Button)(nubeGo)討論了不僅應在開發(fā)中使用敏捷方法,還應在構建IaC系統(tǒng)中使用敏捷方法。
JAXenter:今天,我正在與nubeGO的Emma Button談論基礎架構即代碼(IaC)。感謝您抽出寶貴時間與我們交談Emma!讓我們從一個簡單的問題開始:什么是基礎架構即代碼?
艾瑪·巴頓(Emma Button):基礎架構即代碼,是您定義基礎架構資產(chǎn)所需的資源時。您用代碼編寫它們,然后使用基礎結(jié)構供應引擎來創(chuàng)建和配置這些資源。
JAXenter:您能告訴我們一些與DevOps的關系嗎?
艾瑪·巴頓(Emma Button):因此,如果您自動創(chuàng)建資源并刪除人工操作元素,則有助于減少交付流程中的摩擦。您可以將基礎結(jié)構作為代碼用作持續(xù)集成和持續(xù)交付管道的一部分。
基礎設施即代碼就像建立資源的基礎,然后在該資源上構建應用程序。
JAXenter:隨著DevOps的它總是關于怎么你這樣做和如何你進行這項工作。在將基礎架構作為代碼工作時,您還應該記住并采用其他敏捷原則嗎?
艾瑪·巴頓(Emma Button):我在DevOps Con上的演講是關于我通過軟件工程學到的敏捷課程,以及我現(xiàn)在如何將它們應用于基礎架構即代碼。對我而言,最引人注目的是簡單性:盡可能少地達成最終目標并最大化您不做的事情的行為。
對于IoC,我認為這是重用代碼庫并咨詢外部注冊表,因此,如果有人已經(jīng)完成了您想做的事情,那么您可以利用他們的專業(yè)知識。您可以通過重用代碼來減少復雜性和重復項。
JAXenter:您對開發(fā)人員有什么建議嗎?
艾瑪·巴頓(Emma Button):我曾在DevOps Con上與幾位來自開發(fā)背景的人交談過。我給他們的建議是睜大你的眼睛。我們在基礎設施領域面臨的挑戰(zhàn)可能與您在開發(fā)中面臨的挑戰(zhàn)截然不同。
也就是說,創(chuàng)造力,及時性和重構能力仍然面臨著相同的挑戰(zhàn)。挑戰(zhàn)的形狀相同,但對您的壓力可能有所不同。因此,優(yōu)秀的敏捷開發(fā)人員將學會檢查和適應。因此,我們檢查并調(diào)整了我們的工具;我們檢查并調(diào)整我們的行為。
JAXenter:關于您提到的可重用代碼,有哪些工具?您如何選擇合適的工具?
艾瑪·巴頓(Emma Button):在nubeGO,我們使用Terraform。我們使用Terraform的原因是因為它被廣泛采用。我們傾向于發(fā)現(xiàn),如果我們的客戶從一開始就走了,那它就是最快的工具。對于我們來說,Terraform是平臺無關的,因為我們在云中工作,因此我們需要能夠跨多個不同的云提供商以及內(nèi)部使用Terraform。
我今天討論的工具是可以與Terraform一起使用的工具,以將質(zhì)量灌輸?shù)侥龅墓ぷ髦?。因此,單元測試框架使用在Terraform之上的檢查測試來驗證服務器是否處于正確狀態(tài)。
JAXenter:單元測試是您剛才提到的一個重要關鍵字。來自不同背景的開發(fā)人員進行測試的方式是否有所不同?
艾瑪·巴頓(Emma Button):做單元測試沒有正確或錯誤的方法,可以說,您將要在基礎架構上進行的那種測試可能并不是嚴格的單元測試。但是挑戰(zhàn)在于確保如何知道我的系統(tǒng)處于正確的狀態(tài)以便我繼續(xù)進行?如何確保沒有犯明顯的錯誤?
再次,這是關于軟件開發(fā)的挑戰(zhàn)與基礎架構的挑戰(zhàn)如何非常相似的。因此,我們可以從大量運行大量單元測試中吸取教訓,以獲得快速的反饋循環(huán)。我們也可以使用基礎結(jié)構代碼來做到這一點。