一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

告訴你,為什么開發(fā)、運維和數(shù)據(jù)都需要用Python!

 victor1208 2015-12-01

據(jù)說IT人最愛學(xué)習(xí)資源

給你免費學(xué)習(xí)學(xué)院課程的機(jī)會!

詳情在本文結(jié)尾處




周末太快了,有木有啊~


以下是正文



前段時間,ThoughtWorks 在深圳舉辦一次社區(qū)活動上,有一個演講主題叫做“Fullstack JavaScript”,是關(guān)于用 JavaScript 進(jìn)行前端、服務(wù)器端,甚至數(shù)據(jù)庫(MongoDB)開發(fā),一個 Web 應(yīng)用開發(fā)人員,只需要學(xué)會一門語言,就可以實現(xiàn)整個應(yīng)用。


受此啟發(fā),我發(fā)現(xiàn) Python 可以稱為大數(shù)據(jù)全棧式開發(fā)語言。因為 Python 在云基礎(chǔ)設(shè)施,DevOps,大數(shù)據(jù)處理等領(lǐng)域都是炙手可熱的語言。



領(lǐng)域

流行語言

云基礎(chǔ)設(shè)施

Python,Java,Go

DevOps

Python, Shell, Ruby, Go

網(wǎng)絡(luò)爬蟲

Python, PHP, C++

數(shù)據(jù)處理

Python, R, Scala



就像只要會 JavaScript 就可以寫出完整的 Web 應(yīng)用,只要會 Python,就可以實現(xiàn)一個完整的大數(shù)據(jù)處理平臺。


云基礎(chǔ)設(shè)施


這年頭,不支持云平臺,不支持海量數(shù)據(jù),不支持動態(tài)伸縮,根本不敢說自己是做大數(shù)據(jù)的,頂多也就敢跟人說是做商業(yè)智能(BI)。


云平臺分為私有云和公有云。私有云平臺如日中天的 OpenStack,就是 Python 寫的。曾經(jīng)的追趕者 CloudStack,在剛推出時大肆強(qiáng)調(diào)自己是 Java 寫的,比 Python 有優(yōu)勢。結(jié)果,搬石砸腳,2015 年初,CloudStack 的發(fā)起人 Citrix 宣布加入 OpenStack 基金會,CloudStack 眼看著就要壽終正寢。


如果嫌麻煩不想自己搭建私有云,用公有云,不論是 AWS,GCE,Azure,還是阿里云,青云,在都提供了 Python SDK,其中 GCE 只提供 Python 和 JavaScript 的 SDK,而青云只提供 Python SDK??梢姼骷以破脚_對 Python 的重視。


提到基礎(chǔ)設(shè)施搭建,不得不提 Hadoop,在今天,Hadoop 因為其 MapReduce 數(shù)據(jù)處理速度不夠快,已經(jīng)不再作為大數(shù)據(jù)處理的首選,但是 HDFS 和 Yarn——Hadoop 的兩個組件——倒是越來越受歡迎。Hadoop 的開發(fā)語言是 Java,沒有官方提供 Python 支持,不過有很多第三方庫封裝了 Hadoop 的 API 接口(pydoop,hadoopy 等等)。


Hadoop MapReduce 的替代者,是號稱快上 100 倍的 Spark,其開發(fā)語言是 Scala,但是提供了 Scala,Java,Python 的開發(fā)接口,想要討好那么多用 Python 開發(fā)的數(shù)據(jù)科學(xué)家,不支持 Python,真是說不過去。HDFS 的替代品,比如 GlusterFS,Ceph 等,都是直接提供 Python 支持。Yarn 的替代者,Mesos 是 C++ 實現(xiàn),除 C++ 外,提供了 Java 和 Python 的支持包。


DevOps


DevOps 有個中文名字,叫做開發(fā)自運維。互聯(lián)網(wǎng)時代,只有能夠快速試驗新想法,并在第一時間,安全、可靠的交付業(yè)務(wù)價值,才能保持競爭力。DevOps 推崇的自動化構(gòu)建/測試/部署,以及系統(tǒng)度量等技術(shù)實踐,是互聯(lián)網(wǎng)時代必不可少的。


