每個(gè)云計(jì)算架構(gòu)師都應(yīng)該實(shí)現(xiàn)自動(dòng)化的五種操作
如果有一個(gè)可以定義云計(jì)算的特征,或者一個(gè)將云計(jì)算與傳統(tǒng)數(shù)據(jù)中心區(qū)別開來的特征,那就是自動(dòng)化。
云計(jì)算為企業(yè)的現(xiàn)代應(yīng)用程序開發(fā)過程提供了許多好處。最重要的好處之一是能夠?qū)鹘y(tǒng)上需要人工處理的關(guān)鍵操作實(shí)現(xiàn)自動(dòng)化。
自動(dòng)化可能是使用云計(jì)算的唯一最顯著的優(yōu)勢。云計(jì)算架構(gòu)師通過在可行的地方利用自動(dòng)化,在他們的角色中茁壯成長。
對(duì)云計(jì)算架構(gòu)師的工作至關(guān)重要的一些常見的云計(jì)算自動(dòng)化技術(shù)是什么?在設(shè)計(jì)、構(gòu)建和部署云托管應(yīng)用程序時(shí),每個(gè)云架構(gòu)師都應(yīng)該努力實(shí)現(xiàn)以下自動(dòng)化的5種操作。
(1)擴(kuò)展
自動(dòng)擴(kuò)展是使用云計(jì)算的最基本和最必要的措施。無論人們談?wù)摰氖亲詣?dòng)擴(kuò)展服務(wù)器資源,還是內(nèi)置在原生云服務(wù)(如Amazon S3和DynamoDB)中的彈性擴(kuò)展,擴(kuò)展都是云計(jì)算的重要組成部分。構(gòu)建可擴(kuò)展的基礎(chǔ)設(shè)施是人們首先遷移到云計(jì)算的核心原因之一。
但是這種自動(dòng)化的可擴(kuò)展性需要快速而輕松地啟動(dòng)新的服務(wù)器實(shí)例,這將引向下一個(gè)自動(dòng)化。
(2)服務(wù)器配置
在云計(jì)算出現(xiàn)之前,在數(shù)據(jù)中心配置一臺(tái)新服務(wù)器可能需要幾天或幾周的時(shí)間。云計(jì)算自動(dòng)化可以在幾分鐘內(nèi)提供功能齊全、可操作的服務(wù)器實(shí)例,安裝并運(yùn)行所有所需的軟件和服務(wù)。自動(dòng)化服務(wù)器配置不僅是自動(dòng)擴(kuò)展的關(guān)鍵,也是自修復(fù)基礎(chǔ)設(shè)施(另一種云計(jì)算自動(dòng)化形式)的關(guān)鍵。終止一個(gè)失敗的或受到損害的服務(wù)器實(shí)例,并讓自動(dòng)化用一個(gè)新的服務(wù)器實(shí)例替換它,將改變問題解決在云中發(fā)生的方式。這種能力對(duì)于改進(jìn)許多類問題和錯(cuò)誤的平均解決時(shí)間(MTTR)非常關(guān)鍵。
無論是在像Amazon EC2這樣的計(jì)算服務(wù)中啟動(dòng)新的虛擬機(jī)實(shí)例,還是在像谷歌Kubernetes Engine這樣的Kubernetes環(huán)境中啟動(dòng)新的容器實(shí)例,自動(dòng)化服務(wù)器配置的工作原理都是一樣的。在任何一種情況下,在啟動(dòng)、擴(kuò)展和修復(fù)服務(wù)器實(shí)例時(shí),自動(dòng)化都可以提高速度和可靠性,這是大多數(shù)支持云計(jì)算的應(yīng)用程序的基礎(chǔ)。
自動(dòng)化服務(wù)器配置的另一個(gè)好處是提高了可用性。自動(dòng)化配置意味著少量的大型服務(wù)器可以很容易地替換為大量的小型服務(wù)器。這樣的模型可以極大地提高應(yīng)用程序的可用性,減少故障的影響。
但是,只有當(dāng)操作服務(wù)器所需的其他基礎(chǔ)設(shè)施也能夠快速、輕松地設(shè)置時(shí),自動(dòng)化服務(wù)器配置才能發(fā)揮作用。
(3)基礎(chǔ)設(shè)施創(chuàng)建
自動(dòng)配置服務(wù)器本身并不足以啟動(dòng)和運(yùn)行云計(jì)算應(yīng)用程序并為用戶提供服務(wù)。企業(yè)還必須提供負(fù)載平衡器、防火墻、網(wǎng)段、數(shù)據(jù)庫和應(yīng)用程序所依賴的任何其他服務(wù),如隊(duì)列和緩存。在應(yīng)用程序完全發(fā)揮功能之前,必須設(shè)置、配置所有支持基礎(chǔ)設(shè)施并將其連接到應(yīng)用程序。
如果人工完成,所有這些配置都會(huì)非常耗時(shí)。如果部署在內(nèi)部部署數(shù)據(jù)中心中,可能需要數(shù)天或更長時(shí)間來設(shè)置所有必要的組件。然而,在云計(jì)算應(yīng)用中,一種稱為基礎(chǔ)設(shè)施即代碼(IaC)的自動(dòng)化技術(shù)允許使用對(duì)API的調(diào)用來提供應(yīng)用程序基礎(chǔ)設(shè)施。
IaC允許用戶指定在源代碼中如何設(shè)置基礎(chǔ)設(shè)施,這些源代碼通常是JSON或YAML文件,可以使用傳統(tǒng)的軟件版本控制系統(tǒng)(如Git)進(jìn)行管理。然后,將經(jīng)過編碼的基礎(chǔ)設(shè)施配置傳遞給一個(gè)工具,該工具將自動(dòng)提供、配置并將基礎(chǔ)結(jié)構(gòu)組件連接到一個(gè)工作網(wǎng)絡(luò)中。
有許多工具可以執(zhí)行此級(jí)別的云基礎(chǔ)設(shè)施自動(dòng)化。
作為代碼的基礎(chǔ)設(shè)施為基礎(chǔ)設(shè)施供應(yīng)過程提供了獨(dú)特的好處,包括更改控制和批準(zhǔn)、更改跟蹤和基礎(chǔ)設(shè)施代碼重用。作為代碼的基礎(chǔ)設(shè)施只能在云平臺(tái)或類似云平臺(tái)的數(shù)據(jù)中心中使用,在這些數(shù)據(jù)中心中,基礎(chǔ)設(shè)施API允許自動(dòng)創(chuàng)建基礎(chǔ)設(shè)施。
云架構(gòu)師應(yīng)該利用IaC工具為基礎(chǔ)設(shè)施供應(yīng)創(chuàng)建可靠、安全且可重復(fù)的云模式。其好處怎么說都不為過。
(4)代碼部署
自動(dòng)化代碼部署管道并不是云計(jì)算所獨(dú)有的。但是,考慮到大量使用其他類型的自動(dòng)化,自動(dòng)化代碼部署是支持云的應(yīng)用程序的自然擴(kuò)展,并且它們深受云計(jì)算架構(gòu)師的依賴。
自動(dòng)化代碼部署最流行的方法之一是持續(xù)集成(CI)/持續(xù)交付(CD)管道。這是一種模型,它允許基于檢入軟件版本控制系統(tǒng)(例如Git)的代碼,將代碼部署自動(dòng)應(yīng)用到生產(chǎn)應(yīng)用程序。根據(jù)應(yīng)用程序和企業(yè)的策略,自動(dòng)化部署可能被安排(例如每天或每小時(shí)),或者在對(duì)代碼庫進(jìn)行更改并可用于部署時(shí)觸發(fā)。
有許多工具可用于支持自動(dòng)代碼部署。這些工具包括Jenkins、Bamboo、GitLab、CircleCI和AWS Code Deploy。每一種操作方式都不同,云計(jì)算架構(gòu)師必須選擇正確的自動(dòng)化策略來滿足開發(fā)組織和業(yè)務(wù)的需求。然而,幾乎所有復(fù)雜的云計(jì)算架構(gòu)應(yīng)用程序都使用某種形式的自動(dòng)代碼部署。
(5)云原生服務(wù)
作為自動(dòng)化的一種常常被忽視的是內(nèi)置在許多云服務(wù)中的自動(dòng)動(dòng)態(tài)擴(kuò)展。云排隊(duì)服務(wù)(如Amazon Simple QueueService)、云數(shù)據(jù)存儲(chǔ)(如Amazon S3)和云數(shù)據(jù)庫(如Amazon DynamoDB)嚴(yán)重依賴自動(dòng)化來管理利用它們的動(dòng)態(tài)應(yīng)用程序的擴(kuò)展需求。
云計(jì)算架構(gòu)師通常更喜歡使用S3這樣的數(shù)據(jù)存儲(chǔ),而不是從計(jì)算實(shí)例上的本地驅(qū)動(dòng)器存儲(chǔ)(例如)創(chuàng)建自己的數(shù)據(jù)存儲(chǔ),因?yàn)樗唵巍踩?、可靠、易于集成,而且功能自?dòng)化。公共云提供的許多其他服務(wù)也是如此。通過使用它們,可以利用發(fā)生在后臺(tái)的強(qiáng)大自動(dòng)化。
云計(jì)算意味著自動(dòng)化
自動(dòng)化是云計(jì)算的定義特征之一,這是云計(jì)算與傳統(tǒng)數(shù)據(jù)中心的區(qū)別之一。當(dāng)然,用戶可以在不利用自動(dòng)化的情況下在云中運(yùn)行其應(yīng)用程序,許多人都是這樣做的,但他們錯(cuò)過了這一點(diǎn)。因?yàn)樽詣?dòng)化是實(shí)現(xiàn)更大的一致性、可靠性、安全性、可擴(kuò)展性和對(duì)業(yè)務(wù)需求的響應(yīng)性的途徑。
提升并將內(nèi)部部署應(yīng)用程序“按原樣”遷移到云中是一種相對(duì)簡單和直接的遷移,通常不需要訓(xùn)練有素的云計(jì)算架構(gòu)師來實(shí)現(xiàn)。但是這樣的應(yīng)用程序錯(cuò)過了在云上運(yùn)行的大部分優(yōu)勢。構(gòu)建真正支持云的應(yīng)用程序確實(shí)需要云計(jì)算架構(gòu)師,但它將利用云提供的一切。實(shí)際上,任何云架構(gòu)的應(yīng)用程序都將大量使用自動(dòng)化。
優(yōu)秀的云計(jì)算架構(gòu)師將啟用、擴(kuò)展、支持并鼓勵(lì)在所有基于云的應(yīng)用程序中使用自動(dòng)化。簡單地說,優(yōu)秀的云計(jì)算架構(gòu)師將盡可能地實(shí)現(xiàn)自動(dòng)化。他們受到云中可用的自動(dòng)化能力的驅(qū)動(dòng),他們喜歡以獨(dú)特而有趣的方式使用這些自動(dòng)化。它是最成功的應(yīng)用程序部署的組成部分。