細說(shuō)自動(dòng)化運維的前世今生
發(fā)布時(shí)間:2018-02-12 瀏覽:532打印字號:大中小
單塊架構
應用軟件發(fā)展早期,系統規模一般很小,特點(diǎn)是應用功能集中、代碼和數據中心化,表現為一個(gè)軟件發(fā)布包,集中部署,各模塊運行在同一個(gè)進(jìn)程的應用程序。此時(shí)一般幾臺機器就可以完成全部應用軟件功能。
以Web應用程序為例,在Web應用程序開(kāi)發(fā)的早期,由于受到面向過(guò)程的思維及設計方式的影響,所有的邏輯代碼并沒(méi)有明顯的區分,因此代碼之間的調用相互交錯,錯綜復雜。譬如,我們早期使用的ASP、JSP以及PHP,都是將所有的頁(yè)面邏輯、業(yè)務(wù)邏輯以及數據庫訪(fǎng)問(wèn)邏輯放在一起,這是我們通常提到的單塊架構。
在這種架構下,所需的機器數量很小,完全的scale-up模式,據說(shuō)IBM公司在上世紀50年代曾經(jīng)宣稱(chēng), 全世界只需要5臺計算機就夠了!
多層架構
為了解決單塊架構擴展性差的問(wèn)題,同時(shí)解決代碼集中帶來(lái)的并行開(kāi)發(fā)測試困難等問(wèn)題,逐步出現了多層架構,把表示層、業(yè)務(wù)邏輯層、數據訪(fǎng)問(wèn)層適當分離,分別打包部署。如通過(guò)實(shí)現Model-View-Controller的模式將數據、業(yè)務(wù)、展現進(jìn)行分離。還有一種RPC架構,通過(guò)遠程過(guò)程調用實(shí)現應用架構分離。
此時(shí)每層都獨立打包,獨立部署于容器和單獨的服務(wù)器中,應用結構更加復雜但也更加清晰,當然所需的服務(wù)器數量就進(jìn)一步增加了。
服務(wù)化架構
多層架構盡管大幅提升了應用的擴展性,但是隨著(zhù)軟件和系統規模的不斷擴大,垂直應用越來(lái)越多,應用之間交互不可避免,此時(shí)層間應用接口變得越來(lái)越龐大,最終會(huì )變得難以管理。通過(guò)將核心業(yè)務(wù)抽取出來(lái),作為獨立的服務(wù),逐漸形成穩定的服務(wù)中心,使前端應用能更快速地相應多變的市場(chǎng)需求,也使不同服務(wù)的獨立擴展成為可能。
在這種模式下,可以按服務(wù)進(jìn)一步拆分部署,應用可以擴展到更多的機器和容器上。
分布式云化架構
隨著(zhù)業(yè)務(wù)不斷發(fā)展,硬件成本的下降,基于X86架構的廉價(jià)硬件+分布式軟件的模式日趨成熟,得到了大規模應用,分布式服務(wù)框架逐漸替代傳統的服務(wù)化架構,解決了傳統服務(wù)化的弊端,例如企業(yè)集成總線(xiàn)ESB是實(shí)體總線(xiàn),性能線(xiàn)性擴展能力有限,硬件負載均衡器的壓力越來(lái)越大,不斷擴容導致硬件成本增加,隨著(zhù)業(yè)務(wù)規模的不斷增長(cháng),傳統的數據庫、配置中心等逐漸成為單點(diǎn)瓶頸。當然應用也徹底變?yōu)榱藄cale-out架構,導致機器和容器數量大幅上升。
微服務(wù)架構
微服務(wù)架構是對上面分布式云化架構的拓展、服務(wù)化的進(jìn)一步延伸,通過(guò)對服務(wù)進(jìn)一步細化,形成微服務(wù),運行于單獨的容器平臺,可實(shí)現云的彈性和敏捷,如彈性伸縮、線(xiàn)上線(xiàn)下一致的環(huán)境、提升自動(dòng)化運維能力等。
別著(zhù)急,下面再允許我介紹下自動(dòng)化運維的內容,究竟包含哪些內容?
1、硬件和網(wǎng)絡(luò )的自動(dòng)管理
2、云化、虛擬機的自動(dòng)管理3、操作系統和軟件的自動(dòng)化安裝、配置
4、常規任務(wù)(健康檢查、安全加固和檢查、備份、清理、數據管理、彈性伸縮等)
5、手工任務(wù)(容災切換、應急操作、應用部署和起?!?/span>
6、監控
7、問(wèn)題診斷
8、可視化
其中1、2、3主要是傳統IaaS層關(guān)注的工作內容,重點(diǎn)是計算、存儲、網(wǎng)絡(luò )的自動(dòng)化管理,4到8主要是PaaS層關(guān)注的工作內容,IaaS層和PaaS層相互結合,共同完成自動(dòng)化運維。
好了,終于到正題了,自動(dòng)化運維前世今生來(lái)了…..
1、史前時(shí)代:此時(shí)系統規模很小,一般幾臺,不超過(guò)幾十臺,此時(shí)一般通過(guò)手工單臺登錄即可滿(mǎn)足運維要求。2、中世紀時(shí)代(集中管理階段):系統規模有了較大擴展,從幾十臺到上百臺,此時(shí)再通過(guò)手工方式已經(jīng)無(wú)法進(jìn)行,于是出現了各種Shell腳本,通過(guò)腳本實(shí)現相關(guān)的運維,腳本僅僅是針對特定的場(chǎng)景,難以實(shí)現全流程的自動(dòng)化。
3、中世紀拓展(集中管理的進(jìn)階):為了方便管理以及可視化,出現了各類(lèi)商用或開(kāi)源工具軟件實(shí)現自動(dòng)化運維,如HP Openview、puppet、SaltStack、Chef等等,做為腳本方式的提升。
4、新時(shí)代:系統規模進(jìn)一步擴大,從上百臺演進(jìn)到上千上萬(wàn)臺,以前的方式由于存在弊端,如缺乏統一的CMDB或太簡(jiǎn)單、不支持復雜環(huán)境、缺乏友好的可視化界面等,難以滿(mǎn)足要求,此時(shí)又出現了幾個(gè)分枝:
分枝一:從底向上的云平臺方案:通過(guò)云管理平臺實(shí)現計算、網(wǎng)絡(luò )、存儲的IaaS層自動(dòng)化管理,同步建立軟件PaaS層自動(dòng)管理,最終實(shí)現融合。
分枝二:從上向下的云平臺方案:通過(guò)上層PaaS層自動(dòng)化管理,逐步向下探索,如容器等。
新生代自動(dòng)化運維初探
下面重點(diǎn)介紹幾個(gè)自動(dòng)化運維工具或平臺:
Openstack
Openstack是IaaS層目前最活躍的一個(gè)開(kāi)源的云計算 IaaS 平臺,即云操作系統,類(lèi)似于A(yíng)WS(亞馬遜的云服務(wù)),通過(guò)各種開(kāi)源組件實(shí)現了不同功能,目前大部分云管理平臺均基于Openstack實(shí)現計算、網(wǎng)絡(luò )、存儲的統一管理,Openstack支持如下功能組件:
計算服務(wù)(Nova):按需提供計算資源,創(chuàng )建和管理批量虛擬機 ,動(dòng)態(tài)虛擬機管理:創(chuàng )建、重啟、調整大小、遷移等。
對象存儲服務(wù)(Swift):基于普通硬件的大規模存儲,無(wú)中心節點(diǎn),分布式存儲、水平擴展,同時(shí)多數據備份,保證安全,通過(guò)API接口對外訪(fǎng)問(wèn)。
塊存儲服務(wù)(Cinder):為虛擬機提供云硬盤(pán)。
網(wǎng)絡(luò )服務(wù)(Neutron):為虛擬機提供網(wǎng)絡(luò )訪(fǎng)問(wèn)能力。
編排服務(wù)(Heat):提供自動(dòng)化部署及管理服務(wù)。
數據庫服務(wù)(Trove):提供數據庫管理服務(wù)。
認證服務(wù)(Keystone):提供身份認證機制服務(wù)。
鏡像服務(wù)(Glance):提供虛擬機鏡像存儲服務(wù)。
監控服務(wù)(Ceilometer):提供計量與監控服務(wù)。
Dashboard(Horizon):自服務(wù)、權限、圖形化界面。
Openstack盡管對IaaS層的自動(dòng)化管理比較強大,但仍然需要注意如下幾點(diǎn):
1、Openstack版本眾多,如何選擇是一個(gè)難題。
例如存在社區版、發(fā)行版、商業(yè)公司定制版本等,如何選擇是一個(gè)難題,而且Openstack每半年一個(gè)穩定版本,演進(jìn)很快。一般認為對Openstack項目中的開(kāi)源代碼進(jìn)行修改定制是個(gè)不錯的主意,但這從長(cháng)期角度來(lái)看不一定優(yōu)質(zhì)?!岸ㄖ圃啤焙芸赡苄枰冻龈甙旱拇鷥r(jià),不僅投資巨大、成本高昂,企業(yè)用戶(hù)還將被迫面對一大堆后續的管理及維護開(kāi)銷(xiāo),并被綁定在單一供應商或版本身上。
建議企業(yè)如果有很強的技術(shù)能力的話(huà),可以根據自己的需求做定制,但需要把握好和社區發(fā)展的關(guān)系。 一般來(lái)說(shuō),需要根據自己的需求,選擇合適的版本,盡量不改變社區版本,定制化需求盡量在外圍進(jìn)行改動(dòng)。如果采用了廠(chǎng)商的版本,實(shí)際上也是某種綁定,可能離社區越來(lái)越遠。
2、需要慎重選擇相關(guān)組件合功能
由于Openstack理念是分布式、最終一致性,因此所有的原始功能組件都是基于這一設計,企業(yè)用戶(hù)考慮采納Openstack之前,必須對企業(yè)業(yè)務(wù)應用進(jìn)行分析:應用程序是否有可擴展性和彈性伸縮的要求? 應用程序是否可以接受最終一致性? 應用程序是否無(wú)狀態(tài)化? 應用程序的性能要求?應用程序的可靠性要求? 應用程序的安全要求? 應用程序的容災備份需求? 不同的要求決定了Openstack不同的計算、存儲、網(wǎng)絡(luò )等模塊設計。
3、Openstack對PaaS層和物理機管理較弱,需借助其他工具實(shí)現
Openstack已經(jīng)能夠支持很多的IaaS自動(dòng)化運維和部分PaaS自動(dòng)化運維任務(wù),但不能滿(mǎn)足全部,如批量運維、深入監控、軟件管理等功能缺少,特別是對物理機運維較弱,一般需要結合其他PaaS層管理進(jìn)一步完善自動(dòng)化運維體系。
SaltStack+定制
PaaS層自動(dòng)化運維工具就太多了,例如監控就有Nagios、Ganglia、Zabbix等,運維工具則有Puppet、Chef、SaltStack、Ansible等,不同企業(yè)根據企業(yè)自身開(kāi)發(fā)實(shí)力、結合配置管理工具的資源豐富程度、依賴(lài)復雜程度考慮,會(huì )有不同的選擇。通過(guò)對運維工具本身的研究,結合運維人員的運維經(jīng)驗和評估企業(yè)未來(lái)的規模,下面以開(kāi)源SaltStack+定制實(shí)現的方案進(jìn)行介紹。
SaltStack是繼 Puppet、Chef 之后新出現的S配置管理及遠程執行工具,與 Puppet 相比,SaltStack較為輕量;不像 Puppet有一套自己的 DSL 用來(lái)寫(xiě)配置,SaltStack 使用 YAML 作為配置文件格式,相對簡(jiǎn)單,同時(shí)也便于動(dòng)態(tài)生成;此外,SaltStack 在遠程執行命令時(shí)的速度快,由于使用了ZeroMQ,這個(gè)下發(fā)過(guò)程可以并行執行,速度比Ansible的無(wú)agent ssh通信快得多,是一個(gè)分布式遠程執行系統,用來(lái)在遠程節點(diǎn)(可以是單個(gè)節點(diǎn),也可以是任意規則挑選出來(lái)的節點(diǎn))上執行命令和查詢(xún)數據。
從部署結構上看,SaltStack的在部署上可以分為master和minion兩個(gè)部分,其中master相當于統領(lǐng)所有機器的總管,而minion則是部署在被管理機器上面的agent進(jìn)程,master通過(guò)網(wǎng)絡(luò )將配置管理相關(guān)的操作下發(fā)到minion,由minion在對應機器的本地執行。典型的部署例子如下圖所示:
在現實(shí)生產(chǎn)環(huán)境中,大批量的用戶(hù)創(chuàng )建需求,文件上傳需求、配置變更需求、軟件升級需求占用了維護人員大量的時(shí)間,引入SaltStack后,該工具的遠程執行和配置管理可以解決該問(wèn)題,真正實(shí)現批量化和自動(dòng)化,滿(mǎn)足海量運維的需求。
容器
有了Openstack和SaltStack為代表的的PaaS層自動(dòng)化工具還不夠,針對應用自動(dòng)化運維場(chǎng)景,如彈性伸縮、DevOps(開(kāi)發(fā)運維一體化、開(kāi)發(fā)測試一致的環(huán)境、自動(dòng)資源調度、應用日志統一管控、應用服務(wù)的編排、微服務(wù)管理等),此時(shí)出現了容器技術(shù),容器技術(shù)實(shí)現有很多種,但最流行的是Docker。
傳統容器技術(shù)相較虛擬機優(yōu)勢不是特別大。Docker能夠流行一大重要因此就是它的創(chuàng )新–Docker鏡像。Docker構建了一整套構建、發(fā)布、運行體系:容器(Container)、倉庫(Repository)、鏡像(Images)。傳統容器只解決了容器運行(run)的問(wèn)題。而Docker定義了一套容器構建(build)分發(fā)(ship)的標準,使應用管理非常便捷,尤其適合微服務(wù)管理。
注意容器對應用有特定的要求,并不是所有應用都適合,例如需要無(wú)狀態(tài)化、鏡像文件不能太大等。
自動(dòng)化運維需要注意的幾點(diǎn):
一般的自動(dòng)化運維工具均缺乏良好的可視化界面,需要進(jìn)行結合定制開(kāi)發(fā)。良好的界面可以更易于在企業(yè)內部推廣自動(dòng)化運維。
自動(dòng)化運維工具眾多,各有所長(cháng),應結合熟悉程度、技術(shù)特點(diǎn)進(jìn)行針對性選擇。
多層的自動(dòng)化管理工具,多頭的配置管理是個(gè)難題,建議考慮定制化,設計統一的CMDB,做到一點(diǎn)配置,多點(diǎn)更新。
?。ㄔ膩?lái)自運維派)
- 1簡(jiǎn)約至美!新鴻儒傾力打造《銳馳官網(wǎng)》??榮獲2018IAI設計優(yōu)勝獎
- 2中紀委監察部官網(wǎng)2018新版上線(xiàn)??新鴻儒設計增色彩
- 3新鴻儒?新春大拜年
- 4關(guān)于新麒麟抄襲新鴻儒官網(wǎng)的聲明
- 5不忘初心,感恩前行?新鴻儒新年遷新居
- 6華星鋼構攜手新鴻儒??高端網(wǎng)站隆重亮相
- 7中儲糧簽約新鴻儒?糧食巨頭擁抱互聯(lián)網(wǎng)
- 8新鴻儒簽約方正??塑造集團互聯(lián)網(wǎng)品牌形象
- 9國美再次攜手新鴻儒?創(chuàng )新升級品牌官網(wǎng)
- 10新鴻儒協(xié)辦第二屆互聯(lián)網(wǎng)大會(huì )??助力工程建設行業(yè)互聯(lián)網(wǎng)+


