写点什么

独家 | PHP 开发者福音:阿里上线 Composer 全量镜像

  • 2019-07-12
  • 本文字数:2184 字

    阅读完需:约 7 分钟

独家 | PHP开发者福音:阿里上线Composer全量镜像

InfoQ 独家获悉,阿里云今日宣布正式上线 Composer 全量镜像,这款工具几乎可以与 PHP Packagist 官方实时同步,每隔 30 秒刷新全国 CDN 缓存,这对于沉浸在 Laravel China 即将关闭消息中的开发者而言,可谓是一个好消息。


一周前,个人开发者 Summer 在博客上宣布:Laravel China 镜像将于两个月后停用,并给出了迁移新镜像的相关注意事项。对 PHP 开发者而言,Laravel China 镜像还是非常受欢迎的,此次宣布关闭确实是因为遇到了无法很好解决的问题。


7 月 12 日,InfoQ 独家获悉:阿里云正式上线PHP Composer全量镜像,所有 PHP 开发者均可使用。如今,PHP 开发离不开 Composer,但通过 Composer 安装第三方包时,代码数据一般从 Github 上下载,而安装包的元数据则从 Packagist 下载,速度通常较慢。因此,阿里云选择上线 PHP Composer 全量镜像。就此,InfoQ 对该项目相关技术专家进行了独家专访,了解这一项目背后的故事。

PHP Composer 全量镜像

据介绍,PHP Composer 全量镜像可以理解为一个镜像库,类似 Node.Js 的 NPM 镜像,该工具的最初研发灵感源自阿里内部一位 90 后工程师顾咏,由于其日常负责开发阿里云产品的 PHP SDK,在工作中经常遇到同一个问题:尽管已经根据 PHP 最新版本发布了新的 SDK,但由于镜像工具没有实时同步版本,导致用户安装不成功。



此外,阿里巴巴云效平台也提出同样诉求,目前有近 6 万家企业的开发者在云效平台上进行一站式企业协同研发,其中有相当一部分在构建 PHP 工程,镜像工具同样影响这部分开发者体验。因此,顾咏向主管朴灵提议:开发一款快速且稳定的镜像工具。


当时,业内也存在一些开源工具,但普遍缺乏有力支持,稳定性和速度无法满足需求。由于朴灵本人是 Node.js 布道者,NPM 中国镜像的前两代搭建者,因此对此类研发较为支持,而顾咏曾对镜像系统有过研究,因此整个研发过程相对顺利,相比同类工具研发可能节省了不少时间。


采访中,顾咏表示,国内镜像所做的是缓存所有安装包和元数据到自己的服务器,并通过国内 CDN 进行加速,实现 Composer require/install/update 的操作,并达到最快速度。阿里云开源的 PHP Composer 全量镜像能够实现与 PHP Packagist 官方实时同步,每隔 30 秒刷新全国 CDN 缓存。基于阿里云 OSS 和 CDN,研发同步系统,通过任务分发,实现快速和稳定的同步。

使用方式

全局配置(推荐)


所有项目都会使用该镜像地址:


composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
复制代码


取消配置:


composer config -g --unset repos.packagist
复制代码


项目配置


仅修改当前工程配置,仅当前工程可使用该镜像地址:


composer config repo.packagist composer https://mirrors.aliyun.com/composer/
复制代码


取消配置:


composer config --unset repos.packagist
复制代码


调试


composer 命令增加 -vvv 可输出详细的信息,命令如下:


composer -vvv require alibabacloud/sdk
复制代码

Laravel China 即将关停

如开篇所言,Laravel China 即将于两个月后关停。在这款 PHP Composer 全量镜像之前,Laravel-China 可能是众多 PHP 开发者最常用的镜像工具之一。简单来说,Laravel China 是一款 Composer 全量镜像,提供相同的功能,由个人开发者 Summer 和禅师在 2017 年开发推出,在 PHP 社区中受到开发者的热烈欢迎,但在稳定性和实时同步上都还存在一些问题。同时,随着使用量增加,也遇到了流量成本超标、恶意流量等情况。


7 月 3 日,阿里云开始小范围公测 PHP Composer 全量镜像,在没有任何官方推广的情况下,单日下载量甚至超过 30 万次,测试期间主要关注提高 CDN 的刷新速度。同时,Summer 接收到无数开发者的询问:Laravel China 镜像将何去何从。


根据 Summer 的个人博客:经过与禅师的讨论,Summer 做了一个艰难的决定:Laravel China 镜像将于两个月后停用。Summer 解释道:“我们的 CDN 资源是有限的,为了防止恶意流量消耗,本着牺牲少部分人的使用体验,让大部分人能正常使用的初衷,我们在后台做了诸多限制。例如说同一个 IP 下一分钟内只能下载多少次,最大允许下载的文件大小(后台观察到有超大的 zip 包)等。”


限制加上去后,恶意流量有所减少,对成本控制起到很好的效果。但是随之而来又出现了另一个问题:


误杀率较高,分析了下原因,有可能是带宽速度过快,触发「分钟内下载频率限制」,或多人共用一个 IP,这种常见于同一个公司有多名使用者,出口 IP 是同一个的情况。

我们陷入一个两难的境地:基于 CDN 平台上提供的机制,实难分辨上面的这些请求。解开限制,又会出现流量成本超标的情况。误杀情况无法避免,可预知的,接下来还会出现更多的反馈「Composer 要求用户名」的帖子。


最终,Summer 认为:与其维护一个残缺的镜像,还不如让贤,推广其他稳定、可用性高、流量不限制的大厂镜像。



作为个人开发者,Summer 与禅师牺牲了很多时间用于项目维护,这是非常值得肯定的。在众多可替代项目出现之后,Laravel China 镜像选择在这个时候停用,也算是不辱使命,功成身退。

结束语

如今,阿里云正式开放下载PHP Composer全量镜像,虽然这会带来 ECS、CDN 方面的资源成本,但可以给广大 PHP 开发者带来实际价值,这也体现出个人开发者维护开源项目的不易。现在,国内全量镜像有了更多选项,众多大厂均参与其中,再加上 镜像源码 开放,降低了构建镜像的成本,相信未来还会有更多选项可供选择。


项目地址:https://developer.aliyun.com/composer


2019-07-12 11:0013772
用户头像
赵钰莹 极客邦科技 总编辑

发布了 912 篇内容, 共 709.0 次阅读, 收获喜欢 2707 次。

关注

评论 5 条评论

发布
用户头像
phper的福音。
2019-07-12 15:27
回复
可以关注下项目动态,期待您的反馈和建议~
2019-07-12 16:20
回复
强的一塌糊涂
2019-07-12 18:37
回复
用户头像
牛逼
2019-07-12 13:57
回复
用户头像
对志愿维护开源项目的个人开发者致敬,也肯定现在众多大厂的开源精神
2019-07-12 11:44
回复
没有更多了
发现更多内容

开发第一个Flutter App需要注意什么

FN0

flutter

云小课|HSS对近期Cactus勒索病毒的分析

华为云开发者联盟

安全 华为云 华为云开发者联盟 华为云云小课

Agent应用如何撰写角色指令 ——【Agent】角色指令设计攻略

AI大咚咚

AI agent AI Agent AI原生应用 Agent构建

自动弹性,QPS线性提升|一文读懂云原生数仓AnalyticDB弹性技术原理

阿里云瑶池数据库

数据库 阿里云 数据结构 云原生

IoTeX 研究员:我对 DePIN 赛道发展的十项预测

TechubNews

#Web3 DePIN

纽约时报:揭秘美国比特币矿场背后的中国主人

TechubNews

Kmesh v0.1.0 版本发布

华为云开发者联盟

开发 华为云 华为云开发者联盟 Kmesh

这些定律,在职场越早知道越好

伤感汤姆布利柏

美国现货比特币 ETF 在 3 天内突破 100 亿美元:这将如何影响加密市场

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

百度营销共拓开放平台全新上线,全链路共建AIGC营销新图景

科技热闻

​MES管理系统有哪些强大的功能?

万界星空科技

生产管理系统 mes 云mes 万界星空科技 智能制造业

每日一题:LeetCode-468. 验证IP地址

Geek_4z9ami

面试 算法 LeetCode 字符串 IP地址

带你手把手玩转【RAG】应用!

AI大咚咚

AI AI应用 rag AI原生应用

交易员资管平台

区块链技术

孙文龙理事长参加第二十一届中国国际软件合作洽谈会主题大会并致辞

开放原子开源基金会

开放原子校源行(北理工站)成功举办,多举措赋能开源人才建设,助力开源生态繁荣发展

开放原子开源基金会

带你熟悉NLP预训练模型:BERT

华为云开发者联盟

人工智能 华为云 语言模型 华为云开发者联盟

集力向新 共博未来 | 博科资讯与东集技术达成战略合作

极客天地

DAPP节点矿池挖矿系统开发(源码搭建)

l8l259l3365

BLCR:区块链游戏革新,激发无尽策略乐趣!

Footprint Analytics

区块链 区块链游戏 web3游戏 Web3 游戏 BLCR

基于 Vue3 + Springboot 构建的前端低代码框架

互联网工科生

Vue 低代码 spring-boot JNPF

解锁加密货币增长的秘密:通过 Token Explorer 解读市场信号

Footprint Analytics

区块链 Token 代币

团队如何限制合适的在制品(WIP)数量

敏捷开发

项目管理 敏捷开发 看板方法 禅道项目管理软件 在制品限制

打破这四点,别再说敏捷无法落地了

敏捷开发

项目管理 Scrum 敏捷开发 敏捷团队 敏捷落地

独家 | PHP开发者福音:阿里上线Composer全量镜像_文化 & 方法_赵钰莹_InfoQ精选文章