了解IT技術
老九你最好的選擇

運維的未來

一.DevOps的出現

相對于瀑布開發模式,敏捷開發過程的一個基本原則就是以更快的頻率交付最小化可用的軟件。高頻率的部署,每天數百個版本的發布,經常會由于運維部署自動化程度的不足,導致部署任務堆積在運維人員的面前。

對于研發人員而言,線上服務運行環境對其屬于黑盒,研發、測試和上線時的行為不一致,研發和運維之間的溝通錯位,會造成各種部署問題。

為了解決傳統意義上的研發行為和運維行為存在的脫節現象,提高持續交付的效率,DevOps的理念應運而生。為了適用與DevOps相關的快速部署節奏,ITIL流程的很多方面,特別是圍繞著變更、配置和發布流程方面,需要將所有過程盡量自動化起來。

伴隨著DevOps的理念,涌現出一批優秀的開源軟件,比如Jekins、Puppet、Chef、SaltSatck、Docker等。Jekins屬于持續集成的自動化構建工具;Puppet、Chef、SaltStack屬于配置管理和任務執行類工具,方便我們快速同步變更到所需要的環境中。

Docker是近兩年來最火的開源項目,它在Cgroup、LXC基礎之上封裝,基于Linux內核支持的NameSpace進行資源隔離,實現了進程級虛擬化。

早期我們考慮服務整體部署的時候,抽象認為每臺服務器類似一個終端設備,每個需要被部署的服務是其上安裝運行的App應用。為了達到服務整體部署,不破壞系統純凈的環境,我們制定了一系列部署要求。比如,要求服務所依賴的相關組件自包含、自解決;制定線上目錄規范,進行環境隔離;要求所有服務必須有統一的啟停接口,方便運維人員或系統進行控制管理等。

在Docker出現后,這些部署需要考慮的前置條件都迎刃而解,Docker逐漸成為我們整個運維體系中一個不可或缺的關鍵組件,也是部署自動化、動態調度部署的前提。

研發人員通過Docker進行服務封裝,能夠很方便地在開發、測試和線上環境中部署運行服務,達到部署行為的冪等。在此過程中,運維人員不需要過多的參與,只需要把Docker容器放置在合適的地方啟動即可;在有IaaS、PaaS或者自有調度系統支持的情況下,甚至部署Docker容器、啟動容器和監控服務的工作都可以由系統自動完成,整個部署工作不需要運維人員參與。

二.云服務的普及

近些年來,隨著云服務概念的普及、云服務廠商的持續投入、技術的不斷發展,云服務的單位成本在持續下降,云服務已經成為一種不可阻擋的趨勢。這給傳統的IT建設理念,造成了一定的沖擊。

傳統的應用部署,需要兼顧應用程序、數據、運行時環境、中間層、操作系統、虛擬化、服務器、存儲、網絡等很多方面,單位建設成本和維護成本很高,同時對專業人才的需求更多、要求更高,無形中增加了業務運行的成本支出。圖5-1描述了傳統IT建設和IaaS、PaaS所關注的不同層次。


IaaS(基礎設施即服務),在傳統應用部署的基礎上,將OS以下的層次都負責起來,即操作系統、資源虛擬化、服務器、存儲、網絡,減少運維工作量;OpenStack作為領先的開源解決方案,也是我們運維體系建設的重要方向之一。提供商業服務的AWS,也是屬于IaaS平臺典型的代表。

安全問題是影響我們使用云服務的關鍵因素,和傳統運維不一樣,網絡設備、宿主機等資源的權限都在云服務廠商手里,網絡流量的出入也需要經過他們的設備,云服務廠商自身的安全規范和審計還比較薄弱。

隨著HTTPS的大量使用、VPC的成熟、云服務廠商自身安全加固等,這些安全因素也在逐漸減小。當然,由于所有用戶使用虛擬機共享宿主機,虛擬機被攻陷獲取宿主機的安全問題還依然存在,比如2015年5月份披露的毒液漏洞(VENOM,CVE編號CVE-2015-3456),攻擊者可以在有問題的虛擬機中進行逃逸,獲取宿主機代碼執行的權限。

現在也有一些云服務廠商,比如金山云也提供了混合云的服務,我們可以把非關鍵服務部署在云服務上,把關鍵服務部署在物理環境中,由我們控制物理設備的權限,通過公網或者私有專線進行通信,緩解云服務暫時還不能滿足的安全需求。

