
1. 前言
去年 10 月,identityserver 的兩位創建者和維護者 dominick baier 和 brock allen 宣布,他們當前的商業模式本質上是不可持續的,因此他們將使用互惠公共許可(reciprocal public license,rpl)的付費許可模式,並在一家新公司 duende software 下提供 identityserver5。
近期,微软宣布他们的 ASP.NET 6 模板将继续包含 Duende 的 IdentityServer 依赖项。IdentityServer 曾经是一款使用宽松的 Apache 2.0 许可的免费开源产品,并且是 ASP.NET 开发人员常用的处理 OpenID 和 OAuth 2.0 令牌的工具,因此多年来微软的 ASP.NET 模板一直会默认包含该库。如今, 微软的流行模板中包含的 IdentityServer 要求年收入超过 100 万美元的用户每年最少支付 1,500 美元的许可费。
net 社區非常有風度地回應了這則公告,他們仔細考慮了自己在通過支持獨立軟體供應商,促進 .net 開源生態系統創新發展方面的作用,並認同 identityserver 通過年費的形式徵收許可費用,從而維護代碼庫的行為非常可取,因為這總好過維護者放棄項目。
然而,.net 社區的眾人陷入了恐慌,他們要求與.net 開源軟體的經理討論一些模板中包含的代碼。最糟糕的問題在於,.net 開源軟體生態系統真正的管理者乃是微軟。
如今,圍繞微軟、identityserver 以及免費與付費“開源”軟體的話題討論層出不窮,因此我決定在本文中一起來探討一下.net 開源軟體的免費午餐結束,對用戶來說意味著什麼。
2. 人心不足蛇吞象
每當看到人們濫用免費/定價過低/未經授權的資源時,我就會想起一句俗語:人心不足蛇吞象。
雖然從小商店偷一塊糖果不會被起訴,但是如果有人搶銀行,那麼一定會被繩之以法。
說起開源,如果維護者只需要支持少量的用戶,而且需求都很類似,那麼其實成本並不高,但一旦項目達到臨界點,而且用戶的要求超出了維護者的提供意願,那麼必須有一方付出代價。
identityserver 的用戶實在是貪心了。在過去的十年裡,大多數 identityserver 用戶都在貪婪地享用免費的晚餐,如今帳單來了。
不難想像,微軟的這個帖子(https://github.com/dotnet/aspnetcore/issues/32494)中出現了各種觀點:
- 這是一項必不可少的服務,微軟應該收購 duende,並再次免費提供 identityserver;
- 沒有人閱讀 duende 的定價條款中有關“任何年收入低於 100 萬美金的公司或非營利組織都可以免費使用 identityserver”的規定,因此很多人在抱怨;
- 為仍在 apache 2.0 下免費開源的 identityserver4 做貢獻,實在是太難了;
- 也許微軟應該使用其他產品來代替 identityserver,例如https://github.com/openiddict/openiddict-core,或https://github.com/simpleidserver/SimpleIdServer,這樣免費的午餐就可以持續下去,直到這些項目也遇到與 identityserver 相同的可持續性問題。
而對於微軟選擇在某些模板中包含 identityserver,而不是包含採用了 rpl 條款的核心庫,人們的反映也很荒謬。
當突然要求開發人員每年支付 1,500 美金、4,000 美金或其他費用來購買“關乎到業務”的服務時,他們就馬上開始哭窮。
要知道,開發人員的專業知識不是能用金錢買到的,而且購買一個優秀的、經過實戰考驗的、文檔完善的、高度可重用的解決方案,比如由領域專家構建的 identityserver,不僅比你自己花錢雇開發人員來做這件事便宜得多,而且風險也比較低。如果應用程式中身份驗證和授權錯誤之類的關鍵問題出錯,那麼肯定會讓你付出慘重的代價。
如果你是公司軟體這一領域的負責人,而且在為 duende 區區幾美金的許可成本而苦惱,那麼請你幫個忙,辭職走人吧,因為你根本沒資格勝任這個職位。
我懷疑網上的有些人抱怨許可成本和裝窮,其實與成本無關,而是與採購部門有關。
3. 採購部門的不滿
開源技術傳播如此迅速,且產生了如此巨大的價值的最大原因之一是,無需許可,任何人都可以採用、使用、修改和重新分發經過審查的開源軟體,而無需考慮部門預算。
但是,一旦維護人員開始收費,作為他們的專業知識和經驗的補償,則開發人員就只能與採購部門交涉,獲得批准才能購買這些產品。
採購部門審批機制的存在是為了徹查供應鏈中每個供應商的“風險”。通常採購機構都不會產生任何有意義的結果,只會讓雙方之間的交易變得更加昂貴和困難,因此軟體開發人員都不希望牽扯到這個環節。
對於 .net 開發人員遇到的這種困境,我並不是特別難過。畢竟,這主要是他們的錯。
4. 免費午餐結束
雖然你可以一直免費使用開源項目,但一旦他們決定收費,你就只能任由他們擺布了。
就 identityserver 而言,我認為新版本的付費條款已經非常慷慨了:對 identityserver 開源軟體的支持將一直持續到 2022 年 11 月!
換作是其他項目,可能會完全放棄,任由用戶自生自滅。
開源軟體在 .net 生態系統中的流行度越來越高,而且這種趨勢只會隨著時間的推移而加速,因此.net 中的可持續性問題會更加普遍。幾年前,微軟就曾經為了用戶承擔起所有費用,並提供免費的庫,結果只讓.net 生態系統陷入了一團混亂,我們不能再重蹈覆轍。
免費午餐已經結束,你清醒一點吧。
當你選擇各種包和技術來維護和構建.net 應用程式時,就應該做好付費的心理準備。因為這是避免未來意外和供應鏈衝擊的唯一方法:現在就將其算入成本。
你應該養成向上游依賴項貢獻價值的習慣,通過直接向你使用的項目做貢獻、捐款,或者是其他更好的形式,從維護者手中購買增值產品和服務。另外,你也可以通過博客文章、視頻和課程來幫忙推廣他們的項目。如果你的業務軟體中使用了某個產品,那麼就應該通過各種途徑回饋,然而,大多數用戶都沒有選擇這麼做。
與開源軟體項目建立良好的交換價值循環是“開源可持續性危機”的必然結果,每個人都可以因此而受益。因此,現在就開始行動吧,為開源項目做貢獻,因為這些項目的持續發展最終也會觸及你的自身利益。
原文作者:aaron stannard
原文標題:.net open source: what happens when the free lunch ends?
原文連結:https://aaronstannard.com/dotnetoss-free-lunch-ends/
譯者|彎月 責編|歐陽姝黎|出品|csdn(id:csdnnews)
譯文標題:.net 開源的免費午餐結束了?
譯文連結:https://www.sohu.com/a/472062543_115128