一、DevOps:
什么是DevOps臊恋?WikiPedia上說:"DevOps是軟件開發(fā)衣洁、運維和質量保證三個部門之間的溝通、協(xié)作和集成所采用的流程抖仅、方法和體系的一個集合坊夫。
想實現(xiàn)DevOps相關解決方案砖第,以下三方面需要關注:
評價和鼓勵改變文化
改變文化和激勵系統(tǒng)從來不是一件易事。但是环凿,如果你不改變企業(yè)文化梧兼,兌現(xiàn)DevOps的承諾將非常困難≈翘考察一個企業(yè)的主導文化時羽杰,你需要緊密關注如何評價和判斷企業(yè)業(yè)績。評價的內容將影響和刺激行為的發(fā)生到推。開發(fā)-運維生命周期中的所有當事方需要明白考赛,在更大的企業(yè)流程中自己只是其中一部分。個體和團隊的成功都要放在整個開發(fā)-運維生命周期內來進行評價环肘。對于許多機構來說,這是一個轉變集灌,不再是孤立的來進行業(yè)績評價悔雹,每一個團隊不再是基于自己的團隊來評價和判斷業(yè)績好壞。
統(tǒng)一標準化的流程
這是DevOps的一個重要主題欣喧,整個開發(fā)-運維生命周期必須被看作一個端對端過流程腌零。流程的不同階段可以采取不同的方法,只要這些流程可以被組合到一起創(chuàng)建一個統(tǒng)一的流程唆阿。與評價和激勵的問題相似的是益涧,實現(xiàn)這個統(tǒng)一的流程時每個組織可能會有略微不同的需求。
統(tǒng)一的工具
這是大多數(shù)DevOps討論一直在關注的領域驯鳖。這一點不令人吃驚闲询,因為當技術專家在考慮解決一個問題時,第一反應往往就是直接跳轉到工具討論上浅辙。如果你關注Puppet扭弧、Chef或ControlTier等工具社區(qū),那么你可能已經意識到人們對在開發(fā)和運維工具之間建立橋梁的重大關注记舆「肽恚“基礎設施即代碼(Infrastructure as code)”、“模型驅動自動化(model driven automation)”和“持續(xù)性部署(continuous deployment)”都是可以劃歸DevOps旗下的概念
敏捷基礎設施
敏捷基礎設施到底是干嘛的呢泽腮?能給我們提供什么價值呢御蒲?
那我們先說說基礎設施運維的階段:
第一階段:純手機階段。
全部人肉诊赊,物理機安裝軟件厚满,有專門的運維團隊負責部署。A物理機是給訂單用的碧磅,B物理機是給登錄用的痰滋,絕對不能互相干擾摘能。常常因為敲錯命令,導致故障敲街。標準化通過規(guī)范約束团搞,效果甚微,效率十分低下多艇。
第二階段:腳本階段(半自動)逻恐。
內部制定規(guī)范,要求必須嚴格執(zhí)行峻黍。通過部分腳本實現(xiàn)部署复隆、啟停。部署還是要通過運維人員操作姆涩、配置挽拂,半自動化方式,仍然需要敲命令骨饿。使用虛擬機隔離亏栈,虛擬機數(shù)量很多,運維人員在窗口中來回切換宏赘,可能看錯窗口绒北,執(zhí)行了錯誤的命令。申請機器需要提前察署,每年都要做服務器需求計劃闷游。中間加機器非常麻煩。
第三階段:工具階段(自動化)贴汪。
少數(shù)運維人員脐往,通過私有云管理虛擬機。通過CI工具實現(xiàn)持續(xù)部署扳埂。運維人員通過虛擬機鏡像來封裝常用依賴環(huán)境钙勃。但是開發(fā)環(huán)境和測試環(huán)境、生產環(huán)境差距很大聂喇,可能會出現(xiàn)開發(fā)人員本地測試通過辖源,測試人員說有問題,測試人員在測試環(huán)境測試通過希太,一上線就有問題克饶。
第四階段:敏捷基礎設施。
無需運維人員誊辉,全部自動化矾湃,通過容器封裝環(huán)境,開發(fā)人員可以直接將所有軟件和依賴直接封裝到容器中堕澄,打包成鏡像邀跃,生產環(huán)境直接部署鏡像霉咨。可以實現(xiàn)所有環(huán)境都一樣拍屑。容器調度平臺管理容器途戒,資源利用率更高,通過配置文件描述環(huán)境僵驰,例如我要部署8臺Nginx喷斋,端口是什么,鏡像用哪個蒜茴,日志放在什么地方星爪,配置文件用哪個,部署在什么地方等等粉私,都可以直接描述出來顽腾。注意,這個描述文件以前是運維干的诺核,現(xiàn)在開發(fā)就能搞定抄肖。
劃重點!V硭病铺厨!
敏捷基礎設施實際上并不是一個全新的術語太颤,是指使用腳本或文件配置計算基礎設施環(huán)境,而不是手動配置環(huán)境的方法窖式。
敏捷基礎設施也可稱為基礎設施即代碼(Infrastructure as Code)或者可編程基礎設施(Programmable Infrastructure)潮售,基礎設施即代碼可以將基礎設施配置完全當作軟件編程來進行痊项。實際上,這已經開始讓編寫應用和創(chuàng)建其運行環(huán)境之間的界限變得逐漸模糊起來酥诽。應用可能包含用于創(chuàng)建和協(xié)調其自身虛擬機或容器的腳本鞍泉。這是云計算的基礎,并且對DevOps至關重要肮帐。
為了解決開發(fā)和運維之間的矛盾咖驮,催生了DevOps,DevOps使運維人員的職責發(fā)生了巨大的轉變训枢,快速構建環(huán)境必須通過自動化實現(xiàn)托修,基礎設施即代碼就是快速構建環(huán)境的基礎。運行業(yè)務應用和配置基礎設施在統(tǒng)一的CI/CD平臺執(zhí)行恒界。