Slide 1

Slide 1 text

從大學到出社會,這十 年的參與和維護的開源 專案 Date Huang 黃宇強 @ COSCUP 2024 2024/08/03

Slide 2

Slide 2 text

About Me ● Date Huang 黃宇強 ● VyOS Solution Architect ● EZIO Maintainer ● Speaking Experience: OpenStack Day Taiwan 2016-2017, Open Source Summit North America 2017, ISC High Performance Project Poster 2018, Hong Kong Open Source Conference 2019, OSC Tokyo 2019, COScon '19, TWNOG 4.0, COSCUP 2021, COSCUP 2023, Kubernetes Community Day 2023, OSC Nagoya 2024

Slide 3

Slide 3 text

現在的我 ● 30歲 (2024年的今日) ● 畢業工作約5年 ● 完全不保證時間序 ● 因為我真的完全忘記了 ● 因為太多了,所以就專注在我個人比較有趣的專案上吧

Slide 4

Slide 4 text

eserv

Slide 5

Slide 5 text

eserv ● 高中時候在電腦研究社的跨校合作中認識一堆奇奇怪怪的朋友 ● 因緣際會之下,被推坑去增進Jserv只用了10小時隨便寫出來的 教學專案eserv ● 那時候目標只有把它效能提高,然後作為其他專案的模組使用 ● 因而聯繫上Jserv,在他的建議之下開始研究一堆有的沒有的 ● https://github.com/tjjh89017/eserv

Slide 6

Slide 6 text

eserv ● 之所以提這個 ● 是因為這個專案而認識Jserv ● 然後他後來變成我碩士的共同指導教授

Slide 7

Slide 7 text

DozenCloud ARM Cloud

Slide 8

Slide 8 text

ARM組合語言 ● 因為認識Jserv了,而知道他在教學ARM組合語言 ● 進而在這情況下開始學習了ARM組合語言 ● 進而開始研究ARM OS等等的專案

Slide 9

Slide 9 text

ARM測試 ● 因為要寫ARM,所以一定要測試吧 ● 要測試要有環境吧 ● 那時候基本上都是用QEMU來模擬ARM環境做測試 ● 想當然爾,很慢

Slide 10

Slide 10 text

ARM Cloud ● 那時候想到跟OpenStack有關的使用 ● 我們可以用Raspberty Pi來整合資源,這樣需要測試的時候,就可 以單獨劃分一些資源出去,讓使用者測試使用 ● 所以開始搞ARM Cloud ● 並在SITCON 2016發表了第一個版本測試 ● 那時候用Banana Pi + OpenStack + Docker ● https://speakerdeck.com/tjjh89017/sitcon-2016-arm-cloud-pro ject

Slide 11

Slide 11 text

ARM Cloud ● 後來跟台大洪士灝教授借到了一些技嘉推出的ARM Server ○ APM X-Gene ● 也認識交大學弟郭靖(iGene) ● 就在這個基礎上,我們兩個就開始研究要怎麼把OpenStack正式 的安裝在ARM server上面 ● 後來就開始提供ARM VM給一些朋友跟老師們玩看看

Slide 12

Slide 12 text

OpenStack Taiwan Day ● 在那之後,我們就把專案命名成DozenCloud了 ○ 伊達雲、一打雲 ● 也因為我們是台灣第一個搞出來的ARM Cloud,所以OpenStack Taiwan Day就邀請我們去演講 ● 技嘉科技也贊助我們最新型的Cavium ARM Server R150-T60作 為DEMO使用 ● Edgecore Networks也提供了一些網路設備讓我們使用 ● 這期間,中央、台大、交大、清大、成大都提供了超多協助跟支援 的 ● https://speakerdeck.com/tjjh89017/openstack-on-armv8

Slide 13

Slide 13 text

DozenCloud 中間插個小故事 ● 因為那時候我跟郭靖是第一個在台灣搞起OpenStack on ARM64 的 ● Linaro那邊也剛起步,進度跟我們接近而已 ● 台灣某ARM伺服器廠商也有一些客戶有興趣要安裝OpenStack on ARM64,結果我某天就被廠商找去看能不能幫他支援一下他 的客戶LOL

Slide 14

Slide 14 text

