PYTHON後端相關技術/工具棧

python

  • 編輯器

最多見: vim / SublimeText2 / PyCharm html

Vim有興趣能夠看看 k-vim 適合Python/Golang開發 前端

  • 本地環境 pip/easy_install 包管理

viertualenv + virtualenvwrapper 庫/版本管理, 環境隔離 python

ipython/ipdb mysql

  • Web 框架 Python 的Web 框架很是多......

我的偏好[有分前後] ios

flask 輕量! 能夠靈活組合各種組件進行開發(第三方組件很豐富), 簡單高效, 便於快速開發和維護. nginx

tornado 異步, 高性能, 最新版本4.0 git

django 有些重, 配置和約定衆多, 能夠快速開發一些"管理"性質的後臺, 其版本更新很是快 github

其餘: web

bottle 類flask, 一個文件, 足夠小 redis

SQLAlchemy is the Python SQL toolkit and Object Relational Mapper that gives application developers the full power and flexibility of SQL.

彷佛這個就足夠了, 無出其右

  • 模板

只提第三方(不少框架自帶了, 例如Django/Tornado), 話說天下模板都大同小異

Jinja2, 最喜歡的一個, 以前寫了篇 PYTHON模板-JINJA

Mako, 介紹PYTHON模板-MAKO

還有挺多的, 後續瞭解後補充

  • 代碼管理及Wiki

使用git, 搭建gitlab gilt針對項目級別, 能夠用markdown寫一些文檔, 能夠簡單的code review, 能夠進行討論等等.

Wiki的選擇:

gollum 很贊

trac老牌, 可是我的不大喜歡其語法編輯方式.

  • 代碼發佈

fabric + rsync

rsync 用於生產代碼目錄的同步, 足夠簡單強大

fabric 用於自動化部署, 將流程固化到腳本中重複使用, 提升效率下降風險, PYTHON FABRIC實現遠程操做和部署

Fabric is a Python (2.5-2.7) library and command-line tool for streamlining the use of SSH for application deployment or systems administration tasks.

  • 項目部署

nginx 服務器, 主要用於負載均衡, 反代等

gunicorn a Python WSGI HTTP Server for UNIX, 用來運行Flask項目

Supervisor A Process Control System, 配置管理各類程序, 進程監控, 自動重啓等

  • 監控

nagios 服務器各種參數監控, 負載,內存,IO, 網絡等, 也能夠配置對進程進行監控報警

sentry 實時收集事件日誌, 能夠在管理後臺查看到當前程序異常及報錯具體信息, 很強大的平臺, 支持多種語言的程序

statsd + graphic

statsd 實時服務數據收集(e.g. counters and timers) 收集後數據提供給graphic進行展現

graphic 企業級開源監控工具(數據繪圖工具),用於採集服務器實時信息並進行統計, Graphite 本身自己並不收集具體的數據,這些數據收集的具體工做一般由第三方工具或插件完成. 其控制檯前端項目tessera

  • NOSQL

redis 緩存/持久化/特殊需求(計數-排行榜-時間線等)

memcached 集羣, 多用於有時限性質的緩存

mongodb 在技術選型玩了下, 沒有正式在生產用過

  • 數據庫

mysql 不解釋, 感受是否是全部Python的底層db都是mysql......

postgresql 開發日誌統計系統使用過, 學院派, 各類牛叉的功能, 對json的支持使人印象深入.

  • 抓取

beautifulsoup 配合urllib2或者requests庫進項簡單的抓取分析工做

scrapy 很牛的抓取框架, 適合規模較大,需求複雜的的抓取任務

完成搜索功能, 雖然Python也有一些實現, 可是感受仍是使用成熟的方案會好些, 文檔/資源豐富, 便於開發和維護. Solr, 足夠簡單及強大.

  • 好用的第三方

requests HTTP for humans, 很是好用, 強烈推薦

jieba 中文分詞

  • 異步和隊列

gearman 支持分佈式的任務分發框架, 並行/不一樣語言之間的通訊. 以前使用主要用來跨機器任務分發.

celery 分佈式任務隊列

zeromq 以前使用的消息系統是基於這個的, 沒有研究過

  • 日誌

logstash 日誌收集和分析, 支持不一樣來源不一樣格式, 進行統一收集和分析處理

Elasticsearch 數據

Kibana A log analyzing web interface for logstash and elasticsearch

三者組合

  • 項目管理

tower

相關文章
相關標籤/搜索