欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

基礎(chǔ)設(shè)施代碼化IaC如何實(shí)現(xiàn)自動(dòng)化配置與編排

這篇文章給大家分享的是有關(guān)基礎(chǔ)設(shè)施代碼化IaC如何實(shí)現(xiàn)自動(dòng)化配置與編排的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。

成都創(chuàng)新互聯(lián)是專(zhuān)業(yè)的衢州網(wǎng)站建設(shè)公司,衢州接單;提供網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專(zhuān)業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行衢州網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專(zhuān)業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專(zhuān)業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!

云上運(yùn)維,那就是和云上資源和產(chǎn)品打交道,無(wú)疑會(huì)涉及到一系列的資源部署。比如簡(jiǎn)單地使用一臺(tái)云服務(wù)器,就需要運(yùn)維人員依次創(chuàng)建 VPC、VSwitch、安全組和云服務(wù)器實(shí)例,如果想創(chuàng)建一個(gè)集群,那還要進(jìn)一步創(chuàng)建負(fù)載均衡、數(shù)據(jù)庫(kù)和多個(gè)云服務(wù)器實(shí)例。

隨著業(yè)務(wù)規(guī)模的不斷擴(kuò)大,IT系統(tǒng)和環(huán)境日益復(fù)雜,人工一個(gè)一個(gè)創(chuàng)建資源的方式顯然不可取,許多人正在轉(zhuǎn)向自動(dòng)化資源部署和配置的工具。

本文將基于基礎(chǔ)設(shè)施即代碼 IaC 理念,分享如何借助自動(dòng)化編排工具實(shí)現(xiàn)自動(dòng)化部署,使得運(yùn)上運(yùn)維工作更為高效。

手動(dòng)/半手動(dòng)云上運(yùn)維的五大痛點(diǎn)

對(duì)于云上資源的部署,如果你的云上運(yùn)維還處于手動(dòng)或是半手動(dòng)運(yùn)維階段,那么大部分工作是通過(guò)控制臺(tái)選擇特定資源規(guī)格參數(shù)進(jìn)行創(chuàng)建,還有一部分是使用  CLI(如 aliyun-cli)或者 SDK  直接調(diào)用接口來(lái)創(chuàng)建資源。但隨著企業(yè)的云上業(yè)務(wù)規(guī)模不斷擴(kuò)大,不論是哪種方式,或多或少都會(huì)遇到下述五個(gè)問(wèn)題:

  • 部署效率低。手動(dòng)創(chuàng)建對(duì)于創(chuàng)建少量種類(lèi)的資源來(lái)說(shuō)倒是種很直觀的方式,但一旦涉及到大量不同資源時(shí),尤其是資源之間還有依賴(lài)關(guān)系,這時(shí)候會(huì)發(fā)現(xiàn)需要在不同的產(chǎn)品控制臺(tái)之間來(lái)回切換,還要時(shí)刻關(guān)注創(chuàng)建進(jìn)度,才能再去創(chuàng)建下一個(gè)依賴(lài)它的資源,整個(gè)過(guò)程所耗費(fèi)的時(shí)間和精力可想而知,相信不少人有深有體會(huì)。

  • 可復(fù)制性差。當(dāng)手動(dòng)創(chuàng)建好了一系列的資源后,如果需要針對(duì)不同的環(huán)境(如預(yù)發(fā)、測(cè)試和生產(chǎn))或不同的地域(如北京和上海)創(chuàng)建完全相同的資源,則又需要花費(fèi)很多時(shí)間一步步地進(jìn)行操作,無(wú)法直接復(fù)制、做到一鍵部署。

  • 一致性差。手動(dòng)創(chuàng)建還有一個(gè)非常大的問(wèn)題,那就是非常容易出現(xiàn)配置錯(cuò)誤,很難保證兩套環(huán)境中各個(gè)資源配置是完全相同的。

  • 管理困難。資源的創(chuàng)建只是開(kāi)始,可能還需要針對(duì)這批資源做擴(kuò)縮容、更新特定資源的規(guī)格等操作。但手動(dòng)運(yùn)維的方式就導(dǎo)致沒(méi)有統(tǒng)一管理這批資源的入口,仍需要分別到各產(chǎn)品控制臺(tái)上操作。隨著資源數(shù)越來(lái)越多,資源管理就愈發(fā)難以維護(hù)。

  • 難以 DevOps。每次開(kāi)發(fā)、測(cè)試或部署軟件應(yīng)用程序時(shí)都可能需要手動(dòng)部署基礎(chǔ)設(shè)施,既無(wú)法對(duì)基礎(chǔ)設(shè)施進(jìn)行版本控制,也無(wú)法對(duì)其變動(dòng)進(jìn)行評(píng)審,更無(wú)法做到敏捷部署。 

