圖片來源: 

iThome

10年來,開源活動從以前的小眾運動,躍升為軟體開發,甚至是IT圈的主流文化。一線軟體廠商紛紛擁抱開源,不只跨國網路服務公司愛用開源軟體,不少開源專案如雲端作業系統OpenStack或輕量級虛擬化Docker都成為了軟硬體廠商們爭相參與的專案,連曾經一度與Linux誓不兩立的微軟,去年10月也大動作宣布開源釋出.NET核心。

根據美國知名開發論壇StackOverflow最新開發者調查報告,全球約有2千5百萬名開發者,其中,約7成開發者每周至少花2小時來開發開源軟體。

但是,今年3月12日,Google開源部門Chris DiBona卻發布了一個令所有開源開發者感傷的消息,2006年推出的Google Code專案代管服務將於明年1月劃下休止符。

10年前最熱門的程式碼代管平臺是SourceForge,2005年當時一度高達135萬名開發者註冊,託管專案超過12萬個,連維基百科所用的MediaWiki程式都使用SourceForge託管。

不過,許多開發者仍覺得這類專案代管服務不敷使用,可選擇的代管平臺不多,所以,2006年時,Google決定自己推出Google Code專案代管服務。一推出果然聲勢如紅,很快成為全球開發者最愛的程式碼代管平臺之一,上線才3年,就託管了5萬多個開發專案。

但如今,這個曾廣受開發者好評的服務吹響了熄燈號,但眾人並不意外,因為GitHub成了全球開發者代管開發專案的新選擇,除了免費提供開源程式碼專案代管,也提供付費的封閉專案代管服務,許多軟體開發商也使用GitHub來控管自家產品的開發專案。

連Chris DiBona在告別公告上都推薦GitHub是更好的專案代管服務,Google也提供了自動化搬家工具,協助開發者將Google Code上的專案轉移到GitHub服務上。Google自己從幾年前,就開始用GitHub釋出程式碼。

GitHub有多紅?統計到2015年,將近920萬名開發者在GitHub上建立了2,170萬個專案,GitHub已成了全球最大規模的開源專案平臺,連微軟要開源釋出.NET核心程式,也選擇在GitHub上釋出程式碼,而不是用微軟自家的CodePlex平臺。

GitHub是全球最大開發者聚集地

領導微軟全球Visual Studio和.NET開發團隊的微軟全球開發平臺事業部資深副總裁潘正磊點出原因:「因為GitHub已是全球最大的開發社群平臺,當然要在這裡釋出.NET原始碼。」只要將開發專案放上GitHub釋出,很容易能吸引許多人參與開發,潘正磊表示,這就像是一種群眾外包(CrowdSourcing)的開發方式。藉助群眾力量才能更快完成開發,不斷改版且不斷釋出。所以,未來微軟開源釋出的程式碼,也會在GitHub上釋出。

若用Stack Overflow估算的全球開發者人數來看,相當於全球開發者每3個人就有1個人會在GitHub上註冊。微軟想要吸引最多的開發眼球,可想而知得選擇在GitHub上建立.NET開源專案。

GitHub顧名思義,是一個提供Git版本控管服務的平臺。Git這套出自Linux之父Linus Torvalds之手的版本控制系統,無疑是GitHub大受歡迎的關鍵之一。

分散式設計能讓多人同時離線作業

Linus Torvalds最近回顧Git十周年時表示,Git是為Linux開發流程量身打造的版本控制系統,為了有效處理龐大專案而生。甚至刻意要跟CVS這類集中式版本控制軟體的設計相反,改採分散式架構。儘管Git物件檔案的版本編號不像CVS那樣是遞增的數字,反而是恐怖的40字元HEX編碼,但Linus Torvalds認為,分散式設計的Git是必要的改進,而且開發者一旦用過就無法回頭用傳統工具。因為Git備份簡單又可靠,更不用擔心測試儲存庫會影響到主要儲存庫的程式碼。

也因為Git在Linux專案上的成功,後來大獲開源開發者好評。GitHub也正是因為分散式版本管理軟體的優點,而決定打造一個Git的SaaS雲端服務。

負責教育推廣任務的GitHub工程師John Britton用「優雅」(Elegant)來形容Git架構。他解釋,最大不同是分散式架構能夠離線作業。Git能在本地端複製一份完整的專案程式碼,讓開發者可以離線提交(commit)修改後的程式碼。如此一來,多人同時在同一個專案中一起工作才能成真,而不用像集中式架構,每個人得輪流進行合併,其他人得等其中一人完成合併才能繼續進行。

除了離線提交之外,另一個重要功能是建立分支(Branching),John Britton解釋,開發人員可以無懼地想建立多少分支就去做,就能善用分支功能來重組開發任務,安排更有效的工作進度,也才能找出更好的工作模式。

更容易讓多人協同開發,吸引了開源社群大量使用GitHub來協同大型開發專案,GitHub也提供了不少工具如星號標記等,讓開發者更容易追蹤其他人的專案。如GitHub上最大型的專案是JavaScript開發框架Bootstrap,超過6百人參與開發,分支版本超過3萬個,8萬人在專案上標記星號列入個人專案清單方便追蹤。就像臉書是人們的社交平臺,GitHub就像是開發者的社交開發平臺(Social Programming),透過開發活動和其他人互動。

不過,GitHub的成功,不只是因分散式設計的Git軟體,另一個關鍵是GitHub選擇了SaaS的商業模式。John Britton表示,GitHub商業模式最大的威力是自助式服務(Self-Service)。

過去因為開源軟體人人都可免費取得,所以,傳統的開源軟體公司大多靠授權和提供支援服務來營利,例如Red Hat就是這種第一代開源商業模式的典型代表。

自助式服務是GitHub商業模式成功的關鍵之一

「傳統開源模式是服務合約式(Service Contract)商業模式」,John Britton表示,缺點是,銷售過程需要和客戶大量接觸,如得派業務人員和客戶協商合約。但GitHub的商業模式是,免費提供,盡可能地讓顧客愛用,顧客越用越多後,自然而然就會想要購買進階功能,完全不需要銷售說服的過程。「這種自助式服務就是GitHub模式成功的關鍵。」他說。

GitHub服務的定價策略是,凡是對外公開的專案完全免費使用,不限使用人數或資料量,只有使用者或企業想要在GitHub上建立不公開的封閉專案時才需要按月付費,而且不公開的專案越多,費用越高。

不過,曾紅極一時的SourceForge,也同樣採取SaaS方式來提供雲端開源專案代管服務,但營收不如GitHub出色。兩者最大差異是,John Britton表示,GitHub的使用者就是營收來源,開發新功能時自然會聚焦於使用者需求,對使用者提供的服務越好,獲利也自然會提高,是一種正向的循環。而以廣告獲利的SourceForge,使用者不是營收來源,企業發展不易聚焦回使用者上。

GitHub或許不是率先利用開源軟體打造SaaS服務,並結合使用者付費模式的第一家企業,卻可說是率先獲得大成功的一家,顛覆了傳統開源軟體公司的免費套裝搭付費服務的模式,後續,不少開源新創公司,如Docker也跟隨GitHub採用了這種與過去截然不同的開源新商業模式。

 

 Git參考資料 

Git官方網站:http://git-scm.com/

Try Git:https://try.github.io/levels/1/challenges/1

Git-it:http://jlord.us/git-it/index-zhtw.html

GitHub Guides:https://guides.github.com

保哥30天精通Git版本控管:http://ithelp.ithome.com.tw/ironman6/player/doggy/dev/1

 

相關報導請參考:GitHub:IT人必學開發神器」

熱門新聞

Advertisement