云服務的出現,我們不需要再關注OS層面以下的問題。隨著云服務的逐漸成熟,能夠提供足夠的資源儲備和交付效率,我們不需要投入大量的人力在機房建設、服務器采購和網絡管理方面,也不需要儲備更多的資源應對突發業務、網絡攻擊等。對于公司而言,資源得到進一步優化,不需要那么多的基礎運維人員,而且效率比以往更高了。

PaaS(平臺即服務),在傳統應用部署的基礎上,將應用的運行時環境、中間層通過規范化的方式給管理起來,并實現容量的自動伸縮。本質上,PaaS是作為一種應用部署的規范,并通過相應的機制來保障該規范的實施,以及進一步地實現資源的動態調度,達到容量自動伸縮的目的。

CloudFoundry屬于開源PaaS平臺的典型代表,只要研發程序遵從一定的約束條件,服務的運行發布、擴容和故障容災都由PaaS平臺統一負責。PaaS由于具有強約束性,主要適用于簡單業務,但不能滿足比較復雜的業務架構。

我們可以根據PaaS的特性,通過Docker容器將業務進行封裝,使業務達到可隨意部署和資源隔離的程度,并參考Borg的設計思路定制動態調度系統,通過系統調度服務的部署和監控,減少對應用運維人員的依賴。

云服務廠商還會提供其他各種類SaaS(軟件即服務)的服務,比如CloudWatch、EMR(Elastic MapReduce)、RDS(Relational Database Service)、CloudFront等,進一步降低對運維人員的依賴,運維人員不需要搭建和運維相關的基礎設施或服務。

比如RDS提供豐富的數據庫主從搭建、數據遷移、慢查詢監控等功能,不需要數據庫運維人員投入過多精力在數據庫日常運維方面,可以把更過的精力投入在數據庫設計和優化方面。StatHat屬于SaaS類的云監控服務,我們自研的監控系統是參考它設計的。

三.網絡虛擬化

在傳統網絡架構中心,根據業務需求部署后,如果發生任何變更,都需要重新修改網絡設備(如交換機、防火墻)的配置。這是一個非常痛苦的過程,并且不同品牌網絡設備的OS都各不相同,統一配置的難度可想而知。

在移動互聯網瞬息萬變的今天,高穩定和高性能的網絡已經不足以支持業務的需求,靈活性和敏捷性更為關鍵。傳統網絡模式的問題在于它的封閉性和自治性很難與應用直接產生關系。

隨著SDN(Software Defined Network)技術的成熟,可以讓其變得更輕而易舉。SDN提出將控制層面和數據層面分離,通過集中或分布式控制器統一管控,通過OpenFlow協議提供網絡的可編程能力,讓用戶可以在網絡上定義各種應用程序,通過軟件來定義邏輯上的網絡拓撲,以滿足對網絡資源的不同需求,而無須關心底層網絡的物理拓撲結構。

在未來,也許網絡設備也類似一臺臺服務器,由軟件控制和管理,不需要過多依賴網絡運維人員。

四.總結

運維的未來是充滿危機和挑戰的,從當前虛擬化和云計算的發展趨勢來看,未來的互聯網服務一定是依托在云端。通過云服務廠商提供的各類服務組件,結合DevOps的理念,將運維所涉及的工作串聯起來、自動化起來。

運維人員的工作逐漸由體力密集型向腦力密集型轉變,不再需要大量的運維人員從事那些基礎建設、服務變更、故障處理等煩瑣的體力工作。

運維工作更大的方向是提供平臺化的運維產品,提供運維數據的可視化、運維工作的自動化,由操作、響應類轉變為優化、規劃類的工作內容。甚至連傳統的硬件設備管理,也逐漸地通過軟件層面去實現,更加的高效和自動化。

作為運維人員,已經不能和以前一樣,只關注某個產品、某個領域的專業技能運維,我們需要關注技術的變化趨勢,擁抱變化,做好運維轉型,成為云服務建設或使用的專家,成為業務規劃或性能優化的專家,或許……

贊(0) 打賞
未經允許不得轉載:老九IT技術網 » 運維的未來

評論 搶沙發

  • 昵稱 (必填)
  • 郵箱 (必填)
  • 網址

老九為IT技術人提供最全面的IT資訊和交流互動

歡迎投稿廣告合作

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

微信掃一掃打賞

足彩计算器混合过关