自動化構(gòu)建是因應(yīng)用而易的,如果是 Python 應(yīng)用,因為有 setuptools, pip, virtualenv, tox, flake8 等工具的存在,自動化構(gòu)建非常簡單。而且,因為幾乎所有 Linux 系統(tǒng)都內(nèi)置 Python 解釋器,所以用 Python 做自動化,不需要系統(tǒng)預(yù)安裝什么軟件。


自動化測試方面,基于 Python 的 Robot Framework 企業(yè)級應(yīng)用最喜歡的自動化測試框架,而且和語言無關(guān)。Cucumber 也有很多支持者,Python 對應(yīng)的 Lettuce 可以做到完全一樣的事情。Locust 在自動化性能測試方面也開始受到越來越多的關(guān)注。


自動化配置管理工具,老牌的如 Chef 和 Puppet,是 Ruby 開發(fā),目前仍保持著強(qiáng)勁的勢頭。不過,新生代 Ansible 和 SaltStack——均為 Python 開發(fā)——因為較前兩者設(shè)計更為輕量化,受到越來越多開發(fā)這的歡迎,已經(jīng)開始給前輩們制造了不少的壓力。


在系統(tǒng)監(jiān)控與度量方面,傳統(tǒng)的 Nagios 逐漸沒落,新貴如 Sensu 大受好評,云服務(wù)形式的 New Relic 已經(jīng)成為創(chuàng)業(yè)公司的標(biāo)配,這些都不是直接通過 Python 實現(xiàn)的,不過 Python 要接入這些工具,并不困難。


除了上述這些工具,基于 Python,提供完整 DevOps 功能的 PaaS 平臺,如 Cloudify 和 Deis,雖未成氣候,但已經(jīng)得到大量關(guān)注。


網(wǎng)絡(luò)爬蟲


大數(shù)據(jù)的數(shù)據(jù)從哪里來?除了部分企業(yè)有能力自己產(chǎn)生大量的數(shù)據(jù),大部分時候,是需要靠爬蟲來抓取互聯(lián)網(wǎng)數(shù)據(jù)來做分析。


網(wǎng)絡(luò)爬蟲是 Python 的傳統(tǒng)強(qiáng)勢領(lǐng)域,最流行的爬蟲框架 Scrapy,HTTP 工具包 urlib2,HTML 解析工具 beautifulsoup,XML 解析器 lxml,等等,都是能夠獨當(dāng)一面的類庫。


不過,網(wǎng)絡(luò)爬蟲并不僅僅是打開網(wǎng)頁,解析 HTML 這么簡單。高效的爬蟲要能夠支持大量靈活的并發(fā)操作,常常要能夠同時幾千甚至上萬個網(wǎng)頁同時抓取,傳統(tǒng)的線程池方式資源浪費比較大,線程數(shù)上千之后系統(tǒng)資源基本上就全浪費在線程調(diào)度上了。Python 由于能夠很好的支持協(xié)程(Coroutine)操作,基于此發(fā)展起來很多并發(fā)庫,如 Gevent,Eventlet,還有 Celery 之類的分布式任務(wù)框架。被認(rèn)為是比 AMQP 更高效的 ZeroMQ 也是最早就提供了 Python 版本。有了對高并發(fā)的支持,網(wǎng)絡(luò)爬蟲才真正可以達(dá)到大數(shù)據(jù)規(guī)模。


抓取下來的數(shù)據(jù),需要做分詞處理,Python 在這方面也不遜色,著名的自然語言處理程序包 NLTK,還有專門做中文分詞的 Jieba,都是做分詞的利器。


數(shù)據(jù)處理


