Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

許多人想導入 microservices,卻鍛羽而歸。為什麼?

此演講以系統思考的 causal loop diagram 角度,探討 microservices 常見的導入誤區:意外的敵人 (accidental adversaries) 及捨本逐末 (shifting the burden) ,並根據系統基模角度提出對應的槓桿解。

發表於資策會創新應用服務研究所主辦之【IDEAS Tech 開源雲端軟體應用與技術研討會】, 2017-07-21. http://seminar.ithome.com.tw/live/20170721iii/
(20 minutes)

後續的 1.5 小時完整版,請見 https://school.soft-arch.net/blog/1192576/devops-a-system-dynamics-perspective

  • Login to see the comments

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

  1. 1. 微服務導入趨勢 Server Director @ Gogolook 葉秉哲  System Dynamics Model of Microservices Adoption
  2. 2. http://www.gartner.com/smarterwithgartner/top-10-technology-trends-impacting-infrastructure-operations/
  3. 3. http://www.gartner.com/smarterwithgartner/top-10-technology-trends-impacting-infrastructure-operations/
  4. 4. 結論/ Microservices 很夯!
  5. 5. 2015 2016
  6. 6. 2016 2017
  7. 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. 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…
  9. 9. ⼤大秘寶
 One Piece
  10. 10. 疑點/ 很多⼈人嘗試導入 Microservices, 卻失敗了了?
  11. 11. 我的切入點/ System Dynamics Model of Microservices Adoption
  12. 12. 意外的敵⼈人 Accidental Adversaries 捨本逐末 Shifting the Burden
  13. 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. 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. 15. Dev velocity Need for improving architecture Size of a single service instance Actions to split services 平衡迴路路; 穩定均衡態
  16. 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. 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. 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. 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. 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. 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. 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. 23. Stability # services Need for proper coordination Operation complexity Actions to merge services
  24. 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
  25. 25. 林林⼦子裡有兩兩條分歧的路路,⽽而我⋯⋯ Stability Actions to enhance anti-fragility Actions to merge services ?Two roads diverged in a wood, and I…
  26. 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. 27. Stability Actions to enhance anti-fragility Desire to take fundamental solutions Actions to merge services Near- sightedness
  28. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 38. Dev velocity Stability Actions to increase operations efficiency # unplanned work 意外的敵⼈人 Accidental Adversaries
  39. 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
  40. 40. 總結
  41. 41. ⼤大秘寶
 One Piece
  42. 42. 意外的敵⼈人 Accidental Adversaries 捨本逐末 Shifting the Burden 嘗試導入前,請先做些系統思考
  43. 43. 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
  44. 44. 知道何時該堅持,何時該妥協, 以及為何妥協。
  45. 45. http://DevOpsTW.club

×