1、運維自動化發展 運維學習和發展的一個線路: 1.搭建服務(部署並運行起來) 2.用好服務(監控、管理、優化) 3.自動化(服務直接的關聯和協同工作) 4.產品設計(如何設計一個運維系統) -----當下雲計算的核心競爭力是運維! 系統架構師(偏管理):網絡 系統 數據庫 開發 雲計算 自動化 運維管理 服務管理 項目管理 測試 業務 -----專注於某一領域
2、運維自動化發展 運維工作內容分類: 監控運維(7x24運維值班、故障處理) 應用運維(業務熟悉、服務部署、業務部署、版本管理、灰度發布、應用監控)
安全運維(整體的安全方案、規范、漏洞檢測、安全防護等)
系統運維(架構層面的分布式緩存、分布式文件系統、日志收集、環境規划(測試、開發、生產)、架構設計、性能優化) 基礎服務運維(包含運維開發)(內部dns、負載均衡、系統監控、資產管理、運維平台)
基礎設施運維(系統初始化、網絡維護、負責設備上下架、巡檢、報修、硬件監控)
3、運維自動化發展 標准化: 物理設備層面: 1.服務器標簽化、設備負責人、設備采購詳情、設備擺放標准 2.網絡划分、遠程控制卡、網卡端口 3.服務器機型、硬盤、內存統一。根基業務分類 4.資產命名規范、編號規范、類型規范 5.監控標准 操作系統層面: 1.操作系統版本 2.系統初始化(dns、ntp、內核參數調優、rsyslog、主機名規范) 3.基礎agent配置(zabbix agent、logstash agent、saltstack minion) 4.系統監控標准(cpu、內存、硬盤、經常) 應用服務層面: 1.web服務選型(apache、nginx) 2.進程啟動用戶、端口監聽規范、日志收集規范(訪問日志、錯誤日志、運行日志) 3.配置管理(配置文件規范、腳本規范) 4.架構規范(nginx+keepalievd、lvs+keeplievd) 5.部署規范(位置、包命名等) 運維操作層面: 1.機房巡檢流程(周期、內容、報修流程) 2.業務部署流程(先測試、后生產、回滾) 3.故障處理流程(緊急處理、故障升級、重大故障管理) 4.工作日志標准(如何編寫工作日志) 5.業務上線流程(1.項目發起2.系統安裝3.部署應用4.解析域名5.測試6.加監控7.備份) 6.業務下線流程(誰發起,數據如何處理) 7.運維安全規范(密碼復雜度、更改周期、vpn使用規范、服務登錄規范) -----目標:文檔化
4.運維自動化發展 工具化: 1、shell腳本(功能性(流程)腳本、檢查性、報表性) 2、開源工具(zabbix、elkstack、saltstack、cobbler) 目標:1、促進標准化的實施 2、將重復的操作,簡單化 3、將多次操作,流程化 4、減少人為操作的低效和降低故障率 工具化和標准化是好基友 痛點: 1、至少要ssh到服務器上執行,可能犯錯 2、多個腳本有執行順序的時候,可能犯錯 3、權限不好管理,日志沒法統計 4、無法避免手工操作 例子:比如某天我們要對一台數據庫從庫進行版本停機升級,那么要求進行評估 統計影響:晚上3點有定時任務連接該數據庫,做數據報表統計 1、凌晨3點我們所有系統的定時任務有哪些 crontab 2、這些crontab哪些連接我們要停止的從庫 3、哪些可以停,哪些不能停(修改到主庫),哪些可以后補 4、這些需要后補的腳本哪個業務、誰加的、什么時候加的
5.運維自動化發展 web化
運維平台: 例子: 1、做成web界面 2、權限控制 3、日志記錄 4、弱化流程 5、不用ssh到服務器,減少人為操作造成的故障 dns web 管理 bind-DLZ 負載均衡web管理 job管理平台 監控平台 zabbix 操作系統安裝平台 6.運維自動化發展 服務化(api化) dns web 管理 bind-DLZ dns-api 負載均衡web管理 slb-api job管理平台 job-api 監控平台 zabbix zabbix-api 操作系統安裝平台 cobbler-api 部署平台 deploy-api 配置管理平台 saltstack-api 1、調用cobbler-api安裝操作系統 2、調用saltstack-api進行系統初始化 3、調用dns-api 解析主機名 4、調用zabbix-api該新上線機器加上監控 5、再次調用saltstack-api部署軟件(nginx-php) 6、調用deploy-api將當前版本代碼部署到服務器上 7、調用test-api 測試當前服務運行是否正常 8、調用slb-api將該節點加入集群 7.運維自動化發展 智能化
智能化的自動化擴容、縮容、服務降級、故障自愈 觸發機制-》決策系統(決策樹)-》 1.zabbix觸發Action 觸發: 1、當某個集群的訪問量超過最大支撐量,比如10000 1.1、cpu使用率達到xx。內存使用率達到xx 2、當持續5分鍾 3、不是攻擊 4、資源池有可用資源 4.1、當前網絡帶寬使用率 4.2、如果公有雲--錢夠不夠 5、當前后端服務支撐量是否超過閾值,如果超過應該后端先擴容 6、數據庫是否可用支撐當前並發 7、當前自動化擴展隊列,是否有正在擴容的節點 8、其他業務相關的 之前:先判斷buffer是否有最近x小時,已經移除的之前創建的虛擬機,並查詢軟件版本是否和當前一致,如果一致跳過2、3、4步驟,如果不一致掉過2、3步驟 2.openstack 創建虛擬機 3.saltstack 配置環境--------》監控 4.部署系統部署當前代碼 5.測試服務是否可用(注意間隔和次數) 6.加入集群 7.通知(短信、郵件) 自動化縮容: 1.觸發條件和決策 2.從集群中移除節點----》關閉監控--》移除 3.通知 4.移除的節點存放在buffer里面 5.buffer里面超過一天的虛擬機,自動關閉,存放於xx區 6.xx區的虛擬機。每七天清理刪除
8. 運維自動化發展 基於ITIL的運維管理體系 成為一名運維經理: 技術: 運維知識體系 除了技術: 1.服務管理 ITIL 2.項目管理 PMP 做人