LinuxCon China ● 2017年的時候,中國的開源人Haitao,他剛好來台灣參加活動, 也因為他們有興趣搞OpenStack on ARM64,看到我們前年度的 OpenStack Taiwan Day,就來交大找我們聊天了 ● 順便就推坑我去LinuxCon China 2017,他可以帶我去認識一下 在中國搞OpenStack ARM的那群人

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

Open Source Summit NA 2017 ● 同一年,Jserv突然跟我說2017年9月要飛洛杉磯去演講囉 ● 我才知道他拿ARM Cloud這個主題去投稿Open Source Summit NA 2017 ● https://ossna2017.sched.com/event/BDqU/build-cloud-infrastr ucture-with-cheap-arm-boards-jim-huang-south-star-xelerator- yu-chiang-huang-national-chiao-tung-university ● https://static.sched.com/hosted_files/ossna2017/01/Build-Clou d-Infrastructure-with-ARMv8.pdf

Slide 17

Slide 17 text

DoorAccess

Slide 18

Slide 18 text

DoorAccess ● 那時候手上太多門禁卡了 ● 然後懶 ● 所以想說把Android手機改成可以吐IC卡前面的幾碼的功能 ● https://github.com/tjjh89017/DoorAccess

Slide 19

Slide 19 text

DoorAccess ● 那時候就開始研究nfcgate這個軟體 ● 後來就成功搞定了第一個版本 ● 就從那天起,我去實驗室,我騎機車離開學校停車場,去任何地方 ,我都是直接用手機開通門禁了LOL

Slide 20

Slide 20 text

DoorAccess ● 後來更北七 ● 我加上GPS功能 ● 在特定區域內,DoorAccess會自動幫我選擇當初設定的卡號 ● 這樣我就不需要再切換不同張卡了 ● 讓DoorAccess幫我找地理位置最近的那張卡

Slide 21

Slide 21 text

DoorAccess ● 後來這專案因為Android的大幅變化,所以就沒有繼續下去了 ● 有興趣的可以來接手這個專案XD

Slide 22

Slide 22 text

EZIO Super fast deployment

Slide 23

Slide 23 text

交大資工系計中電腦教室 23 這是某日在電腦教室看到的情況

Slide 24

Slide 24 text

24 我們放大一點看看

Slide 25

Slide 25 text

25 幫各位換算一下 879.86 / 60 = 14.664MB/s 插著1Gbps的線,速 度只有14MB/s

Slide 26

Slide 26 text

最初版 ● 結果是可行的!寫個最初版就做測試了 ● 跟系計中的朋友兼碩士室友芒果王在某個 假日做了個測試來玩玩這樣 ● 雖然帳面上速度很快,但是其實還是有個 問題,我們是整顆硬碟傳送的,Clonezilla 則是只傳送有資料的部分 ● 所以整體來說Clonezilla還是比較實用 26

Slide 27

Slide 27 text

國網中心Clonezilla團隊 27 ● 國研院國網中心自由軟體實驗室 ● https://free.nchc.org.tw ● 開發並維護再生龍Clonezilla, Partclone, DRBL等等自由軟體 ● Steven Shiau ● Ceasar Sun ● Thomas Tsai

Slide 28

Slide 28 text

快速簡介下國網中心再生龍Clonezilla 28 ● 通常是拿來備份/還原電腦的資料 ● 很多學校都拿來做電腦教室的部署 ● 也有單位拿來做HPC的部署 ● 主要元件分成兩個部分Clonezilla以及Partclone這兩個大項目 ● Partclone是負責分析硬碟使用狀況跟產生映像檔 ● Clonezilla負責剩下的備份還原還有部署

Slide 29

Slide 29 text

碩士論文 ● 跟Clonezilla整合完畢之後 ● 突然的就想說把EZIO專案變成我跟芒果王的論文題目 ● 所以變成開始忙跟指導教授們討論 ● 做各種的其他既有方案的研究 ● 做了一堆測試等等等的 29

Slide 30

Slide 30 text

碩士論文 ● 我們倆還真的用EZIO這個題目畢業了! ● 學歷GET! ● 順帶一提,在做這份投影片的時候,還回去翻了下我的畢業論文 ● 還發現錯字😂 30

Slide 31

Slide 31 text

