從運維到運維開發之路

運維不應該是一個剛畢業的學生做的工作,也是一個賺不到錢,最後被社會拋棄的崗位,所以這裏我們需要做的是,做出華麗的轉型,雖然不轉型爲開發,也要向自動化運維開發,以及開源軟件二次開發的方向努力,這裏借鑑了中谷教育的課程體系,給自己制定了一個學習方向,自己摸索一條開發之路。


2、知識體系
1) 第一階段
主要面向在運維方向上有一些工作經驗,但是在處理日常工作時對工具的運用又顯得捉襟見肘。
前提知識:
Linux系統管理知識 瞭解文件系統,文件類型
瞭解進程,知道進程的啓動和結束,信號 系統性能
RPM包管理
SSH遠程終端
瞭解MySQL數據庫 瞭解Memcached
課程目標
通過第一階段學習,可以熟練的使用Python解決實際遇到的運維問題,並且形成對運維問題解決的思路和方法。

課程大綱:
系統管理員的Python:共計12天的課程,內容覆蓋了系統文件、進程管理、監控、遠程管理、應用部署等多個方面。
1、系統文件的管理
- python版的wc: 內容:Python對標準輸入和輸出的處理,經過幾個版本的講解在引入getopt和sys.argv的內容。
* 找出目錄中重複的文件:通過os.path中的walk方法進行目錄的遞歸,比較文件名找出相同的文件,瞭解md5等hash函數對文
件的處理。
* 找出佔用空間最大的文件:結合os.path.walk和os.path.getsize,並且涉及python sort相關內容。
2、 進程的管理
- 查看一個進程的進程樹:瞭解父子進程,之間的關係、區別。使用python獲得系統進程的相關狀態。
* 監控一個進程的狀態,並在其異常時重啓該進程:瞭解一般監控進程的特點,並且瞭解對進程啓動的一些注意點。
* 守護進程:學會使用os.fork,以及2次fork來創建守護進程,結合上一節內容做一個守護進程版本的進程監控程序。
3、系統的監控
- 監控CPU, 內存的信息:通過python得到系統的一些狀態,同時瞭解這些狀態所表示的意義。
* 監控網絡和磁盤IO:通過寫一個監控網路流量的工具來了解網卡相關的事情,寫一個程序可以計算磁盤的IOPS等等數據來說明磁盤的處理是否是系統的瓶頸。
4、 通過Python SSH遠程管理主機
- 通過python的ssh client連接遠程主機並執行命令:引入python中的python處理模塊,使得python可以對遠程機器做批量的處理。
- 使用更高級的library並行的操作主機:引入Fabric,使得Python可以同時併發的對多臺機器進行處理,同時說明在對多臺主機操作是的注意點,以及這些注意點的python解決辦法。
5、使用Python來管理MySQL數據庫
- 根據需求創建一個MySQL實例:學習配置文件的模板處理,同時介紹Python中對MySQL進程的處理方法。
- 檢查MySQL的主輔同步情況,並對個別情況進行處理:通過一個MySQL的監控程序來確定MySQL主輔同步,並且引入Python對發信通知的處理,等等。
6、使用Python管理Memcached
- 利用python來管理memcached集羣:包括創建memcached進程和停止,以及修改
- 監控memcached集羣的信息:監控集羣的流量、命中率、容量
7、 使用Python來分析Apache Log日誌
- 找出404最多的URL:引入生成器,以及對日誌分析的基本方法
8、 系統安全相關
- 密碼生成器:通過簡單的密碼生成器說明密碼的管理和安全意識。
9、 應用部署
- 使用distribution lib來打包成rpm,進行應用的部署
* 使用virtualenv來部署python應用

2) 第二階段
共計8天
1、自上而下的運維繫統: 講運維的體系,配置管理、系統監控、自動化部署、日誌收集等系統之間的關係。先把運維的體系說清楚,之後的課程中會把體系中涉及到的部分一一實現。
2、配置管理
1) 資源管理系統,結合Django和Puppet來建立一個資源管理系統。講資源的命名空間,系統的信息收集處理。8個課時
前導知識:對Django略有了解,搭建過Puppet,瞭解puppet的工作方式
2) Python與Puppet的結合,講如何使用Python來做Puppet的插件,生成配置文件,處理SVN等等。8個課時前導知識:SVN
3、監控
1)Graphite,監控數據可視化的解決方案,同時講結合collectd, 8個課時前導知識:rrdtool,Django
2)使用Cubism的JS Library使Graphite監控的數據一目瞭然。8個課時前導知識:Apache的QPS,Javascript
3)Python與Nagios的結合,使用Python寫Nagios的Plugin。並且讓Nagios的性能數據發送到Graphite。4個課時前導知識:Nagios的工作原理
4、日誌收集
1)中心化的日誌收集、粗糙分析。8個課時
2)結合elasticsearch實現log的快速查找。 *
3)結合Cubism成爲對日誌的數據可視化
5、自動化部署
1)使用Python管理Xen的虛擬設備,實現虛擬設備的生命週期管理。8個課時前導知識:Xen,Dom0, DomU
2)擴展資源管理系統,結合Xen虛擬設備,構建自動化部署系統。8個課時


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章