其實(shí),我們都知道這些問(wèn)題的背后是因?yàn)橘Y源的部署還未做到自動(dòng)化。但這些問(wèn)題也不斷促使著我們思考應(yīng)該通過(guò)什么樣的方式來(lái)解決這些痛點(diǎn),才能讓整個(gè)資源部署過(guò)程自動(dòng)化。

引入基礎(chǔ)設(shè)施即代碼 IaC 理念,實(shí)現(xiàn)云上資源自動(dòng)化部署

在真正做到自動(dòng)化部署之前,不妨回頭看看所需要?jiǎng)?chuàng)建的云服務(wù)資源(如 VPC、VSwitch、ECS  實(shí)例等),它們相對(duì)于Web服務(wù)等應(yīng)用程序來(lái)說(shuō)都是云上的基礎(chǔ)設(shè)施,如果把這些基礎(chǔ)設(shè)施想象成一段“代碼”,在“代碼”中定義產(chǎn)品、規(guī)格、數(shù)量等信息,那么是不是就可以通過(guò)這段“代碼”來(lái)管理整個(gè)基礎(chǔ)設(shè)施了呢?

這就是基礎(chǔ)設(shè)施即代碼Infrastructure as Code(IaC)的理念,將基礎(chǔ)設(shè)施配置視為軟件編程。Kief Morris 在《Infarftruce as Code》一書(shū)中對(duì)基礎(chǔ)設(shè)施即代碼是這么定義的:

“基礎(chǔ)設(shè)施即代碼是一種使用新的技術(shù)來(lái)構(gòu)建和管理動(dòng)態(tài)基礎(chǔ)設(shè)施的方式。它把基礎(chǔ)設(shè)施、工具和服務(wù)以及對(duì)基礎(chǔ)設(shè)施的管理本身作為一個(gè)軟件系統(tǒng),采納軟件工程實(shí)踐以結(jié)構(gòu)化的安全的方式來(lái)管理對(duì)系統(tǒng)的變更。”

引入 IaC 的理念,運(yùn)維人員可以將基礎(chǔ)設(shè)施的部署和管理過(guò)程變得敏捷:

  • 在模板(寬泛意義上的代碼)中定義基礎(chǔ)設(shè)施,即各類(lèi)云資源及其規(guī)格、數(shù)量等屬性、云資源之間的依賴(lài);

  • 使用版本控制(如 Git)管理模板,并提交評(píng)審;

  • 通過(guò)評(píng)審后由自動(dòng)化部署工具使用模板來(lái)創(chuàng)建/更新基礎(chǔ)設(shè)施; 

基礎(chǔ)設(shè)施的部署和管理變得便捷后,上述提到的手動(dòng)運(yùn)維/半手動(dòng)運(yùn)維的痛點(diǎn)問(wèn)題就可以得到很好的解決:

  • 提升部署效率。使用自動(dòng)化部署工具進(jìn)行部署,相對(duì)于人工部署的效率將大大提升。

  • 標(biāo)準(zhǔn)化和一致性。將基礎(chǔ)設(shè)施的內(nèi)容通過(guò)模板的形式保存,對(duì)基礎(chǔ)設(shè)施的變更由對(duì)模板的變更來(lái)實(shí)現(xiàn),實(shí)現(xiàn)了基礎(chǔ)設(shè)施管理的標(biāo)準(zhǔn)化。此外,使用相同的模板在不同地域部署,也能夠保證資源的一致性。

  • 易于管理。對(duì)基礎(chǔ)設(shè)施的管理不再分散于各個(gè)產(chǎn)品控制臺(tái),而統(tǒng)一到單個(gè)模板,使得管理成本大大降低。

  • 敏捷化工作流程。通過(guò)基礎(chǔ)設(shè)施管理流程的規(guī)范化和標(biāo)準(zhǔn)化,資源部署的整個(gè)過(guò)程就變得敏捷。

  • 審計(jì)和回滾。對(duì)模板進(jìn)行版本管理,使得對(duì)基礎(chǔ)設(shè)施變動(dòng)的審計(jì)和回退到某個(gè)特定版本成為了可能。