萬事俱備,只欠東風(fēng)。這東風(fēng),就是數(shù)據(jù)處理算法。從統(tǒng)計理論,到數(shù)據(jù)挖掘,機(jī)器學(xué)習(xí),再到最近幾年提出來的深度學(xué)習(xí)理論,數(shù)據(jù)科學(xué)正處于百花齊放的時代。數(shù)據(jù)科學(xué)家們都用什么編程?


如果是在理論研究領(lǐng)域,R語言也許是最受數(shù)據(jù)科學(xué)家歡迎的,但是R語言的問題也很明顯,因為是統(tǒng)計學(xué)家們創(chuàng)建了R語言,所以其語法略顯怪異。而且R語言要想實現(xiàn)大規(guī)模分布式系統(tǒng),還需要很長一段時間的工程之路要走。所以很多公司使用R語言做原型試驗,算法確定之后,再翻譯成工程語言。


Python 也是數(shù)據(jù)科學(xué)家最喜歡的語言之一。和R語言不同,Python 本身就是一門工程性語言,數(shù)據(jù)科學(xué)家用 Python 實現(xiàn)的算法,可以直接用在產(chǎn)品中,這對于大數(shù)據(jù)初創(chuàng)公司節(jié)省成本是非常有幫助的。正式因為數(shù)據(jù)科學(xué)家對 Python 和R的熱愛,Spark 為了討好數(shù)據(jù)科學(xué)家,對這兩種語言提供了非常好的支持。


Python 的數(shù)據(jù)處理相關(guān)類庫非常多。高性能的科學(xué)計算類庫 NumPy 和 SciPy,給其他高級算法打了非常好的基礎(chǔ),matploglib 讓 Python 畫圖變得像 Matlab 一樣簡單。Scikit-learn 和 Milk 實現(xiàn)了很多機(jī)器學(xué)習(xí)算法,基于這兩個庫實現(xiàn)的 Pylearn2,是深度學(xué)習(xí)領(lǐng)域的重要成員。Theano 利用 GPU 加速,實現(xiàn)了高性能數(shù)學(xué)符號計算和多維矩陣計算。當(dāng)然,還有 Pandas,一個在工程領(lǐng)域已經(jīng)廣泛使用的大數(shù)據(jù)處理類庫,其 DataFrame 的設(shè)計借鑒自R語言,后來又啟發(fā)了 Spark 項目實現(xiàn)了類似機(jī)制。


對了,還有 iPython,這個工具如此有用,以至于我差點把他當(dāng)成標(biāo)準(zhǔn)庫而忘了介紹。iPython 是一個交互式 Python 運行環(huán)境,能夠?qū)崟r看到每一段 Python 代碼的結(jié)果。默認(rèn)情況下,iPython 運行在命令行,可以執(zhí)行ipython notebook在網(wǎng)頁中運行。用 matplotlib 繪制的圖可以直接嵌入式的顯示在 iPython Notebook 中。


iPython Notebook 的筆記本文件可以共享給其他人,這樣其他人就可以在自己的環(huán)境中重現(xiàn)你的工作成果;如果對方?jīng)]有運行環(huán)境,還可以直接轉(zhuǎn)換成 HTML 或者 PDF。



為什么是 Python


正是因為應(yīng)用開發(fā)工程師、運維工程師、數(shù)據(jù)科學(xué)家都喜歡 Python,才使得 Python 成為大數(shù)據(jù)系統(tǒng)的全棧式開發(fā)語言。


對于開發(fā)工程師而言,Python 的優(yōu)雅和簡潔無疑是最大的吸引力,在 Python 交互式環(huán)境中,執(zhí)行import this,讀一讀 Python 之禪,你就明白 Python 為什么如此吸引人。Python 社區(qū)一直非常有活力,和 NodeJS 社區(qū)軟件包爆炸式增長不同,Python 的軟件包增長速度一直比較穩(wěn)定,同時軟件包的質(zhì)量也相對較高。有很多人詬病 Python 對于空格的要求過于苛刻,但正是因為這個要求,才使得 Python 在做大型項目時比其他語言有優(yōu)勢。OpenStack 項目總共超過 200 萬行代碼,證明了這一點。


