SlideShare ist ein Scribd-Unternehmen logo
1 von 47
Downloaden Sie, um offline zu lesen
微服務導入趨勢
Server Director @ Gogolook
葉秉哲 
System Dynamics Model of Microservices Adoption
http://www.gartner.com/smarterwithgartner/top-10-technology-trends-impacting-infrastructure-operations/
http://www.gartner.com/smarterwithgartner/top-10-technology-trends-impacting-infrastructure-operations/
結論/
Microservices 很夯!
2015 2016
2016 2017
Hardware
Communication
App platform
Microservices Domain-driven design
DevOps:

Jenkins, GitLab, ELK, Prometheus…
Service infra:

ZooKeeper, etcd, Consul, Kafka…
Server infra:

Ansible, Docker, Kubernetes, Mesos, OpenStack, db…
Microservice ecosystem: 4-layer model
model around business concepts
adopt a culture of automation
hide internal implementation details
decentralize all the things
deploy independently
isolate failure
highly observable
Domain-driven design
CI/CD: Jenkins, GitLab, Docker ecosystem…
API-first design: RAML, Swagger…
DevOps: Ansible, Docker, Kubernetes…
Async choreography: ZooKeeper, etcd, Kafka…
Anti-fragility: Akka, Netflix OSS…
Monitoring: Prometheus, ELK…
⼤大秘寶