四個(gè)常見(jiàn)的 IaC 自動(dòng)化配置與編排工具

當(dāng)前,有很多 IaC 自動(dòng)化部署工具,有第三方資源編排工具,也有云服務(wù)商提供的云原生的資源編排工具,這里介紹四個(gè)自動(dòng)化配置與編排工具:

  1. 阿里云資源編排服務(wù) ROS(Resource Orchestration  Service),這是云原生編排工具,通過(guò)編寫(xiě) JSON/YAML  格式的模板,在模板中定義所需的ECS實(shí)例、數(shù)據(jù)庫(kù)實(shí)例等云服務(wù)資源以及資源依賴(lài)關(guān)系等,然后再根據(jù)模板在 ROS 中創(chuàng)建資源棧,ROS  服務(wù)端將根據(jù)模板自動(dòng)完成所有資源的創(chuàng)建和配置,實(shí)現(xiàn)自動(dòng)化部署及運(yùn)維。而資源棧則管理著模板中定義的所有資源,并可通過(guò)新模板來(lái)更新資源棧,包括資源的新增、更新或刪除等操作。

  2. AWS CloudFormation,也是云原生的編排工具,運(yùn)維人員也是通過(guò) JSON/YAML 格式的模板定義云服務(wù)資源,通過(guò)資源棧管理這些資源。

  3. HashiCorp Terraform,這是一個(gè)開(kāi)源的自動(dòng)化編排工具。以配置文件為驅(qū)動(dòng),可以在文件中定義所要管理的組件,即基礎(chǔ)設(shè)施資源,以此生成一個(gè)可執(zhí)行的計(jì)劃,通過(guò)執(zhí)行這個(gè)計(jì)劃來(lái)完成所定義組件的創(chuàng)建,增量式的變更和持續(xù)的管理。如果不可執(zhí)行,會(huì)提示報(bào)錯(cuò)。Terraform  不僅可以管理 IaaS 層的資源,如計(jì)算實(shí)例、網(wǎng)絡(luò)實(shí)例和存儲(chǔ)實(shí)例等,也可以管理更上層的服務(wù),如DNS 域名和解析記錄、SaaS 應(yīng)用的功能等。

  4. Pulumi,與 Terraform 一樣也是開(kāi)源項(xiàng)目,但它與 Terraform 的重要區(qū)別在于:可以用熟悉的編程語(yǔ)言來(lái)編寫(xiě)聲明式配置,而不需要額外學(xué)習(xí)云服務(wù)商特定的模板語(yǔ)言來(lái)寫(xiě)配置。

對(duì)于自動(dòng)化配置與編排工具的選擇,筆者的建議是:

  1. 如果你的業(yè)務(wù)部署在單一云平臺(tái),就選擇云平臺(tái)提供的資源編排工具,在阿里云平臺(tái)就用 ROS、在 AWS 平臺(tái)就用  CloudFormation,原因很簡(jiǎn)單:云平臺(tái)提供的工具是云原生,是免費(fèi)的托管服務(wù),在服務(wù)端就可以執(zhí)行自動(dòng)化部署;同時(shí),它還實(shí)現(xiàn)了云原生的訪問(wèn)控制、編排資源與實(shí)際資源差異檢測(cè)等功能,用起來(lái)比較省心。

  2. 如果你的業(yè)務(wù)是部署在多個(gè)云平臺(tái),建議使用第三方的 Terraform 和 Pulumi,因?yàn)樗粌H可以進(jìn)行多云資源的部署和管理,還能管理除云以外的其他資源,如 Kubernetes。 

如何利用編排工具進(jìn)行自動(dòng)化部署和管理?