對于運維工程師而言,Python 的最大優(yōu)勢在于,幾乎所有 Linux 發(fā)行版都內(nèi)置了 Python 解釋器。Shell 雖然功能強(qiáng)大,但畢竟語法不夠優(yōu)雅,寫比較復(fù)雜的任務(wù)會很痛苦。用 Python 替代 Shell,做一些復(fù)雜的任務(wù),對運維人員來說,是一次解放。


對于數(shù)據(jù)科學(xué)家而言,Python 簡單又不失強(qiáng)大。和C/C++相比,不用做很多的底層工作,可以快速進(jìn)行模型驗證;和 Java 相比,Python 語法簡潔,表達(dá)能力強(qiáng),同樣的工作只需要1/3 代碼;和 Matlab,Octave 相比,Python 的工程成熟度更高。不止一個編程大牛表達(dá)過,Python 是最適合作為大學(xué)計算機(jī)科學(xué)編程課程使用的語言——MIT 的計算機(jī)入門課程就是使用的 Python——因為 Python 能夠讓人學(xué)到編程最重要的東西——如何解決問題。


順便提一句,微軟參加 2015 年 PyCon,高調(diào)宣布提高 Python 在 Windows 上的編程體驗,包括 Visual Studio 支持 Python,優(yōu)化 Python 的C擴(kuò)展在 Windows 上的編譯等等。腦補(bǔ)下未來 Python 作為 Windows 默認(rèn)組件的場景。




原文鏈接:http://insights./full-stack-python/

圖片來自網(wǎng)絡(luò)



活動詳情


活動時間:2015.11.25~2015.11.30

活動獎勵:51CTO學(xué)院100金幣以內(nèi)的課程15天的學(xué)習(xí)碼

活動內(nèi)容:請小伙伴們將自己對我們公眾號的“每日小測試”發(fā)表自己的感想??梢哉f一說:您覺得應(yīng)該多一些哪些方面的題目,以及原因;題目或解析有哪些問題;做小測試對自己帶來了哪些幫助等等。

沒錯!只需要在公眾號里回復(fù)自己的感想即可!

我們將從所有回復(fù)的小伙伴中挑選2位,提供15天的課程學(xué)習(xí)碼。



如果你更喜歡別的獎品,那么點擊菜單欄“CTO助手”中的“我想要的獎品”,進(jìn)行投票,根據(jù)票選結(jié)果決定以后活動的獎品內(nèi)容~


    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    欧美av人人妻av人人爽蜜桃| 九九九热视频免费观看| 国产在线视频好看不卡| 91精品国产综合久久精品| 激情国产白嫩美女在线观看| 老司机亚洲精品一区二区| 亚洲欧洲日韩综合二区| 中文字幕日韩精品人一妻| av一区二区三区天堂| 99国产精品国产精品九九| 日韩成人午夜福利免费视频| 欧美日韩成人在线一区| 98精品永久免费视频| 亚洲中文字幕乱码亚洲| 高清国产日韩欧美熟女| 亚洲中文字幕在线乱码av| 国产欧美日韩精品一区二区| 福利专区 久久精品午夜| 日韩精品综合免费视频| 精品亚洲av一区二区三区| 丰满少妇被猛烈撞击在线视频| 欧美午夜伦理在线观看| 熟女乱一区二区三区四区| 亚洲国产另类久久精品| 成人日韩在线播放视频| 激情五月综五月综合网| 久久人人爽人人爽大片av | 五月婷婷六月丁香狠狠| 欧美日韩乱码一区二区三区| 韩国日本欧美国产三级 | 欧美老太太性生活大片| 国产又粗又猛又大爽又黄同志| 国产精品激情在线观看| 欧美日韩亚洲综合国产人| av在线免费观看在线免费观看| 国产又大又硬又粗又湿| 日本午夜福利视频免费观看| 超薄丝袜足一区二区三区| 亚洲中文字幕在线综合视频| 欧美日韩国产精品第五页| 黄色美女日本的美女日人|