One Piece
疑點/
很多⼈人嘗試導入 Microservices,
卻失敗了了?
我的切入點/
System Dynamics Model of Microservices Adoption
意外的敵⼈人
Accidental Adversaries
捨本逐末
Shifting the Burden
Dev velocity
Need for improving
architecture
Size of a single
service instance
Stability
Actions to increase
operations efficiency
# services
Need for proper
coordination
Actions to
split services
Actions to
enhance
anti-fragility
Desire to take
fundamental
solutions
# unplanned work
Operation
complexity
Actions to
merge services
Near-
sightedness
意外的敵⼈人
Accidental Adversaries
捨本逐末
Shifting the Burden
Dev velocity
Need for improving
architecture
Size of a single
service instance
Stability
Actions to increase
operations efficiency
# services
Need for proper
coordination
Actions to
split services
Actions to
enhance
anti-fragility
Desire to take
fundamental
solutions
# unplanned work
Operation
complexity
Actions to
merge services
Near-
sightedness
Let’s Begin!
Dev velocity
Need for improving
architecture
Size of a single
service instance
Actions to
split services
平衡迴路路;
穩定均衡態
Dev velocity
Need for improving
architecture
Size of a single
service instance
Stability
# services
Need for proper
coordination
Operation
complexity
Actions to
merge services
Actions to
split services
平衡迴路路;
穩定均衡態
Dev velocity
Need for improving
architecture
Size of a single
service instance
Stability
# services
Need for proper
coordination
Actions to
split services
Operation
complexity
Actions to
merge services
雙・穩定均衡態?
Dev velocity
Need for improving
architecture
Size of a single
service instance
Stability
# services
Need for proper
coordination
Actions to
split services
Operation
complexity
Actions to
merge services
Dev velocity
Need for improving
architecture
Size of a single
service instance
Stability
# services
Need for proper
coordination
Actions to
split services
Operation
complexity
Actions to
merge services
Dev velocity
Need for improving
architecture
Size of a single
service instance
Stability
# services
Need for proper
coordination
Actions to
split services
Operation
complexity
Actions to
merge services
滾雪球迴路路;
正增強 or 負增強
Dev velocity
Need for improving
architecture
Size of a single
service instance
Stability
# services
Need for proper
coordination
Actions to
split services
Operation
complexity
Actions to
merge services
Dev velocity
Need for improving
architecture
Size of a single
service instance
Stability
# services
Need for proper
coordination
Actions to
split services
Operation
complexity
Actions to
merge services
意外的敵⼈人
Accidental Adversaries
Stability
# services
Need for proper
coordination
Operation
complexity
Actions to
merge services
Stability
# services
Need for proper
coordination
Actions to
enhance
anti-fragility
Operation
complexity
Actions to
merge services
model around business concepts
adopt a culture of automation
hide internal implementation details
decentralize all the things
deploy independently
isolate failure
highly observable
林林⼦子裡有兩兩條分歧的路路,⽽而我⋯⋯
Stability
Actions to
enhance
anti-fragility
Actions to
merge services
?Two roads diverged in a wood, and I…
Stability
# services
Need for proper
coordination
Actions to
enhance
anti-fragility
Desire to take
fundamental
solutions
Operation
complexity
Actions to
merge services
Near-
sightedness
Stability
Actions to
enhance
anti-fragility
Desire to take
fundamental
solutions
Actions to
merge services
Near-
sightedness
Stability
# services
Need for proper
coordination
Actions to
enhance
anti-fragility
Desire to take
fundamental
solutions
Operation
complexity
Actions to
merge services
Near-
sightedness
# services
Need for proper
coordination
Desire to take
fundamental
solutions
Operation
complexity
Actions to
merge services
Near-
sightedness
Stability
Actions to
enhance
anti-fragility
捨本
# services
Need for proper
coordination
Desire to take
fundamental
solutions
Operation
complexity
Actions to
merge services
Near-
sightedness
Stability
Actions to
enhance
anti-fragility
model around business concepts
adopt a culture of automation
hide internal implementation details
decentralize all the things
deploy independently
isolate failure
highly observable
Domain-driven design
CI/CD: Jenkins, GitLab, Docker ecosystem…
API-first design: RAML, Swagger…
DevOps: Ansible, Docker, Kubernetes…
Async choreography: ZooKeeper, etcd, Kafka…
Anti-fragility: Akka, Netflix OSS…
Monitoring: Prometheus, ELK…
撇
開
microsevices 不
論
,
試
問
:
這
些
是
本
來來
就
該
做
的
嗎
?
本?
Actions to
enhance
anti-fragility
Desire to take
fundamental
solutions
Near-
sightedness
逐末
Stability
# services
Need for proper
coordination
Operation
complexity
Actions to
merge services
# services
Need for proper
coordination
Operation
complexity
Stability
Actions to
enhance
anti-fragility
Desire to take
fundamental
solutions
Actions to
merge services
Near-
sightedness
耽溺
Stability
# services
Need for proper
coordination
Actions to
enhance
anti-fragility
Desire to take
fundamental
solutions
Operation
complexity
Actions to
merge services
Near-
sightedness
逐末
捨本
耽溺
Stability
# services
Need for proper
coordination
Actions to
enhance
anti-fragility
Desire to take
fundamental
solutions
Operation
complexity
Actions to
merge services
Near-
sightedness
捨本逐末
Shifting the Burden
Dev velocity
Need for improving
architecture
Size of a single
service instance
Stability
# services
Need for proper
coordination
Actions to
split services
Actions to
enhance
anti-fragility
Desire to take
fundamental
solutions
Operation
complexity
Actions to
merge services
Near-
sightedness
Dev velocity
Need for improving
architecture
Size of a single
service instance
Stability
# services
Need for proper
coordination
Actions to
split services
Actions to
enhance
anti-fragility
Desire to take
fundamental
solutions
Operation
complexity
Actions to
merge services
Near-
sightedness
意外的敵⼈人
Accidental Adversaries
捨本逐末
Shifting the Burden
Desire to take
fundamental
solutions
Near-
sightedness
Actions to
merge services
Dev velocity
Need for improving
architecture
Size of a single
service instance
Stability
# services
Need for proper
coordination
Actions to
split services
Actions to
enhance
anti-fragility
Operation
complexity
捨本逐末
Shifting the Burden
Dev velocity Stability
Actions to increase
operations efficiency
# unplanned work
意外的敵⼈人
Accidental Adversaries
Desire to take
fundamental
solutions
Near-
sightedness
Actions to
merge services
Dev velocity
Need for improving
architecture
Size of a single
service instance
Stability
Actions to increase
operations efficiency
# services
Need for proper
coordination
Actions to
split services
Actions to
enhance
anti-fragility
# unplanned work
Operation
complexity
總結
⼤大秘寶

One Piece
意外的敵⼈人
Accidental Adversaries
捨本逐末
Shifting the Burden
嘗試導入前,請先做些系統思考
Dev velocity
Need for improving
architecture
Size of a single
service instance
Stability
# services
Need for proper
coordination
Actions to
split services
Actions to
enhance
anti-fragility
Desire to take
fundamental
solutions
Operation
complexity
Actions to
merge services
Near-
sightedness
意外的敵⼈人
Accidental Adversaries
捨本逐末
Shifting the Burden
知道何時該堅持,何時該妥協,
以及為何妥協。
http://DevOpsTW.club

