每個云架構(gòu)師應(yīng)實現(xiàn)自動化的五種操作
譯文譯者 | 布加迪
審校 | 孫淑娟
云為一家公司的現(xiàn)代應(yīng)用程序開發(fā)流程帶來了許多好處。最重要的好處之一是能夠自動執(zhí)行向來需要手動步驟的關(guān)鍵操作。
自動化可能是使用云的最顯著的一個優(yōu)勢。云架構(gòu)師在切實可行的地方利用自動化,以確保其角色不被邊緣化。
對云架構(gòu)師的工作至關(guān)重要的一些常見的云自動化技術(shù)有哪些?每個云架構(gòu)師在設(shè)計、構(gòu)建和部署云托管應(yīng)用程序時,應(yīng)該竭力實現(xiàn)以下五種操作的自動化。
1、擴展
自動擴展對使用云而言最基本、最必不可少。無論我們談?wù)撟詣訑U展服務(wù)器資源,還是內(nèi)置在Amazon S3和DynamoDB等原生云服務(wù)中的彈性擴展,擴展都是云的重要組成部分。構(gòu)建可擴展的基礎(chǔ)設(shè)施是人們當(dāng)初遷移到云的主要原因之一。
但是這種自動化擴展性大部分需要快速輕松地啟動新的服務(wù)器實例,這引出了下一種自動化。
2、服務(wù)器配置
在云出現(xiàn)之前,配置一臺新服務(wù)器可能需要幾天或幾周。云自動化可以在短短幾分鐘內(nèi)配置好一個功能齊全、可投入使用的服務(wù)器實例,所有所需的軟件和服務(wù)已安裝并運行。自動化服務(wù)器配置不僅是自動擴展的關(guān)鍵,還是自修復(fù)基礎(chǔ)設(shè)施(另一種云自動化)的關(guān)鍵。終止失效或被攻擊的服務(wù)器實例,并讓自動化可以用新的服務(wù)器實例替換它,改變了在云端解決問題的方式。這種能力對于改進(jìn)許多類問題和錯誤的MTTR(平均解決時間)非常關(guān)鍵。
無論您在Amazon EC2之類的計算服務(wù)中啟動新的虛擬機實例,還是在谷歌Kubernetes引擎之類的Kubernetes環(huán)境中啟動新的容器實例,自動化服務(wù)器配置的工作原理都大致一樣。無論在哪種情況下,啟動、擴展和修復(fù)服務(wù)器實例(這對大多數(shù)基于云的應(yīng)用程序而言很重要)時,自動化都可以提升速度和可靠性。
自動化服務(wù)器配置的另一個好處是提高了可用性。自動化配置意味著少量的大型服務(wù)器很容易替換成大量的小型服務(wù)器。這種模式大大提高了應(yīng)用程序的可用性,減小了故障造成的影響。
但只有當(dāng)操作服務(wù)器所需的基礎(chǔ)設(shè)施其余部分也能夠快速輕松地安裝和設(shè)置時,自動化服務(wù)器配置才管用。這引出了下一種自動化。
3、基礎(chǔ)設(shè)施創(chuàng)建
自動配置服務(wù)器本身不足以啟動和運行云應(yīng)用程序、為用戶提供服務(wù)。您還必須配置負(fù)載均衡系統(tǒng)、防火墻、網(wǎng)段、數(shù)據(jù)庫和應(yīng)用程序依賴的任何其他服務(wù),比如隊列和緩存。只有安裝和配置了所有支持性基礎(chǔ)設(shè)施,并連接到應(yīng)用程序,應(yīng)用程序才能完全發(fā)揮功能。
如果手動完成,所有這些配置很耗費時間。如果部署在本地數(shù)據(jù)中心,可能需要數(shù)天或更長時間來安裝所有必要的組件。然而在云端,一種名為基礎(chǔ)設(shè)施即代碼(IaC)的自動化技術(shù)允許您對API進(jìn)行調(diào)用,從而配置應(yīng)用程序基礎(chǔ)設(shè)施。
IaC允許您指定基礎(chǔ)設(shè)施如何在源代碼(通常是JSON或YAML文件)中創(chuàng)建起來,可以使用傳統(tǒng)的軟件版本控制系統(tǒng)(比如Git)來管理源代碼。然后,將經(jīng)過編碼的基礎(chǔ)設(shè)施配置傳遞給一個工具,該工具可以自動提供和配置基礎(chǔ)設(shè)施組件,并將這些組件連接到工作網(wǎng)絡(luò)中。
有許多工具可以執(zhí)行這種級別的云基礎(chǔ)設(shè)施自動化。兩個流行的工具是HashiCorp的Terrform和AWS的CloudFormation。
基礎(chǔ)設(shè)施即代碼為基礎(chǔ)設(shè)施配置過程提供了獨特的好處,包括變更控制和批準(zhǔn)、變更跟蹤以及基礎(chǔ)設(shè)施代碼重用。基礎(chǔ)設(shè)施即代碼只有在云或類似云的數(shù)據(jù)中心中成為可能,這種環(huán)境中的基礎(chǔ)設(shè)施API才允許自動創(chuàng)建基礎(chǔ)設(shè)施。
云架構(gòu)師應(yīng)該利用IaC工具為基礎(chǔ)設(shè)施配置創(chuàng)建可靠、安全且可重復(fù)的云模式。這個好處再怎么強調(diào)都不為過。
基于代碼管理的自動化基礎(chǔ)設(shè)施設(shè)置引出了下一種自動化。
4、代碼部署
自動化代碼部署管道不是云所獨有的。但是考慮到大量使用其他類型的自動化,自動化代碼部署是基于云的應(yīng)用程序的一種自然擴展,它們深受云架構(gòu)師的依賴。
自動化代碼部署最流行的方法之一是CI/CD管道。CI/CD(持續(xù)集成/持續(xù)交付)是一種模式,允許基于簽入軟件版本控制系統(tǒng)(比如Git)的代碼,讓代碼可以自動部署到生產(chǎn)級應(yīng)用程序。自動化部署可能被安排成每天或每小時執(zhí)行,或者只要對代碼庫進(jìn)行更改、可用于部署,就被觸發(fā),具體取決于應(yīng)用程序和公司政策。
有許多工具可用于支持自動化代碼部署,這些工具包括Jenkins、Bamboo、GitLab、CircleCI和AWS CodeDeploy。各自的操作方式有所不同,云架構(gòu)師必須選擇正確的自動化策略,以滿足開發(fā)組織和業(yè)務(wù)的需求。然而,幾乎所有復(fù)雜的云架構(gòu)應(yīng)用程序都使用某種自動化代碼部署。貴公司的云架構(gòu)應(yīng)用程序也應(yīng)該如此。
5、原生云服務(wù)
常常被忽視的一種自動化是內(nèi)置在許多云服務(wù)中的自動化動態(tài)擴展。云隊列服務(wù)(比如Amazon Simple Queue Service)、云數(shù)據(jù)存儲(比如Amazon S3)和云數(shù)據(jù)庫(比如Amazon DynamoDB)嚴(yán)重依賴自動化,以管理使用它們的動態(tài)應(yīng)用程序的擴展要求。
云架構(gòu)師常常更喜歡使用S3之類的數(shù)據(jù)存儲,而不是從計算實例上的本地驅(qū)動器存儲創(chuàng)建自己的數(shù)據(jù)存儲,因為這簡單、安全、可靠、易于集成,而且功能實現(xiàn)自動化。公共云提供的許多其他服務(wù)也是如此。如果使用它們,您可以充分利用其底層的強大自動化。
云意味著自動化
自動化是云的主要特點之一,這是云與傳統(tǒng)數(shù)據(jù)中心的區(qū)別之一。當(dāng)然,您可以在不利用自動化的情況下在云端運行應(yīng)用程序,許多人都這么做,但他們錯失了良機,因為自動化是提升一致性、可靠性、安全性、可擴展性以及業(yè)務(wù)需求響應(yīng)能力的必經(jīng)之路。
將本地應(yīng)用程序按原狀平移到云端是一種相對簡單、直接的遷移,通常不需要訓(xùn)練有素的云架構(gòu)師來實施。但是這類應(yīng)用程序錯過了云端運行具有的大部分優(yōu)勢。構(gòu)建真正基于云的應(yīng)用程序確實需要云架構(gòu)師,并可利用云端提供的一切。幾乎任何云架構(gòu)應(yīng)用程序都會大量使用自動化。
優(yōu)秀的云架構(gòu)師將實現(xiàn)、擴展、支持并鼓勵在所有基于云的應(yīng)用程序中使用自動化。簡而言之,優(yōu)秀的云架構(gòu)師將盡可能實現(xiàn)自動化。他們被云端自動化的功能所打動,喜歡以獨特而有趣的方式使用這些自動化。自動化是最成功的應(yīng)用程序部署的必備要素。
原文鏈接:https://www.infoworld.com/article/3680568/5-operations-every-cloud-architect-should-automate.html