【專欄】Python在DevOps中的應用

來源:互聯網
上載者:User

標籤:分享   pytho   競爭   流量   網站架構   括弧   .com   架構   virtual   

互連網時代,只有能夠快速實驗新想法,並在第一時間,安全、可靠的交付業務價值,才能保持競爭力。DevOps推崇的自動化構建/測試/部署,以及系統度量等技術實踐,是互連網時代必不可少的。

大家好,我是餘洪春,當然很多人更熟悉的是我的網名“撫琴煮酒”。

我在電子商務網站和大型CDN系統營運已工作10多年,在Linux叢集、自動化營運、系統安全及高並發高流量網站架構設計等方面進行了深入的研究,在大量一線實踐中積累了豐富的經驗。

同時,我堅持文檔記錄,是51CTO和ChinaUnix等知名社區的特邀專家,51CTO系統網路頻道的專欄作家,ChinaUnix論壇“叢集和高可用”及“監控及自動化營運”版版主,在社區內發表了大量技術文章,深受網友好評。 哈哈,介紹自己還挺不好意思。

Python在DevOps中的應用

自動化構建(即持續整合CI)是因應用而易的,如果是Python應用,因為有setuptools、 pip、 virtualenv及tox等工具的存在,自動化構建非常簡單。而且,因為幾乎所有Linux版本都內建Python解譯器,所以用Python做自動化,不需要系統預先安裝什麼軟體。

自動化測試方面,基於Python的Robot Framework企業級應用最喜歡的自動化測試架構,而且和語言無關。Cucumber也有很多支援者,Python對應的Lettuce可以做到完全一樣的事情。Locust(Locust 是一個基於Python開發的開源負載測試工具)在自動化效能測試方面也開始受到越來越多的關注。此外,後起之秀Selenium,現在最火的Web自動化測試的輕量級架構現在已經被越來越多的公司應用。Selenium的主要特點是其開源性、跨平台性以及眾多的程式設計語言支援,我們除了可以用Python編寫測試案例,也可以用Java、PHP甚至Shell來編寫測試案例。

自動化營運(自動化組態管理)工具,新生代Ansible、SaltStack,以及輕量級的自動化營運工具Fabric,均為Python開發。Fabric較前兩者設計更為輕量化和模組化,所以深受研發同事及大資料同事喜愛。另外,這些Python自動化營運工具很容易就能二次開發,所以受到越來越多開發人員的歡迎,很多公司同時用它們來完成自動化營運工作。

大家比較熟悉的Pythone的Web架構,例如Django和Flask,均能快速設計出符合後端開發需求的Restful API,尤其是輕量級的Flask,我們在很多大資料對外的API封裝中均會選擇用Flask,感覺非常輕便和簡捷。另外,Python對現在的AWS及Docker均提供了較豐富的支援,比如大名鼎鼎的Boto3及docker-py,均能協助大家高效的進行DevOps工作。

我們選擇Python的原因

對於研發工程師而言,Python的優雅和簡潔無疑是最大的吸引力,在Python互動式環境中,執行import this,讀一讀Python之禪,你就明白Python為什麼如此吸引人。Python社區一直非常有活力,和Node.js社區軟體包爆炸式增長不同,Python的軟體包增長速度一直比較穩定,同時軟體包的品質也相對較高。有很多人詬病Python對於空格的要求過於苛刻,但正是因為這個要求,才使得Python在做大型項目時比其他語言有優勢。OpenStack項目總共超過200萬行代碼,也證明了這一點。

對於營運工程師而言,Python的最大優勢在於,幾乎所有Linux發行版都內建了Python解譯器。Shell雖然功能強大,但缺點很多:文法不夠優雅,不支援物件導向、沒有豐富的第三方庫支援,寫複雜的系統任務(尤其涉及到網路HTTP和並發任務方面)會很痛苦。用Python替代Shell,做一些Shell實現不了的複雜任務,對於營運工程師、營運開發來說,是一次解放。

對於營運開發人員(大家習慣稱之為DevOps)而言,Python的優勢在於它是一門強大的膠水語言,特別適合用於Web後端、伺服器開發,其優點如下:

  1. Python的代碼風格簡潔易懂易於維護,包括文法優勢不用寫大括弧,代碼注釋風格統一,強調做一個事情只有一種方法
  2. 有著豐富的Web開源架構,主流的包括Web2py、web.py、Zope2、Pyramid、Django、CherryPy,還有輕量級架構Flask等。
  3. 跨平台能力,支援Mac,Linux,Windows等。
  4. Python可用第三方庫和模組比較多,適合各種工作情境需求,使用起來非常方便。
  5. Python社區非常活躍,在其社區裡面基本上能夠找到一切你所需要的答案。
工作中我們選用Python的原因

在平時的DevOps開發工作中,雖然我會用Shell來處理很多工作流程,但很多時候Shell還是有力不從心的時候,這個時候Python的優勢就發揮出來了,比如在這些方面:自動化營運、設計後端RestFul API、複雜的監控指令碼、Web應用項目等。Python用得越多,我們也越來越喜歡用它。

基於以上原因,我們還有什麼理由不選擇Python呢?

實戰技巧和經驗分享

筆者也希望在自己的DevOps工作實踐中提煉出實戰技巧和經驗,藉此專欄的機會跟大家分享,希望大家能學習之後,能夠掌握Python的實戰技巧和經驗,提升職業技能,更加高效的從事DevOps工作。

此專欄目前包括三面方的內容:
一、Python在營運工作中的實戰技巧;
二、Python自動化營運組態工具在工作中的實戰;
三、Python與Docker的結合。

全部內容都均出自於工作總結和實戰,主要是協助大家迅速提升,所學即所用,學到的知識技能點能迅速用於工作實踐,協助大家提升工作效率的同時,希望能讓大家對Python產生濃厚的興趣, 更進一步花時間和精力來學好它。

專欄連結地址:http://blog.51cto.com/cloumn/detail/13
我的專屬優惠券:http://blog.51cto.com/coupon/get/CoumNcvmCcK7COZUNfJ7y7h5NBJ5Zu2

【專欄】Python在DevOps中的應用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.