01-智能运维简介
要想了解智能運維,首先需要知道幾點:
- 運維是什么?
- 運維干什么?
- 為什么重視運維?
運維是什么?
要說運維,我先說說目前中國互聯網的發展。
中國互聯網的發展
- 第一階段:
- 新浪、搜狐、網易等門戶網站,解決了新聞信息的傳播問題
- 第二階段:
- 騰訊、阿里、百度等科技型,解決了社交、信息獲取及電商等需求問題
- 第三階段:
- 需要解決心理需求問題,直播、短視頻、綜藝、電視劇等
- 第四階段:
- 區塊鏈、自動駕駛、智能機器人等
我自己心里認為,運維的水平可以成為衡量一個公司(IT公司)技術實力的標準。
(因為不管是系統還是機器,實現功能只是一部分,穩定性更加重要!)
從系統運行的各種環境,機房、網絡、存儲、物理機、虛擬機這些基礎設施,再到數據庫、中間件平臺、云平臺、大數據平臺等,運維的側重點不在于編程,而是對這類平臺的使用和管理。
(企業管理也是一樣的,產品再好,管理不行,最終也是失敗的。)
運維干什么?
運維工程師(Operation Engineer)
- 工作范圍:
- 服務器購買、租用和上架等基本管理
- 調整網絡設備的配置管理和部署
- 服務器操作系統安裝調試
- 測試環境和生產環境的初始化與維護
- 代碼部署和管理(Git和SVN等)
- 設計和部署線上服務的監控和報警
- 服務安全性檢測(防止漏洞和攻擊)
- 數據庫管理和調優
- 公司IT設備的資產管理和分配
- 大型公司中,可根據工作內容被細分為
- 網站和業務服務運維
- 系統運維
- 網絡運維
- 數據庫運維(DBA)
- 運維開發(DevOps)
- 運維安全
- 優勢:
- 更容易誕生架構師
- 知道如何優化服務
- 如何使用資源利用最大化
為什么重視運維?
在業余的運維眼里,運維這個工作是什么特點?
- 處于軟件生產鏈最末端
- 容易被“鄙視”
- 遠離業務部門
- 老背鍋
在專業的運維眼里,又是什么特點?(我不算專業的,我只是總結)
- 可以從運維升格為技術運營
- 可通過改善產品用戶體驗,從而提高DAU(Daily Active User)日活躍用戶數量、營收和利潤
- 和其他業務部門建立廣泛而又建設性的合作
運維發展
- 人工 --遇到什么問題就解決什么問題,整理一堆的重復性高的資產臺賬
- 工具 --提高運維工作的效率(用別人開發好的工具,直接敲命令或雙擊運行)
- 自動化 --規范化、快速解決能力,需要一定的開發能力
- 平臺化 --自動化腳本和工具的整合,降低了運維成本、降低系統風險概率、提高可用性
- 智能化 --建立在大數據和機器學習的技術上
運維的現狀
- 故障率高
- 系統的復雜性高
- 大數據的環境
- 數據的采集
- 數據存儲
- 數據的分析和建模 (數據不用來分析使用,存著來干嘛?)
最后我就總結一句:智能運維 AIOps
智能運維 AIOps (Algorithmic IT Operations)
利用大數據分析、機器學習等人工智能技術來自動化管理運維事務。Gartner公司提出來定義標準。
Gartner公司
- 全球最具權威的IT研究與顧問咨詢公司
- 主要是迎合中型公司的需要
- 它希望使自己的業務覆蓋到IT行業的所有領域
- 讓自己成為每一位用戶的一站式信息技術服務公司
智能運維干什么?
- 實時監控
- 實時報警
- 異常檢測
- 故障根源分析
- 趨勢預測
- 數據關聯
智能運維的難題
- 海量數據的存儲、分析和處理
- 實時數據和非實時數據
- 格式化數據和非格式化數據
- 需要索引的數據和只需要運算的數據
- 全量數據和抽樣數據
- 可視化數據和告警數據
- 多維度、多數據源(主要是分析故障和預測趨勢)
- 監控數據
- 告警事件
- 分析報表
- 日志檢索
- 信息過載(告警數據過多)
- 數據的聚合
- 降低維度:聚類和分類
- 標準化和歸一化
- 復雜業務模型下的故障定位
- 日志標準化:包含內容、格式、自己的業務線、服務層級等
- 全鏈路追蹤
- SLA規范化:例如用響應時間來約定性能指標、用慢速比來衡量系統健康度。
智能運維基礎設設施
- 開源數據采集技術 Filebeat、Logstash
- 分布式消息隊列 Kafka、Redis、RabbitMQ
- 大數據存儲技術
- 大規模數據離線計算分析 ETL、Hadoop
- 實時計算框架
- 時序數據分析框架
- 機器學習框架 TensorFlow
智能運維的技術
- 數據聚合與關聯技術
- 數據異常點檢測技術
- 故障診斷和分析策略
- 趨勢預測算法
系統可用性(Availabiity)
Availability = MTBF/(MTBF + MTTR)
- MTBF --平均故障間隔時間
- 相鄰兩次故障之間的平均工作時間
- 間隔時間越短說明系統可靠性越高
- MTTR --平均修復時間
- 故障修復所需要的平均時間
- 越低說明故障修復越及時
運維在產品研發的主要職責
| 設計階段 | 穩定性評估、資源評估、資源申請和準備 |
| 開發階段 | 環境部署、依賴庫及包管理、操作系統維護、數據庫準備等 |
| 測試階段 | 測試環境部署、穩定性評估,從系統的穩定性和可運維性的角度提出開發需求 |
| 部署階段 | 自動化部署、穩定性檢驗、可擴展部署等 |
| 線上階段 | 實時監控、故障處理、容量管理 |
| 下線 | 資源回收、服務終止 |
運維涉及的常見技術和框架
| 操作系統 | Linux Ubuntu Window CentOS Redha |
| Web Server | Nginx Tomcat Apache |
| 網絡工具 | tcpcopy curl |
| 監控和報警系統 | Grafana zabbix cacti |
| 自動部署 | Ansible saltstack |
| 配置管理及服務發現 | Puppet Consul Zookeeper |
| 負載均衡 | LVS HAProxy Nginx |
| 傳輸工具 | Scribe Flume |
| 集群管理工具 | Zookeeper |
| 數據庫 | MySQL Oracle SQLServer |
| 緩存技術 | Redis Memcache |
| 消息隊列 | Kafka ZeroMQ RabbitMQ Redis |
| 大數據平臺 | HDFS Spark Hive Storm |
| 大數據存儲 | HBASE MongoDB LevelDB |
| 時序數據 | Druid OpenTSDB |
| 容器 | Docker LXC |
| 虛擬化 | Openstack XenServer KVM VMWare |
(參考書籍彭東等編寫的《智能運維--從0搭建大規模分布式AIOps系統》)
轉載于:https://www.cnblogs.com/liangjingfu/p/9382364.html
總結
- 上一篇: 抽象类与接口关系
- 下一篇: selenium截取验证码图片