對(duì)于運(yùn)維人員來(lái)說(shuō),使用 IaC 理念的自動(dòng)化部署工具的門(mén)檻其實(shí)不高,使用步驟也非常簡(jiǎn)單,主要來(lái)說(shuō)就是編寫(xiě)模板和使用模板。這里談?wù)劸帉?xiě)模板和使用模板有哪些注意事項(xiàng),如何才能更好地利用工具、更好地提升運(yùn)維效率。

1、編寫(xiě)模板的三個(gè)注意事項(xiàng)

確認(rèn)好自動(dòng)化部署工具,就可以根據(jù)不同工具的模板語(yǔ)言來(lái)編寫(xiě)對(duì)應(yīng)的模板文件。如果你選擇云服務(wù)商提供的云原生的編排工具, 編寫(xiě)模板這里,有三點(diǎn)注意事項(xiàng)想重點(diǎn)提醒一下:

  1. 注意資源的依賴(lài)關(guān)系。不恰當(dāng)?shù)囊蕾?lài)或少了依賴(lài)都會(huì)導(dǎo)致資源創(chuàng)建出錯(cuò)。

  2. 注意使用通用屬性作為參數(shù)。比如實(shí)例規(guī)格等就是比較通用的屬性,建議使用同一份模板,指定不同的參數(shù)來(lái)達(dá)到部署不同規(guī)格實(shí)例的目的。

  3. 使用有價(jià)值的屬性作為輸出。比如實(shí)例 ID、連接地址等內(nèi)容就是有價(jià)值的屬性,它們都是在資源創(chuàng)建完成后才能獲取到,把這些屬性作為整個(gè)模板的輸出,可以方便后續(xù)的查看和管理。

2、自動(dòng)解析依賴(lài)關(guān)系,自動(dòng)化部署基礎(chǔ)設(shè)施

編寫(xiě)完模板后,就可以通過(guò)對(duì)應(yīng)的自動(dòng)化部署工具將模板轉(zhuǎn)化為真正的資源。上述提到的編排工具都能解析資源的依賴(lài)關(guān)系,并能先后創(chuàng)建這些資源。同時(shí),對(duì)于互不依賴(lài)的資源也能夠并行創(chuàng)建。

  • 對(duì)于阿里云 ROS 和 AWS CloudFormation 來(lái)說(shuō),可使用模板來(lái)創(chuàng)建一個(gè)資源棧。一個(gè)資源棧即一組云上資源,也就是在模板中定義的基礎(chǔ)設(shè)施。后續(xù)當(dāng)需要增/刪/改一些資源時(shí),也是通過(guò)使用模板來(lái)更新資源棧來(lái)達(dá)到目的。

  • 對(duì)于 Terraform 來(lái)說(shuō),可使用配置文件生成一個(gè)可執(zhí)行的計(jì)劃,通過(guò)執(zhí)行這個(gè)計(jì)劃來(lái)完成所定義資源/組件的創(chuàng)建,增量式的變更和持續(xù)的管理。

  • 對(duì)于 Pulumi 來(lái)說(shuō),則是直接執(zhí)行代碼來(lái)進(jìn)行部署。

這樣的部署方式既能使得資源能按照合理的順序創(chuàng)建出來(lái),又能夠提升部署效率,在遇到異常情況時(shí)也會(huì)進(jìn)行一定程度的重試,真正讓整個(gè)自動(dòng)化部署過(guò)程變得穩(wěn)定和高效。

以基礎(chǔ)設(shè)施代碼化為基礎(chǔ),進(jìn)一步高效運(yùn)維

當(dāng)運(yùn)維工作完成整個(gè)基礎(chǔ)設(shè)施模板化后,DevOps 就變得更加容易。我們可以使用版本管理工具(如  Git)管理描述當(dāng)前基礎(chǔ)設(shè)施的模板,使用阿里云云效/AWS CodePipline/Jenkins  創(chuàng)建一個(gè)從代碼提交觸發(fā)到人工卡點(diǎn)再到資源棧部署的流水線,這樣整個(gè)基礎(chǔ)設(shè)施的管理就會(huì)變得更加敏捷和自動(dòng)化。

基礎(chǔ)設(shè)施代碼化IaC如何實(shí)現(xiàn)自動(dòng)化配置與編排

