必然的想法
在最近的NPM裁员之后,我注意到一些人在谈论NPM和PyPI这两个极端。比较:
NPM:
成立时间:2014年1月
资金:1060万美元
雇员:0~60
状态:私人,风投支持的公司
PyPI:
在讨论PyPI的“商业模式”时,一个不可避免的问题是:为什么不把它变成赚钱的东西呢?我们可以提供私人存储仓库,我们可以提供对快照镜像的支持,我们可以为我们的专业用户添加定制徽章,我们可以将最好的软件包名称拍卖给出价最高的人等等……可能性是无限的。
我承认:这是一个诱人的想法,特别是考虑到我多么喜欢用PyPI,我们真正运行的一个操作是多么简单,以及我被问到这个问题的频率。
然而,将PyPI转变成一个能赚钱的服务,除了“我们要收多少钱”和“我们把所有的钱都放在哪里”这两个通常不被考虑的问题外,还有许多挑战。
很明显,这些并不是NPM所面临的挑战,也不是像NPM这样由风投支持的服务所固有的挑战。他们有自己的一系列的挑战,虽然我不想确切地知道这些挑战是什么,但我想他们不是不可能成功。
这些都是将免费使用的、多功能或少功能的、需要长时间运行的服务转变为产生收益的挑战。
我们的非营利地位
PyPI是Python软件基金会的一个项目,PSF是501(C)(3)非营利组织。它的使命是“促进、保护和改进Python编程语言”,未必提供与之相关的付费服务。
从“如何失去你的501(C)(3)免税状态(没有真正尝试)”开始:
>从无关活动中赚取过多收入可能会危及组织的501(C)(3)免税地位。这项收入来自定期进行的贸易或业务与本组织的核心宗旨没有实质上的联系。
一般来说,作为一个非营利性组织,试图在其他营利性企业的领域经营业务,可能会对我们的免税地位产生疑问,这对于PSF为了维持我们习以为常的持续生存来说是非常重要的。
很明显,这总是可以改变的,但这可能不值得。Nick Coghlan 写道:
>让PSF走上与Mozilla相同的道路(其中应纳税的Mozilla 公司是非营利性Mozilla基金会的全资子公司)将是可能的,但对PSF员工和董事会来说也是一种不小的分心事儿。正如Mozilla基金会发现的那样,即使这个选项也不是完全可靠的。
Mozilla基金会接受了为期四年的长期审计,之后他们被要求与美国国税局结算150万美元。
捐赠服务
PyPI严重依赖捐赠的服务和基础设施,每年超过1百万美元。如果我们开始赚钱,我们的赞助商会怎么想?Hynek Schlawack写道:运营成本(非常高)主要由像Fastly这样的赞助商承担,他们可能对资助新企业兴趣不大。
我想他们可能不赞成这样做。他们可能会撤回他们的赞助和实物捐赠。很难说他们究竟什么时候决定这么做,但可能迟早会这么做。
如果他们在第一天都退出呢?很难让PyPI从每年0美元的收入增长到每年超过1百万美元,同时没有导致重大债务或停机情况。
现有生态
除了PyPI之外,还有很多其他的python包存储库。它们涵盖自制DIY(devpi、bandersnatch)到完全托管的付费服务(artifactory、gemfury等),每种服务都具有不同的特性、用例和用途
然而,这并不是说这些选项的存在意味着“PyPI即服务”将不会成功——事实上,考虑到我听到这个请求的频率,我确信任何新进入这个“市场”的人都可能会成功。
需要着重考虑的是,这些服务在某种程度上依赖于PyPI提供的生态系统:要么它们实际上依赖于PyPI(对于镜像,它们需要我们的API和文件托管来完成它们的工作),要么它们依赖于我们驱动的打包标准(对于私有仓库项目,为了兼容当前安装程序、包装格式等)。
如果PyPI涉足托管私有软件包的业务,它可能会阻止我们帮助确保“竞争”服务是可以维持工作的。当我们可以优先考虑那些能带来更多收入的功能性工作的时候,为什么要费心去解决一个打破旧版本猛兽的烦人问题?
我们的志愿者
除了PSF基础设施总监(他没花很多时间在PyPI工作上)和我们雇佣来处理我们最近获得赠款工作的承包商外(那些只在各自合同范围内从事PyPI工作的人),PyPI完全由无偿志愿者提供支持。
这就提出了一个道德问题:让志愿者继续为营利企业贡献时间是否合理?这大概是不合理的。
不管怎样,当你不赚钱的时候,让人们免费工作是一回事,但是如果你赚钱的话,那些人被称为你的雇员,他们可能想要一份生活工资。Donald Stufft写道:人们花费了很多钱,而且我们需要考虑到招聘人员的基础设施。
与赞助商类似,很难预测这将如何发展。我们是否需要立即用雇佣员工替换所有志愿者?
转变
这一切并不是为了让任何有这种想法的人泄气。事实上,每年的PyCon会议与这里经常提到的非常相似:
它带来了利润
它有赞助商
它与其他营利性会议“竞争”
它需要志愿者的支持
此外,PyCon已经解决(或正在解决)这些挑战中的许多,但转变仍然是非常具有挑战性的。
今天的PyPI是一个稳定的服务和基础设施的核心部分。为了从我们当前的模型转换为“PyPI即服务”,我们需要解决上面的所有问题,并且在我们这样做的同时保持PyPI的运行。
这是完全不可能的吗?不,但它真的值得花费所有的时间、精力和律师吗?从长远来看,可能不会。
感谢Nick Coghlan、Ewa Jodlowska和Donald Stufft在这个问题上对我(以及许多其他人)进行的指导。
英文原文:https://dustingram.com/articles/2019/04/02/pypi-as-a-service/
译者:南宫云遥