Weitere ähnliche Inhalte

Mehr von William Yeh

當 .NET 遇到 Kubernetes (When .NET meets Kubernetes)
當 .NET 遇到 Kubernetes (When .NET meets Kubernetes)當 .NET 遇到 Kubernetes (When .NET meets Kubernetes)
當 .NET 遇到 Kubernetes (When .NET meets Kubernetes)William Yeh
 
為了精準估算,你必須付出什麼代價?
為了精準估算,你必須付出什麼代價?為了精準估算,你必須付出什麼代價?
為了精準估算,你必須付出什麼代價?William Yeh
 
從限制理論角度談敏捷導入階段 (Agile transition: a TOC perspective)
從限制理論角度談敏捷導入階段 (Agile transition: a TOC perspective)從限制理論角度談敏捷導入階段 (Agile transition: a TOC perspective)
從限制理論角度談敏捷導入階段 (Agile transition: a TOC perspective)William Yeh
 
從系統思考看 DevOps:以 microservices 為例 (DevOps: a system dynamics perspective)
從系統思考看 DevOps:以 microservices 為例 (DevOps: a system dynamics perspective)從系統思考看 DevOps:以 microservices 為例 (DevOps: a system dynamics perspective)
從系統思考看 DevOps:以 microservices 為例 (DevOps: a system dynamics perspective)William Yeh
 
