OMS開發(二):技術選型

一、語言

    既然決定開發了,就得選擇開發方式了,從運維工具的角度考慮,決定選擇以python語言爲主,因爲func、ansible、saltstack、openstack都是python寫的,這些工具都可以用在運維上,saltstack還有docker模塊,Docker容器以後肯定是要上的,這也方便管理;當然puppet也是可以用上的,我之前研究了不少puppet,結合foreman還是比saltstack有優勢的,也會在我這個OMS中考慮進的。

    參考:大數據全棧式開發語言 – Python

    教程:官方文檔    《簡明 Python 教程》     廖雪峯的官方網站

    下載:Python官方下載 (目前是windows python 2.7.11版本,集成了pip包管理工具,我用的是2.7.10)


二、後端

    python語言的WEB開發框架,至少有一二十種,根據天斯大哥的書,我選擇了Django,因爲它是全能型的;對其他種類也在網上了解了一下,有個對比也是好的。

    參考:Python六大開源框架對比

        Django 是 Python 編程語言驅動的一個開源模型-視圖-控制器(MVC)風格的 Web 應用程序框架。

    教程:官方文檔,全英文看得累

          1.8.2版官方翻譯文檔,推薦

          10年少的博客,用的1.8 (我這OMS的小貓圖標就是借用他的)

    下載:Django官方下載  (目前LTS長久支持版本是1.8.11,我用的是1.8.7)

         1.8版本的DJANGO對應的PYTHON版本:

        wKioL1b0qmvCkUt1AAAZZaLgjEI015.png 

        這個其實不需要下載,直接pip install Django==1.8.7安裝即可,windows要在CMD中執行。

        如果你已裝了其他版本Django,用virtualenv工具隔離,別人說的,我還不會。


三、前端

    肯定有人要問了,開發WEB你怎麼也得會html+css+js,甚至jquery+ajax這些吧,那是必須的,但也不一定要學得很熟,網上有很多方案是可以直接使用的,只需要給<>標籤加上指定的class就有很好的展示效果了,於是我找到了Bootstrap,對我這種零基礎的人來說簡直就是神器了。

    參考:官方網站 

    教程:官方網站教程 (全局 CSS 樣式組件JavaScript 插件定製網站實例)

         Runoob.com菜鳥教程網(這個菜鳥教程網站非常好,上面的html\css\js\jquery\ajax\sql\python\git等等有不會的都可以簡單的看一看)

    下載:官方下載 (目前是3.3.5版本,下載“用於生產環境的 Bootstrap”就行了)

wKioL1b0s3bRxTU1AAAkCocyfZE391.png

    下載的目錄結構就是上圖這樣,除了jquery-2.2.0.min.js文件,Bootstrap 的所有 JavaScript 插件都依賴 jQuery,需要單獨下載

    你也可以不下載bootstrap,直接使用bootstrap的CDN,例如:

<!-- 新 Bootstrap 核心 CSS 文件 -->
<link rel="stylesheet" href="//cdn.bootcss.com/bootstrap/3.3.5/css/bootstrap.min.css">
<!-- 可選的Bootstrap主題文件 -->
<link rel="stylesheet" href="//cdn.bootcss.com/bootstrap/3.3.5/css/bootstrap-theme.min.css">
<!-- jQuery文件。務必在bootstrap.min.js 之前引入 -->
<script src="//cdn.bootcss.com/jquery/1.11.3/jquery.min.js"></script>
<!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
<script src="//cdn.bootcss.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>


四、數據庫

    Django支持多種數據庫,默認使用sqlite3,僅僅一個文件,用來開發最方便,我還是比較習慣使用mysql,這沒什麼好說的,你用別的也行,通過model可以直接生成對應數據庫的表,更換無壓力。

    下載:官方下載windows版 (mysql-installer-community-5.7.10.0.msi)

    安裝:選擇server only模式,config type選擇server machine,root密碼設爲abc@123

    Python模塊: 下載MySQLdb (windows版下載直接安裝就行)



五、開發環境

    這個開發環境最重要,因爲它將伴隨你所有的開發時間和體驗,DJANGO開發工具IDE可以選擇的有很多,有輕的有重的,例如sublimeEmacseclipse+pydevpycharm 等等, 參考網上重多建議,選擇了功能全面的Pycharm,支持git、svn、mysql管理、WIN CMD、代碼補全高亮、智能提示等,還支持創建bootstrap項目,對學習前端有幫助,關鍵是對我這種習慣windows操作的人比較方便友好。

    開發環境在自己的筆記本電腦上進行,windows7x64系統。

    參考:PythonIDE集成開發環境選型

    下載:PyCharm官方下載 (下載FULL版本,有試用期1個月,把系統時間後調20年再激活試用,之後重啓調回時間,有個缺點就是啓動比較慢)

    創建Django項目,填寫應用名稱直接生成一個應用目錄,還可以和svn或git結合:

wKioL1b0tXDiUKpIAACtXqMjQxE376.png

    創建Bootstrap項目,可以用來學習前端效果:

wKioL1b0tNjzpP6RAACy_zjDRMw920.png


六、配置管理工具

    Func、Ansible、SaltStack、Puppet都屬於配置管理工具,OMS決定用基於python語言的SaltStack作爲控制檯。

    SaltStack是一個服務器基礎架構集中化管理平臺,具備配置管理、遠程執行、監控等功能,

一般可以理解爲簡化版的puppet和加強版的func。SaltStack基於Python語言實現,結合

輕量級消息隊列(ZeroMQ)與Python第三方模塊(Pyzmq、PyCrypto、Pyjinjia2、

python-msgpack和PyYAML等)構建。

    參考:官方網站

    命令:Salt模塊及命令


七、參考項目

1、劉天斯的《python自動化運維:技術與最佳實踐》:

    其中OMServer項目就是以django搭建的

    博客:http://blog.liuts.com/post/245/

    源碼:https://github.com/yorkoliu/pyauto/


2、CMDB運維管理平臺

    也是以django+saltstack

    網站:http://www.linuxde.net/2015/09/15704.html

    源碼:https://github.com/xiaoluoge11/lmanager/tree/master/CMDB


3、binbin的OMS運維管理平臺

    源碼:https://github.com/binbin91/oms

    

    主要參考以上三個項目,其他還有些小的django項目用來學習django的就不列出來了,網上多的是。    

    值得注意的是,django版本變化較大,特別是1.7以後,比如syncdb同步數據庫命令變成了migate,用不render_to_response而用render等。

    另外關於生產環境,將會部署在linux下,如centos 6.5,用nginx+uwsgi部署,以後會單獨開一編講。

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