Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

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

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

Yi-Feng Tzeng

June 01, 2019
Tweet

More Decks by Yi-Feng Tzeng

Other Decks in Technology

Transcript

  1. 企業應如何善用開源技術
    才能得其利而防其弊
    曾義峰 (Ant)
    [email protected]
    2019-06-01
    擁抱開源

    View Slide

  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 講師

    View Slide

  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

    View Slide

  4. 4/94
    非常早期投入研究 Android 源碼授權的樣態

    View Slide

  5. 5/94
    陸續研究 Symbian, MeeGo, Meltemi

    View Slide

  6. 6/94
    Myth 1
    Big software companies don’t use Open Source
    大型軟體公司不使用開源軟體

    View Slide

  7. 7/94
    Ref: https://www.theregister.co.uk/2001/06/02/ballmer_linux_is_a_cancer/

    View Slide

  8. 8/94
    Copyright (C) 2015

    View Slide

  9. 9/94
    Copyright (C) 2015

    View Slide

  10. 10/94
    Copyright (C) 2015

    View Slide

  11. 11/94
    Copyright (C) 2015

    View Slide

  12. 12/94
    Copyright (C) 2015

    View Slide

  13. 13/94
    Copyright (C) 2015
    Microsoft Windows 本身也利用開放源碼軟體

    View Slide

  14. 14/94
    Ref: https://cloudblogs.microsoft.com/windowsserver/2015/05/06/microsoft-loves-linux/

    View Slide

  15. 15/94
    Q1
    Linux Kernel 是何種自由 / 開放源碼軟體授權?
    ☐ MIT
    ☐ BSD-3-Clause
    ☐ GPL-2.0
    ☐ GPL-3.0
    ☐ 其它 ______________________________

    View Slide

  16. 16/94
    Myth 2
    You can't make money from Open Source
    你無法從開源賺錢

    View Slide

  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)

    View Slide

  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)

    View Slide

  19. 19/94
    Ref: https://seekingalpha.com/symbol/ESTC
    Elastic 市值 60 億美元
    ElasticSearch (2019-05-31)

    View Slide

  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

    View Slide

  21. 21/94
    Myth 3
    Open Source has no Copyright
    開源軟體沒有著作權

    View Slide

  22. 22/94
    Ref: https://opensource.org/licenses/MIT
    MIT License

    View Slide

  23. 23/94
    Ref: https://opensource.org/licenses/BSD-3-Clause
    3-Clause BSD License

    View Slide

  24. 24/94
    Ref: https://opensource.org/licenses/Apache-2.0
    Apache License 2.0

    View Slide

  25. 25/94
    Ref: https://opensource.org/licenses/GPL-3.0
    GPL 3.0

    View Slide

  26. 26/94

    View Slide

  27. 27/94
    Q3
    所有自由 / 開源軟體授權的最低遵循義務為何?
    ☐ 沒有義務,且可以修改 / 去除原著作權聲明
    ☐ 需保留著作權聲明,且使用若出事可向原作者求償
    ☐ 需保留著作權聲明,且使用若出事不可向原作者求償

    View Slide

  28. 28/94
    Myth 4
    Open Source is only about Copyright
    開源軟體只涉及著作權

    View Slide

  29. 29/94
    Ref: https://opensource.org/licenses/Apache-2.0
    Apache License 2.0

    View Slide

  30. 30/94
    Ref: https://opensource.org/licenses/Apache-2.0
    Apache License 2.0

    View Slide

  31. 31/94
    Ref: https://opensource.org/licenses/GPL-3.0
    GPL 3.0

    View Slide

  32. 32/94
    Ref: https://opensource.org/licenses/GPL-3.0
    GPL 3.0

    View Slide

  33. 33/94

    View Slide

  34. 34/94
    Q4
    AGPL-3.0 授權的互惠性 / 感染性要求包括哪些行為?
    ☐ 指令輸出
    ☐ 靜態連結
    ☐ 動態連結
    ☐ 網路傳輸

    View Slide

  35. 35/94
    Myth 5
    Open Source (licenses) are revocable
    開源軟體 ( 授權 ) 可以撤銷

    View Slide

  36. 36/94
    Ref: https://opensource.org/licenses/Apache-2.0
    Apache License 2.0

    View Slide

  37. 37/94
    Ref: https://opensource.org/licenses/GPL-3.0
    GPL 3.0

    View Slide

  38. 38/94
    Ref: https://opensource.org/licenses/MIT
    Ref: https://opensource.org/licenses/BSD-3-Clause
    MIT License
    3-Clause BSD License

    View Slide

  39. 39/94
    Ref: https://opensource.org/licenses/MIT
    Ref: https://opensource.org/licenses/BSD-3-Clause
    MIT License
    3-Clause BSD License
    多數開源授權條款內容未提及是否可以撤銷,
    但根據美國聯邦巡迴法院 Jacobsen v. Katzer (2008) 案例判決,
    除非違反條款內容時方可撤銷。

    View Slide

  40. 40/94
    Q5
    最新版本 MongoDB 資料庫的授權為下列何者?
    ☐ MIT
    ☐ Apache-2.0
    ☐ GPL-3.0
    ☐ AGPL-3.0
    ☐ SSPL (Server Side Public License)

    View Slide

  41. 41/94
    Myth 6
    I want / can avoid Open source software
    我想要 / 能夠避免使用開源軟體

    View Slide

  42. 42/94
    軟體開發模式
    電腦程式
    ( 關卡設計 )
    電腦程式
    ( 關卡設計 )
    美術圖案
    ( 藝術設計 )
    電腦程式
    ( 遊戲引擎 )
    套裝銷售
    B D
    A
    美術圖案
    ( 藝術設計 )
    採購契約 自由 / 開放
    源碼軟體契約
    電腦程式
    ( 遊戲引擎 )
    可能需要提供作者顯名宣告,
    甚至提供電腦程式原始碼等義務

    View Slide

  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 的程式原始碼。

    View Slide

  44. 44/94
    軟體開發模式
    案例一 :Linksys
    其它公司
    基於採購契約
    提供電腦程式
    基於採購契約
    提供電腦程式
    套裝銷售

    View Slide

  45. 45/94
    軟體開發模式
    案例一 :Linksys
    其它公司
    基於採購契約
    提供電腦程式
    基於採購契約
    提供電腦程式
    收購
    套裝銷售

    View Slide

  46. 46/94
    軟體開發模式
    案例一 :Linksys
    其它公司
    基於採購契約
    提供電腦程式
    基於採購契約
    提供電腦程式
    收購
    你的 Linksys WRT54G
    產品中含有 GPL 授權程式
    請將該產品所有程式的原始碼
    公開
    套裝銷售

    View Slide

  47. 47/94
    軟體開發模式
    案例一 :Linksys
    其實 Cisco/Linksys 對於違反 GPL 授權規定都不知悉,
    因為違反的程式皆由上游廠商 Broadcom 與外包廠商
    所取得。這也反映了程式取得來源確認的重要性。

    View Slide

  48. 48/94
    軟體開發模式
    案例二 : 壹網樂 - 網樂通
    其它公司
    基於契約
    提供電腦程式
    套裝租出

    View Slide

  49. 49/94
    軟體開發模式
    案例二 : 壹網樂 - 網樂通
    其它公司
    基於契約
    提供電腦程式
    套裝租出
    你的網樂通產品中含有 GPL
    授權程式,請將該產品程式
    的原始碼公開。
    台灣自由 / 開放源碼社群

    View Slide

  50. 50/94

    View Slide

  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/

    View Slide

  52. 52/94
    軟體開發必須面對的真相

    View Slide

  53. 53/94
    軟體開發必須面對的真相
    如果沒有了 Google ( 搜尋引擎 )
    很多軟體工程師就無法辦事了

    View Slide

  54. 54/94
    軟體開發必須面對的真相
    C + GUI + library

    View Slide

  55. 55/94

    View Slide

  56. 56/94

    View Slide

  57. 57/94
    程式開發必須面對的真相
    Download
    抄 Combine

    View Slide

  58. 58/94

    View Slide

  59. 59/94

    View Slide

  60. 60/94
    程式開發必須面對的真相
    大多沒有想過,那些
    抄的、改的、用的程式
    可能讓公司的專案、程式、產品
    違法及賠償

    View Slide

  61. 61/94
    程式開發必須面對的真相
    這就好像在網路隨便抓圖片,
    然後直接放在產品裡面販售出去一樣
    可能讓公司的專案、程式、產品
    違法及賠償

    View Slide

  62. 62/94
    程式設計師必須面對的真相
    自由 / 開放源碼軟體
    無所不在

    View Slide

  63. 63/94






    View Slide

  64. 64/94
    mean lang:c

    View Slide

  65. 65/94

    View Slide

  66. 66/94

    View Slide

  67. 67/94

    View Slide

  68. 68/94

    View Slide

  69. 69/94

    View Slide

  70. 70/94
    沒有著作權聲明,甚至不確定該著作的來源 ( 他也是抄來的 )

    View Slide

  71. 71/94
    Q6
    自由 / 開放源碼軟體授權涉及下列哪幾種智財權?
    ☐ 著作權
    ☐ 商標權
    ☐ 專利權
    ☐ 營業秘密

    View Slide

  72. 72/94
    Myth 7
    My lawyer can solve Open Source License problem
    我的律師可以解決開源軟體授權問題

    View Slide

  73. 73/94
    Ref: https://opensource.org/licenses/category
    目前單是 OSI( 開放源碼促進會 ) 通過的條款就達 92 種
    還不包括未通過的又常見的,例如 Ruby License

    View Slide

  74. 74/94
    Ref: https://opensource.org/licenses/category

    View Slide

  75. 75/94
    Ref: https://opensource.org/licenses/category
    更麻煩的還是授權彼此間的交互相容性

    View Slide

  76. 76/94
    程式交互性
    A 程式授權 B 程式授權
    A 程式授權 B 程式授權
    函式呼叫 / 靜態連結 / 動態連結 / 網路交互

    View Slide

  77. 77/94
    程式交互性
    B 程式授權
    ( 互惠 / 感染 )
    A 程式授權 B 程式授權
    函式呼叫 / 靜態連結 / 動態連結 / 網路交互

    View Slide

  78. 78/94
    程式交互性
    ( 互斥 / 不相容 )
    A 程式授權 B 程式授權
    函式呼叫 / 靜態連結 / 動態連結 / 網路交互

    View Slide

  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 是否相容?
    你知道這些授權問題的答案嗎?

    View Slide

  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 是否相容?

    View Slide

  81. 81/94
    Q7
    Firefox 是自由 / 開放源碼軟體,得以自由使用其商標?
    ☐ 是
    ☐ 否

    View Slide

  82. 82/94
    Myth 8
    Open source (licenses) are hard to understand
    開源 ( 授權 ) 很難理解

    View Slide

  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

    View Slide

  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

    View Slide

  85. 85/94
    Ref: https://tldrlegal.com/

    View Slide

  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)

    View Slide

  87. 87/94
    Copyright (C) 2015
    Ref: https://www.gnu.org/licenses/quick-guide-gplv3.html

    View Slide

  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)

    View Slide

  89. 89/94
    此領域需要懂法律智財權,加上瞭解工程技術者,
    將授權條款的文字,解析為工程技術上的實施與流程
    Open Source License Tech Lawyer

    View Slide

  90. 90/94
    更勝一般開源授權技術律師,能看透並提出合法規避者
    ( 隨時可搬出 7 種以上的鑽法律漏洞合法規避者 )
    Open Source License Hacker

    View Slide

  91. 91/94
    更勝一般開源授權技術律師,能看透並提出合法規避者
    ( 隨時可搬出 7 種以上的鑽法律漏洞合法規避者 )
    Open Source License Hacker
    咳!該說的說,不該說的小聲說

    View Slide

  92. 92/94
    Q8
    Apache-2.0 的軟體,作者隨其上的專利可自由施行?
    ☐ 是
    ☐ 否

    View Slide

  93. 93/94
    Q8
    Apache-2.0 的軟體,作者隨其上的專利可自由施行?
    ☐ 是
    ☐ 否
    同樣地,你是否有注意到,
    若你的軟體依 Apache-2.0 開源,其上之專利亦需自由共享。

    View Slide

  94. 94/94
    [email protected]
    https://www.facebook.com/yftzeng.tw
    https://twitter.com/yftzeng

    View Slide