DevOps to Agile 敏捷轉型經驗  (From DevOps to Agile: Transformation Experience of G...
DevOps to Agile 敏捷轉型經驗  (From DevOps to Agile: Transformation Experience of G...DevOps to Agile 敏捷轉型經驗  (From DevOps to Agile: Transformation Experience of G...
DevOps to Agile 敏捷轉型經驗  (From DevOps to Agile: Transformation Experience of G...William Yeh
 
軟體雲端化的要素 (Elements of Cloud-Native Apps)
軟體雲端化的要素 (Elements of Cloud-Native Apps)軟體雲端化的要素 (Elements of Cloud-Native Apps)
軟體雲端化的要素 (Elements of Cloud-Native Apps)William Yeh
 
瓶頸處理九大原則 (精簡版)
瓶頸處理九大原則 (精簡版)瓶頸處理九大原則 (精簡版)
瓶頸處理九大原則 (精簡版)William Yeh
 
Docker 導入:障礙與對策
Docker 導入:障礙與對策Docker 導入:障礙與對策
Docker 導入:障礙與對策William Yeh
 
Monitoring 改造計畫:流程觀點
Monitoring 改造計畫:流程觀點Monitoring 改造計畫:流程觀點
Monitoring 改造計畫:流程觀點William Yeh
 
從限制理論看 DevOps
從限制理論看 DevOps從限制理論看 DevOps
從限制理論看 DevOpsWilliam Yeh
 
有了 Agile,為什麼還要有 DevOps?
有了 Agile,為什麼還要有 DevOps?有了 Agile,為什麼還要有 DevOps?
有了 Agile,為什麼還要有 DevOps?William Yeh
 
Docker 對傳統 DevOps 工具鏈的衝擊 (Docker's Impact on traditional DevOps toolchain)
Docker 對傳統 DevOps 工具鏈的衝擊 (Docker's Impact on traditional DevOps toolchain)Docker 對傳統 DevOps 工具鏈的衝擊 (Docker's Impact on traditional DevOps toolchain)
Docker 對傳統 DevOps 工具鏈的衝擊 (Docker's Impact on traditional DevOps toolchain)William Yeh
 
Immutable infrastructure:觀念與實作 (建議)
Immutable infrastructure:觀念與實作 (建議)Immutable infrastructure:觀念與實作 (建議)
Immutable infrastructure:觀念與實作 (建議)William Yeh
 
Ansible 實戰:top down 觀點
Ansible 實戰:top down 觀點Ansible 實戰:top down 觀點
Ansible 實戰:top down 觀點William Yeh
 
Whoscall 的 Realtime Monitoring 經驗分享
Whoscall 的 Realtime Monitoring 經驗分享Whoscall 的 Realtime Monitoring 經驗分享
Whoscall 的 Realtime Monitoring 經驗分享William Yeh
 
A gentle introduction to Ansible
A gentle introduction to AnsibleA gentle introduction to Ansible
A gentle introduction to AnsibleWilliam Yeh
 
12 Factor App from Docker's Point of View
12 Factor App from Docker's Point of View12 Factor App from Docker's Point of View
12 Factor App from Docker's Point of ViewWilliam Yeh
 
On MongoDB backup
On MongoDB backupOn MongoDB backup
On MongoDB backupWilliam Yeh
 
State machine 應用簡介(兼談 UML 2)
State machine 應用簡介(兼談 UML 2)State machine 應用簡介(兼談 UML 2)
State machine 應用簡介(兼談 UML 2)William Yeh
 

Mehr von William Yeh (19)

當 .NET 遇到 Kubernetes (When .NET meets Kubernetes)
當 .NET 遇到 Kubernetes (When .NET meets Kubernetes)當 .NET 遇到 Kubernetes (When .NET meets Kubernetes)
當 .NET 遇到 Kubernetes (When .NET meets Kubernetes)
 
為了精準估算,你必須付出什麼代價?
為了精準估算,你必須付出什麼代價?為了精準估算,你必須付出什麼代價?
為了精準估算,你必須付出什麼代價?
 
從限制理論角度談敏捷導入階段 (Agile transition: a TOC perspective)
從限制理論角度談敏捷導入階段 (Agile transition: a TOC perspective)從限制理論角度談敏捷導入階段 (Agile transition: a TOC perspective)
從限制理論角度談敏捷導入階段 (Agile transition: a TOC perspective)
 
從系統思考看 DevOps:以 microservices 為例 (DevOps: a system dynamics perspective)
從系統思考看 DevOps:以 microservices 為例 (DevOps: a system dynamics perspective)從系統思考看 DevOps:以 microservices 為例 (DevOps: a system dynamics perspective)
從系統思考看 DevOps:以 microservices 為例 (DevOps: a system dynamics perspective)
 
DevOps to Agile 敏捷轉型經驗  (From DevOps to Agile: Transformation Experience of G...
DevOps to Agile 敏捷轉型經驗  (From DevOps to Agile: Transformation Experience of G...DevOps to Agile 敏捷轉型經驗  (From DevOps to Agile: Transformation Experience of G...
DevOps to Agile 敏捷轉型經驗  (From DevOps to Agile: Transformation Experience of G...
 
軟體雲端化的要素 (Elements of Cloud-Native Apps)
軟體雲端化的要素 (Elements of Cloud-Native Apps)軟體雲端化的要素 (Elements of Cloud-Native Apps)
軟體雲端化的要素 (Elements of Cloud-Native Apps)
 
瓶頸處理九大原則 (精簡版)
瓶頸處理九大原則 (精簡版)瓶頸處理九大原則 (精簡版)
瓶頸處理九大原則 (精簡版)
 
Docker 導入:障礙與對策
Docker 導入:障礙與對策Docker 導入:障礙與對策
Docker 導入:障礙與對策
 
Monitoring 改造計畫:流程觀點
Monitoring 改造計畫:流程觀點Monitoring 改造計畫:流程觀點
Monitoring 改造計畫:流程觀點
 
從限制理論看 DevOps
從限制理論看 DevOps從限制理論看 DevOps
從限制理論看 DevOps
 
有了 Agile,為什麼還要有 DevOps?
有了 Agile,為什麼還要有 DevOps?有了 Agile,為什麼還要有 DevOps?
有了 Agile,為什麼還要有 DevOps?
 
Docker 對傳統 DevOps 工具鏈的衝擊 (Docker's Impact on traditional DevOps toolchain)
Docker 對傳統 DevOps 工具鏈的衝擊 (Docker's Impact on traditional DevOps toolchain)Docker 對傳統 DevOps 工具鏈的衝擊 (Docker's Impact on traditional DevOps toolchain)
Docker 對傳統 DevOps 工具鏈的衝擊 (Docker's Impact on traditional DevOps toolchain)
 
Immutable infrastructure:觀念與實作 (建議)
Immutable infrastructure:觀念與實作 (建議)Immutable infrastructure:觀念與實作 (建議)
Immutable infrastructure:觀念與實作 (建議)
 
Ansible 實戰:top down 觀點
Ansible 實戰:top down 觀點Ansible 實戰:top down 觀點
Ansible 實戰:top down 觀點
 
Whoscall 的 Realtime Monitoring 經驗分享
Whoscall 的 Realtime Monitoring 經驗分享Whoscall 的 Realtime Monitoring 經驗分享
Whoscall 的 Realtime Monitoring 經驗分享
 
A gentle introduction to Ansible
A gentle introduction to AnsibleA gentle introduction to Ansible
A gentle introduction to Ansible
 
12 Factor App from Docker's Point of View
12 Factor App from Docker's Point of View12 Factor App from Docker's Point of View
12 Factor App from Docker's Point of View
 
On MongoDB backup
On MongoDB backupOn MongoDB backup
On MongoDB backup
 
State machine 應用簡介(兼談 UML 2)
State machine 應用簡介(兼談 UML 2)State machine 應用簡介(兼談 UML 2)
State machine 應用簡介(兼談 UML 2)
 

Kürzlich hochgeladen

英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identityteam-WIBU
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...Akihiro Suda
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
How To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTROHow To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTROmotivationalword821
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 

Kürzlich hochgeladen (20)

英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identity
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
How To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTROHow To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTRO
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 

微服務導入趨勢 (System Dynamics Model of Microservices Adoption)

  • 1. 微服務導入趨勢 Server Director @ Gogolook 葉秉哲  System Dynamics Model of Microservices Adoption
  • 7. Hardware Communication App platform Microservices Domain-driven design DevOps: Jenkins, GitLab, ELK, Prometheus… Service infra: ZooKeeper, etcd, Consul, Kafka… Server infra: Ansible, Docker, Kubernetes, Mesos, OpenStack, db… Microservice ecosystem: 4-layer model
  • 8. model around business concepts adopt a culture of automation hide internal implementation details decentralize all the things deploy independently isolate failure highly observable Domain-driven design CI/CD: Jenkins, GitLab, Docker ecosystem… API-first design: RAML, Swagger… DevOps: Ansible, Docker, Kubernetes… Async choreography: ZooKeeper, etcd, Kafka… Anti-fragility: Akka, Netflix OSS… Monitoring: Prometheus, ELK…
  • 11. 我的切入點/ System Dynamics Model of Microservices Adoption
  • 13. Dev velocity Need for improving architecture Size of a single service instance Stability Actions to increase operations efficiency # services Need for proper coordination Actions to split services Actions to enhance anti-fragility Desire to take fundamental solutions # unplanned work Operation complexity Actions to merge services Near- sightedness 意外的敵⼈人 Accidental Adversaries 捨本逐末 Shifting the Burden
  • 14. Dev velocity Need for improving architecture Size of a single service instance Stability Actions to increase operations efficiency # services Need for proper coordination Actions to split services Actions to enhance anti-fragility Desire to take fundamental solutions # unplanned work Operation complexity Actions to merge services Near- sightedness Let’s Begin!
  • 15. Dev velocity Need for improving architecture Size of a single service instance Actions to split services 平衡迴路路; 穩定均衡態
  • 16. Dev velocity Need for improving architecture Size of a single service instance Stability # services Need for proper coordination Operation complexity Actions to merge services Actions to split services 平衡迴路路; 穩定均衡態
  • 17. Dev velocity Need for improving architecture Size of a single service instance Stability # services Need for proper coordination Actions to split services Operation complexity Actions to merge services 雙・穩定均衡態?
  • 18. Dev velocity Need for improving architecture Size of a single service instance Stability # services Need for proper coordination Actions to split services Operation complexity Actions to merge services
  • 19. Dev velocity Need for improving architecture Size of a single service instance Stability # services Need for proper coordination Actions to split services Operation complexity Actions to merge services
  • 20. Dev velocity Need for improving architecture Size of a single service instance Stability # services Need for proper coordination Actions to split services Operation complexity Actions to merge services 滾雪球迴路路; 正增強 or 負增強
  • 21. Dev velocity Need for improving architecture Size of a single service instance Stability # services Need for proper coordination Actions to split services Operation complexity Actions to merge services
  • 22. Dev velocity Need for improving architecture Size of a single service instance Stability # services Need for proper coordination Actions to split services Operation complexity Actions to merge services 意外的敵⼈人 Accidental Adversaries
  • 23. Stability # services Need for proper coordination Operation complexity Actions to merge services
  • 24. Stability # services Need for proper coordination Actions to enhance anti-fragility Operation complexity Actions to merge services model around business concepts adopt a culture of automation hide internal implementation details decentralize all the things deploy independently isolate failure highly observable
  • 26. Stability # services Need for proper coordination Actions to enhance anti-fragility Desire to take fundamental solutions Operation complexity Actions to merge services Near- sightedness
  • 27. Stability Actions to enhance anti-fragility Desire to take fundamental solutions Actions to merge services Near- sightedness
  • 28. Stability # services Need for proper coordination Actions to enhance anti-fragility Desire to take fundamental solutions Operation complexity Actions to merge services Near- sightedness
  • 29. # services Need for proper coordination Desire to take fundamental solutions Operation complexity Actions to merge services Near- sightedness Stability Actions to enhance anti-fragility 捨本
  • 30. # services Need for proper coordination Desire to take fundamental solutions Operation complexity Actions to merge services Near- sightedness Stability Actions to enhance anti-fragility model around business concepts adopt a culture of automation hide internal implementation details decentralize all the things deploy independently isolate failure highly observable Domain-driven design CI/CD: Jenkins, GitLab, Docker ecosystem… API-first design: RAML, Swagger… DevOps: Ansible, Docker, Kubernetes… Async choreography: ZooKeeper, etcd, Kafka… Anti-fragility: Akka, Netflix OSS… Monitoring: Prometheus, ELK… 撇 開 microsevices 不 論 , 試 問 : 這 些 是 本 來來 就 該 做 的 嗎 ? 本?
  • 31. Actions to enhance anti-fragility Desire to take fundamental solutions Near- sightedness 逐末 Stability # services Need for proper coordination Operation complexity Actions to merge services
  • 32. # services Need for proper coordination Operation complexity Stability Actions to enhance anti-fragility Desire to take fundamental solutions Actions to merge services Near- sightedness 耽溺
  • 33. Stability # services Need for proper coordination Actions to enhance anti-fragility Desire to take fundamental solutions Operation complexity Actions to merge services Near- sightedness 逐末 捨本 耽溺
  • 34. Stability # services Need for proper coordination Actions to enhance anti-fragility Desire to take fundamental solutions Operation complexity Actions to merge services Near- sightedness 捨本逐末 Shifting the Burden
  • 35. Dev velocity Need for improving architecture Size of a single service instance Stability # services Need for proper coordination Actions to split services Actions to enhance anti-fragility Desire to take fundamental solutions Operation complexity Actions to merge services Near- sightedness
  • 36. Dev velocity Need for improving architecture Size of a single service instance Stability # services Need for proper coordination Actions to split services Actions to enhance anti-fragility Desire to take fundamental solutions Operation complexity Actions to merge services Near- sightedness 意外的敵⼈人 Accidental Adversaries 捨本逐末 Shifting the Burden
  • 37. Desire to take fundamental solutions Near- sightedness Actions to merge services Dev velocity Need for improving architecture Size of a single service instance Stability # services Need for proper coordination Actions to split services Actions to enhance anti-fragility Operation complexity 捨本逐末 Shifting the Burden
  • 38. Dev velocity Stability Actions to increase operations efficiency # unplanned work 意外的敵⼈人 Accidental Adversaries
  • 39. Desire to take fundamental solutions Near- sightedness Actions to merge services Dev velocity Need for improving architecture Size of a single service instance Stability Actions to increase operations efficiency # services Need for proper coordination Actions to split services Actions to enhance anti-fragility # unplanned work Operation complexity
  • 42.
  • 43. 意外的敵⼈人 Accidental Adversaries 捨本逐末 Shifting the Burden 嘗試導入前,請先做些系統思考
  • 44. Dev velocity Need for improving architecture Size of a single service instance Stability # services Need for proper coordination Actions to split services Actions to enhance anti-fragility Desire to take fundamental solutions Operation complexity Actions to merge services Near- sightedness 意外的敵⼈人 Accidental Adversaries 捨本逐末 Shifting the Burden
  • 46.