開發(fā)運營主要依賴于企業(yè)在思維方法和自動化工具兩方面的轉(zhuǎn)變;缺少其中任何一方面都會導致失敗。
開發(fā)與運營(即DevOps)模式讓IT團隊能夠以比傳統(tǒng)部署方法更快的速度來發(fā)布應(yīng)用程序。很多企業(yè)已經(jīng)依賴AWS用作云平臺以提高敏捷性、降低成本支出以及減少用于生產(chǎn)應(yīng)用程序的時間。在實施DevOps之后,很多企業(yè)每天都會多次部署新功能。
但是,要實現(xiàn)這種高效率所需的付出也是不小的。
實施DevOps通常需要改變員工的心態(tài)。IT團隊需要消除開發(fā)團隊和運營團隊之間的隔閡,以便他們能夠協(xié)同工作,從而實現(xiàn)快速發(fā)布應(yīng)用程序變更的共同目標。使用正確的方法,自動化就可以取代手動任務(wù),讓整個過程變得更快更可靠。
為了更為高效地遵循AWS上的這些做法,開發(fā)人員需要充分了解可用的工具與服務(wù)。
AWS中的CI 和 CD
持續(xù)集成(CI)是一種流行的軟件開發(fā)實踐,它可允許開發(fā)人員即時獲得關(guān)于應(yīng)用程序代碼更改的反饋。開發(fā)人員將他們的代碼提交至中央庫,從而觸發(fā)自動構(gòu)建和自動測試。CI可以讓IT團隊快速解決問題,讓應(yīng)用程序更可靠。
在CI基礎(chǔ)之上進行開發(fā)是持續(xù)交付(CD)的做法。在這種模式下,已提交代碼和已批準代碼被部署在類似生產(chǎn)的環(huán)境中;集成測試可確保應(yīng)用程序運行正確。如果一切都按計劃進行,團隊就會心里有底,他們的應(yīng)用程序有一個可以隨時發(fā)布的生產(chǎn)就緒版。
AWS開發(fā)的服務(wù)可允許團隊在云中實施這些常見的開發(fā)實踐。這些服務(wù)所創(chuàng)建的CI/CD管道可以自動實現(xiàn)從觸發(fā)測試與開發(fā)到啟動新的基礎(chǔ)設(shè)施、部署和測試應(yīng)用程序新版本的所有工作。
以下是一些在部署DevOps管道時團隊可以使用的AWS工具:
AWS CodePipeline是一個托管的CD服務(wù),它可以對軟件發(fā)布過程進行建模和編排。在CodePipeline中,開發(fā)人員為發(fā)布過程中的每一個步驟都設(shè)置了階段。在源階段,系統(tǒng)會輪詢版本控制庫是否有開發(fā)人員提交代碼。當檢測到新的變更時,CodePipeline會通過自動化構(gòu)建和測試階段發(fā)送代碼。如果這些任務(wù)都成功完成,開發(fā)人員就會在現(xiàn)有開發(fā)環(huán)境中運行和測試應(yīng)用程序,或者在管道的一個階段中構(gòu)建新的環(huán)境。
AWS CodeCommit 是一個完全托管和可擴展的源代碼控制服務(wù)。開發(fā)人員將代碼提交至在AWS中托管的安全專用的Git庫;這種做法幫助團隊免于維護和擴展他們自己源代碼控制。CodeCommit服務(wù)可與現(xiàn)有基于Git的工具進行集成,并可通過使用AWS身份與訪問管理來確保其安全性。CodeCommit可與CodePipeline進行無縫集成;IT團隊還可以使用公共的或?qū)S玫腉itHub庫。無論采用哪種方式,CodePipeline會對這些庫進行輪詢以找出變更,并通過發(fā)布管道自動發(fā)送它們。
AWS CodeDeploy是一個自動化的軟件部署服務(wù),它可在企業(yè)內(nèi)部或云中正常運行。IT團隊可以在CI/CD管道中使用CodeDeploy在服務(wù)器上安裝應(yīng)用程序代碼。為了做到這一點,應(yīng)在彈性計算云(EC2)實例或本地服務(wù)器上運行一個代理程序。當新代碼通過發(fā)布管道時,CodePipeline將從構(gòu)建階段取出輸出工件,并將它們交給CodeDeploy,后者將在服務(wù)器上安裝應(yīng)用程序代碼。
基礎(chǔ)設(shè)施即代碼
DevOps模式的核心原則就是讓一切都自動化。團隊會使用基礎(chǔ)設(shè)施即代碼(IaC)來具體實施軟件部署,而不是手工開發(fā)服務(wù)器環(huán)境。其目標是在一個聲明性模板中定義基礎(chǔ)設(shè)施,以便檢查源代碼控制并作為整個環(huán)境的藍圖。這使得團隊可以輕松地查看從一個發(fā)布版本到下一個版本之間基礎(chǔ)設(shè)施發(fā)生的變更。
此外,CI/CD管道中的階段能夠?qū)崿F(xiàn)開發(fā)環(huán)境部署的自動化,以證明應(yīng)用程序已做好生產(chǎn)準備。
對于AWS用戶而言,AWS CloudForamtion是帶考慮的IaC產(chǎn)品?;A(chǔ)設(shè)施在基于JSON的模板中進行聲明性定義,CloudFormation服務(wù)可以使用它來部署一個完整的環(huán)境。
諸如Chef和Puppet之類的流行配置管理工具可以輕松得與CloudFormation集成以便進一步實現(xiàn)特定操作系統(tǒng)配置的自動化。它們讓團隊能夠?qū)⒄麄€基礎(chǔ)設(shè)施提交至源代碼控制,甚至在CI/CD管道中的一個階段內(nèi)對其進行測試 就像應(yīng)用程序代碼一樣。
監(jiān)控與日志記錄
DevOps思維方式的一個基本做法就是監(jiān)控、記錄和測量一切。亞馬遜CloudWatch能夠監(jiān)控常見的性能指標,如CPU和內(nèi)存使用情況,以便密切關(guān)注應(yīng)用程序運行性能。AWS為每一個服務(wù)都提供了大量的監(jiān)控指標,而開發(fā)人員甚至能夠自定義他們自己的監(jiān)控指標。
CloudWatch還支持集中式的日志與事件記錄。來自于服務(wù)器的系統(tǒng)日志可被自動發(fā)送至CloudWatch日志,以便對環(huán)境中的每一臺服務(wù)器上的活動進行集中式的視圖顯示。CloudWatch Events功能可在AWS平臺上發(fā)生事件時支持觸發(fā)操作。例如,開發(fā)人員可以設(shè)置一個簡單通知服務(wù)或調(diào)用Lambda功能以響應(yīng)EC2實例進入運行狀態(tài);開發(fā)人員甚至能夠制定計劃定時獲得彈性塊存儲卷標的快照。
CloudWatch用戶可以對AWS中的任何API決策采取措施。該服務(wù)還支持警報和操作,以便當運行性能下降、服務(wù)脫線或在應(yīng)用程序和系統(tǒng)日志中發(fā)現(xiàn)錯誤時通知團隊。
實施DevOps的關(guān)鍵在于學習使用工具并獲得實踐經(jīng)驗。通過使用AWS,實現(xiàn)概念驗證將比以往任何時候都更容易。開發(fā)人員可以在非生產(chǎn)環(huán)境中開始,并在團隊熟悉AWS工具之后創(chuàng)建新的管道和使用資源。
文章編輯:CobiNet(寧波)
本公司專注于電訊配件,銅纜綜合布線系列領(lǐng)域產(chǎn)品研發(fā)生產(chǎn)超五類,六類,七類屏蔽網(wǎng)線/屏蔽模塊及相關(guān)模塊配件, 我們是萬兆屏蔽模塊,10G屏蔽模塊,屏蔽線生產(chǎn)廠家。
歡迎來電咨詢0574 88168918,郵箱sales@cobinet.cn,網(wǎng)址m.czchengbang.com
?2016-2019寧波科博通信技術(shù)有限公司版權(quán)所有浙ICP備16026074號