運維自動化發(fā)展
運維和發(fā)展的一個線路
- 1.搭建服務(wù)(部署并運行起來)
- 2.用好服務(wù)(監(jiān)控、管理、優(yōu)化)
- 3.自動化(服務(wù)直接的關(guān)聯(lián)和協(xié)同工作)
- 4.產(chǎn)品設(shè)計(如何設(shè)計一個監(jiān)控系統(tǒng))
云計算的核心競爭力是運維!
系統(tǒng)架構(gòu)師(偏管理):網(wǎng)絡(luò) 系統(tǒng) 數(shù)據(jù)庫 開發(fā) 云計算 自動化 運維管理 服務(wù)管理 項目管理 測試 業(yè)務(wù)
專注于某一領(lǐng)域
解決方案架構(gòu)師
運維工作內(nèi)容分類
- 監(jiān)控運維(7x24運維值班疮方、故障處理)
- 應(yīng)用運維(業(yè)務(wù)熟悉、服務(wù)部署、業(yè)務(wù)部署兑巾、版本管理、灰度發(fā)布忠荞、應(yīng)用監(jiān)控)
- 安全運維(整體的安全方案蒋歌、規(guī)范帅掘、漏洞監(jiān)測、安全防護等)
- 系統(tǒng)運維(架構(gòu)層面的分布式緩存奋姿、分布式文件系統(tǒng)锄开、日志收集、環(huán)境規(guī)劃(測試称诗、開發(fā)萍悴、生產(chǎn))、架構(gòu)設(shè)計寓免、性能優(yōu)化)
- 基礎(chǔ)服務(wù)運維(包含運維開發(fā))(內(nèi)部DNS癣诱、負載均衡、系統(tǒng)監(jiān)控袜香、資產(chǎn)管理撕予、運維平臺)
- 基礎(chǔ)設(shè)施運維(系統(tǒng)初始化、網(wǎng)絡(luò)維護)
- 機房運維(負責(zé)設(shè)備上下架蜈首、巡檢实抡、報修、硬件監(jiān)控)
阿里云:
SLB LVS + Tengine(Nginx)
ECS KVM
運維標(biāo)準(zhǔn)化
物理設(shè)備層面:
1.服務(wù)器標(biāo)簽化欢策、設(shè)備負責(zé)人吆寨、設(shè)備采購詳情、設(shè)備擺放標(biāo)準(zhǔn)
2.網(wǎng)絡(luò)劃分踩寇、遠程控制卡啄清、網(wǎng)卡端口
3.服務(wù)器機型、硬盤俺孙、內(nèi)存統(tǒng)一辣卒,根據(jù)業(yè)務(wù)分類
4.資產(chǎn)命名規(guī)范、編號規(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ò)、進程)
應(yīng)用服務(wù)層面:
1.Web服務(wù)器選型(nginx泞边、Apache)
2.進程啟動用戶该押、端口監(jiān)聽規(guī)范、日志收集規(guī)范(訪問日志阵谚、錯誤日志蚕礼、運行日志)
3.配置管理(配置文件規(guī)范烟具、腳本規(guī)范)
4.架構(gòu)規(guī)范(Nginx+keepalived、LVS+keepalived等等)
5.部署規(guī)范(位置奠蹬、包命名等)
運維操作層面:
1.機房巡檢流程(周期朝聋、內(nèi)容、保修流程)
2.業(yè)務(wù)部署流程(先測試囤躁、后生產(chǎn)冀痕。回滾)
3.故障處理流程(緊急處理狸演、故障升級言蛇、重大故障處理)
4.工作日志流程(如何編寫工作日志)
5.業(yè)務(wù)上線流程(1.項目發(fā)起人 2.系統(tǒng)安裝 3.部署nginx 4.解析域名 5.測試 6.加監(jiān)控)
6.業(yè)務(wù)下線流程(誰發(fā)起,數(shù)據(jù)如何處理)
7.運維安全規(guī)范(密碼復(fù)雜度宵距、更改周期腊尚、VPN使用規(guī)范、服務(wù)登陸規(guī)范满哪、rm命令的參數(shù)寫在最后面)
標(biāo)準(zhǔn)化:規(guī)范化 流程化 文檔化
目標(biāo):文檔化
運維自動化發(fā)展-工具化
工具化:
- 1.shell腳本(功能性(流程)腳本婿斥、檢查性、報表性)
- 2.開源工具:zabbix哨鸭、elkstack受扳、saltstack、cobbler
目標(biāo):
- 1.促進標(biāo)準(zhǔn)化的實施
- 2.將重復(fù)的操作簡單化
- 3.將多次操作流程化
- 4.減少人為操作的低效和降低故障率
工具化和標(biāo)準(zhǔn)化是好搭檔
痛點:
- 1.你至少要ssh到服務(wù)器執(zhí)行兔跌,可能出錯
- 2.多個腳本有執(zhí)行順序的時候,可能出錯
- 3.權(quán)限不好管理峡蟋,日志沒法統(tǒng)計
- 4.無法避免手工操作
例子:
比如某天我們要對一個數(shù)據(jù)庫從庫進行版本停機升級坟桅。那么要求評估:
停機影響:
3:00 晚上有定時任務(wù)連接該數(shù)據(jù)庫,做數(shù)據(jù)報表統(tǒng)計
- 1.凌晨3:00 我們所有系統(tǒng)的定時任務(wù)有哪些crontab
- 2.這些crontab哪些要連接我們要停止的從庫
- 3.哪些可以停蕊蝗,哪些不能停(修改到主庫)仅乓,哪些可以后補
- 4.這些需要后補的腳本哪個業(yè)務(wù)的,誰加的蓬戚,什么時候加的
運維自動化發(fā)展-web化
運維平臺
例子:Job管理平臺
- 1.做成web界面
- 2.權(quán)限控制
- 3.日志記錄
- 4.弱化流程
- 5.不用ssh到服務(wù)器夸楣,減少人為操作造成故障 Web ssh
DNSWeb管理 bind-DLZ
負載均衡Web管理
Job管理平臺
監(jiān)控平臺 zabbix
操作系統(tǒng)安裝平臺
運維自動化發(fā)展-服務(wù)化(API)
- DNSWeb管理 bind-DLZ dns-api
- 負載均衡Web管理 slb-api
- Job管理平臺 job-api
- 監(jiān)控平臺 zabbix zabbix-api
- 操作系統(tǒng)安裝平臺 cobbler-api
- 部署平臺 deploy-api
- 配置管理 saltstack-api
智能化實現(xiàn)
- 1.調(diào)用cobbler-api安裝操作系統(tǒng)
- 2.調(diào)用saltstack-api進行系統(tǒng)初始化
- 3.調(diào)用dns-api解析主機名
- 4.調(diào)用zabbix-api將該新上線機器加上監(jiān)控
- 5.再次調(diào)用saltstack-api部署軟件(安裝nginx+php)
- 6.調(diào)用deploy-api將當(dāng)前版本的代碼部署到服務(wù)器上
- 7.調(diào)用test-api 測試當(dāng)前服務(wù)器運行是否正常
- 8.調(diào)用slb-api 將該節(jié)點加入集群
運維自動化發(fā)展-智能化
運維自動化發(fā)展層級:
- 標(biāo)準(zhǔn)化、工具化
- Web化子漩、平臺化
- 服務(wù)化豫喧、API化
- 智能化
智能化的自動化擴容、縮容幢泼、服務(wù)降級紧显、故障自愈
自動化擴容
1.zabbix觸發(fā)Action
觸發(fā)條件和決策:
- 1.當(dāng)某個集群的訪問量超過最大支撐量,比如10000
- 2.并持續(xù)5分鐘
- 3.不是攻擊
- 4.資源池有可用資源
- 當(dāng)前網(wǎng)絡(luò)帶寬使用率
- 如果是公有云--錢夠不夠
- 5.當(dāng)前后端服務(wù)支撐量是否超過閾值 如果超過應(yīng)該后端先擴容
- 6.數(shù)據(jù)庫是否可以支撐當(dāng)前并發(fā)
- 7.當(dāng)前自動化擴展隊列缕棵,是否有正在擴容的節(jié)點
- 其他業(yè)務(wù)相關(guān)的
創(chuàng)建虛擬機之前孵班,先判斷Buffer是否有最近X小時已經(jīng)存在之前已經(jīng)移除的虛擬機涉兽,并查詢軟件版本是否和當(dāng)前一致,如果一致篙程,跳過234步枷畏,如果不一致,跳過23步
2.Openstack 創(chuàng)建虛擬機
3.Saltstack 配置環(huán)境
4.部署系統(tǒng) 部署當(dāng)前代碼
5.測試服務(wù)是否可用(注意間隔和次數(shù))
6.加入集群
7.通知(短信虱饿、郵件)
自動化縮容
- 1.觸發(fā)條件和決策
- 2.從集群中移除節(jié)點
- 3.通知
- 4.移除的節(jié)點存放于Buffer里面
- 5.Buffer里面超過1天的虛擬機拥诡,自動關(guān)閉,存放于xx區(qū)
- 6.xx區(qū)的虛擬機郭厌,超過7天的清理刪除