圖1: 基礎(chǔ)設(shè)施變更的流程圖

  1. 鴻蒙官方戰(zhàn)略合作共建——HarmonyOS技術(shù)社區(qū)

  2. 在每次變更模板后,將本地倉(cāng)庫(kù)的分支內(nèi)容推送到遠(yuǎn)程倉(cāng)庫(kù),并發(fā)起評(píng)審;

  3. 若評(píng)審不通過(guò),則修改模板后重新發(fā)起評(píng)審;若評(píng)審?fù)ㄟ^(guò),則自動(dòng)觸發(fā)流水線;

  4. 流水線觸發(fā)人工卡點(diǎn),通知上級(jí)管理員檢查此次變更。若不同意,則終止;若同意,則進(jìn)入下一個(gè)步驟;

  5. 若是首次提交模板,則創(chuàng)建資源棧(即創(chuàng)建基礎(chǔ)設(shè)施);反之,則更新資源棧(即更新基礎(chǔ)設(shè)施)。

基礎(chǔ)設(shè)施變更及預(yù)覽

IT 基礎(chǔ)設(shè)施并非一成不變,隨著業(yè)務(wù)的變化,我們可能面臨擴(kuò)縮容場(chǎng)景,也可能面臨整個(gè)架構(gòu)的變化。好在基于 IaC  的理念,我們只需要描述基礎(chǔ)設(shè)施最新配置,而不用擔(dān)心如何進(jìn)行變更。但即使如此,我們需要在變更前知道究竟會(huì)發(fā)生哪些變化。阿里云ROS 和 AWS  CloudFormation 的更改集功能,Terraform 的執(zhí)行計(jì)劃均能讓我們提前了解到變更內(nèi)容。

例如,由于業(yè)務(wù)變化,在基于圖1的架構(gòu)基礎(chǔ)上,在阿里云平臺(tái)上新增一臺(tái) ECS 實(shí)例,并使用 SLB 實(shí)例為兩臺(tái) ECS 實(shí)例做負(fù)載均衡。在編寫(xiě)好新的模板后,就可以使用更改集功能來(lái)感知變化,下圖是 阿里云ROS 的一個(gè)變更示例:

基礎(chǔ)設(shè)施代碼化IaC如何實(shí)現(xiàn)自動(dòng)化配置與編排

在確認(rèn)無(wú)誤后,便可以執(zhí)行變更。隨后,自動(dòng)化編排工具便會(huì)對(duì)整個(gè)基礎(chǔ)設(shè)施進(jìn)行更新,根據(jù)模板發(fā)生的變化來(lái)決定新增、更改或刪除哪些資源。

基礎(chǔ)設(shè)施偏差檢測(cè)和糾正

盡管使用了自動(dòng)化編排工具部署資源,仍可能有部分人員會(huì)通過(guò)非標(biāo)準(zhǔn)化的方式(比如通過(guò)控制臺(tái)或  API)修改了基礎(chǔ)設(shè)施中部分資源的屬性,使得資源實(shí)際情況和模板中定義的資源產(chǎn)生了差異。好的自動(dòng)化編排工具不僅具備檢測(cè)基礎(chǔ)設(shè)施實(shí)際屬性和模板中定義的屬性之間差異的能力;還能基于差異結(jié)果糾正模板或?qū)嶋H資源,使得模板和基礎(chǔ)設(shè)施保持一致。

當(dāng)前,通過(guò) 阿里云 ROS 和 AWS CloudFormation 的偏差檢測(cè)能力,就可以輕松地發(fā)現(xiàn)實(shí)際資源和模板中定義的資源之間的差異,并可通過(guò)偏差糾正功能使模板內(nèi)容和實(shí)際資源保持一致。

感謝各位的閱讀!關(guān)于“基礎(chǔ)設(shè)施代碼化IaC如何實(shí)現(xiàn)自動(dòng)化配置與編排”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

分享標(biāo)題:基礎(chǔ)設(shè)施代碼化IaC如何實(shí)現(xiàn)自動(dòng)化配置與編排
文章分享:http://chinadenli.net/article12/jggsdc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號(hào)域名注冊(cè)網(wǎng)站導(dǎo)航做網(wǎng)站微信小程序網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)