產品生命周期維度
運維的職責復蓋了產品從設計到發布、運行維護、變更升級及至下線的生命周期,各個階段的職責包括:
產品發布前
這個階段運維工程師的職責是參與設計並把關運維準入,主要包括:(1) 產品的業務熟悉;
(2) 產品架構設計的合理性評估,包括是否存在單點,是否可容錯,是否有強耦合等,同時需要提供產品設計的合理性建議以使產品能夠滿足上線發布並穩定運行的基本要求;
(3) 資源評估,包括所需的伺服器資源、網路資源以及資源的分布等,同時把關產品對資源預算申請的合理性,控制服務成本;
(4) 資源就位,將申請的伺服器及基礎環境/域名準備就位。
產品發布
這個階段運維工程師負責發布的具體工作,將具體的軟體和系統/硬體資源整合形成產品並對外提供服務。
對於已線上服務的更新也屬於發布範疇,這個時候的產品發布一般要保障線上發布,在不中斷對外服務的情況下完成產品的升級。對於大型複雜的變更也存在中止服務部署完成後再重新提供服務的情況,但這種情況需要運維工程師通過儘可能的技術手段來避免。
產品運行維護
這個階段的主要工作包括:
(1) 監控:對服務運行的狀態進行實時的監控,隨時發現服務的運行異常和資源消耗情況;輸出重要的日常服務運行報表以評估服務/業務整體運行狀況,發現服務隱患;
(2) 故障處理:對服務出現的任何異常進行及時處理,儘可能避免問題的擴大化甚至中止服務。這之前運維工程師需要針對各類服務異常,如機房/網路故障、程式bug等問題制定處理的預案,問題出現時可以自動或手動執行預案達到止損的目的。除了日常小故障外,運維工程師還需要考慮產品不同程度受損情況下的災難恢復,包括諸如地震等不可抗力導致大規模機房故障、線上產品被刪除等對產品造成致命傷害的情況。
容量管理:包括服務規模擴張後的資源評估、擴容、機房遷移、流量調度等規劃和具體實施。
產品性能/成本最佳化
產品對外提供服務最重要的一點是用戶體驗,用戶體驗中非常重要的是產品的可用性和回響速度。而如何用最合理的資源(如機器、頻寬等)支持產品提供高可用和高速度的用戶體驗,這也是運維工程師的重要職責。
產品下線
發展良好的網際網路產品將始終線上對外提供服務,但網際網路產品快速疊代,也存在相當多孵化的產品最後被淘汰的情況,這些產品都需要做下線處理,這個過程運維工程師主要做好資源回收的工作,將機器/網路等資源回收後納入資源池中供其它服務使用。
運維技術方向
產品的整個生命周期里運維的職責重要而廣泛,但運維工程師們的職責不僅限於這部分工作,還需要總結工作中遇到的問題,抽取出相關的技術方向、研發相關的工具和平台以支持/最佳化業務的發展並提高運維的效率,相關技術工作主要包括:
服務監控技術:包括監控平台的研發、套用,服務監控準確性、實時性、全面性的保障
服務故障管理:包括服務的故障預案設計,預案的自動化執行,故障的總結並反饋到產品/系統的設計層面進行最佳化以提高產品的穩定性
服務容量管理:測量服務的容量,規劃服務的機房建設,擴容、遷移等工作
服務性能最佳化:從各個方向,包括網路最佳化、作業系統最佳化、套用最佳化、客戶端最佳化等,提高服務的性能和回響速度,改善用戶體驗
服務全局流量調度:接入服務的流量,根據容量和服務狀態在各個機房間分配流量
服務任務調度:服務的各種定時/非定時任務的調度觸發及狀態監控
服務安全保障:包括服務的訪問安全、防攻擊、許可權控制等
數據傳輸技術:包括p2p等各類傳輸技術的研發套用,也遠距離大數據傳輸等問題的解決
服務自動發布部署:部署平台/工具的研發,及平台/工具的使用,做到安全、高效的發布服務
服務集群管理:包括服務的伺服器管理、大規模集群管理等
服務成本最佳化:儘可能降低服務運行使用的資源,降低服務運行成本
資料庫管理(DBA):通過設計、開發和管理高性能資料庫集群,使資料庫服務更穩定、更高效、更易於管理。
平台化的開發:類docker和google borg平台的開發管理,及服務接入技術
分散式存儲平台的開發最佳化:類google gfs等分散式存儲平台的研發及服務接入
等等,凡是關係到服務質量、效率、成本、安全等方面的工作,及涉及到的技術、組件、工具、平台都在運維的技術範疇里。做好每一個技術方向、完成相應的組件、工具、平台研發都能對履行運維職責起到積極的作用,對業務的發展發揮關鍵影響。
運維工程師使用的平台、工具
運維工程師使用的運維平台和工具包括:
Web伺服器:apache、tomcat、nginx、lighttpd
監控:nagios、ganglia
自動部署:ansible、sshpt
配置管理:puppet、cfengine
負載均衡:lvs、haproxy
傳輸工具:scribe、flume
備份工具:rsync、wget
資料庫:mysql、oracle、sqlserver
分散式平台:hdfs、mapreduce、spark、storm、hive
分散式資料庫:hbase、cassandra、redis、MongoDB
容器:lxc、docker
虛擬化:openstack、xen、kvm
安全:kerberos、selinux、acl、iptables
問題追查:netstat、top、tcpdump、last
廣義上所有開源的軟體都是運維工程師會使用到的平台和工具,同時也包括運維各個技術方向上自行研發的各類平台。
運維相關的國際會議
以下是部分運維相關的國際會議,會議涉及運維及運維相關技術的交流學習。
nsdi'14 |
Percona live |
Velocity Oreilly web |
fcw'14 |
LISA '14 |
35th IEEE S&P 2014 |
SIGMOD/PODS ’14 |
OSDI'14 |
oow'13 |
SRECON |
業務運維
業務管理:包含對企業自身核心業務系統運行情況的監控與管理,對於業務的管理,主要關注該業務系統的CSF(關鍵成功因素Critical Success Factors)和KPI(關鍵績效指標Key Performance Indicators):
面向整個組織針對各業務系統,提供業務需求整理、需求變更和用戶體驗最佳化的載入、維護、配置、升級、補丁等方面的實現服務;
面向整個組織提供各業務系統的問題受理、回響、處理和轉交等方面的服務;
面向整個組織的各級機構和各業務部門提供各類業務系統的操作指導、數據套用、模組分配、參數設定等;
面向整個組織提供客戶端安裝、配置、升級等技術支持;
面向組織以外的部門提供相關信息(按機關相關部門要求)、回答網站稅務諮詢、局長信箱和納稅人電話提出的各類業務問題。
概念
運維一般是指對大型企業已經建立好的網路軟硬體的維護其中也包含了對套用軟體的維護如:ERP、MIS等大型無紙化辦公軟體。
所謂 IT 運維管理,是指單位 IT 部門採用相關的方法、手段、技術、制度、流程和文檔 等,對IT 運行環境(如硬軟體環境、網路環境等)、IT 業務系統和 IT 運維人員進行的綜合管理.
IT運維
IT運維是IT管理的核心和重點部分,也是內容最多、最繁雜的部分,常見的IT運維:硬體化的蟻巡運維平台,軟體形態的的HP Operations Orchestration、IBM tivoli等還有開源的軟體Nagios等。相對來說蟻巡運維平台最為簡單易用,功能強大還要看Hp和IBM的。該階段主要用於IT部門內部日常運營管理,涉及的對象分成兩大部分,即IT業務系統和運維人員,該階段的管理內容又可細分為七個子系統:
設備管理:對網路設備、伺服器設備、作業系統運行狀況進行監控。
套用/服務管理:對各種套用支持軟體如資料庫、中間件、群件以及各種通用或特定服務的監控管理,如郵件系統、DNS、Web等的監控與管理。
數據/存儲/容災管理:對系統和業務數據進行統一存儲、備份和恢復。
目錄/內容管理:該部分主要對於企業需要統一發布或因人定製的內容管理和對公共信息的管理。
資源資產管理:管理企業中各IT系統的資源資產情況,這些資源資產可以是物理存在的,也可以是邏輯存在的,並能夠與企業的財務部門進行數據互動。
信息安全管理:該部分包含了許多方面的內容,目前信息安全管理主要依據的國際標準是ISO17799,該標準涵蓋了信息安全管理的十大控制方面,36個控制目標和127種控制方式,如企業安全組織方式、資產分類與控制、人員安全、物理與環境安全、通信與運營安全、訪問控制、業務連續性管理等。
日常管理運維
日常工作管理:該部分主要用於規範和明確運維人員的崗位職責和工作安排、提供績效考核量化依據、提供解決經驗與知識的積累與共享手段IT運行維護管理的每一個子系統中都包含著十分豐富的內容,實現完善的IT運維管理是企業提高經營水平和服務水平的關鍵。運行/維護階段與服務/支持階段的分界線為前者是面向 IT部門內部的管理,而後者是面向業務部門、企業中的其它人員或直接面向客戶。
面向整個組織提供針對各業務系統的運行狀況監控、問題定位、故障排除等方面的運維服務;
面向整個組織提供針對各業務系統的需求變化,即數據項、元數據 、管理流程、數據空間等方面的管理和標準化;
面向整個組織提供針對各業務系統的運行狀態和需求變化和不同的記錄、跟蹤、保存、分析的方面的管理。