通過一段時間的學習,寫了一個簡單的運維管理平臺小項目,先看看啥樣吧!
前端
下面說明下具體實現:數據庫
軟件架構:HTML+CSS+Jquery+Bootstrap+Ajax+Python2.7+Django1.9+SaltStack+MySQL編程
功能描述:後端
數據可視化:採用百度開源的ECharts繪圖,經過Python腳本每分鐘統計Nginx日誌分析PV/UV量寫到數據庫。瀏覽器
資產管理:採用SaltStack Restful API二次封裝調用收集主機配置信息入庫,並提供增刪改查。前端框架
主機批量管理:也是調用SaltStack Restful API實現批量執行命令,結果返回到前端頁面,並提供Minion增刪。服務器
自動部署軟件:目前是使用預寫好的腳本完成安裝,準備改爲Salt sls配置管理部署軟件。架構
其餘功能還在繼續開發中…框架
到乾貨區了,剛入門的朋友,耽誤你幾分鐘時間,請仔細閱讀,必定會對你有幫助!運維
個人學習心得:
用了小一個月時間寫了這個運維管理平臺,算是一段學習的總結吧!實現了一些基本的功能,跟生產環境的系統還有很大距離!如今一想其實實現起來沒想象的那麼高不可攀,能夠說用到的技術都是基礎的東西,並無多高深,因此學習起來並非很難。本身要完成這樣的平臺,思路很重要,好比數據可視化該怎麼展現,數據怎麼處理等等。涉及到從前端到後端再到數據庫表設計及存儲的一系列流程,這些都要有所瞭解,不然會侷限你的思路。所以寫好一個比較完善的平臺,開發能力會有很大的提升。固然薪資也緊跟着蹭蹭的漲啦!
該怎麼學習呢?
剛入門的同窗,大都會問這個問題,本身毫無頭緒,不知如何下手!能夠理解,每一個人都會經歷這個階段,跨過去你就稱爲羣裏所謂的大牛了。哈哈,是否是頗有成就感。沒錯!
那麼,如下給你們提供些學習思路,僅供參考:
第一步:掌握Python基礎,至少能寫到面向對象編程這個層次。
第二步:掌握一種Python Web框架,推薦使用重量級Django框架,雖然剛開始入門有點難,可是如今最爲主流,使用最多,功能齊全,通常都能知足咱們的需求了。固然,若是對Django感冒,能夠選擇輕量級Flask框架,入門簡單,學習成本低。在這裏,順便再看看HTTP協議工做原理,好比幾種請求方式、工做流程等。
第三步:數據庫基本的增刪改查必會。
第四步:後端的東西前三步就差很少了。該前端了,毋庸置疑HTML/CSS基礎必會,能夠先學習經常使用的標籤、選擇器、樣式屬性等。原生JavaScript基礎先要了解下,再考慮使用封裝好的JS庫Jquery作頁面行爲控制,重點看看Jquery事件處理、獲取屬性內容、設置元素內容等,比原生JS用着更簡單,也是主流的。學習完後試着寫幾個小頁面檢查本身的學習成果。
第五步:本身寫HTML/CSS頁面剛開始入門,寫起來比較費勁,並且瀏覽器兼容性不是很好。能夠考慮使用開源的前端框架,提升開發速度,不用過多考慮兼容性。我所知道這樣的前端框架有Bootstrap、SemanticUI、EasyUI,還有不少,選一個本身喜歡的就好,先學習其中一些經常使用的樣式,好比表格、表單、按鈕等。其餘的用到啥再看也來得及。
第六步:選擇一個本身喜歡模板。決定使用哪一個前端框架後,在網上搜索下找一個好看的前端頁面模板,好比搜索關鍵詞爲"Bootstrap模板",會有不少。咱們主要就是用它的排版和一些主頁面,再去除一些功能,簡單修改下本身想要的頁面就出來了,再加上你所學的前端框架樣式,能夠很快捷的實現某個功能,很省心。
第七步:與後端交互數據,常常用到Ajax技術,好比實時從後端獲取新數據展現、傳數據到後端等。Ajax也建議使用Jquery的,緣由仍是使用簡單。這時要學習一下JS定時器,用於控制Ajax獲取數據時間間隔,常常會用到,也很簡單。還有WebSocket技術,是一種瀏覽器與服務器創建長鏈接,進行實時傳輸數據。在某種場景下很實用,好比WEB SSH,能夠簡單瞭解下。
第八步:嵌入主流的管理工具,完成某項工做。好比我想作批量管理,就不必本身再去寫腳本去作批量執行了,像SaltStack、Ansible都是這類主流的工具,到時直接調用它們的API就好,功能上也要比本身寫完善不少,不是挺好嘛!
通過這八步循環漸進的學習,我相信你已經有足夠能力開發一套屬於本身的運維管理平臺了。
羣裏朋友常常問,能看懂代碼,就是寫不出來,怎麼辦啊?這是一個很典型的問題,仍是在於代碼寫的少,即便寫的多也都是複製別人的,沒有實際學習意義。要想提升技術能力,只有一個不變的真理,多學習、多實踐、多總結!
就說這麼多了,以上就是我我的對想轉運維開發的朋友們一點學習思路,不能說徹底是對的,可是思路我以爲沒問題。
少了一步很重要的,學習期間不免會遇到各類各樣的問題,這時該怎麼辦呢?不要一有問題就立刻問同事、技術羣,先試着網上查資料,問度娘、谷狗,要學會去獨立排查問題,長此以往處理問題思惟就很強了。實在解決不了,這時你應該會想到加技術羣了,沒錯!在羣裏,會有一些熱心的前輩給你傳授經驗,不但能解決問題,還能吸收其餘的經驗,多好!
技術羣太多了!閒聊羣更多!針對運維開發的羣更少!故此,我本身建立了一個運維開發羣,創羣的目的是爲了讓志同道合的同仁聚在一塊兒,共同窗習,共同提升。而不是爲了當羣主想踢誰就踢誰尋找成就感!所以,爲營造一個更好的學習氛圍,很注重羣成員質量,不歡迎以瞎扯淡、鬥圖、發廣告這類爲目的的人加入。
QQ技術羣:
Python運維開發羣(249171211)
Docker技術交流羣(719105297)