利用virtualenv部署python应用

先说为什么。

部署应用首要问题就是环境的搭建,硬件层面的,操作系统层面的,运行环境层面的。各种原因有时候需要将应用部署在不同的大环境,或者在同一大环境部署有冲突的应用。这时候就要考虑尽可能的隔绝应用对实际环境的依赖,或者隔绝不同应用各自的运行环境

最简单的方式是不同的实体机操作系统(不同实体硬件及操作系统及运行环境),进一步就是不同的虚拟机操作系统(相同实体硬件及操作系统+不同虚拟硬件及操作系统及运行环境),再进一步就是不同的虚拟子操作系统(相同实体或虚拟硬件及操作系统+不同虚拟子操作系统及运行环境),最终一步是不同的虚拟运行环境(相同实体或虚拟操作系统+不同虚拟环境)。由上到下,举例而言:一台电脑 – VMware – Docker – VirtualEnv。

每一级都意味着一方面减少上一级层面的资源占用,另一方面增加上一级资源的配置。比如,一台电脑开了几个VM,意味着不需要购置几台电脑,但这台电脑要做的操作系统就不仅仅是一个了。再比如,一台VM开了几个Docker,意味着不需要再添加几个VM装操作系统,但这个操作系统需要做额外的Docker配置。

每一级也决定了如何快速部署。比如虚拟机级别,将一套VM文件导入到新的VM系统。再比如虚拟运行环境级别,直接将部署应用放入虚拟环境下即可。

选择什么级别的隔绝,取决于怎么考虑应用本身,以及上面提到的资源、配置、部署。例如我要在各种Windows/Linux平台上面运行相同的python应用,需要隔绝操作系统本身带的python环境,使得这些应用不受操作系统和python环境影响,反之也不影响他们。那就要用到一个相同虚拟运行环境(直译过来就是这个名字Virtual Environment – VirutalEnv)。

再说怎么做。

本文隐藏内容 登陆 后才可以浏览

发表评论