現(xiàn)在讓用戶也可以使用Pulumi,在Azure上配置基礎(chǔ)設(shè)施,Pulumi允許開(kāi)發(fā)者使用像是Python等熟悉的程序語(yǔ)言,來(lái)編寫(xiě)配置基礎(chǔ)設(shè)施的文件,微軟表示,所有基礎(chǔ)設(shè)施即程序碼(Infrastructure as Code,IaC)工具,能做的工作都一樣,提供多維工具只是方便熟悉不同語(yǔ)言的人使用。
基礎(chǔ)設(shè)施即程序碼讓用戶透過(guò)樣板文件來(lái)定義基礎(chǔ)設(shè)施,由樣板中的配置來(lái)部署資源,而且因?yàn)榛A(chǔ)設(shè)施即程序碼是以文字來(lái)定義基礎(chǔ)設(shè)施,因此適用軟件開(kāi)發(fā)生命周期程序來(lái)管理基礎(chǔ)設(shè)施,就如同管理程序碼一樣。
微軟已經(jīng)提供Azure資源管理器(Azure Resource Manager,ARM)以及Terraform等工具,供用戶定義Azure上的基礎(chǔ)設(shè)施,而現(xiàn)在微軟引入一個(gè)稱為Pulumi的新工具,其特色是讓用戶可以用程序語(yǔ)言,來(lái)執(zhí)行基礎(chǔ)設(shè)施即程序碼工作。
基礎(chǔ)設(shè)施即程序碼通常使用獨(dú)立於語(yǔ)言之外的數(shù)據(jù)格式,像是JSON或YAML,Terraform則稍微特殊,使用領(lǐng)域特定語(yǔ)言(Domain Specific Language,DSL)以及Hashicorp配置語(yǔ)言(Hashicorp Configuration Language,HCL)來(lái)建構(gòu)樣板。
而Pulumi不需要開(kāi)發(fā)者額外學(xué)習(xí)JSON、YAML或是DSL,可以直接使用熟悉的程序語(yǔ)言定義基礎(chǔ)設(shè)施,這代表開(kāi)發(fā)者也可以使用程序語(yǔ)言中的循環(huán)、變量、錯(cuò)誤處理等標(biāo)準(zhǔn)功能。微軟提到,這些功能也可以用其他工具達(dá)成,像是在Python中可用for循環(huán)來(lái)創(chuàng)建多個(gè)資源,而使用ARM則可以用復(fù)制功能達(dá)到相同的目的。
工具間并沒(méi)有優(yōu)劣,只是看用戶習(xí)慣哪一種工具,云端工程師可能較熟悉使用JSON或YAML,而開(kāi)發(fā)人員習(xí)慣程序語(yǔ)言,就可以選擇Pulumi。