為什么IT運維需要自動化?
所謂IT運維管理的自動化是指通過將日常IT運維中大量的重復性工作,小到簡單的日常檢查、配置變更和軟件安裝,大到整個變更流程的組織調度,由過去的手工執行轉為自動化操作,從而減少乃至消除運維中的延遲,實現“零延時”的IT運維。簡單的說,IT運維自動化是指基於流程化的框架,將事件與IT流程相關聯,一旦被監控系統發生性能超標或宕機,會觸發相關事件以及事先定義好的流程,可自動啟動故障響應和恢復機制。自動化工作平台還可幫助IT運維人員完成日常的重復性工作(如備份,殺毒等),提高IT運維效率。同時,IT運維的自動化還要求能夠預測故障、在故障發生前能夠報警,讓IT運維人員把故障消除在發生前,將所產生損失減到最低。
運維應包括如下:
- 環境定義:開發環境、測試環境、類生產環境、生產環境等。
- 部署:能夠將部署包有效的部署到不同的環境。
- 監控:能夠監控部署后的系統和應用。
- 告警:出現問題時的響應和處理機制。
- 性能優化:系統各個服務如Nginx/Java/PHP/DB/網絡的優化。
- SLA保障:通常要和業務相關部門討論確定。
服務治理、任務調度、集群協同、調用鏈分析、接口質量、SQL質量、實時日志等
打包、自動化測試、檢測、灰度發布、分區上線、運維自動化、配置標准化、指令標准化等
分布式框架、存儲&緩存中間件、自動化測試、雲搜索、開放平台、營銷平台等基礎設施
自建技術基礎設施(開源+自研)
•自動化發布系統——灰度發布、分區發布
•運維配置自動化系統——運維系統自動發現、標准化配置
•原子指令系統——支持數百台服務器、數百個原子腳本操作
•搜索平台——支持數百個索引、上億條數據
•推薦計算平台——支持數億用戶數據計算
•API自動化測試系統、Mock模擬測試系統——支持接口的自動化測試、模擬測試、Web自動化測試
•API放水系統、SQL防水系統——治理系統不合理調用
•實時日志系統——支持Nginx、Tomcat、BI實時日志和離線跟蹤
•分布式開發框架——統一分布式通信
•配置分發系統——支持配置項、集群服務發現
•MQ分布式消息中間件(推模式IDP、拉模式Kafka)——1500w/周一~周五,600w/周六日
•KV分布式緩存系統中間件(Memcached、Redis、Tair)——億級數據緩存、95%命中率
•LPFS分布式文件中間件(MongoDB)——MongoDB、圖片、文件
•DB數據庫分庫分表中間件(MySQL)——無限數據量擴展
•分布式任務調度中間件(Schedule)——支持100+服務、200+/日個分布式任務調度
•Push統一消息推送平台——每日100w+推送量,推送至Android、iOS、Email、SMS、微信、Comet
依賴開源的技術棧
•語言:Java(Tomcat/Spring) Shell(運維) Nodejs(前端) Android iOS
•分布式:ActiveMQ Kafka Zookeeper Router服務發現 Cat
•存儲:Mysql Mongodb Tair Memcached Redis
•計算:Solr ElasticSearch Hadoop HBase Storm Spark
•運維:Linux Nginx Puppet Zabbix OpenStack
•項目管理:Eclipse Git Maven構建 Hudson持續集成 Confluence知識分享 DMS項目管理
開發階段Code/build
•開發框架
•|-web開發框架Swift
•|-nodejs前端開發框架
•|-ios移動開發框架
•|-android開發框架
•|-shell腳本自動化
•分布式中間件
•|-分布式調用RPC
•|-實時推送comet
•|-推消息隊列IDP
•|-拉消息隊列Kafka
•|-配置系統Zookeeper
•|-調度系統Scheduler
•存儲中間件
•|-關系存儲mysql
•|-文件存儲mongodb
•|-KV存儲tair
•|-二級緩存redis
•|-一級緩存memcached
•計算平台
•|-雲搜索
•|-推薦
•|-大數據計算
•|-網頁解析
•|-文本解析
•|-Word預覽
測試階段Test/ci
•|-API自動化測試
•|-API模擬測試Mock
•|-Web自動化測試Selenium
•|-微信測試WXTest
•|-Open測試KATest
•|-測試環境發布
上線階段Release/deploy
•|-發布系統
•|-運維系統
•|-代碼檢測Builder運維階段
運維系統Monitor
•|-自動化系統
•|-監控系統Zabbix
•|-雷達日志系統
•|-Puppet/Mco
服務治理Service
•|-API放水系統APIWater
•|-SQL放水系統MonyogSQL
•|-Router服務中心
•|-配置分發系統
•|-調度系統Scheduler
•|-調用鏈系統Cat運營階段
•開放平台
•|-微信平台Weixin
•|-微博平台Weibo
•|-電話平台Jiya
•|-支付平台Pay
•|-開放平台API
•|-SEO平台Resource
•運營平台Channel
•|-推送平台Push
•|-短信平台Push
•|-郵件平台Mail
•|-微信平台Open
•|-私信平台MessageCode
1、分布式服務架構
服務發現、通信、控制
分布式注冊中心Router:
•同步調用RPC
•服務協議:HTTP協議/心跳檢測
•服務發現:集群信息統一文件Router.conf
•負載均衡
•異步調用MQ
•推模式:開發快、穩定、實時快
•拉模式:可回溯、日志收集、數據同步
•分布式任務調度
•Schedule調度系統
•分布式事務控制
•Swift開發框架:交易型事務的一致性
2、運維研發的自動化體系
運維配置標准化3大層次
•2.1、硬件標准化:
•-機器標准化:機房、機架位、交換機、機器
•-資源標准化:IP、DNS
•-配置標准化:機器配置自動化采集、標准化檢測,KVM化
•2.2、軟件標准化:
•-軟件安裝標准化:tomcat jdkmemcachedredis...
•-Nginx標准化:域名、配置、發布
•2.3、項目標准化:
•-項目配置標准化:S區、A區、B區、C區
•-支持多種項目:tomcat、java、nodejs、Python、ios\Android
2.1、硬件標准化—自動化采集
2.2、軟件標准化—統一軟件規格
2.2、軟件標准化—自動化安裝卸載
2.2、軟件標准化—服務自動管理
2.2、Nginx標准化—自動配置300域名
3、項目發布自動化體系
•3.1、代碼發布系統
•-灰度發布
•-分區發布:泳道發布
•3.2、配置發布系統
•-發布配置信息
•-集群協作:Solr、Kafka
•3.3、原子指令
•-系統級操作
•-系統操作日志
4、服務治理體系
•服務健康狀態檢測
•分布式任務調度(Schedule)
•調用鏈分析(Cat)
•實時日志監測(雷達系統)
•API質量治理(APIWater)
•SQL質量治理(Monyog)
4.1、服務健康狀態檢測
4.2、分布式任務調度Schedule
分布式調度中心:
•基於Mina分布式協調
•選擇服務的單點調度
•多點服務failover
•長時間任務斷點續傳
•任務依賴調度
4.3、調用鏈分析Cat
4.4、實時日志監測(雷達系統)
•實時日志查看
•歷史日志分析
•用戶或IP追蹤
•日志統計
4.4、實時日志監測
4.6、SQL質量治理(Monyog)
•MySQL性能監控工具MONyog,分析慢SQL
•程序打印慢SQL日志
•優化索引、表結構
5、測試環境的自動化構建
6、自動化測試
自動化測試—API自動化測試
自動化測試—Web自動化測試
•Selenium—Web頁面的自動化測試
自動化測試—Mock模擬測試
以上內容部分來自網絡, 希望對您系統架構設計,軟件研發有幫助。 其它您可能感興趣的文章:
互聯網數據庫架構設計思路
某大型電商雲平台實踐
企業級應用架構模式N-Tier多層架構
某企業社交應用網絡拓撲架構圖
IT基礎架構規划方案一(網絡系統規划)
餐飲連鎖公司IT信息化解決方案一
如有想了解更多軟件研發 , 系統 IT集成 , 企業信息化,項目管理 等資訊,請關注我的微信訂閱號:
作者:Petter Liu
出處:http://www.cnblogs.com/wintersun/
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。
該文章也同時發布在我的獨立博客中-Petter Liu Blog。