運(yùn)維自動(dòng)化發(fā)展
運(yùn)維和發(fā)展的一個(gè)線路
- 1.搭建服務(wù)(部署并運(yùn)行起來)
- 2.用好服務(wù)(監(jiān)控、管理、優(yōu)化)
- 3.自動(dòng)化(服務(wù)直接的關(guān)聯(lián)和協(xié)同工作)
- 4.產(chǎn)品設(shè)計(jì)(如何設(shè)計(jì)一個(gè)監(jiān)控系統(tǒng))
云計(jì)算的核心競(jìng)爭(zhēng)力是運(yùn)維!
系統(tǒng)架構(gòu)師(偏管理):網(wǎng)絡(luò) 系統(tǒng) 數(shù)據(jù)庫(kù) 開發(fā) 云計(jì)算 自動(dòng)化 運(yùn)維管理 服務(wù)管理 項(xiàng)目管理 測(cè)試 業(yè)務(wù)
專注于某一領(lǐng)域
解決方案架構(gòu)師
運(yùn)維工作內(nèi)容分類
- 監(jiān)控運(yùn)維(7x24運(yùn)維值班、故障處理)
- 應(yīng)用運(yùn)維(業(yè)務(wù)熟悉、服務(wù)部署、業(yè)務(wù)部署、版本管理、灰度發(fā)布、應(yīng)用監(jiān)控)
- 安全運(yùn)維(整體的安全方案、規(guī)范、漏洞監(jiān)測(cè)、安全防護(hù)等)
- 系統(tǒng)運(yùn)維(架構(gòu)層面的分布式緩存、分布式文件系統(tǒng)、日志收集、環(huán)境規(guī)劃(測(cè)試、開發(fā)、生產(chǎn))、架構(gòu)設(shè)計(jì)、性能優(yōu)化)
- 基礎(chǔ)服務(wù)運(yùn)維(包含運(yùn)維開發(fā))(內(nèi)部DNS、負(fù)載均衡、系統(tǒng)監(jiān)控、資產(chǎn)管理、運(yùn)維平臺(tái))
- 基礎(chǔ)設(shè)施運(yùn)維(系統(tǒng)初始化、網(wǎng)絡(luò)維護(hù))
- 機(jī)房運(yùn)維(負(fù)責(zé)設(shè)備上下架、巡檢、報(bào)修、硬件監(jiān)控)
阿里云:
SLB LVS + Tengine(Nginx)
ECS KVM
運(yùn)維標(biāo)準(zhǔn)化
物理設(shè)備層面:
1.服務(wù)器標(biāo)簽化、設(shè)備負(fù)責(zé)人、設(shè)備采購(gòu)詳情、設(shè)備擺放標(biāo)準(zhǔn)
2.網(wǎng)絡(luò)劃分、遠(yuǎn)程控制卡、網(wǎng)卡端口
3.服務(wù)器機(jī)型、硬盤、內(nèi)存統(tǒng)一,根據(jù)業(yè)務(wù)分類
4.資產(chǎn)命名規(guī)范、編號(hào)規(guī)范、類型規(guī)范
5.監(jiān)控標(biāo)準(zhǔn)
操作系統(tǒng)層面
1.操作系統(tǒng)版本
2.系統(tǒng)初始化(配置DNS、NTP、內(nèi)核參數(shù)調(diào)優(yōu))
3.基礎(chǔ)Agent配備(Zabbix agent、logstash agent、salt minion)
4.系統(tǒng)監(jiān)控標(biāo)準(zhǔn)(CPU、內(nèi)存、硬盤、網(wǎng)絡(luò)、進(jìn)程)
應(yīng)用服務(wù)層面:
1.Web服務(wù)器選型(nginx、Apache)
2.進(jìn)程啟動(dòng)用戶、端口監(jiān)聽規(guī)范、日志收集規(guī)范(訪問日志、錯(cuò)誤日志、運(yùn)行日志)
3.配置管理(配置文件規(guī)范、腳本規(guī)范)
4.架構(gòu)規(guī)范(Nginx+keepalived、LVS+keepalived等等)
5.部署規(guī)范(位置、包命名等)
運(yùn)維操作層面:
1.機(jī)房巡檢流程(周期、內(nèi)容、保修流程)
2.業(yè)務(wù)部署流程(先測(cè)試、后生產(chǎn)。回滾)
3.故障處理流程(緊急處理、故障升級(jí)、重大故障處理)
4.工作日志流程(如何編寫工作日志)
5.業(yè)務(wù)上線流程(1.項(xiàng)目發(fā)起人 2.系統(tǒng)安裝 3.部署nginx 4.解析域名 5.測(cè)試 6.加監(jiān)控)
6.業(yè)務(wù)下線流程(誰發(fā)起,數(shù)據(jù)如何處理)
7.運(yùn)維安全規(guī)范(密碼復(fù)雜度、更改周期、VPN使用規(guī)范、服務(wù)登陸規(guī)范、rm命令的參數(shù)寫在最后面)
標(biāo)準(zhǔn)化:規(guī)范化 流程化 文檔化
目標(biāo):文檔化
運(yùn)維自動(dòng)化發(fā)展-工具化
工具化:
- 1.shell腳本(功能性(流程)腳本、檢查性、報(bào)表性)
- 2.開源工具:zabbix、elkstack、saltstack、cobbler
目標(biāo):
- 1.促進(jìn)標(biāo)準(zhǔn)化的實(shí)施
- 2.將重復(fù)的操作簡(jiǎn)單化
- 3.將多次操作流程化
- 4.減少人為操作的低效和降低故障率
工具化和標(biāo)準(zhǔn)化是好搭檔
痛點(diǎn):
- 1.你至少要ssh到服務(wù)器執(zhí)行,可能出錯(cuò)
- 2.多個(gè)腳本有執(zhí)行順序的時(shí)候,可能出錯(cuò)
- 3.權(quán)限不好管理,日志沒法統(tǒng)計(jì)
- 4.無法避免手工操作
例子:
比如某天我們要對(duì)一個(gè)數(shù)據(jù)庫(kù)從庫(kù)進(jìn)行版本停機(jī)升級(jí)。那么要求評(píng)估:
停機(jī)影響:
3:00 晚上有定時(shí)任務(wù)連接該數(shù)據(jù)庫(kù),做數(shù)據(jù)報(bào)表統(tǒng)計(jì)
- 1.凌晨3:00 我們所有系統(tǒng)的定時(shí)任務(wù)有哪些crontab
- 2.這些crontab哪些要連接我們要停止的從庫(kù)
- 3.哪些可以停,哪些不能停(修改到主庫(kù)),哪些可以后補(bǔ)
- 4.這些需要后補(bǔ)的腳本哪個(gè)業(yè)務(wù)的,誰加的,什么時(shí)候加的
運(yùn)維自動(dòng)化發(fā)展-web化
運(yùn)維平臺(tái)
例子:Job管理平臺(tái)
- 1.做成web界面
- 2.權(quán)限控制
- 3.日志記錄
- 4.弱化流程
- 5.不用ssh到服務(wù)器,減少人為操作造成故障 Web ssh
DNSWeb管理 bind-DLZ
負(fù)載均衡Web管理
Job管理平臺(tái)
監(jiān)控平臺(tái) zabbix
操作系統(tǒng)安裝平臺(tái)
運(yùn)維自動(dòng)化發(fā)展-服務(wù)化(API)
- DNSWeb管理 bind-DLZ dns-api
- 負(fù)載均衡Web管理 slb-api
- Job管理平臺(tái) job-api
- 監(jiān)控平臺(tái) zabbix zabbix-api
- 操作系統(tǒng)安裝平臺(tái) cobbler-api
- 部署平臺(tái) deploy-api
- 配置管理 saltstack-api
智能化實(shí)現(xiàn)
- 1.調(diào)用cobbler-api安裝操作系統(tǒng)
- 2.調(diào)用saltstack-api進(jìn)行系統(tǒng)初始化
- 3.調(diào)用dns-api解析主機(jī)名
- 4.調(diào)用zabbix-api將該新上線機(jī)器加上監(jiān)控
- 5.再次調(diào)用saltstack-api部署軟件(安裝nginx+php)
- 6.調(diào)用deploy-api將當(dāng)前版本的代碼部署到服務(wù)器上
- 7.調(diào)用test-api 測(cè)試當(dāng)前服務(wù)器運(yùn)行是否正常
- 8.調(diào)用slb-api 將該節(jié)點(diǎn)加入集群
運(yùn)維自動(dòng)化發(fā)展-智能化
運(yùn)維自動(dòng)化發(fā)展層級(jí):
- 標(biāo)準(zhǔn)化、工具化
- Web化、平臺(tái)化
- 服務(wù)化、API化
- 智能化
智能化的自動(dòng)化擴(kuò)容、縮容、服務(wù)降級(jí)、故障自愈
自動(dòng)化擴(kuò)容
1.zabbix觸發(fā)Action
觸發(fā)條件和決策:
- 1.當(dāng)某個(gè)集群的訪問量超過最大支撐量,比如10000
- 2.并持續(xù)5分鐘
- 3.不是攻擊
- 4.資源池有可用資源
- 當(dāng)前網(wǎng)絡(luò)帶寬使用率
- 如果是公有云--錢夠不夠
- 5.當(dāng)前后端服務(wù)支撐量是否超過閾值 如果超過應(yīng)該后端先擴(kuò)容
- 6.數(shù)據(jù)庫(kù)是否可以支撐當(dāng)前并發(fā)
- 7.當(dāng)前自動(dòng)化擴(kuò)展隊(duì)列,是否有正在擴(kuò)容的節(jié)點(diǎn)
- 其他業(yè)務(wù)相關(guān)的
創(chuàng)建虛擬機(jī)之前,先判斷Buffer是否有最近X小時(shí)已經(jīng)存在之前已經(jīng)移除的虛擬機(jī),并查詢軟件版本是否和當(dāng)前一致,如果一致,跳過234步,如果不一致,跳過23步
2.Openstack 創(chuàng)建虛擬機(jī)
3.Saltstack 配置環(huán)境
4.部署系統(tǒng) 部署當(dāng)前代碼
5.測(cè)試服務(wù)是否可用(注意間隔和次數(shù))
6.加入集群
7.通知(短信、郵件)
自動(dòng)化縮容
- 1.觸發(fā)條件和決策
- 2.從集群中移除節(jié)點(diǎn)
- 3.通知
- 4.移除的節(jié)點(diǎn)存放于Buffer里面
- 5.Buffer里面超過1天的虛擬機(jī),自動(dòng)關(guān)閉,存放于xx區(qū)
- 6.xx區(qū)的虛擬機(jī),超過7天的清理刪除