新聞中心
基礎(chǔ)架構(gòu)即代碼的8大優(yōu)勢,以及如何選擇工具?
作者:云智時代 2020-06-18 08:52:37
云計算 越來越多的企業(yè)將主要應(yīng)用或服務(wù)托管在云平臺上,也使得基礎(chǔ)架構(gòu)即代碼(IaC)變得越來越流行。

成都創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、成都網(wǎng)站制作、網(wǎng)站營銷推廣、網(wǎng)站開發(fā)設(shè)計,對服務(wù)成都LED顯示屏等多個行業(yè)擁有豐富的網(wǎng)站建設(shè)及推廣經(jīng)驗。成都創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司成立于2013年,提供專業(yè)網(wǎng)站制作報價服務(wù),我們深知市場的競爭激烈,認真對待每位客戶,為客戶提供賞心悅目的作品。 與客戶共同發(fā)展進步,是我們永遠的責(zé)任!
越來越多的企業(yè)將主要應(yīng)用或服務(wù)托管在云平臺上,也使得基礎(chǔ)架構(gòu)即代碼(IaC)變得越來越流行。
為什么需要基礎(chǔ)架構(gòu)作為代碼?
在傳統(tǒng)基礎(chǔ)設(shè)施上,當(dāng)你需要一臺服務(wù)器資源,則需要運維團隊去創(chuàng)建一個虛擬機實例或為應(yīng)用準備物理服務(wù)器,配置中需要使用到腳本或手動安裝的方式。
當(dāng)有了更多應(yīng)用需求,則需要更多的虛擬機,用于DNS,郵件服務(wù)器,數(shù)據(jù)庫等等。還有要對操作系統(tǒng),Web服務(wù)器,JVM和其他所有相關(guān)架構(gòu)進行持續(xù)的更新。而且隨著時間的發(fā)展,它們彼此之間的配置會發(fā)生變化,帶來配置的漂移,從而產(chǎn)生了雪花服務(wù)器(snowflake servers)。跟蹤配置更改是很大的挑戰(zhàn)。
如果服務(wù)器很少且使用周期較長,那么還可以接受。
隨著AWS等公有云服務(wù)的廣泛使用,企業(yè)對計算資源的選擇發(fā)生了很大變化。許多企業(yè)沒有了在硬件和數(shù)據(jù)中心上的投資,而是開始將其應(yīng)用程序遷移到云中。在云端,可以在數(shù)分鐘內(nèi)部署服務(wù)器。
為了保持最佳性能和可用性,可能必須部署更多實例來滿足需求。然后,不需要時對資源彈性釋放來節(jié)省成本。當(dāng)按小時付費時,可能需要每天按比例彈性的縮放,所以如果每天多次手動進行操作,顯然具有挑戰(zhàn)性。
通過自動化的方式,獲取代碼中部署或終止實例,以及其他基礎(chǔ)結(jié)構(gòu)組件所需的配置步驟,云可以幫助更快,更可靠地交付價值。
什么是基礎(chǔ)架構(gòu)即代碼?
所以,基礎(chǔ)設(shè)施即代碼是使用軟件開發(fā)原則和實踐的基礎(chǔ)設(shè)施自動化。
簡單理解,就是基礎(chǔ)架構(gòu)像軟件一樣來對待,然后編寫,測試和執(zhí)行代碼以定義,部署,更新和釋放基礎(chǔ)架構(gòu)。通過編寫代碼來管理服務(wù)器,數(shù)據(jù)庫,網(wǎng)絡(luò),日志,應(yīng)用程序的部署和配置。當(dāng)要更改基礎(chǔ)結(jié)構(gòu)時,可以更改代碼,對其進行測試,然后將其應(yīng)用于系統(tǒng)中。
基礎(chǔ)架構(gòu)即代碼與手動配置相比,優(yōu)勢顯而易見:
1. 自助服務(wù)
由于將基礎(chǔ)架構(gòu)定義為代碼,因此整個過程和部署可以自動化,并且可以由DevOps團隊中的任何人啟動,有基礎(chǔ)架構(gòu)需求的用戶可以在需要時獲得所需的資源。
2. 冪等性
冪等性意味著你定義了所需的狀態(tài),并且無論運行腳本多少次,結(jié)果都是相同的。它檢查當(dāng)前狀態(tài)和所需狀態(tài),并僅應(yīng)用所需的更改。而使用bash腳本很難做到這一點。
Ansible和Terraform之類的工具具有內(nèi)置功能,可以使代碼具有冪等性。
3. 降低成本
與手動配置相比,降低了配置所需的時間和精力。
4. 更快的軟件交付
快速為開發(fā),測試和生產(chǎn)配置基礎(chǔ)架構(gòu),使企業(yè)能夠更快地交付軟件。由于部署過程是自動化的,因此它也是一致且可重復(fù)的。
5. 自我記錄
基礎(chǔ)結(jié)構(gòu)的狀態(tài)由任何人都易于閱讀的代碼來定義。
6. 版本控制
傳統(tǒng)上,更改生產(chǎn)系統(tǒng)被認為是有風(fēng)險的,但往往改變不可避免。但添加新功能時,可能需要添加新數(shù)據(jù)庫,可能需要向集群添加新服務(wù)器或存儲?;A(chǔ)架構(gòu)即代碼減少了對基礎(chǔ)架構(gòu)進行更改的工作量和風(fēng)險。
可以在版本控制中載入源文件,這意味著你可以跟蹤對基礎(chǔ)結(jié)構(gòu)所做的所有更改,并在出現(xiàn)問題時快速恢復(fù)到以前的版本。
7. 驗證與測試
基礎(chǔ)架構(gòu)即代碼可以連續(xù)測試和應(yīng)用小的更改。一切都是代碼,因此可以使用靜態(tài)分析和自動化測試來檢查錯誤。
8. 提升安全性
向基礎(chǔ)架構(gòu)即代碼的轉(zhuǎn)變能夠從一開始就嵌入安全性,然后就可以可靠,安全地應(yīng)用更改。
基礎(chǔ)架構(gòu)即代碼的工具
盡管有許多工具可用,但選擇一種工具可能并不容易。以下是一些注意事項,可能對大家?guī)椭??;A(chǔ)架構(gòu)即代碼的工具大致上可分為兩類:配置管理工具和配置工具。
配置管理工具是用戶管理在現(xiàn)有服務(wù)器上安裝和管理的工具。比如,Chef,Puppet,Ansible和SaltStack都是主要的配置管理工具??梢允褂门渲霉芾砉ぞ咴诜?wù)器上安裝和更新軟件。
Terraform,CloudFormation,OpenStack Heat是配置工具,即用于創(chuàng)建服務(wù)器,數(shù)據(jù)庫服務(wù)器,負載均衡,隊列,子網(wǎng),防火墻以及基礎(chǔ)架構(gòu)的所有其他組件。這些工具對提供程序進行API調(diào)用以創(chuàng)建所需的基礎(chǔ)結(jié)構(gòu)。
1. 可變與不可變基礎(chǔ)架構(gòu)
可變基礎(chǔ)架構(gòu)是一種在配置后即可修改的基礎(chǔ)架構(gòu)。Chef,Ansible,Puppet和SaltStack能夠在現(xiàn)有服務(wù)器上安裝或更新軟件。在服務(wù)器的生命周期中,這可能會發(fā)生很多次。經(jīng)過多次更新后,每臺服務(wù)器可能與其他服務(wù)器略有不同,從而導(dǎo)致配置漂移。例如,某些在測試服務(wù)器上正常運行的更改,可能無法在生產(chǎn)服務(wù)器上運行。
Terraform和CloudFormation之類的工具能夠每次通過計算機鏡像或容器鏡像創(chuàng)建新服務(wù)器。如果需要更新服務(wù)器,就用用新服務(wù)器替換它們。新服務(wù)器啟動后,可以終止舊服務(wù)器。每個部署都使用不可變的鏡像來創(chuàng)建服務(wù)器,因此避免了配置漂移。不過,效率可能有點慢。
2. 命令式與聲明式工具
命令式工具類似于腳本,列出了達到所需狀態(tài)所要采取的步驟。聲明性工具可以指定結(jié)束狀態(tài),并且工具將制定實現(xiàn)該狀態(tài)的步驟。
Chef是主要的命令式工具,而Ansible使用混合方法并支持命令式和聲明式技術(shù)。
Terraform,CloudFormation,Puppet,OpenStack Heat和SaltStack都屬于聲明性工具類別,可以在其中聲明所需的最終狀態(tài)。
3. 使用多種工具
盡管這些工具中的每一個都可以單獨使用,但是一種通用的方法是將它們一起使用。例如,可以使用Terraform來構(gòu)建VPC,子網(wǎng),網(wǎng)關(guān),負載均衡和虛擬機,然后使用Ansible在這些實例上配置和部署服務(wù)。
名稱欄目:基礎(chǔ)架構(gòu)即代碼的8大優(yōu)勢,以及如何選擇工具?
URL分享:http://fisionsoft.com.cn/article/cooppio.html


咨詢
建站咨詢
