SlideShare une entreprise Scribd logo
1  sur  195
Télécharger pour lire hors ligne
重新想像
如何做技術選型決策
yftzeng@gmail.com https://www.facebook.com/yftzeng.tw https://twitter.com/yftzeng
Ant
2021-07-17
2/195
曾義峰 (aka Ant)
➔
TGO (Top Geeks' Organization) Networks
創始委員及現任學習委員
➔
臺灣資安社群 CHROOT 成員
➔
曾任資安顧問及電子票證公司顧問
➔
前 LeadBest Consulting Group 首席執行顧問
➔
開源人年會 (COSCUP) 2009 / 2012 / 2020 講師
➔
臺灣駭客年會 (HITCON) 2008 及 2009 講師
➔
臺灣 Modern Web 2015 ~ 2020 講師
3/195
從專業到商業
4/195
Security
(Hacker)
Law
(Intellectual Property)
Technology
(Software Dev.)
著作權法
商標權法
專利權法
自由開放源碼授權
...
曾於英業達及廣達電腦等
教授自由軟體授權相關課程
CTO
技術總監
總工程師
技術顧問
CHROOT 成員
台灣駭客年會兩屆講師
這趟旅程未必有答案,但會嘗試讓你與自己對話
重新
想像
以下,都是我對自己提出的自省
8/195
如何做技術選型決策
技術管理 技術模式 技術工具
人 事 物
9/195
如何做技術選型決策
技術管理 技術模式 技術工具
人 事 物
10/195
技術管理
在決策中,人是最為關鍵的因素,但是人類往往最不瞭解的就是人類自己。
《快思慢想》
11/195
技術管理
Management
管理
Leadership
領導
12/195
技術管理
關於管理與領導,你們怎麼看?
Q
Management
管理
Leadership
領導
13/195
技術管理
Credit: https://www.business2community.com/leadership/leadership-difference-boss-leader-01651799
Credit: https://www.quora.com/What-are-the-differences-between-boss-and-leader
1 2 3
14/195
技術管理
Credit: https://www.business2community.com/leadership/leadership-difference-boss-leader-01651799
Credit: https://www.quora.com/What-are-the-differences-between-boss-and-leader
1 2 3
Boss vs. Leader
Manager vs. Leader
15/195
技術管理
Credit: https://www.books.com.tw/products/0010819896
Credit: https://www.books.com.tw/products/0010450965
作者: 許士軍
出版: 2019-03-01
作者: Gary Dessler & Jean Phillips
出版: 2009-07-01 ( 原 2008-08-03)
16/195
技術管理
Management
管理
Leadership
領導
是不是這樣比較合理呢?
17/195
技術管理
Management
管理
Leadership
領導
敏捷
19/195
技術管理
Credit: https://craigsmith.id.au/2016/02/03/40-agile-methods-goes-open-source/
Scrum
Kanban
XP
TDD/BDD
SAFe
LeSS
DevOps
1
2
3
4
5
6
7
20/195
Q
技術管理
是否為 ( 技術 ) 團隊導入敏捷?你是支持還是反對?
心裡浮現很多故事,可能有好有壞
21/195
技術管理
朋友群中是否有支持派,以及反對派?
Q
回想一下朋友圈近年的分享內容
22/195
技術管理
有沒有觀察過,支持與反對敏捷的人,其職位或職業分布為何?
老闆 / 主管 / PM / PO / 顧問 ( 管理 or 技術 ) / 基層 / 接案?
Q
23/195
技術管理
有沒有觀察過,新版 Scrum Guides 2020 (11 月 ) 推出時,分享的人是哪些人?
Q
老闆 / 主管 / PM / PO / 顧問 ( 管理 or 技術 ) / 基層 / 接案?
如果與我們息息相關,為何我們表現的毫不在乎
透明、開放、回顧、衝刺 ( 上下一心 )
25/195
技術管理
有沒有觀察過,大家所謂的敏捷是什麼?
敏捷宣言有四點,但是否人人都不太一樣。就像在一個專案中,存在著各種不同的程式語言
Q
26/195
技術管理
有沒有觀察過,決定的話語權通常落在誰身上?
Stakeholder ? Product Owner ?
Q
27/195
技術管理
有沒有觀察過,決定的話語權通常落在誰身上?
Stakeholder ? Product Owner ?
Q
隕石開發法
Credit: https://eiki.hatenablog.jp/entry/meteo_fall
28/195
技術管理
你認為,一個成功的 ( 敏捷 ) 公司,是誰為公司宣傳來得有力?
高層?基層?
Q
29/195
技術管理
宣傳 ( 敏捷 ) 成功的公司,他們說的是理論?還是證據?
Q
30/195
技術管理
31/195
技術管理
Credit: https://twitter.com/ronquartel/status/1112830272871923712
32/195
技術管理
Credit: https://www.amazon.com/Accelerate-Software-Performing-Technology-Organizations/dp/1942788339
33/195
技術管理
宣傳敏捷導入成功的公司,他們說的是理論?還是證據?
營收成長?員工數成長?
人均貢獻?離職流動率?
Q
多因素影響下的歸因?
34/195
技術管理
當敏捷追求 Customer Value ,大談 User Experience 時,你有什麼想法?或落差?
Employee Happiness ?為顧客犧牲了員工?現實的落差?
( 軟體工程師 ) SSD + Screen + Flow > TDD > Value (?)
Q
35/195
技術管理
大家怎麼分享大規模敏捷的實踐?你的想法是什麼?
Q
100 人? 200 人? 300 人?
36/195
技術管理
Credit: https://www.agilest.org/scaled-agile/scrum-of-scrums/
Scrum of Scrum of Scrums
37/195
技術管理
SAFe
Credit: https://www.scaledagileframework.com/
38/195
技術管理
Credit: https://www.agilest.org/scaled-agile/scrum-of-scrums/
Credit: https://www.scaledagileframework.com/
39/195
技術管理
敏捷軟體開發宣言
個人與互動 > 流程與工具
可用的軟體 > 詳盡的文件
客戶合作 > 合約協商
回應變化 > 遵循計畫
若我們回頭參照《敏捷軟體開發宣言》
Credit: https://www.agilest.org/scaled-agile/scrum-of-scrums/
Credit: https://www.scaledagileframework.com/
40/195
技術管理
敏捷軟體開發宣言
個人與互動 > 流程與工具
可用的軟體 > 詳盡的文件
客戶合作 > 合約協商
回應變化 > 遵循計畫
Credit: https://www.agilest.org/scaled-agile/scrum-of-scrums/
Credit: https://www.scaledagileframework.com/
41/195
技術管理
敏捷軟體開發宣言
個人與互動 > 流程與工具
可用的軟體 > 詳盡的文件
客戶合作 > 合約協商
回應變化 > 遵循計畫
這種結構是組織成長不得不的結果?
Credit: https://www.agilest.org/scaled-agile/scrum-of-scrums/
Credit: https://www.scaledagileframework.com/
42/195
技術管理
自組織 阿米巴
Credit: https://www.archimetric.com/%E4%BB%80%E9%BA%BC%E6%98%AFscrum%E7%9A%84%E8%87%AA%E7%B5%84%E7%B9%94%E5%9C%98%E9%9A%8A%EF%BC%9F/
Credit: https://zh.codeprj.com/blog/bafe131.html
43/195
技術管理
自組織 阿米巴
Credit: https://www.archimetric.com/%E4%BB%80%E9%BA%BC%E6%98%AFscrum%E7%9A%84%E8%87%AA%E7%B5%84%E7%B9%94%E5%9C%98%E9%9A%8A%EF%BC%9F/
Credit: https://zh.codeprj.com/blog/bafe131.html
扁平化 + ≧ 9 ± 2 !
2020 Scrum Guide ?
44/195
技術管理
The Fifth Discipline / 第五項修練 (1990)
Credit: https://www.amazon.com/Fifth-Discipline-Practice-Learning-Organization/dp/0385517254
45/195
技術管理
Credit: https://achardypm.medium.com/agile-team-organisation-squads-chapters-tribes-and-guilds-80932ace0fdc
觀眾:你怎麼不提 Spotify ?
46/195
技術管理
Credit: https://achardypm.medium.com/agile-team-organisation-squads-chapters-tribes-and-guilds-80932ace0fdc
47/195
技術管理
Credit: https://achardypm.medium.com/agile-team-organisation-squads-chapters-tribes-and-guilds-80932ace0fdc
現在還在談 Spotify 敏捷模式的趨勢? Spotify 模式是不是敏捷反模式?
48/195
技術管理
Pull Request 對 Agile / DevOps 是正模式還是反模式?
Q
49/195
技術管理
Credit: https://railsware.com/blog/pull-request-review-from-a-railsware-engineers-perspective/
50/195
技術管理
Credit: https://wideinfo.org/welcoming-change-whilst-in-the-realm-of-agile-software-development/
Credit: https://software.af.mil/training/devops/
敏捷 & DevOps :快速交付價值,靈活嚮應變化
51/195
技術管理
Credit: https://twitter.com/d_stepanovic/status/1379451260638785536
52/195
技術管理
Pipeline ? Flow ? Continuous Integration ? Continuous Delivery ?
Interrupt & Wait time
Credit: https://twitter.com/d_stepanovic/status/1379451260638785536
53/195
技術管理
Pull Request 實際上很常被用於不信任的文化中?
Pull Request 是否為 Continuous Integration 中引入了延遲?
Credit: https://twitter.com/d_stepanovic/status/1379451260638785536
54/195
技術管理
有比較好的解決模式嗎?
Credit: https://twitter.com/d_stepanovic/status/1379451260638785536
55/195
技術管理
從 Agile / DevOps 角度探討 QA / Testing 的角色?
Q
56/195
技術管理
Credit: https://software.af.mil/training/devops/
57/195
技術管理
Credit: https://software.af.mil/training/devops/
DevOps : Breaking Silos ( 打破壁壘 )
58/195
技術管理
Silos ( 壁壘 )
Credit: https://www.slideshare.net/hironoriwashizaki/quality-assuranceagile-quality
Credit: https://www.visual-paradigm.com/tw/guide/software-development-process/what-is-a-software-development-lifecycle/
59/195
技術管理
Silos ( 壁壘 )
Credit: https://www.slideshare.net/hironoriwashizaki/quality-assuranceagile-quality
Credit: https://www.visual-paradigm.com/tw/guide/software-development-process/what-is-a-software-development-lifecycle/
組織壞味道一: Dev 覺得「測出錯誤」是 QA 的責任?
60/195
技術管理
Silos ( 壁壘 )
Credit: https://www.slideshare.net/hironoriwashizaki/quality-assuranceagile-quality
Credit: https://www.visual-paradigm.com/tw/guide/software-development-process/what-is-a-software-development-lifecycle/
組織壞味道二: QA 覺得 Dev 老是產出有瑕疵的程式碼?
61/195
技術管理
Silos ( 壁壘 )
Credit: https://www.slideshare.net/hironoriwashizaki/quality-assuranceagile-quality
Credit: https://www.visual-paradigm.com/tw/guide/software-development-process/what-is-a-software-development-lifecycle/
組織壞味道裡,你有聞到推責的氣味嗎?
以個人的角度來論,每個人說的都是 They 的錯?每個人都在浪費生命?
回到資深工程師的定義, Dev 該為產出高品質的程式碼負責,還是推責?
62/195
技術管理
Silos ( 壁壘 )
Credit: https://www.slideshare.net/hironoriwashizaki/quality-assuranceagile-quality
Credit: https://www.visual-paradigm.com/tw/guide/software-development-process/what-is-a-software-development-lifecycle/
如果 Dev 不認真對待測試,組織就沒有重視質量的文化
63/195
技術管理
Silos ( 壁壘 )
Credit: https://www.slideshare.net/hironoriwashizaki/quality-assuranceagile-quality
Credit: https://www.visual-paradigm.com/tw/guide/software-development-process/what-is-a-software-development-lifecycle/
所以 DevOps 著重在於 ... ?
64/195
技術管理
Credit: https://www.mabl.com/blog/shift-left-shift-right-shifting-and-why
65/195
技術管理
Automated testing & Continuous Testing
Credit: https://www.mabl.com/blog/shift-left-shift-right-shifting-and-why
66/195
技術管理
Feature Flags 對 Agile / DevOps 是正模式還是反模式?
Q
67/195
技術管理
Credit: https://www.slideshare.net/yftzeng/testing-in-production-deploy-on-fridays
68/195
技術管理
Credit: https://www.slideshare.net/yftzeng/testing-in-production-deploy-on-fridays
敏捷 & DevOps :快速將價值交付到顧客手上?
預設 Flag 開啟還是關閉,是否變得很重要?
69/195
技術管理
Credit: https://www.slideshare.net/yftzeng/testing-in-production-deploy-on-fridays
如果預設開啟,那麼與沒有 Feature Flags 有什麼差別?
還是有的,想一想
70/195
技術管理
作為經理或團隊負責人,確保在迭代開始時將所有任務分配給適當的個人。
重要的是每個人都知道他們在迭代中負責什麼。
Q
你覺得呢?
71/195
技術管理
好 省
夢點
快
72/195
技術管理
好 省
夢點
快
73/195
技術管理
Quality Cost
Trade-off
Speed
74/195
技術管理
Quality Cost
Trade-off
Speed
當產品 / 專案有問題時,通常我們的選擇有什麼?
75/195
技術管理
Quality Cost
Trade-off
Speed
當產品 / 專案有問題時,通常我們的選擇有什麼?
時程延長 調整範圍
加班 加人
1 2 3 4
76/195
技術管理
Quality Cost
Trade-off
Speed
當產品 / 專案有問題時,通常我們的選擇有什麼?
時程延長 調整範圍
加班 加人
1 2 3 4
當產品 / 專案有問題時,通常只會有哪些選擇?
77/195
技術管理
Quality Cost
Trade-off
Speed
當產品 / 專案有問題時,通常我們的選擇有什麼?
時程延長 調整範圍
加班 加人
1 2 3 4
當產品 / 專案有問題時,通常只會有哪些選擇?
78/195
技術管理
Quality Cost
Trade-off
Speed
當產品 / 專案有問題時,通常我們的選擇有什麼?
時程延長 調整範圍
加班 加人
1 2 3 4
但通常工程師希望選擇的是?
79/195
技術管理
Quality Cost
Trade-off
Speed
當產品 / 專案有問題時,通常我們的選擇有什麼?
加班 加人
1 2
但通常工程師希望選擇的是?
時程延長 調整範圍
3 4
80/195
技術管理
Quality Cost
Trade-off
Speed
當產品 / 專案有問題時,通常我們的選擇有什麼?
時程延長 調整範圍
加班 加人
1 2 3 4
一個成熟的敏捷組織或團隊,應該會選擇哪個?
81/195
技術管理
Quality Cost
Trade-off
Speed
當產品 / 專案有問題時,通常我們的選擇有什麼?
時程延長 減少浪費
加班 加人
1 2 3 5
一個成熟的敏捷組織或團隊,應該會選擇哪個?
Credit: http://lukeangel.co/project-management/whats-a-workback-schedule/attachment/waterfall-v-agile-iron-triangle-v03/
Agile Lean
調整範圍
4
82/195
技術管理
Quality Cost
Trade-off
Speed
當產品 / 專案有問題時,通常我們的選擇有什麼?
時程延長 調整範圍 減少浪費
加班 加人
1 2 3 4 5
其實,你還有第六個選擇!?
Agile Lean
83/195
技術管理
Quality Cost
Trade-off
Speed
當產品 / 專案有問題時,通常我們的選擇有什麼?
時程延長 調整範圍 減少浪費
加班 加人 離職
1 2 3 4 5 6
鄉民:塊陶啊 ~
Agile Lean
俗語說:奧客是一時,豬同事是八小時
不要想著自己對公司有多重要,
大多數人的一生中唯一遇到《要你別走》的就是體育老師 ( 給我跑起來 ~) ;
會對著你唱《愛我別走》的是海雅谷慕 ( 張震嶽 ) 。
但留下來試著解決也是種選擇 ( 認真 ~)
86/195
如何做技術選型決策
技術管理 技術模式
人 事
技術工具
物
87/195
技術模式
Credit: https://jaxenter.com/reactive-microservices-scala-akka-130360.html
Credit: https://twitter.com/bibryam/status/1026465959417196544
Credit: https://docs.microsoft.com/zh-tw/dotnet/architecture/cloud-native/service-mesh-communication-infrastructure
Service Mesh
88/195
技術模式
89/195
技術模式
充分理解商業的前提下,盡可能高效且低成本的解決商業問題,
甚至預測商業可能的變化而提前進行技術決斷,擴展商業的邊界。
你對系統的瞭解程度,決定了你如何架構這個系統
90/195
技術模式
➊ 架構先決
無視人員、流程只講技術,是耍自傲
架構會影響公司文化、商業擴展;思維更要超越程式碼層次
91/195
技術模式
➋ 沒有完美的架構,只有最適的架構
無視場景只講架構,是耍自殘
若無法舉出架構的缺陷,代表你還無法掌握
盲目套用別人的架構,並不會讓你變得跟他一樣好
沒有大公司的命,卻得了大公司的病
93/195
技術模式
➌ 架構是演進的,預想但不過早調優
無視未來只求現有,是耍自閉
兵馬未動,糧草先行,預想下一步,下下一步,甚至下下下一步 ...
94/195
技術模式
➌ 架構是演進的,預想但不過早調優
無視未來只求現有,是耍自閉
兵馬未動,糧草先行,預想下一步,下下一步,甚至下下下一步 ...
95/195
Premature optimization is the root of all evil
Donald Knuth
過早最佳化是萬惡的根源
技術模式
96/195
Premature optimization is the root of all evil
Donald Knuth
過早最佳化是萬惡的根源
這句話加上前後文時,解讀會更完整
技術模式
97/195
We should forget about small efficiencies, say about 97% of the time;
Premature optimization is the root of all evil.
Yet we should not pass up our opportunities in that critical 3%
Donald Knuth
對於約佔 97% 的些微最佳化,我們應該忽略它們:過早最佳化是萬惡的根源。
剩下關鍵的 3% ,我們則不能放棄最佳化的機會。
技術模式
98/195
未剖析找出問題,而在架構或程式展炫技,不僅效能提升有限,還引入更多 Bugs ?
技術模式
Trade-off ( 取捨 ) → Profiling ( 剖析 )
Q
99/195
技術模式
某同事堅持最佳化某段函式,最後花了一個月的時間,而該函式最後確實提升了十倍效能。
但事實是如此嗎?
30ms 50ms 200ms 280ms
30ms 5ms 200ms 235ms
10x -16%
前
後
100/195
技術模式
你如何思考著擴展的一開始,就立足在良好的基礎上,而沒有過早最佳化?
使之正確,使之清楚,使之簡潔,使之快速。承上順序。
Q
禁止在麻瓜面前使用魔法
而我們很有可能就是那個麻瓜,三個月後再讀自己的程式碼
102/195
技術模式
網頁軟體工程師遇到效能問題時,最常使用的手段?
Q
103/195
技術模式
Database
Database
Applications
Applications
Web Server
Web Server
當網頁效能很差時,通常會 ... ?
104/195
技術模式
Database
Database
Applications
Applications
Web Server
Web Server
105/195
技術模式
Database
Database
Applications
Applications
Web Server
Web Server
Applications
Cache
Applications
Cache
varnish
redis
106/195
技術模式
Database
Database
Applications
Applications
Web Server
Web Server
Applications
Cache
Applications
Cache
varnish
redis
Monitoring
HA
...
Monitoring
HA
...
快取穿透 (Cache Penetration)
快取雪崩 (Cache Avalanche)
快取擊穿 (Hotspot Invalid)
Cache hit ratio
Total request rate
Average object size
LRU reference age
SLO Metrics Side-effects
快取穿透 (Cache Penetration)
快取雪崩 (Cache Avalanche)
快取擊穿 (Hotspot Invalid)
Cache hit ratio
Total request rate
Average object size
LRU reference age
99%
99%
99%
99%
99%
99%
99%
99%
97%
95%
Infra
SLO
SLA
前
後
107/195
技術模式
網頁軟體工程師遇到效能問題時,第二 (!!) 常使用的手段?
Q
108/195
技術模式
自從網路產業大談高流量高併發後, Concurrency 變成很多工程師追求的技術挑戰
衍生問題多來自對 Concurrency 的一知半解,還有引發的副作用尚無準備好解決能力
Concurrency 是一系列效能技術,專注於減少等待 (wait time)
如果對方案無法提供三個以上可能的問題,代表你還未準備好接受所引入的風險
Ant
110/195
在 Java 中, Concurrency 非常棘手困難,所以絕對不要使用它,除非你有一個重大效能問題。
即使這樣,使用最簡單的方法產生你需要的效能,也會因為 Concurrency 很快變得無法管理。
《 On Java 8 》 Bruce Eckel
技術模式
111/195
在 Java 中, Concurrency 非常棘手困難,所以絕對不要使用它,除非你有一個重大效能問題。
即使這樣,使用最簡單的方法產生你需要的效能,也會因為 Concurrency 很快變得無法管理。
《 On Java 8 》 Bruce Eckel
技術模式
只有 Java 這樣嗎?
112/195
在 Java 中, Concurrency 非常棘手困難,所以絕對不要使用它,除非你有一個重大效能問題。
即使這樣,使用最簡單的方法產生你需要的效能,也會因為 Concurrency 很快變得無法管理。
《 On Java 8 》 Bruce Eckel
技術模式
除錯?剖析?追蹤?教育訓練成本?
俗話說:開發一時爽,除錯火葬場
114/195
技術模式
網頁軟體工程師遇到效能問題時,第三 (!!) 常使用的手段?
Q
115/195
技術模式
Database
Applications
Web Server
Applications
116/195
技術模式
Database
Applications
Web Server
KeepAlive
KeepAlive
Connection Pool
Applications
117/195
技術模式
Database
Applications
Web Server
KeepAlive
KeepAlive
Connection Pool
Max : 200
Use : 100
Applications
Use : 100
118/195
技術模式
Database
Applications
Web Server
KeepAlive
KeepAlive
Connection Pool
Max : 200
Use : 100
Applications Applications
Use : 100 Use : 100
119/195
技術模式
Database
Applications
Web Server
KeepAlive
KeepAlive
Connection Pool
Max : 200
Use : 100
Applications Applications
Use : 100 Use : 100 Max : 300
120/195
技術模式
Database
Applications
Web Server
KeepAlive
KeepAlive
Connection Pool
Max : 200
Use : 100
Applications Applications
Use : 100 Use : 100 Max : 300
架構層級的共用變數
121/195
技術模式
Database
Applications
Web Server
KeepAlive
KeepAlive
Connection Pool
Max : 200
Use : 100
Applications Applications
Use : 100 Use : 100 Max : 300
替代方案?
122/195
技術模式
Database
Applications
Web Server
KeepAlive
KeepAlive
Max : 300
Applications Applications
Middleware
Connection Pool
Max : 300
123/195
技術模式
Database
Applications
Web Server
KeepAlive
KeepAlive
Max : 300
Applications Applications
Middleware
Connection Pool
Max : 300 Monitoring
HA
...
…..
Metrics
Infra Side-effects
SLO
99%
99%
99%
99%
99%
99%
99%
SLO
?
前
後
124/195
技術模式
Latency Memory
footprint
Trade-off
Throughput
Performance 三板斧
125/195
技術模式
Credit: https://nl.pinterest.com/pin/315463148894955389/
Latency Memory
footprint
Trade-off
Throughput
Throughput + Latency
Throughput
126/195
技術模式
Credit: https://nl.pinterest.com/pin/315463148894955389/
Latency Memory
footprint
Trade-off
Throughput
Throughput + Latency
Throughput
Scale Up vs. Scale Out 的迷思
為何工程師覺得 Scale Out 比較高大上?
127/195
技術模式
Credit: https://nl.pinterest.com/pin/315463148894955389/
Latency Memory
footprint
Trade-off
Throughput
Throughput + Latency
Throughput
「管理 10 台主機」 vs. 「管理 100 台主機」
128/195
技術模式
Credit: https://nl.pinterest.com/pin/315463148894955389/
Latency Memory
footprint
Trade-off
Throughput
Throughput + Latency
Throughput
但沒說的是花了多少錢,反正錢不是出自自己口袋
129/195
技術模式
Credit: https://nl.pinterest.com/pin/315463148894955389/
Latency Memory
footprint
Trade-off
Throughput
Throughput + Latency
Throughput
逆思考:「我從 100 台主機降為 10 台主機,但效能不變」
營運成本↓維護成本↓部署成本↓技術實力↑
Scale Out 比較難還是 Scale In 難?
130/195
技術模式
Credit: Systems Performance Enterprise and the Cloud
131/195
技術模式
Credit: Local-First Software You Own Your Data, in spite of the Cloud
132/195
技術模式
Credit: https://blog.amp.dev/2017/02/28/new-industry-benchmarks-for-mobile-page-speed/
133/195
技術模式
Microservices( 微服務 ) 適用場景?
Latency
Memory
footprint
Trade-off
Throughput
Q
134/195
技術模式
Credit: https://jaxenter.com/reactive-microservices-scala-akka-130360.html
Latency
Memory
footprint
Trade-off
Throughput
135/195
技術模式
Credit: https://www.appcentrica.com/the-rise-of-microservices/
Monitoring
...
Metrics Side-effects
Infra
... ...
136/195
技術模式
Microservices( 微服務 ) 在企業組織中的適用場景?
Credit: https://www.strategyzer.com/blog/posts/2015/7/2/6-roles-position-your-company-for-future
Q
137/195
技術模式
CTO :「我們應該拆解成 6 個 Microservices 。」
我:『你有 6 個團隊,而且彼此討厭對方』
CTO :「你怎麼知道?」
Silos
138/195
技術模式
設計系統的架構受制於產生這些設計的組織的溝通結構
康威定律
139/195
技術模式
設計系統的架構受制於產生這些設計的組織的溝通結構
康威定律
建議何時拆微服務?
140/195
技術模式
邊際交付成本 ≧ 整體維護成本
何時拆微服務
141/195
技術模式
邊際交付成本 ≧ 整體維護成本
何時拆微服務
邊際交付成本
整體維護成本
142/195
技術模式
Cloud Native( 雲原生 ) 適用場景?
Latency
Memory
footprint
Trade-off
Throughput
Q
143/195
技術模式
Credit: https://twitter.com/bibryam/status/1026465959417196544
Latency
Memory
footprint
Trade-off
Throughput
144/195
技術模式
FaaS( 函式即服務 ) 適用場景?
Latency
Memory
footprint
Trade-off
Throughput
Q
145/195
技術模式
Serverless ≠ FaaS
Serverless FaaS
146/195
技術模式
Credit: https://specify.io/concepts/serverless-baas-faas
Latency
Memory
footprint
Trade-off
Throughput
147/195
技術模式
Availability Partition
Tolerance
Trade-off
Consistency
148/195
技術模式
Availability Partition
Tolerance
Trade-off
Consistency
Enforced consistency
HA consistency
Eventual consistency
PostgreSQL, MySQL, ... MongoDB, HBase, Redis, ...
Dynamo, Cassandra, ...
149/195
技術模式
Credit: https://adtmag.com/articles/2016/08/16/nosql-toolbox.aspx
150/195
技術模式
Processing Intensive Capacity
CPU intensive
Memory intensive
Storage/IO intensive
Bandwidth intensive
OLTP (Write)
OLAP (Read)
Data warehouse
Throughput
Latency
Memory footprint
Service-level agreement
Bond
Performance
Quality
Cost
Credit: ModernWeb - Modern Web Architecture Design Journey ( https://s.itho.me/modernweb/2017/day2/201-K1-Ant.pdf )
151/195
技術模式
Processing Intensive Capacity
CPU intensive
Memory intensive
Storage/IO intensive
Bandwidth intensive
OLTP (Write)
OLAP (Read)
Data warehouse
Throughput
Latency
Memory footprint
Service-level agreement
Bond
Performance
Quality
Cost
Credit: ModernWeb - Modern Web Architecture Design Journey ( https://s.itho.me/modernweb/2017/day2/201-K1-Ant.pdf )
152/195
技術模式
Credit: https://thenewstack.io/selecting-the-right-database-for-your-microservices/
153/195
技術模式
Credit: https://thenewstack.io/selecting-the-right-database-for-your-microservices/
Throughput 與 Latency 雙料的架構?
154/195
技術模式
Credit: https://www.researchgate.net/figure/The-Lambda-Architecture-Adapted-from-20_fig3_319458470
Lambda architecture
155/195
技術模式
Credit: https://www.researchgate.net/figure/The-Lambda-Architecture-Adapted-from-20_fig3_319458470
Lambda architecture
Throughput
Latency
156/195
技術模式
Processing Intensive Capacity
CPU intensive
Memory intensive
Storage/IO intensive
Bandwidth intensive
OLTP (Write)
OLAP (Read)
Data warehouse
Throughput
Latency
Memory footprint
Service-level agreement
Bond
Performance
Quality
Cost
Credit: ModernWeb - Modern Web Architecture Design Journey ( https://s.itho.me/modernweb/2017/day2/201-K1-Ant.pdf )
你覺得何項資源最昂貴?
157/195
技術模式
Processing Intensive Capacity
CPU intensive
Memory intensive
Storage/IO intensive
Bandwidth intensive
OLTP (Write)
OLAP (Read)
Data warehouse
Throughput
Latency
Memory footprint
Service-level agreement
Bond
Performance
Quality
Cost
Credit: ModernWeb - Modern Web Architecture Design Journey ( https://s.itho.me/modernweb/2017/day2/201-K1-Ant.pdf )
你覺得何項資源最昂貴?
機房的頻寬有限且昂貴
158/195
技術模式
Processing Intensive Capacity
CPU intensive
Memory intensive
Storage/IO intensive
Bandwidth intensive
OLTP (Write)
OLAP (Read)
Data warehouse
Throughput
Latency
Memory footprint
Service-level agreement
Bond
Performance
Quality
Cost
Credit: ModernWeb - Modern Web Architecture Design Journey ( https://s.itho.me/modernweb/2017/day2/201-K1-Ant.pdf )
你覺得何項資源最昂貴?
以 CPU 為例
雲服務的 Scale Up : CPU 1→2→8→32→...
不夠還可以 Scale Out ,服務實例 1→2→3→4→...
159/195
技術模式
Processing Intensive Capacity
CPU intensive
Memory intensive
Storage/IO intensive
Bandwidth intensive
OLTP (Write)
OLAP (Read)
Data warehouse
Throughput
Latency
Memory footprint
Service-level agreement
Bond
Performance
Quality
Cost
Credit: ModernWeb - Modern Web Architecture Design Journey ( https://s.itho.me/modernweb/2017/day2/201-K1-Ant.pdf )
你覺得何項資源最昂貴?
雲服務的頻寬?
160/195
技術模式
Processing Intensive Capacity
CPU intensive
Memory intensive
Storage/IO intensive
Bandwidth intensive
OLTP (Write)
OLAP (Read)
Data warehouse
Throughput
Latency
Memory footprint
Service-level agreement
Bond
Performance
Quality
Cost
Credit: ModernWeb - Modern Web Architecture Design Journey ( https://s.itho.me/modernweb/2017/day2/201-K1-Ant.pdf )
你覺得何項資源最昂貴?
Gzip/Deflate & MessagePack & FlatBuffers & ProtoBuf & ...
161/195
技術模式
Processing Intensive Capacity
CPU intensive
Memory intensive
Storage/IO intensive
Bandwidth intensive
OLTP (Write)
OLAP (Read)
Data warehouse
Throughput
Latency
Memory footprint
Service-level agreement
Bond
Performance
Quality
Cost
Credit: ModernWeb - Modern Web Architecture Design Journey ( https://s.itho.me/modernweb/2017/day2/201-K1-Ant.pdf )
你覺得何項資源最昂貴?
利用 CPU 換 Bandwidth
162/195
技術模式
Processing Intensive Capacity
CPU intensive
Memory intensive
Storage/IO intensive
Bandwidth intensive
OLTP (Write)
OLAP (Read)
Data warehouse
Throughput
Latency
Memory footprint
Service-level agreement
Bond
Performance
Quality
Cost
Credit: ModernWeb - Modern Web Architecture Design Journey ( https://s.itho.me/modernweb/2017/day2/201-K1-Ant.pdf )
你覺得何項資源最昂貴?
情境:可是我效能測試時,不開壓縮時表現較好
163/195
技術模式
Processing Intensive Capacity
CPU intensive
Memory intensive
Storage/IO intensive
Bandwidth intensive
OLTP (Write)
OLAP (Read)
Data warehouse
Throughput
Latency
Memory footprint
Service-level agreement
Bond
Performance
Quality
Cost
Credit: ModernWeb - Modern Web Architecture Design Journey ( https://s.itho.me/modernweb/2017/day2/201-K1-Ant.pdf )
你覺得何項資源最昂貴?
回到資源約束, CPU 容易擴充,還是 Bandwidth 容易?
164/195
技術模式
Processing Intensive Capacity
CPU intensive
Memory intensive
Storage/IO intensive
Bandwidth intensive
OLTP (Write)
OLAP (Read)
Data warehouse
Throughput
Latency
Memory footprint
Service-level agreement
Bond
Performance
Quality
Cost
Credit: ModernWeb - Modern Web Architecture Design Journey ( https://s.itho.me/modernweb/2017/day2/201-K1-Ant.pdf )
你覺得何項資源最昂貴?
測試的量體?以及環境 (Local / Testing / Stage / Production) ?
165/195
技術模式
Processing Intensive Capacity
CPU intensive
Memory intensive
Storage/IO intensive
Bandwidth intensive
OLTP (Write)
OLAP (Read)
Data warehouse
Throughput
Latency
Memory footprint
Service-level agreement
Bond
Performance
Quality
Cost
Credit: ModernWeb - Modern Web Architecture Design Journey ( https://s.itho.me/modernweb/2017/day2/201-K1-Ant.pdf )
你覺得何項資源最昂貴?
Testing in Production ?
程式碼層次的除錯或可在測試環境重現,但架構層次的 ...
166/195
技術模式
何時資料庫才應該考慮 Sharding ?
Q
167/195
技術模式
何時該考慮 Sharding ?
Credit: https://aws.amazon.com/tw/blogs/startups/distributed-data-stores-for-mere-mortals/
168/195
技術模式
是不是當資料庫資料不再適合存於記憶體中時,或者遇到 CPU Bound 時?
Intensive
CPU intensive
Memory intensive
Storage/IO intensive
Bandwidth intensive
Credit: https://aws.amazon.com/tw/blogs/startups/distributed-data-stores-for-mere-mortals/
169/195
技術模式
在複雜多變的趨勢前,仍有基本的參考原則
Latency
Memory
footprint
Trade-off
Throughput
Quality Cost
Trade-off
Speed
Availability
Partition
Tolerance
Trade-off
Consistency
170/195
如何做技術選型決策
技術工具
物
技術管理
人
技術模式
事
171/195
技術工具
Credit: https://adtmag.com/articles/2016/08/16/nosql-toolbox.aspx
Availability Partition
Tolerance
Trade-off
Consistency
172/195
技術工具
Latency Memory
footprint
Trade-off
Throughput
程式語言的發展趨勢?
173/195
技術工具
Latency Memory
footprint
Trade-off
Throughput
程式語言的發展趨勢?
以前常看到 C10K / C100K ?現在?
系統同時承載 10K / 100K 的請求數量
174/195
技術工具
.Net 4.5 (2012-08), …
Ruby 2.1 (2013-12), 2.2, …
Java 8 (2014-03), 9, 10, 11, …
Go 1.4 (2014-12), 1.5, 1.6, …
Latency
Memory
footprint
Trade-off
Throughput
???
2014-11
175/195
技術工具
Credit: https://trends.google.com.tw/trends/explore?date=all&q=IoT
.Net 4.5 (2012-08), …
Ruby 2.1 (2013-12), 2.2, …
Java 8 (2014-03), 9, 10, 11, …
Go 1.4 (2014-12), 1.5, 1.6, …
Latency
Memory
footprint
Trade-off
Throughput
2014-11
176/195
技術工具
Credit: https://trends.google.com.tw/trends/explore?date=all&q=IoT
.Net 4.5 (2012-08), …
Ruby 2.1 (2013-12), 2.2, …
Java 8 (2014-03), 9, 10, 11, …
Go 1.4 (2014-12), 1.5, 1.6, …
Latency
Memory
footprint
Trade-off
Throughput
2014-11
177/195
技術工具
Credit: https://trends.google.com.tw/trends/explore?date=all&q=IoT
.Net 4.5 (2012-08), …
Ruby 2.1 (2013-12), 2.2, …
Java 8 (2014-03), 9, 10, 11, …
Go 1.4 (2014-12), 1.5, 1.6, …
Latency
Memory
footprint
Trade-off
Throughput
IoT 的應用,不再強調同時承載量,而是回應速度
2014-11
178/195
技術工具
Credit: https://trends.google.com.tw/trends/explore?date=all&q=IoT
.Net 4.5 (2012-08), …
Ruby 2.1 (2013-12), 2.2, …
Java 8 (2014-03), 9, 10, 11, …
Go 1.4 (2014-12), 1.5, 1.6, …
Latency
Memory
footprint
Trade-off
Throughput
雲時代, Scale Out 可以比較容易從 1→10→100→1,000,000
但 Scale Up 有天花板 (CPU 1→10→100→1,000,000 ?)
179/195
技術工具
???
180/195
技術工具
Credit: https://trends.google.com.tw/trends/explore?date=all&q=IoT
Credit: https://trends.google.com.tw/trends/explore?date=all&q=Edge%20Computing
181/195
技術工具
Credit: https://trends.google.com.tw/trends/explore?date=all&q=High%20Throughput,Low%20Latency
.Net 4.5 (2012-08), …
Ruby 2.1 (2013-12), 2.2, …
Java 8 (2014-03), 9, 10, 11, …
Go 1.4 (2014-12), 1.5, 1.6, …
Latency
Memory
footprint
Trade-off
Throughput
2016-05
182/195
Function Constraints
Trade-off
Form
技術工具
183/195
技術工具
人力數量
經驗與價格水平
教育市場
訓練成本
特定領域
成熟度
第三方支持度
法遵 / 合規
...
...
...
選擇何程式語言?工具?
184/195
技術工具
Dev Ops
Sec
Dev Ops
Reg
Dev Ops
Security Regulation (License / GDPR / ...)
185/195
技術工具
Credit: https://www.linkedin.com/pulse/agile-scrum-gdpr-ruud-van-driel-cissp/
186/195
技術工具
Credit: https://owasp.org/www-project-appsec-pipeline/#tab=Pipeline_Design_Patterns
187/195
Elasticsearch / Kibana 的軟體授權為何?是否符點貴公司商業利益?
技術工具
Q
188/195
Elastic 7.11 版本之後, Elasticsearch 與 Kibana 的自由開放源碼授權,
將從 Apache 2.0 變為 SSPL (Server Side Public License) 與 Elastic License 雙重授權模式。
技術工具
Credit: https://blog.gcos.me/post/2021-02-06_opensource-is-business-model-or-not/
189/195
MongoDB 的軟體授權為何?是否符點貴公司商業利益?
技術工具
Q
190/195
MongoDB 從 2018-2019 年時,將資料庫產品的授權從 AGPL 3.0 轉變為 SSPL
技術工具
Credit: https://blog.gcos.me/post/2021-02-06_opensource-is-business-model-or-not/
191/195
技術工具
Credit: https://trends.google.com.tw/trends/explore?date=all&q=3D%20Printing
192/195
技術工具
Credit: https://trends.google.com.tw/trends/explore?date=all&q=3D%20Printing
起步到白熱化
???
193/195
技術工具
Current Assignment Data Unavailable, 5,569,349 (2013-10-29 到期 )
Assigned to Stratasys, 5,587,913 (2013-12-14 到期 )
Assigned to DTM Corporation, 5,597,589 (2014-01-28 到期 )
Current Assignment Data Unavailable, 5,609,812 (2014-03-11 到期 )
Current Assignment Data Unavailable, 5,609,813 (2014-03-11 到期 )
Assigned to 3D Systems, 5,610,824 (2014-03-11 到期 )
Assigned to Stratasys, 5,503,785 (2014-06-02 到期 )
Current Assignment Data Unavailable, 5,637,169 (2014-06-10 到期 )
Assigned to DTM Corporation, 5,639,070 (2014-06-17 到期 )
Assigned to 3D Systems, 5,494,618 (2014-06-27 到期 )
Current Assignment Data Unavailable, 5,651,934 (2014-07-29 到期 )
Assigned to Jerry Zucker, 5,555,176 (2014-10-19 到期 )
Assigned to Jerry Zucker, 5,572,431 (2014-10-19 到期 )
Assigned to University of Southern California, 5,529,471 (2015-02-03 到期 )
Assigned to DTM Corporation, 5,733,497 (2015-03-20 到期 )
Assigned to 3D Systems, 5,762,856 (2015-06-09 到期 )
...
3D 列印最主要的專利到期,包括,
♫ 選擇性雷射燒結 (selective sintering) 。
♫ 光固化成形法 (stereolithography) 。
Credit: https://www.techdirt.com/articles/20140530/06531127408/120-smartphone-patent-tax-patent-royalties-cost-more-than-actual-hardware-your-phone.shtml
194/195
從專業到商業
yftzeng@gmail.com
https://www.facebook.com/yftzeng.tw
https://twitter.com/yftzeng
曾義峰 (Ant)

Contenu connexe

Tendances

Enterprise Agile Transformation Strategies
Enterprise Agile Transformation StrategiesEnterprise Agile Transformation Strategies
Enterprise Agile Transformation StrategiesMike Cottmeyer
 
Creative Branching Models for Multiple Release Streams
Creative Branching Models for Multiple Release StreamsCreative Branching Models for Multiple Release Streams
Creative Branching Models for Multiple Release StreamsAtlassian
 
[es] Enterprise Agile adoption - Límites y palancas
[es] Enterprise Agile adoption - Límites y palancas[es] Enterprise Agile adoption - Límites y palancas
[es] Enterprise Agile adoption - Límites y palancasXavier Albaladejo
 
Git Branching for Agile Teams
Git Branching for Agile Teams Git Branching for Agile Teams
Git Branching for Agile Teams Atlassian
 
我們與Azure DevOps的距離
我們與Azure DevOps的距離我們與Azure DevOps的距離
我們與Azure DevOps的距離Edward Kuo
 
10 steps to a successsful enterprise agile transformation global scrum 2018
10 steps to a successsful enterprise agile transformation   global scrum 201810 steps to a successsful enterprise agile transformation   global scrum 2018
10 steps to a successsful enterprise agile transformation global scrum 2018Agile Velocity
 
Git branching strategies
Git branching strategiesGit branching strategies
Git branching strategiesjstack
 
DevOps的神鬼奇航
DevOps的神鬼奇航DevOps的神鬼奇航
DevOps的神鬼奇航Edward Kuo
 
実装して理解するLINE LoginとOpenID Connect入門
実装して理解するLINE LoginとOpenID Connect入門実装して理解するLINE LoginとOpenID Connect入門
実装して理解するLINE LoginとOpenID Connect入門Naohiro Fujie
 
Git and GitFlow branching model
Git and GitFlow branching modelGit and GitFlow branching model
Git and GitFlow branching modelPavlo Hodysh
 
Why agile is failing in large enterprises
Why agile is failing in large enterprisesWhy agile is failing in large enterprises
Why agile is failing in large enterprisesLeadingAgile
 
Git flow Introduction
Git flow IntroductionGit flow Introduction
Git flow IntroductionDavid Paluy
 
和艦長一起玩轉 GitLab & GitLab Workflow
和艦長一起玩轉 GitLab & GitLab Workflow和艦長一起玩轉 GitLab & GitLab Workflow
和艦長一起玩轉 GitLab & GitLab WorkflowChen Cheng-Wei
 
Building Event-Driven Systems with Apache Kafka
Building Event-Driven Systems with Apache KafkaBuilding Event-Driven Systems with Apache Kafka
Building Event-Driven Systems with Apache KafkaBrian Ritchie
 
Agile101 - What Agile Is and What Agile Is Not
Agile101 - What Agile Is and What Agile Is NotAgile101 - What Agile Is and What Agile Is Not
Agile101 - What Agile Is and What Agile Is NotDerek Huether
 
アジャイル品質パターン (Agile Quality, QA2AQ)
アジャイル品質パターン (Agile Quality, QA2AQ)アジャイル品質パターン (Agile Quality, QA2AQ)
アジャイル品質パターン (Agile Quality, QA2AQ)Hironori Washizaki
 
Trunk-Based Development
Trunk-Based DevelopmentTrunk-Based Development
Trunk-Based DevelopmentBryan Liu
 
Axway amplify api management platform
Axway amplify api management platformAxway amplify api management platform
Axway amplify api management platformSmartWave
 
The 10 Steps to Becoming a Great Agile Coach
The 10 Steps to Becoming a Great Agile CoachThe 10 Steps to Becoming a Great Agile Coach
The 10 Steps to Becoming a Great Agile CoachLeadingAgile
 

Tendances (20)

Enterprise Agile Transformation Strategies
Enterprise Agile Transformation StrategiesEnterprise Agile Transformation Strategies
Enterprise Agile Transformation Strategies
 
Creative Branching Models for Multiple Release Streams
Creative Branching Models for Multiple Release StreamsCreative Branching Models for Multiple Release Streams
Creative Branching Models for Multiple Release Streams
 
[es] Enterprise Agile adoption - Límites y palancas
[es] Enterprise Agile adoption - Límites y palancas[es] Enterprise Agile adoption - Límites y palancas
[es] Enterprise Agile adoption - Límites y palancas
 
Git Branching for Agile Teams
Git Branching for Agile Teams Git Branching for Agile Teams
Git Branching for Agile Teams
 
我們與Azure DevOps的距離
我們與Azure DevOps的距離我們與Azure DevOps的距離
我們與Azure DevOps的距離
 
10 steps to a successsful enterprise agile transformation global scrum 2018
10 steps to a successsful enterprise agile transformation   global scrum 201810 steps to a successsful enterprise agile transformation   global scrum 2018
10 steps to a successsful enterprise agile transformation global scrum 2018
 
Gitlab flow
Gitlab flowGitlab flow
Gitlab flow
 
Git branching strategies
Git branching strategiesGit branching strategies
Git branching strategies
 
DevOps的神鬼奇航
DevOps的神鬼奇航DevOps的神鬼奇航
DevOps的神鬼奇航
 
実装して理解するLINE LoginとOpenID Connect入門
実装して理解するLINE LoginとOpenID Connect入門実装して理解するLINE LoginとOpenID Connect入門
実装して理解するLINE LoginとOpenID Connect入門
 
Git and GitFlow branching model
Git and GitFlow branching modelGit and GitFlow branching model
Git and GitFlow branching model
 
Why agile is failing in large enterprises
Why agile is failing in large enterprisesWhy agile is failing in large enterprises
Why agile is failing in large enterprises
 
Git flow Introduction
Git flow IntroductionGit flow Introduction
Git flow Introduction
 
和艦長一起玩轉 GitLab & GitLab Workflow
和艦長一起玩轉 GitLab & GitLab Workflow和艦長一起玩轉 GitLab & GitLab Workflow
和艦長一起玩轉 GitLab & GitLab Workflow
 
Building Event-Driven Systems with Apache Kafka
Building Event-Driven Systems with Apache KafkaBuilding Event-Driven Systems with Apache Kafka
Building Event-Driven Systems with Apache Kafka
 
Agile101 - What Agile Is and What Agile Is Not
Agile101 - What Agile Is and What Agile Is NotAgile101 - What Agile Is and What Agile Is Not
Agile101 - What Agile Is and What Agile Is Not
 
アジャイル品質パターン (Agile Quality, QA2AQ)
アジャイル品質パターン (Agile Quality, QA2AQ)アジャイル品質パターン (Agile Quality, QA2AQ)
アジャイル品質パターン (Agile Quality, QA2AQ)
 
Trunk-Based Development
Trunk-Based DevelopmentTrunk-Based Development
Trunk-Based Development
 
Axway amplify api management platform
Axway amplify api management platformAxway amplify api management platform
Axway amplify api management platform
 
The 10 Steps to Becoming a Great Agile Coach
The 10 Steps to Becoming a Great Agile CoachThe 10 Steps to Becoming a Great Agile Coach
The 10 Steps to Becoming a Great Agile Coach
 

Similaire à 重新想像:如何做技術選型決策 / Rethinking : Technical Decision

在B2B硬體產業運用 Agile 與 DevOps 的實務與心法
在B2B硬體產業運用 Agile 與 DevOps 的實務與心法在B2B硬體產業運用 Agile 與 DevOps 的實務與心法
在B2B硬體產業運用 Agile 與 DevOps 的實務與心法TIM WANG
 
20140610 net tuesday - 行動裝置安全
20140610 net tuesday - 行動裝置安全20140610 net tuesday - 行動裝置安全
20140610 net tuesday - 行動裝置安全Net Tuesday Taiwan
 
聊天機器人概論 Introduce to chat bot sevices
聊天機器人概論 Introduce to chat bot sevices聊天機器人概論 Introduce to chat bot sevices
聊天機器人概論 Introduce to chat bot sevicesDuran Hsieh
 
Conversational AI Orientation
Conversational AI OrientationConversational AI Orientation
Conversational AI OrientationRyan Chung
 
GitLab Auto DevOps 大解析—CI/CD 原來可以這樣做
GitLab Auto DevOps 大解析—CI/CD 原來可以這樣做GitLab Auto DevOps 大解析—CI/CD 原來可以這樣做
GitLab Auto DevOps 大解析—CI/CD 原來可以這樣做Chen Cheng-Wei
 
從 GitHub Copilot 到 Enterprise Copilot:打造符合企業需求的智能開發助手之路 | .NET Conf 2023 Taiwan
從 GitHub Copilot 到 Enterprise Copilot:打造符合企業需求的智能開發助手之路 | .NET Conf 2023 Taiwan從 GitHub Copilot 到 Enterprise Copilot:打造符合企業需求的智能開發助手之路 | .NET Conf 2023 Taiwan
從 GitHub Copilot 到 Enterprise Copilot:打造符合企業需求的智能開發助手之路 | .NET Conf 2023 TaiwanAlan Tsai
 
twMVC#24 | 開發團隊的敏捷之路(未完成)
twMVC#24 | 開發團隊的敏捷之路(未完成)twMVC#24 | 開發團隊的敏捷之路(未完成)
twMVC#24 | 開發團隊的敏捷之路(未完成)twMVC
 
A Modern Web Architecture for (GDPR) Compliance
A Modern Web Architecture for (GDPR) ComplianceA Modern Web Architecture for (GDPR) Compliance
A Modern Web Architecture for (GDPR) ComplianceYi-Feng Tzeng
 
漢杰科技 營業秘密保護與鑑識作業 2015
漢杰科技 營業秘密保護與鑑識作業 2015漢杰科技 營業秘密保護與鑑識作業 2015
漢杰科技 營業秘密保護與鑑識作業 2015Steven 陳冶豪
 
twMVC#42 讓我們用一種方式來開發吧
twMVC#42 讓我們用一種方式來開發吧twMVC#42 讓我們用一種方式來開發吧
twMVC#42 讓我們用一種方式來開發吧twMVC
 
從開源軟體的角度來聊聊資安應用 [2023/06/27] @資安五四三
從開源軟體的角度來聊聊資安應用 [2023/06/27] @資安五四三從開源軟體的角度來聊聊資安應用 [2023/06/27] @資安五四三
從開源軟體的角度來聊聊資安應用 [2023/06/27] @資安五四三Jason Cheng
 
Spirent_securityLab-服務介紹_2022.pdf
Spirent_securityLab-服務介紹_2022.pdfSpirent_securityLab-服務介紹_2022.pdf
Spirent_securityLab-服務介紹_2022.pdfssuserdfa916
 
從研發團隊管理及產品發展的角度看 DevOps
從研發團隊管理及產品發展的角度看 DevOps從研發團隊管理及產品發展的角度看 DevOps
從研發團隊管理及產品發展的角度看 DevOpsTIM WANG
 
Service Integration Workshop
Service Integration WorkshopService Integration Workshop
Service Integration WorkshopRyan Chung
 
01 DevOps and Azure DevOps overview
01 DevOps and Azure DevOps overview01 DevOps and Azure DevOps overview
01 DevOps and Azure DevOps overviewAlan Tsai
 
20171013 物聯網網哪走?IoT總體趨勢面面觀
20171013 物聯網網哪走?IoT總體趨勢面面觀20171013 物聯網網哪走?IoT總體趨勢面面觀
20171013 物聯網網哪走?IoT總體趨勢面面觀m12016changTIIMP
 
Google雲端 第一章準備篇
Google雲端 第一章準備篇Google雲端 第一章準備篇
Google雲端 第一章準備篇gracebrainyu
 
20170430 python爬蟲攻防戰-攻防與金融大數據分析班
20170430 python爬蟲攻防戰-攻防與金融大數據分析班20170430 python爬蟲攻防戰-攻防與金融大數據分析班
20170430 python爬蟲攻防戰-攻防與金融大數據分析班Paul Chao
 
Manufacturing on Cloud- Applications and Discussions; 製造在雲端- 漫談智慧雲在製造產業的應用
Manufacturing on Cloud- Applications and Discussions; 製造在雲端- 漫談智慧雲在製造產業的應用Manufacturing on Cloud- Applications and Discussions; 製造在雲端- 漫談智慧雲在製造產業的應用
Manufacturing on Cloud- Applications and Discussions; 製造在雲端- 漫談智慧雲在製造產業的應用Yun-Yao Chen
 

Similaire à 重新想像:如何做技術選型決策 / Rethinking : Technical Decision (20)

在B2B硬體產業運用 Agile 與 DevOps 的實務與心法
在B2B硬體產業運用 Agile 與 DevOps 的實務與心法在B2B硬體產業運用 Agile 與 DevOps 的實務與心法
在B2B硬體產業運用 Agile 與 DevOps 的實務與心法
 
20140610 net tuesday - 行動裝置安全
20140610 net tuesday - 行動裝置安全20140610 net tuesday - 行動裝置安全
20140610 net tuesday - 行動裝置安全
 
聊天機器人概論 Introduce to chat bot sevices
聊天機器人概論 Introduce to chat bot sevices聊天機器人概論 Introduce to chat bot sevices
聊天機器人概論 Introduce to chat bot sevices
 
Conversational AI Orientation
Conversational AI OrientationConversational AI Orientation
Conversational AI Orientation
 
GitLab Auto DevOps 大解析—CI/CD 原來可以這樣做
GitLab Auto DevOps 大解析—CI/CD 原來可以這樣做GitLab Auto DevOps 大解析—CI/CD 原來可以這樣做
GitLab Auto DevOps 大解析—CI/CD 原來可以這樣做
 
從 GitHub Copilot 到 Enterprise Copilot:打造符合企業需求的智能開發助手之路 | .NET Conf 2023 Taiwan
從 GitHub Copilot 到 Enterprise Copilot:打造符合企業需求的智能開發助手之路 | .NET Conf 2023 Taiwan從 GitHub Copilot 到 Enterprise Copilot:打造符合企業需求的智能開發助手之路 | .NET Conf 2023 Taiwan
從 GitHub Copilot 到 Enterprise Copilot:打造符合企業需求的智能開發助手之路 | .NET Conf 2023 Taiwan
 
AI與人資共舞.pdf
AI與人資共舞.pdfAI與人資共舞.pdf
AI與人資共舞.pdf
 
twMVC#24 | 開發團隊的敏捷之路(未完成)
twMVC#24 | 開發團隊的敏捷之路(未完成)twMVC#24 | 開發團隊的敏捷之路(未完成)
twMVC#24 | 開發團隊的敏捷之路(未完成)
 
A Modern Web Architecture for (GDPR) Compliance
A Modern Web Architecture for (GDPR) ComplianceA Modern Web Architecture for (GDPR) Compliance
A Modern Web Architecture for (GDPR) Compliance
 
漢杰科技 營業秘密保護與鑑識作業 2015
漢杰科技 營業秘密保護與鑑識作業 2015漢杰科技 營業秘密保護與鑑識作業 2015
漢杰科技 營業秘密保護與鑑識作業 2015
 
twMVC#42 讓我們用一種方式來開發吧
twMVC#42 讓我們用一種方式來開發吧twMVC#42 讓我們用一種方式來開發吧
twMVC#42 讓我們用一種方式來開發吧
 
從開源軟體的角度來聊聊資安應用 [2023/06/27] @資安五四三
從開源軟體的角度來聊聊資安應用 [2023/06/27] @資安五四三從開源軟體的角度來聊聊資安應用 [2023/06/27] @資安五四三
從開源軟體的角度來聊聊資安應用 [2023/06/27] @資安五四三
 
Spirent_securityLab-服務介紹_2022.pdf
Spirent_securityLab-服務介紹_2022.pdfSpirent_securityLab-服務介紹_2022.pdf
Spirent_securityLab-服務介紹_2022.pdf
 
從研發團隊管理及產品發展的角度看 DevOps
從研發團隊管理及產品發展的角度看 DevOps從研發團隊管理及產品發展的角度看 DevOps
從研發團隊管理及產品發展的角度看 DevOps
 
Service Integration Workshop
Service Integration WorkshopService Integration Workshop
Service Integration Workshop
 
01 DevOps and Azure DevOps overview
01 DevOps and Azure DevOps overview01 DevOps and Azure DevOps overview
01 DevOps and Azure DevOps overview
 
20171013 物聯網網哪走?IoT總體趨勢面面觀
20171013 物聯網網哪走?IoT總體趨勢面面觀20171013 物聯網網哪走?IoT總體趨勢面面觀
20171013 物聯網網哪走?IoT總體趨勢面面觀
 
Google雲端 第一章準備篇
Google雲端 第一章準備篇Google雲端 第一章準備篇
Google雲端 第一章準備篇
 
20170430 python爬蟲攻防戰-攻防與金融大數據分析班
20170430 python爬蟲攻防戰-攻防與金融大數據分析班20170430 python爬蟲攻防戰-攻防與金融大數據分析班
20170430 python爬蟲攻防戰-攻防與金融大數據分析班
 
Manufacturing on Cloud- Applications and Discussions; 製造在雲端- 漫談智慧雲在製造產業的應用
Manufacturing on Cloud- Applications and Discussions; 製造在雲端- 漫談智慧雲在製造產業的應用Manufacturing on Cloud- Applications and Discussions; 製造在雲端- 漫談智慧雲在製造產業的應用
Manufacturing on Cloud- Applications and Discussions; 製造在雲端- 漫談智慧雲在製造產業的應用
 

Plus de Yi-Feng Tzeng

COSCUP 2020 Day 2 - Opening Keynote
COSCUP 2020 Day 2 - Opening KeynoteCOSCUP 2020 Day 2 - Opening Keynote
COSCUP 2020 Day 2 - Opening KeynoteYi-Feng Tzeng
 
COSCUP 2020 Day 1 - Opening Keynote
COSCUP 2020 Day 1 - Opening KeynoteCOSCUP 2020 Day 1 - Opening Keynote
COSCUP 2020 Day 1 - Opening KeynoteYi-Feng Tzeng
 
Severless PHP Case : Agile Dashboard via GitLab Board API
Severless PHP Case : Agile Dashboard via GitLab Board APISeverless PHP Case : Agile Dashboard via GitLab Board API
Severless PHP Case : Agile Dashboard via GitLab Board APIYi-Feng Tzeng
 
給資安工程師開源授權觀念
給資安工程師開源授權觀念給資安工程師開源授權觀念
給資安工程師開源授權觀念Yi-Feng Tzeng
 
Progressive Deployment & NoDeploy
Progressive Deployment & NoDeployProgressive Deployment & NoDeploy
Progressive Deployment & NoDeployYi-Feng Tzeng
 
Dev(Sec)Ops - Architecture for Security and Compliance
Dev(Sec)Ops - Architecture for Security and ComplianceDev(Sec)Ops - Architecture for Security and Compliance
Dev(Sec)Ops - Architecture for Security and ComplianceYi-Feng Tzeng
 
擁抱開源:企業應如何善用開源技術,才能得其利而防其弊
擁抱開源:企業應如何善用開源技術,才能得其利而防其弊擁抱開源:企業應如何善用開源技術,才能得其利而防其弊
擁抱開源:企業應如何善用開源技術,才能得其利而防其弊Yi-Feng Tzeng
 
淺談量子機器學習 - 當機器學習遇見量子計算
淺談量子機器學習 - 當機器學習遇見量子計算淺談量子機器學習 - 當機器學習遇見量子計算
淺談量子機器學習 - 當機器學習遇見量子計算Yi-Feng Tzeng
 
量子技術 (2018 03-31)
量子技術 (2018 03-31)量子技術 (2018 03-31)
量子技術 (2018 03-31)Yi-Feng Tzeng
 
邏輯優化的灰色面:針對網頁應用的時序攻擊 (2018臺灣資安大會: 軟體安全論壇)
邏輯優化的灰色面:針對網頁應用的時序攻擊 (2018臺灣資安大會: 軟體安全論壇)邏輯優化的灰色面:針對網頁應用的時序攻擊 (2018臺灣資安大會: 軟體安全論壇)
邏輯優化的灰色面:針對網頁應用的時序攻擊 (2018臺灣資安大會: 軟體安全論壇)Yi-Feng Tzeng
 
Modern Web Architecture Design Journey
Modern Web Architecture Design JourneyModern Web Architecture Design Journey
Modern Web Architecture Design JourneyYi-Feng Tzeng
 
善用 MySQL 及 PostgreSQL - RDBMS 的逆襲 - part1
善用 MySQL 及 PostgreSQL - RDBMS 的逆襲 - part1善用 MySQL 及 PostgreSQL - RDBMS 的逆襲 - part1
善用 MySQL 及 PostgreSQL - RDBMS 的逆襲 - part1Yi-Feng Tzeng
 
恰如其分的 MySQL 設計技巧 [Modern Web 2016]
恰如其分的 MySQL 設計技巧 [Modern Web 2016]恰如其分的 MySQL 設計技巧 [Modern Web 2016]
恰如其分的 MySQL 設計技巧 [Modern Web 2016]Yi-Feng Tzeng
 
談 Uber 從 PostgreSQL 轉用 MySQL 的技術爭議
談 Uber 從 PostgreSQL 轉用 MySQL 的技術爭議談 Uber 從 PostgreSQL 轉用 MySQL 的技術爭議
談 Uber 從 PostgreSQL 轉用 MySQL 的技術爭議Yi-Feng Tzeng
 
資料庫索引數據結構及主鍵設計(b+tree)(part 1)
資料庫索引數據結構及主鍵設計(b+tree)(part 1)資料庫索引數據結構及主鍵設計(b+tree)(part 1)
資料庫索引數據結構及主鍵設計(b+tree)(part 1)Yi-Feng Tzeng
 
軟體接案自由職業者 (Freelancer) 意想不到的風險
軟體接案自由職業者 (Freelancer) 意想不到的風險軟體接案自由職業者 (Freelancer) 意想不到的風險
軟體接案自由職業者 (Freelancer) 意想不到的風險Yi-Feng Tzeng
 
Enterprise Architecture Case in PHP (MUZIK Online)
Enterprise Architecture Case in PHP (MUZIK Online)Enterprise Architecture Case in PHP (MUZIK Online)
Enterprise Architecture Case in PHP (MUZIK Online)Yi-Feng Tzeng
 
Redis, another step on the road
Redis, another step on the roadRedis, another step on the road
Redis, another step on the roadYi-Feng Tzeng
 
淺入淺出 MySQL & PostgreSQL
淺入淺出 MySQL & PostgreSQL淺入淺出 MySQL & PostgreSQL
淺入淺出 MySQL & PostgreSQLYi-Feng Tzeng
 

Plus de Yi-Feng Tzeng (20)

COSCUP 2020 Day 2 - Opening Keynote
COSCUP 2020 Day 2 - Opening KeynoteCOSCUP 2020 Day 2 - Opening Keynote
COSCUP 2020 Day 2 - Opening Keynote
 
COSCUP 2020 Day 1 - Opening Keynote
COSCUP 2020 Day 1 - Opening KeynoteCOSCUP 2020 Day 1 - Opening Keynote
COSCUP 2020 Day 1 - Opening Keynote
 
Severless PHP Case : Agile Dashboard via GitLab Board API
Severless PHP Case : Agile Dashboard via GitLab Board APISeverless PHP Case : Agile Dashboard via GitLab Board API
Severless PHP Case : Agile Dashboard via GitLab Board API
 
給資安工程師開源授權觀念
給資安工程師開源授權觀念給資安工程師開源授權觀念
給資安工程師開源授權觀念
 
Progressive Deployment & NoDeploy
Progressive Deployment & NoDeployProgressive Deployment & NoDeploy
Progressive Deployment & NoDeploy
 
Dev(Sec)Ops - Architecture for Security and Compliance
Dev(Sec)Ops - Architecture for Security and ComplianceDev(Sec)Ops - Architecture for Security and Compliance
Dev(Sec)Ops - Architecture for Security and Compliance
 
擁抱開源:企業應如何善用開源技術,才能得其利而防其弊
擁抱開源:企業應如何善用開源技術,才能得其利而防其弊擁抱開源:企業應如何善用開源技術,才能得其利而防其弊
擁抱開源:企業應如何善用開源技術,才能得其利而防其弊
 
淺談量子機器學習 - 當機器學習遇見量子計算
淺談量子機器學習 - 當機器學習遇見量子計算淺談量子機器學習 - 當機器學習遇見量子計算
淺談量子機器學習 - 當機器學習遇見量子計算
 
量子技術 (2018 03-31)
量子技術 (2018 03-31)量子技術 (2018 03-31)
量子技術 (2018 03-31)
 
Swoole Love PHP
Swoole Love PHPSwoole Love PHP
Swoole Love PHP
 
邏輯優化的灰色面:針對網頁應用的時序攻擊 (2018臺灣資安大會: 軟體安全論壇)
邏輯優化的灰色面:針對網頁應用的時序攻擊 (2018臺灣資安大會: 軟體安全論壇)邏輯優化的灰色面:針對網頁應用的時序攻擊 (2018臺灣資安大會: 軟體安全論壇)
邏輯優化的灰色面:針對網頁應用的時序攻擊 (2018臺灣資安大會: 軟體安全論壇)
 
Modern Web Architecture Design Journey
Modern Web Architecture Design JourneyModern Web Architecture Design Journey
Modern Web Architecture Design Journey
 
善用 MySQL 及 PostgreSQL - RDBMS 的逆襲 - part1
善用 MySQL 及 PostgreSQL - RDBMS 的逆襲 - part1善用 MySQL 及 PostgreSQL - RDBMS 的逆襲 - part1
善用 MySQL 及 PostgreSQL - RDBMS 的逆襲 - part1
 
恰如其分的 MySQL 設計技巧 [Modern Web 2016]
恰如其分的 MySQL 設計技巧 [Modern Web 2016]恰如其分的 MySQL 設計技巧 [Modern Web 2016]
恰如其分的 MySQL 設計技巧 [Modern Web 2016]
 
談 Uber 從 PostgreSQL 轉用 MySQL 的技術爭議
談 Uber 從 PostgreSQL 轉用 MySQL 的技術爭議談 Uber 從 PostgreSQL 轉用 MySQL 的技術爭議
談 Uber 從 PostgreSQL 轉用 MySQL 的技術爭議
 
資料庫索引數據結構及主鍵設計(b+tree)(part 1)
資料庫索引數據結構及主鍵設計(b+tree)(part 1)資料庫索引數據結構及主鍵設計(b+tree)(part 1)
資料庫索引數據結構及主鍵設計(b+tree)(part 1)
 
軟體接案自由職業者 (Freelancer) 意想不到的風險
軟體接案自由職業者 (Freelancer) 意想不到的風險軟體接案自由職業者 (Freelancer) 意想不到的風險
軟體接案自由職業者 (Freelancer) 意想不到的風險
 
Enterprise Architecture Case in PHP (MUZIK Online)
Enterprise Architecture Case in PHP (MUZIK Online)Enterprise Architecture Case in PHP (MUZIK Online)
Enterprise Architecture Case in PHP (MUZIK Online)
 
Redis, another step on the road
Redis, another step on the roadRedis, another step on the road
Redis, another step on the road
 
淺入淺出 MySQL & PostgreSQL
淺入淺出 MySQL & PostgreSQL淺入淺出 MySQL & PostgreSQL
淺入淺出 MySQL & PostgreSQL
 

重新想像:如何做技術選型決策 / Rethinking : Technical Decision