ref: https://www.infoworld.com/article/3632142/how-docker-broke-in-half.html
這篇文章是作者訪談多位前任/現任的 Docker 員工,Docker 社群貢獻者, Docker 消費者以及市場分析師的相關心得文,目的是想要探討 Docker 商業模式的成功與失敗,到底目前 Docker 商業模式的進展是否有跡可循,以及我們可以從這些歷史決策中學到什麼?
Docker 不是輕量級虛擬化技術的開創者,但是卻是個將 Container 這個技術給推向所有開發者的重要推手,Docker 簡化整體的操作使得每個開發者都可以輕鬆的享受到 Container 的好處,但是從結果論來說, Docker 還是於 2019 年 11 月給 Mirantis 給收購了
到底 Docker 的商業模式哪一步走錯了,接下來就跟者作者一起去訪談與思考。
[Docker 的誕生之路]
Solomon Hykes(文章很多該人看法) 於 2008 年創辦一間專注提供 Platform as a Serivce 的公司, DotCloud,該公司希望讓開發者可以更簡易的去建置與部署開發的應用程式,該公司的底層技術後來也由 Docker 繼續沿用,當然創辦 Docker 的依然是 Solomon Hykes。
Docker 開源專案誕生之後吸引了全球目光,除了來自各地的使用與開發者外,大型公司如 Microsfot,AWS,IBM 等都也加入,但是就跟其他基於開源專案的軟體公司一樣, Docker 也面臨的商業模式的問題,這種類型的軟體公司到底要如何穩定獲利?
從 2021 往回看,一個很簡短的說法可以說是 Docker 的企業化管理工具 Docker Swarm 還沒有站穩腳步之時就遇到 Kubernetes 這個龐然怪獸,然後 Kubernetes 橫掃時間把所有 Docker Swarm 的市場全面清空,
當然真實版本一定更加複雜得多,絕對不是一句 Kubernetes 就可以概括的
[開源專案的商業化之路總是困難]
Docker 於 2014 年開始認真探討其商業策略,如何將其作為 Container 領頭羊的角色轉變成為一個可以帶來收入的策略,VC 創投的資金讓其有能力收購 Koality 與 Tutum,同年 Docker 也正式宣布第一個商業版本的支援計劃。
這一連串的計算誕生出了許多產品,譬如 Docker Hub 及 Docker Enterprise.
不過可惜的是上述的產品並沒有辦法從企業用戶手中帶來穩定的獲利,大部分的客戶相對於直接購買 Docker 解決方案,更傾向跟已經合作的系統整合商一起合作。
Solomon Hykes 今天夏天跟 infoworld 的一次訪談中提到,Docker 從來沒有推出一套真正的好的商業產品,原因是因為 Docker 並沒有很專注地去處理這塊需求。
Docker 嘗試每個領域都碰一小塊,但是卻發現想要同時維護一個開發者社群又要同時打造一個良好的商業產品是極度困難的, Dockre 花費大量的時間與金錢想要魚與熊掌兼得,但是最後才體會到這件事情幾乎不太可行,Hykes 也認為 Docker 應該要花更多時間去聆聽用戶的需求,而不是自己埋頭苦幹的去打造一個沒有滿足使用者需求的企業產品。
來自 Google 的開發推廣大使 Kelsev Hightower 於今年的訪談中提到,Docker 成功地解決問題,但是卻遇到了瓶頸,舉例來說,Docker 提供工具讓開發者可以 產生 Image, 提供地方儲存 Image,運行 Image 除了這些之外, Docker 還有可以發展的空間嗎?
Hykes 不贊同這個說法,譬如 RedHat 與 Pivotal 都很成功的將 Docker 整合到彼此的 PaaS 產品(OpenShift, Cloud Foundry),也成功從中獲利,所以 Docker 實際上有很多方式可以去獲利的,只是沒有成功而已。
從結果論來看, Docker 早期的商業夥伴,一家專注於 Travel 的科技公司, Amadeus 於 2015 年正式跟 Docker 分手改而投向 RedHat 的懷抱。
畢竟 RedHat 有提供更多關於 Container 相關的技術支援,畢竟對於一個想要踏入 Container 世界的企業,如何將應用程式容器化是第一步,而接下來則是更為重要的 Container Orchestration 解決方案,很明顯的 Docker 這個戰場上是完全被 Kubernetes 打趴的。
[Kubernetes 的決策]
Docker 拒絕擁抱 Kubernetes 被認為是一個致命的錯誤策略,Jérôme Petazzoni, Docker 第一位也是目前在位最久的員工提到, Docker 內部曾經針對 Kubernetes 的生態去探討過,當時內部的共識是 Kubernetes 架構過於複雜,而 Docker Swarm 的架構相對簡單,比較之下 Docker Swarm 應該更容易獲得商業上的成功。
從其他的訪談可以得知, Docker 曾經是有機會可以跟 Google 內的 Kubernetes 團隊一起合作發展 Kubernetes,並且有機會去掌握整個 Container 生態系的發展。如果這些合作可以順利發展,那 Docker GitHub 底下的第一個專案可能就會是 Kubernetes,而 Docker Swarm 可能根本就不會產生了。
Hykes 承認的說,那個時空背景(2014,2015)下, Docker 公司很難找到一個很好的 Container Orchestration 解決方案來滿足各種各戶的需求,而那時候的 Kubernetes 也很難斬釘截鐵的說就是那個解決方案, 畢竟那時候 Kubernetes 還非常早期,同時期還有很多開源專案,很難料想到
Kubernetes 最後會主宰整個 Container Orchestration 世界。
文章後半段還有非常多的討論,非常推薦大家去看全文,雖然沒有辦法改變歷史,但是從歷史中可以學到非常有趣的東西,特別是當被客戶問到 Docker/Kubernetes 的一些生態問題時,有這些歷史資料的可以讓你講起來更有迷之自信
同時也有2部Youtube影片,追蹤數超過7萬的網紅在地上滾的工程師 Nic,也在其Youtube影片中提到,經常面試是學習及瞭解自己價值的捷徑,然而這些面試的所累積的經驗,直到我換了一個視角 成為了軟體工程師的面試官時,才發現面試大概十分鐘左右,基本上就會決定這個求職者有沒有下一步了 這支影片和你分享我成為面試官之後,一路找人的心得以及如何讓自己成為更好的面試官 因為每個人想法不同,每間公司的團隊文...
github找專案 在 純靠北工程師 Facebook 的最佳解答
#純靠北工程師4vx
----------
襪靠......
我在某個程式交流群,看到某人在群內PO文,他把自己公司的合作專案,發到Github上面公開,還附上了源碼。
這人沒職業操守嘛?當他Github沒人看嗎?這會不會有商業機密的問題啊?
而且這個人,還是在Youtube 華語圈很有名,
好像教大家用Python做DiscordBot的樣子...
----------
💖 純靠北官方 Discord 歡迎在這找到你的同溫層!
👉 https://discord.gg/tPhnrs2
----------
💖 全平台留言、文章詳細內容
👉 https://init.engineer/cards/show/6333
github找專案 在 矽谷牛的耕田筆記 Facebook 的最佳解答
本篇文章探討的也是資安系列問題,而這次的目標主角則是 MAC 系統上廣為流傳的 Homebrew 系統。
結論:
作者透過觀察 Homebrew 的 Github Action 流程,成功得上傳一個會列印一行的程式碼到 iterm2 套件中,讓所有安裝的使用者都會於 Terminal 上看到一行作者客製化的訊息。
本次的漏洞是作者刻意從 Homebrew 的 Vulnerability Disclosure Program 專案中去嘗試尋找可能的問題,所有的操作都有跟官方專案的人探討過流程,並且一切的 PoC 都是單純證明該攻擊的可行性,所以有興趣研究的人請遵循一樣的想法去做,不要認真的想攻擊。
原因:
1. Homebrew 透過 Github Action 執行 CI/CD 動作
2. Homebrew 撰寫了一個自動合併 Pull Request 的 Action
3. CI 內會透過一個Ruby的 Git Diff 第三方函式庫來驗證,只要符合下列條件就可以自動合併
- Modifying only 1 file
- Not moving/creating/deleting file
- Target filepath matches \ACasks/[^/]+\.rb\Z
- Line count of deletions/additions are same
- All deletions/additions matches /\A[+-]\s*version "([^"]+)"\Z/ or - -\A[+-]\s*sha256 "[0-9a-f]{64}"\Z
- No changes to format of versions (e.g. 1.2.3 => 2.3.4)
作者一開始想要從該規則下手,找尋有沒有可能塞入惡意攻擊並且騙過系統讓其自動合併,然而這些規則看起來沒有什麼太多問題,於是作者轉往其他領域去找尋問題,其中一個想法就是到底該 Ruby 的 Git Diff 是如何實作,也許從實作下手更有辦法去欺騙這一切。
很順利的是,作者真的於該函式庫中找到問題,對於一個 Git Diff 的結果來說,該函式庫會透過 +++ "?b/(.*) 這樣的正規表達式來判別檔案路徑的資訊而並非程式修改內容,譬如下列 diff
```
diff --git a/source file path b/destination file path
index parent commit hash..current commit hash filemode
--- a/source file path
+++ b/destination file path
@@ line information @@
Details of changes (e.g.: `+asdf`,`-zxcv`)
```
作者就開始思考,如果讓程式碼可以符合 +++ "?b/(.*) 的規則,是否有辦法讓程式碼不被視為一個檔案的修改,因此就可以修改多行程式碼但是讓 CI 系統認為只有一行程式碼於是進行自動合併
作者最初的想法如下,第一行用來放惡意程式碼,第二行用來偽裝檔案路徑,經過一番嘗試後作者真的成功塞入了類似 PRINTF 的程式碼到環境中並觸發自動合併。接者各地使用者透過 brew 安裝 iterm 版本都會看到使用者塞入的程式碼。
```
++ "b/#{Arbitrary codes here}"
++ b/Casks/cask.rb
```
原文還有更多作者的思路過程,有興趣的不要錯過
原文:
https://blog.ryotak.me/post/homebrew-security-incident-en/#fn:7
測試用PR:
https://github.com/Homebrew/homebrew-cask/pull/104191
github找專案 在 在地上滾的工程師 Nic Youtube 的最讚貼文
經常面試是學習及瞭解自己價值的捷徑,然而這些面試的所累積的經驗,直到我換了一個視角
成為了軟體工程師的面試官時,才發現面試大概十分鐘左右,基本上就會決定這個求職者有沒有下一步了
這支影片和你分享我成為面試官之後,一路找人的心得以及如何讓自己成為更好的面試官
因為每個人想法不同,每間公司的團隊文化和做法也不同,有些我在乎的點不一定是其他面試官也在乎的,但主要的關鍵核心不會偏離一個好的面試者應該如何表現
影片章節:
00:00 成為面試官後
01:23 什麼樣的求職者會被拒絕
02:01 履歷或對話沒有線頭
05:22 對徵才方的公司一無所知
06:45 只在乎自己能拿到什麼
07:21 總是沒有問題
11:08 成為好的面試官
12:31 先看履歷
13:00 先看專案
13:19 針對專案可以討論的點
13:29 設計面試題
13:49 討論人格特質
14:00 三明治鼓勵法
15:03 總結
影片中提到:
履歷撰寫文章: https://blog.niclin.tw/categories/%e5%b1%a5%e6%ad%b7%e6%92%b0%e5%af%ab/
從被問到問人,那些我常問的面試問題
https://blog.niclin.tw/2020/01/07/interview-tips/
喜歡影片的話!可以幫忙點個喜歡以及分享、訂閱唷!😘
━━━━━━━━━━━━━━━━
🎬 觀看我的生活廢片頻道: https://bit.ly/2Ldfp1B
⭐ instagram (生活日常): https://www.instagram.com/niclin_tw/
⭐ Facebook (資訊分享): https://www.facebook.com/niclin.dev
⭐ Blog (技術筆記): https://blog.niclin.tw
⭐ Linkedin (個人履歷): https://www.linkedin.com/in/nic-lin
⭐ 蝦皮賣場: https://shopee.tw/bboyceo
⭐ Github: https://github.com/niclin
⭐ Podcast: https://anchor.fm/niclin
━━━━━━━━━━━━━━━━
✉️ 合作邀約信箱: niclin0226@gmail.com
#面試 #工程師 #前端 #後端
github找專案 在 在地上滾的工程師 Nic Youtube 的最佳解答
## 影片觀看說明
由於問題較多,大家的問題也可能是你的問題,建議可以先閱讀下方的「問題總匯」區,找到時間碼 Time code 之後跳轉到自己想聽的部分,會比較有效率哦
本影片 Q&A 留言是抓取
【2020 年度回顧! 成為 Team leader? 業外收入增加? 技術能力成長? (第一次蒐集 Q&A)】https://youtu.be/BGaDN9wxbKE
## 影片中提到的專案
簡單用 React 撰寫的留言爬取篩選功能,可以自己抓去玩
https://github.com/niclin/youtube-comment-filter
## 問題總匯
00:00 開場
01:26 QA-1 - 林天寸
一直很喜歡妳的頻道,不單單是因為工程師,當然也有部分原因是自己也是走工程師這條路的。
前一年2020年開始,其實是我剛轉職工程師的第一年,在滿多地方都遇到不小的問題,在troubleshooting上面也是有許多瓶頸的。
後來除了白天上班,下班看書跟休息,偶然間看到你的影片[工程師如何自我進修],才開始慢慢用計畫的方式取代橫衝猛幹。
不得不說,規劃時間真的是比起技術性的功力還更有成效。因為它讓你適時的放鬆跟加強,然後在工作上面才更有長進,雖然很幹話,但我2020的下半年是這樣做的。
目前在準備考取網路管理的證照CCNA,計畫是走network這一塊,還有很多要磨練的。希望也能多看你產出跟network的影片,這是私心話啦,哈哈。
02:57 QA-2 - 仔仔
1.學程式會建議從前端或是後端哪個開始學會比較好?
2.一開始投履歷如何判斷一家公司是可以成長的,而不是進去3,5年後還是那個跟剛進去程度相差不遠的自己差不多
3.跟程式相關的產業有很多(像是製造業到博弈),可以請Nic分析一下各產業的狀況嗎?以及進去各產業前須要具備哪些程式語言或能力?
4.投履歷時看到一些公司列出所需程式語言和工具一大堆,是不是代表你沒完全具備就不要投履歷了,還是可以請Nic給個意見哪些部分還是可以投看看
5.都說工程師又宅又不會說話,為什麼Nic可以交到女朋友?
10:40 QA-3 - ANDREW NG KAR EARN
如果当写编程语言遇到瓶颈,有什么方法可以有效地避免自己陷入钻牛角尖的情况?
11:46 QA-4 - JS Lin
如果NIC現在選擇能馬上精通一項語言會是哪個?會想用來做什麼PJ?
13:13 QA-5 - Rick0
成為 team leader 後無法直接在技術上有更深入的研究和突破,這樣的變化是否值得?
是否會擔心這樣在技術上跟不上其他人,甚至被下屬看輕呢?
14:39 QA-6 - Henry蔡
因為最近是寒假期間,
我開始考慮下學期的修課,
想請教nic大大,
應該在有什麼樣的基礎上,
開始學design patterns?
我目前是碩士生,
大學非資工本科,
學過Python,
也跟過一些網路影片實作過Flask+PostgreSQL,
大學學過資料結構演算法,
但不到得心應手的程度...
16:07 QA-7 - 黃柏瑋
如何同時Handle好好幾件事
我怎麼覺得上班,然後下班假日寫寫side project後就沒啥時間了🤔🤔🤔
17:24 QA-8 - 乾太
我想問一下這年頭轉行斜槓 VTuber 還有沒有搞頭A?
18:10 QA-9 - uuu06222
之前開始關注你有知道你有面試過人的經驗, 想問一下站在面試官的角度...
面試官會不會比較注重作品需要呈現那些東西, 或是有沒有什麼禁忌是不能碰的嗎?
20:07 QA-10 - Joery Lin
想請教您對於對於給你很多成長和照顧的公司,倘若您有一個更好的機會,無論薪水或未知挑戰都大於現在公司。
您將如何做選擇,或許現在公司會給你加薪留下你。
因為自己曾放棄了許多機會
21:37 QA-11 - YangTing Zheng
Q1: 想問通常一個產品開發的週期都多長呢?負責維運和開發的工作內容是否會差很多?
Q2: 想請您簡單介紹一下資工系學生的出路/工作內容?(如PM.SA.DBA.PG.RD.MIS…或是還有其他的?)
24:16 QA-12 - RTB
Hello World
24:18 QA-13 - Barry
目前是公司MIS 很想轉職成後端工程師,但在面試上面都都時常失敗
常常在問技術關卡時就被問倒了,總覺得 要準備的東西非常的龐大
毫無準備的頭緒,總覺得一直寫side project也不是辦法
26:49 QA-14 - 因地制夷
想請教Nic 有在做投資嗎? ex 股票 想聽一些投資心得
27:13 QA-15 - 比歐
想請教 Nic 大,
在之後的工程師生涯中之後有甚麼規劃或想法嗎?
例如:開發產品創業,或是開班授課、轉做顧問之類的。
28:14 QA-16 - yongming jia
请问新手如何学编程,学完去做什么?怎么自己创业?谢谢🙏
29:33 QA-17 - Minghao Chang
是否能請您推薦用來開發的筆電?(正好最近要汰換電腦),想從今年開始養成寫side project的習慣,謝謝。
30:31 QA-18 - Guan Jun Chen
想知道像Nic這麼厲害的工程師,年薪大概落在哪裡
30:46 QA-19 - Sheng Jiang
想請問Nic,如果非資工背景但是對寫程式有熱情,想轉職當軟體工程師,會建議如何起步?
補充:像是什麼樣的人適合自學,什麼樣的人適合去補習,或者補習跟自學的情況各有哪些優劣?
謝謝Nic
## 結尾
31:49 感想
喜歡影片的話!可以幫忙點個喜歡以及分享、訂閱唷!😘
━━━━━━━━━━━━━━━━
🎬 觀看我的生活廢片頻道: https://bit.ly/2Ldfp1B
⭐ instagram (生活日常): https://www.instagram.com/niclin_tw/
⭐ Facebook (資訊分享): https://www.facebook.com/niclin.dev
⭐ Blog (技術筆記): https://blog.niclin.tw
⭐ Linkedin (個人履歷): https://www.linkedin.com/in/nic-lin
⭐ 蝦皮賣場: https://shopee.tw/bboyceo
⭐ Github: https://github.com/niclin
⭐ Podcast: https://anchor.fm/niclin
━━━━━━━━━━━━━━━━
✉️ 合作邀約信箱: niclin0226@gmail.com
#QA #工程師 #在地上滾的工程師 #前端 #後端 #轉職