11.27 PHP 依賴鏡像出問題後,阿里程序員的一頓“神操作”令人叫絕

PHP 依賴鏡像出問題後,阿里程序員的一頓“神操作”令人叫絕

對於PHPer來說,Composer的重要性不言而喻。Composer是 PHP 用來管理依賴(dependency)關係的工具,PHPer可以在自己的項目中聲明所依賴的外部工具庫(libraries),Composer 會幫你安裝這些依賴的庫文件。

阿里雲上線的 Composer 全量鏡像,PHP 開發者均可免費使用。在此以前,Laravel-China 可能是眾多 PHP 開發者最常用的鏡像之一,在得知阿里雲上線Composer 全量鏡像以後,Laravel China宣佈關閉自己的 Composer 鏡像,將重任交給了阿里雲。

前幾天,因為國際網絡不穩定問題,近期國內各大Composer鏡像都出現了間歇性無法訪問情況,這對國內PHPer的生產工作造成了極大的影響。受此影響,國內各家Composer服務都出現了相同的問題,阿里工程師的這個解決方案堪稱“簡單粗暴”,效率高到沒朋友!

第一時間在線響應,解決後開發者紅包致謝

阿里雲的PHP Composer最初研發靈感源自阿里內部一位 90 後工程師顧詠。作為負責開發阿里雲產品的 PHP SDK的工程師,他在工作中經常遇到同一個問題:儘管已經根據 PHP 最新版本發佈了新的 SDK,但由於鏡像工具沒有實時同步版本,導致用戶安裝不成功。 此外,雲效平臺企業開發者對鏡像工具的使用體驗,同樣受到這個問題的困擾,為此,阿里技術團隊一起設計開發並開源了這套阿里雲版鏡像工具。

此次國際網絡不穩定導致的鏡像問題,阿里工程師顧詠第一時間響應了PHPer的訴求,連夜排查問題。 “我們程序員都離不開這個,越早解決越好”,最後終於成功定位問題、完成系統更新,解決了大家的燃眉之急。群裡的開發者主動發紅包向其致謝,顧詠十分感動,然後拒絕了他:

PHP 依賴鏡像出問題後,阿里程序員的一頓“神操作”令人叫絕

“應該做的,紅包不能收。”

PHP 依賴鏡像出問題後,阿里程序員的一頓“神操作”令人叫絕

雖然網絡不穩定的情況時有發生,目前來看根本不可避免。但工程師就是這樣一群不願重複解決同類問題的人,阿里工程師們為了最大程度避免此類問題再次發生,與 Packagist 官方溝通,在得到同意後,立刻在距離 Packagist 源數據最近的城市部署了服務器,通過阿里雲洛神網絡不間斷、不限帶寬

的直接將源數據同步回國,幫助開發者穩定獲得最新 Composer 依賴包,這在業界來說,應該是隻此一家,別無分號。

PHP 依賴鏡像出問題後,阿里程序員的一頓“神操作”令人叫絕

1秒內完成同步,強到沒朋友

免費全量鏡像站,開發者的福音

在中國技術圈的發展史中,個人站長、開發社區做出了巨大的貢獻,就像前文提到的Laravel-China,就是由個人開發者Summer和禪師推出的,在阿里雲Composer之前一直是眾多PHP開發者最常用的鏡像之一。在其受限於CDN資源有限、誤殺率較高,最終不得不關站以後,阿里雲Composer接過了功成身退的Laravel-China的交接棒,繼續為國內廣大的PHP開發者提供鏡像服務。

阿里做鏡像站的歷史最早可追溯至2011年,從最開始阿里內部的需求,擴展到為更廣大的開發者免費投入資源,提供更快、更穩定的鏡像資源。從最初的幾臺設備,成長為現在覆蓋主流語言和主流操作系統的全量鏡像站。並且,在這個過程中,一直堅持免費為開發者提供鏡像資源,不斷追求更快、更穩定的服務。

目前阿里雲鏡像站不僅提供Centos、Ubuntu、 Fedora、Arch Linux、 Deepin 等10多個發行版的軟件安裝源和ISO下載服務, 還提供Python, Php 等多款開發語言的包管理鏡像服務以及 nvidia-cuda, homebrew, kubernetes等 10 多款垂直倉庫的鏡像服務。每月下載包文件數量已經超過 7 億次。

國內鏡像所做的是緩存所有安裝包和元數據到自己的服務器,並通過國內 CDN 進行加速,實現 Composer require/install/update 的操作,並達到最快速度。阿里雲的 PHP Composer 全量鏡像能夠實現與 PHP Packagist 官方實時同步,通過自研的鏡像同步系統,實現多協程分工同步、數據自我修復的能力,在保證快速同步的同時,也能快速修復因網絡不穩定造成的數據錯誤,據說未來還計劃開源出來。

眾所周知,提供不間斷、不限帶寬的下載方式,對 ECS、CDN 方面的資源成本要求相當高,這也是為何個人開發者維護開源項目如此不易。但是總有人願意做一些事,給廣大開發者帶來實際價值,為社區生態做出貢獻,如此前維護Laravel-China的個人開發者,現在的阿里。

阿里雲全量鏡像站傳送門:https://developer.aliyun.com/mirror

你的使用體驗如何呢?


分享到:


相關文章: