Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

擁抱開源:企業應如何善用開源技術,才能得其利而防其弊

283 views

Published on

國外企業不論大小對開源技術的採用意願極高,採用成熟度高的開源技術一來可以加快研發速度,二來也會大幅降低營運成本。但台灣企業對開源技術的認知程度較低,擔心穩定性、安全性與支援性等問題,但甚少花時間去了解,當你用正確的心態去看待開源,且有妥善的管理機制去管理它,開源技術將是企業的重大助力。

Published in: Technology
  • Be the first to comment

擁抱開源:企業應如何善用開源技術,才能得其利而防其弊

  1. 1. 企業應如何善用開源技術 才能得其利而防其弊 曾義峰 (Ant) yftzeng@gmail.com 2019-06-01 擁抱開源
  2. 2. 2/94 曾義峰 (ant) 時而編程 , 時而沉浸於法律領域、倘洋於資訊安全世界中。 13 年網際網路研發經驗 , 4 年顧問資歷。 → TGO Networks 台北分會會籍委員 → 台灣資安社群 CHROOT 成員 → 書亞集成股份有限公司 CTO → 香港商帕格數碼媒體股份有限公司 CTO → 希幔科技股份有限公司 CTO → 台灣駭客年會 (HITCON) 2008/2009 講師 → 開源人年會 (COSCUP) 2009/2012 講師 → 台灣 Modern Web 2015/2016/2017/2018 講師 → 中國開源年會 (COSCon) 2018 講師
  3. 3. 3/94 曾義峰 (ant) → 曾於英業達 (Inventec) 及廣達電腦 (Quanta) 等教授自由軟體授權相關課程。 → 於 2011 年 OSDC( 開源開發者大會 ) 分享《開源專案之授權自動化分析工具》 → 於 2018 年 COSCon( 中國開源年會 ) 分享《谈开源授权态样如何融入 DevOps 之持续整合》 相關文章 2011-03-07 淺談 App Store 與開放源碼軟體授權的案例: VLC 的合法上架與 Miro Video Converter 的非法下架 https://www.openfoundry.org/tw/enterprise-application/8274 2011-03-15 淺談將開放源碼軟體改名並違法販售: Butterfly Media on Amazon https://www.openfoundry.org/tw/enterprise-application/8275 2011-07-12 從 Red Hat 變更 RHEL 釋出方式來探討 GPL 對原始碼範圍的定義 https://www.openfoundry.org/tw/enterprise-application/8393 2011-08-17 開放原始碼的相容與互斥性:從 Ruby 社群變更開放原始碼授權來探討 https://www.openfoundry.org/tw/enterprise-application/8419 2012-03-03 談 GPL 軟體原始碼定義及瑕疵修復方式-從 GNU Emacs 違反 GPL 授權條款一事說起 https://www.openfoundry.org/en/news/8629 2012-03-08 授權流言終結者 #1 : VirtualBox 授權分析與探討 https://www.openfoundry.org/tw/enterprise-application/8636 2012-03-29 授權流言終結者 #2 : The JSON License 的分析與探討 https://www.openfoundry.org/tw/enterprise-application/8657 2012-04-23 授權流言終結者 #3 : jQuery 授權的分析與探討 https://www.openfoundry.org/en/news/8680 2012-04-29 授權流言終結者 #4 : MongoDB 授權的分析與探討(雙重授權模式 2.0 ) https://www.openfoundry.org/enterprise-application/8687 2012-06-26 授權流言終結者 #5 : Neo4j 授權的分析與探討 https://www.openfoundry.org/enterprise-application/8738
  4. 4. 4/94 非常早期投入研究 Android 源碼授權的樣態
  5. 5. 5/94 陸續研究 Symbian, MeeGo, Meltemi
  6. 6. 6/94 Myth 1 Big software companies don’t use Open Source 大型軟體公司不使用開源軟體
  7. 7. 7/94 Ref: https://www.theregister.co.uk/2001/06/02/ballmer_linux_is_a_cancer/
  8. 8. 8/94 Copyright (C) 2015
  9. 9. 9/94 Copyright (C) 2015
  10. 10. 10/94 Copyright (C) 2015
  11. 11. 11/94 Copyright (C) 2015
  12. 12. 12/94 Copyright (C) 2015
  13. 13. 13/94 Copyright (C) 2015 Microsoft Windows 本身也利用開放源碼軟體
  14. 14. 14/94 Ref: https://cloudblogs.microsoft.com/windowsserver/2015/05/06/microsoft-loves-linux/
  15. 15. 15/94 Q1 Linux Kernel 是何種自由 / 開放源碼軟體授權? ☐ MIT ☐ BSD-3-Clause ☐ GPL-2.0 ☐ GPL-3.0 ☐ 其它 ______________________________
  16. 16. 16/94 Myth 2 You can't make money from Open Source 你無法從開源賺錢
  17. 17. 17/94 Ref: https://www.redhat.com/en/about/press-releases/ibm-acquire-red-hat-completely-changing-cloud-landscape-and-becoming-worlds-1-hybrid-cloud-provider IBM 以 340 億美元收購 Red Hat (2018-10-28)
  18. 18. 18/94 Ref: https://www.f5.com/company/news/press-releases/f5-acquires-nginx-to-bridge-netops-devops F5 Networks 以 6.7 億美元收購 NGINX (2019-03-11)
  19. 19. 19/94 Ref: https://seekingalpha.com/symbol/ESTC Elastic 市值 60 億美元 ElasticSearch (2019-05-31)
  20. 20. 20/94 Q2 Android 主要是何種自由 / 開放源碼軟體授權? ☐ MIT ☐ Apache-2.0 ☐ GPL-2.0 (with User space exception) ☐ Apache-2.0 + GPL-2.0 (with User space exception) ☐ Apache-2.0 + GPL-3.0
  21. 21. 21/94 Myth 3 Open Source has no Copyright 開源軟體沒有著作權
  22. 22. 22/94 Ref: https://opensource.org/licenses/MIT MIT License
  23. 23. 23/94 Ref: https://opensource.org/licenses/BSD-3-Clause 3-Clause BSD License
  24. 24. 24/94 Ref: https://opensource.org/licenses/Apache-2.0 Apache License 2.0
  25. 25. 25/94 Ref: https://opensource.org/licenses/GPL-3.0 GPL 3.0
  26. 26. 26/94
  27. 27. 27/94 Q3 所有自由 / 開源軟體授權的最低遵循義務為何? ☐ 沒有義務,且可以修改 / 去除原著作權聲明 ☐ 需保留著作權聲明,且使用若出事可向原作者求償 ☐ 需保留著作權聲明,且使用若出事不可向原作者求償
  28. 28. 28/94 Myth 4 Open Source is only about Copyright 開源軟體只涉及著作權
  29. 29. 29/94 Ref: https://opensource.org/licenses/Apache-2.0 Apache License 2.0
  30. 30. 30/94 Ref: https://opensource.org/licenses/Apache-2.0 Apache License 2.0
  31. 31. 31/94 Ref: https://opensource.org/licenses/GPL-3.0 GPL 3.0
  32. 32. 32/94 Ref: https://opensource.org/licenses/GPL-3.0 GPL 3.0
  33. 33. 33/94
  34. 34. 34/94 Q4 AGPL-3.0 授權的互惠性 / 感染性要求包括哪些行為? ☐ 指令輸出 ☐ 靜態連結 ☐ 動態連結 ☐ 網路傳輸
  35. 35. 35/94 Myth 5 Open Source (licenses) are revocable 開源軟體 ( 授權 ) 可以撤銷
  36. 36. 36/94 Ref: https://opensource.org/licenses/Apache-2.0 Apache License 2.0
  37. 37. 37/94 Ref: https://opensource.org/licenses/GPL-3.0 GPL 3.0
  38. 38. 38/94Ref: https://opensource.org/licenses/MIT Ref: https://opensource.org/licenses/BSD-3-Clause MIT License 3-Clause BSD License
  39. 39. 39/94Ref: https://opensource.org/licenses/MIT Ref: https://opensource.org/licenses/BSD-3-Clause MIT License 3-Clause BSD License 多數開源授權條款內容未提及是否可以撤銷, 但根據美國聯邦巡迴法院 Jacobsen v. Katzer (2008) 案例判決, 除非違反條款內容時方可撤銷。
  40. 40. 40/94 Q5 最新版本 MongoDB 資料庫的授權為下列何者? ☐ MIT ☐ Apache-2.0 ☐ GPL-3.0 ☐ AGPL-3.0 ☐ SSPL (Server Side Public License)
  41. 41. 41/94 Myth 6 I want / can avoid Open source software 我想要 / 能夠避免使用開源軟體
  42. 42. 42/94 軟體開發模式 電腦程式 ( 關卡設計 ) 電腦程式 ( 關卡設計 ) 美術圖案 ( 藝術設計 ) 電腦程式 ( 遊戲引擎 ) 套裝銷售 B D A 美術圖案 ( 藝術設計 ) 採購契約 自由 / 開放 源碼軟體契約 電腦程式 ( 遊戲引擎 ) 可能需要提供作者顯名宣告, 甚至提供電腦程式原始碼等義務
  43. 43. 43/94 軟體開發模式 案例一 :Linksys 2003 年 3 月 Cisco 正式宣布收購 Linksys 。 此事公開後,使得自由軟體社群紛紛討論 Linksys WRT54G 是否 有違反 GPL 授權規定。經過社群的初步審核後,發現其核心使用 Linux kernel 2.4.5 及其它的 GPL 授權程式,如 Busybox 、 CramFS 等。因此,自由軟體基金會 (Free Software Foundation) 開始介入調查,經由溝通後,使得 Cisco 終於釋出 Linksys WRT54G 的程式原始碼。
  44. 44. 44/94 軟體開發模式 案例一 :Linksys 其它公司 基於採購契約 提供電腦程式 基於採購契約 提供電腦程式 套裝銷售
  45. 45. 45/94 軟體開發模式 案例一 :Linksys 其它公司 基於採購契約 提供電腦程式 基於採購契約 提供電腦程式 收購 套裝銷售
  46. 46. 46/94 軟體開發模式 案例一 :Linksys 其它公司 基於採購契約 提供電腦程式 基於採購契約 提供電腦程式 收購 你的 Linksys WRT54G 產品中含有 GPL 授權程式 請將該產品所有程式的原始碼 公開 套裝銷售
  47. 47. 47/94 軟體開發模式 案例一 :Linksys 其實 Cisco/Linksys 對於違反 GPL 授權規定都不知悉, 因為違反的程式皆由上游廠商 Broadcom 與外包廠商 所取得。這也反映了程式取得來源確認的重要性。
  48. 48. 48/94 軟體開發模式 案例二 : 壹網樂 - 網樂通 其它公司 基於契約 提供電腦程式 套裝租出
  49. 49. 49/94 軟體開發模式 案例二 : 壹網樂 - 網樂通 其它公司 基於契約 提供電腦程式 套裝租出 你的網樂通產品中含有 GPL 授權程式,請將該產品程式 的原始碼公開。 台灣自由 / 開放源碼社群
  50. 50. 50/94
  51. 51. 51/94 軟體開發模式 案例三 : Ameriprise vs. Versata 1. Ameriprise 採購 Versata 軟體, 並額外取得軟體修改權 ( 客製權 ) 。 2. Ameriprise 請外包廠商 Infosys 客製 化,但開發的產品與 Versata 類似。 3. Versata 怒對 Ameriprise 提起訴訟。 4. Ameriprise 隨之反擊,並聲稱 Versata 軟體中含有 GPL-2.0 的 XML parser 程式。 5. 該程式著作屬於 XimpleWare ,因此 XimpleWare 對 Ameriprise 、 Versata 及 Versata 的客戶提起侵權訟訴。 Ref: http://www.protecode.com/complex-legal-proceedings-may-far-reaching-effects-gpl-software-licensing/
  52. 52. 52/94 軟體開發必須面對的真相
  53. 53. 53/94 軟體開發必須面對的真相 如果沒有了 Google ( 搜尋引擎 ) 很多軟體工程師就無法辦事了
  54. 54. 54/94 軟體開發必須面對的真相 C + GUI + library
  55. 55. 55/94
  56. 56. 56/94
  57. 57. 57/94 程式開發必須面對的真相 Download 抄 Combine
  58. 58. 58/94
  59. 59. 59/94
  60. 60. 60/94 程式開發必須面對的真相 大多沒有想過,那些 抄的、改的、用的程式 可能讓公司的專案、程式、產品 違法及賠償
  61. 61. 61/94 程式開發必須面對的真相 這就好像在網路隨便抓圖片, 然後直接放在產品裡面販售出去一樣 可能讓公司的專案、程式、產品 違法及賠償
  62. 62. 62/94 程式設計師必須面對的真相 自由 / 開放源碼軟體 無所不在
  63. 63. 63/94 自 由 開 源 軟 體
  64. 64. 64/94 mean lang:c
  65. 65. 65/94
  66. 66. 66/94
  67. 67. 67/94
  68. 68. 68/94
  69. 69. 69/94
  70. 70. 70/94 沒有著作權聲明,甚至不確定該著作的來源 ( 他也是抄來的 )
  71. 71. 71/94 Q6 自由 / 開放源碼軟體授權涉及下列哪幾種智財權? ☐ 著作權 ☐ 商標權 ☐ 專利權 ☐ 營業秘密
  72. 72. 72/94 Myth 7 My lawyer can solve Open Source License problem 我的律師可以解決開源軟體授權問題
  73. 73. 73/94 Ref: https://opensource.org/licenses/category 目前單是 OSI( 開放源碼促進會 ) 通過的條款就達 92 種 還不包括未通過的又常見的,例如 Ruby License
  74. 74. 74/94 Ref: https://opensource.org/licenses/category
  75. 75. 75/94 Ref: https://opensource.org/licenses/category 更麻煩的還是授權彼此間的交互相容性
  76. 76. 76/94 程式交互性 A 程式授權 B 程式授權 A 程式授權 B 程式授權 函式呼叫 / 靜態連結 / 動態連結 / 網路交互
  77. 77. 77/94 程式交互性 B 程式授權 ( 互惠 / 感染 ) A 程式授權 B 程式授權 函式呼叫 / 靜態連結 / 動態連結 / 網路交互
  78. 78. 78/94 程式交互性 ( 互斥 / 不相容 ) A 程式授權 B 程式授權 函式呼叫 / 靜態連結 / 動態連結 / 網路交互
  79. 79. 79/94 GPL-2.0 與 GPL-3.0 是否相容? GPL-2.0 與 AGPL-3.0 是否相容? GPL-3.0 與 AGPL-3.0 是否相容? LGPL-2.1 與 GPL-2.0 是否相容? LGPL-3.0 與 GPL-2.0 是否相容? MIT 與 GPL-2.0 是否相容? Apache-2.0 與 GPL-2.0 是否相容? 你知道這些授權問題的答案嗎?
  80. 80. 80/94 GPL-2.0 與 GPL-3.0 是否相容? GPL-2.0 與 AGPL-3.0 是否相容? GPL-3.0 與 AGPL-3.0 是否相容? LGPL-2.1 與 GPL-2.0 是否相容? LGPL-3.0 與 GPL-2.0 是否相容? MIT 與 GPL-2.0 是否相容? Apache-2.0 與 GPL-2.0 是否相容?
  81. 81. 81/94 Q7 Firefox 是自由 / 開放源碼軟體,得以自由使用其商標? ☐ 是 ☐ 否
  82. 82. 82/94 Myth 8 Open source (licenses) are hard to understand 開源 ( 授權 ) 很難理解
  83. 83. 83/94 互惠性 : 三大分類 ( 舊 ) License scope – Reciprocal ( 互惠性 ) Low High (GPLed) GPL LGPL AGPL (MPLed) MPL EPL (BSDed) BSD MIT Apache Gift license Sharing-with-files Sharing-with-rules Give me credit Give me fixes Give me everything
  84. 84. 84/94 互惠性 : 四大分類 License scope – Reciprocal ( 互惠性 ) GPL LGPL MPL EPL BSD MIT Apache Gift license Sharing with files Sharing with rules Give me credit Give me fixes Give me everything AGPL Sharing with network Give me everything even in network Low High
  85. 85. 85/94 Ref: https://tldrlegal.com/
  86. 86. 86/94 Copyright (C) 2015 Ref: http://www.dwheeler.com/essays/floss-license-slide.html Creative Commons “Attribution-Share Alike 3.0 License”; the GNU Free Documentation License; or the GNU GPL (version 2 or later)
  87. 87. 87/94 Copyright (C) 2015 Ref: https://www.gnu.org/licenses/quick-guide-gplv3.html
  88. 88. 88/94 Copyright (C) 2015 Ref: https://www.gnu.org/licenses/quick-guide-gplv3.html 但這兩張圖無法解決所有問題, 例如不包括 PHP/Python/Ruby 授權等, 交互未區別函式呼叫 / 靜態連結 / 動態連結 / 網路交互等。 Ref: http://www.dwheeler.com/essays/floss-license-slide.html Creative Commons “Attribution-Share Alike 3.0 License”; the GNU Free Documentation License; or the GNU GPL (version 2 or later)
  89. 89. 89/94 此領域需要懂法律智財權,加上瞭解工程技術者, 將授權條款的文字,解析為工程技術上的實施與流程 Open Source License Tech Lawyer
  90. 90. 90/94 更勝一般開源授權技術律師,能看透並提出合法規避者 ( 隨時可搬出 7 種以上的鑽法律漏洞合法規避者 ) Open Source License Hacker
  91. 91. 91/94 更勝一般開源授權技術律師,能看透並提出合法規避者 ( 隨時可搬出 7 種以上的鑽法律漏洞合法規避者 ) Open Source License Hacker 咳!該說的說,不該說的小聲說
  92. 92. 92/94 Q8 Apache-2.0 的軟體,作者隨其上的專利可自由施行? ☐ 是 ☐ 否
  93. 93. 93/94 Q8 Apache-2.0 的軟體,作者隨其上的專利可自由施行? ☐ 是 ☐ 否 同樣地,你是否有注意到, 若你的軟體依 Apache-2.0 開源,其上之專利亦需自由共享。
  94. 94. 94/94 yftzeng@gmail.com https://www.facebook.com/yftzeng.tw https://twitter.com/yftzeng

×