德國 ● 畢業之後,國網中心Clonezilla團隊也拿EZIO的成果去投了個德 國研討會的海報 ● 我也一起就跟他們飛去德國法蘭克福參加研討會了 ● 那時候的德國超熱,差點融化 ● 順帶一提,我當初以為我英文滿爛的,但是發現只要敢講就行了 啦,反正德國人也不講英文 31

Slide 32

Slide 32 text

32

Slide 33

Slide 33 text

33

Slide 34

Slide 34 text

34

Slide 35

Slide 35 text

還發現個超好喝的汽水 ● 據說是可口可樂跟芬達的混合 35

Slide 36

Slide 36 text

36

Slide 37

Slide 37 text

TANET 2018年底 ● 指導教授黃世昆教授也把我這篇論文投稿到TANET研討會中 ● 然後也發現了崑山科大的蔡德明教授(鳥哥)也有一位指導學生也 發表了類似的題目,當然就實際內容來說,我們兩個走了完全不 一樣的方向 ● 花了超長時間把該同學的論文整包讀完 37

Slide 38

Slide 38 text

期刊論文 ● 同時間國網中心Clonezilla團隊認為可以就這個主題發一些期刊 論文 ● 所以也開始做一堆測試 ● 然後審稿人的一堆問題也一一的重新測試跟驗證 ● 雖然我只負責改改code而已 ● 不過也就這個機會,整理出了更完整的數據 38

Slide 39

Slide 39 text

39

Slide 40

Slide 40 text

40

Slide 41

Slide 41 text

HKOScon 2019 ● 也投稿了COSCUP的跨國計畫,所以2019年的時候飛去香港 HKOScon 2019演講相關的主題! 41

Slide 42

Slide 42 text

42

Slide 43

Slide 43 text

43

Slide 44

Slide 44 text

44

Slide 45

Slide 45 text

第二篇期刊! ● 後來我對Clonezilla EZIO的設計提出了一個新的改進 ● 可以不需要製作映像檔,直接把電腦做複製 ● 然後就再多一篇論文了 ● 賺! 45

Slide 46

Slide 46 text

專利 ● 2019年左右,自由軟體桌面環境GNOME被專利蟑螂提出訴訟 ● 國網中心Clonezilla團隊建議我們要申請專利,作為保護自己的方 案 ● 我也藉這機會得到了人生中第一項專利發明! 46

Slide 47

Slide 47 text

STUNMESH-go

Slide 48

Slide 48 text

發想? ● 當初是因為玩PS4的魔物獵人,一直連線失敗,而開始研究這些 連線問題 ● 同時間我那時候在Edgecore Networks上班,身為一個網路工程 師,這種問題更應該自己解決 ● 總之就開始研究STUN/TURN等等的技術

Slide 49

Slide 49 text

投稿 ● 後來COSCUP推出跨國交換的演講計畫 ● 所以我就拿這個主題成功錄取了COScon ‘19上海,以及OSC Tokyo 2019

Slide 50

Slide 50 text

No content

Slide 51

Slide 51 text

No content

Slide 52

Slide 52 text

No content

Slide 53

Slide 53 text

No content

Slide 54

Slide 54 text

概念 ● 其實那兩次演講,我都只有提出概念而已,Code一行都沒有寫

Slide 55

Slide 55 text

直到 ● 直到投稿COSCUP 2021以及OpenInfra.Asia 2021的時候 ● 才把STUNMESH-go寫出來也測試出來LOL ● 因為那時候COVID-19,所以所有演講都是線上錄影之後撥放的

Slide 56

Slide 56 text

STUNMESH-go現況 ● 我自家就裝著再用 ● 一直想要花時間重新設計一次 ● 但是工作好忙 ● 就放置了

Slide 57

Slide 57 text

KVNET CNI for Kubevirt

Slide 58

Slide 58 text

KVNET ● 這個可以講的東西不多 ● 大概只用兩周多寫出來的玩具 ● COSCUP/KCD 2023的時候有發表過,技術細節都在那邊了 ● 基本上就是為了diss某一些設計,而設計出來的DEMO ● 後來我朋友都說我是diss-driven development ● https://github.com/tjjh89017/kvnet

Slide 59

Slide 59 text

這十年來 ● 其實還有很多因為遇到bug而幫忙修的專案 ● 但是實在太多了 ● 講不完啊 ● 就到這邊吧

Slide 60

Slide 60 text

Q&A ● 肯定沒時間Q&A ● 但我還是放一頁Q&A