Python backend-related technologies/tools stack

Source: Internet
Author: User
Tags solr nginx server rsync logstash statsd

    • Editor

Most common: vim/sublimetext2/pycharm

Vim is interested to see K-vim suitable for Python/golang development

    • Local environment
      Pip/easy_install Package Management

Viertualenv + Virtualenvwrapper Library/version management, environmental isolation

Ipython/ipdb

    • Web Framework
      Python has a lot of web frames ...

personal preferences [in order of priority]

Flask Light Weight! Flexible combination of various components for development (rich in third-party components), simple and efficient, easy to develop and maintain quickly.

Tornado asynchronous, high performance, latest version 4.0

Django has a lot of weight, configuration and conventions, you can quickly develop some "management" nature of the background, its version updated very quickly

Other:

Bottle class flask, one file, small enough

    • Orm
      SQLAlchemy

SQLAlchemy is the Python SQL Toolkit and Object relational Mapper, gives application developers the full power and fle Xibility of SQL.

It seems like this is enough.

    • Template

Only mention third parties (many frameworks come with them, such as Django/tornado), saying that the template is the same

JINJA2, one of the favorite, wrote a python template before-jinja

Mako, introducing the Python template-mako

There are quite a few, follow-up understanding after supplementing

    • Code Management and Wikis

Use Git to build Gitlab
Gilt for project level, can write some documents with Markdown, can be simple code review, can discuss and so on.

Wiki selection:

Gollum was great.

TRAC is old-style, but individuals don't like the way they edit grammar.

    • Code Publishing

Fabric + rsync

Rsync is used to synchronize the Production Code directory, simple and powerful enough

Fabric for automated deployment, reuse of process hardening into scripts, increased efficiency and reduced risk, PYTHON fabric for remote operation and deployment

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

    • Project deployment

Nginx server, mainly used for load balancing, anti-generation, etc.

Gunicorn a Python WSGI HTTP Server for UNIX to run the Flask project

Supervisor A Process Control System, configuration management of various programs, process monitoring, automatic restart, etc.

    • Monitoring

Nagios Server various parameters monitoring, load, memory, IO, network, etc., can also be configured to monitor the process of alarm

Sentry Real-time collection of event logs, can be in the management background to view the current program exceptions and error specific information, a very powerful platform to support multi-lingual programs

STATSD + graphic

STATSD Real-Time service data collection (e.g. counters and timers) data provided to graphic for presentation

Graphic Enterprise-level Open source monitoring tools (data mapping tools), used to collect real-time information and statistics of the server, Graphite itself does not collect specific data, these data collection of specific work is usually done by third-party tools or plug-ins. The console front-end project Tessera

    • Nosql

Redis Cache/Persistence/special needs (count-leaderboards-timelines, etc.)

memcached clusters, many for time-bound caches

MongoDB played under the technology selection, no formal in production used

    • Database

MySQL does not explain that the feeling is not all the underlying db of Python is MySQL ...

PostgreSQL Development Log Statistics System has been used, the academy, a variety of the functions of the fork, JSON support is impressive.

    • Crawl

BeautifulSoup with URLLIB2 or requests library input simple Crawl analysis work

Scrapy is a very good grab frame, suitable for large-scale, complex requirements of the crawl task

    • Search
      Solr

Complete the search function, although Python also has some implementations, but it feels better to use a mature solution, document/resource-rich, easy to develop and maintain. SOLR, simple and powerful enough.

    • Useful third-party

Requests HTTP for humans, very useful, highly recommended

Jieba Chinese participle

    • Async and queue

Gearman supports distributed task Distribution framework, parallel/communication between different languages. Previously used primarily for cross-machine task distribution.

Celery Distributed Task queue

The message system used before ZEROMQ is based on this and has not been studied

    • Log

Logstash Log collection and analysis to support different formats from various sources for unified collection and analysis processing

Elasticsearch data

Kibana A Log Analyzing web interface for Logstash and Elasticsearch

Three-person combination

    • Project Management

Tower

Python backend-related technologies/tools stack

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

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.