微服务:构建持续交付与DevOps架构-陈连平

展开查看详情

1. Microservices: Architecting for Continuous Delivery and DevOps Lianping Chen Independent Researcher and Consultant lianping.chen@outlook.com

2.

3.The world's largest public online betting and gaming company

4. 英文维基百科引用了我对CD的定义 1. Chen, Lianping (2015). “Continuous Delivery: Huge Benefits, but Challenges Too”. IEEE Software. 32 (2): 50–54. www.huawei.com • Huawei Confidential 4 doi:10.1109/MS.2015.27

5.Benefits of CD Source: Lianping Chen, "Continuous Delivery: Huge Benefits, but Challenges Too," IEEE Software, vol. 32, 2015. 在世界持续交付领域引用次数最高的一篇 文章, Cited by 130+ other papers/books, including citations and endorsement from world leaders in the field such as: 软件开发 持续交付 极限编程 精益软件 “教父” 作者 TDD 创始人 开发作者

6. 实施CD是一个系统工程 CD不通 不能自动打服 环境不能 部署需要 无可独立部署服 务独立部署包 自动管理 人工干预 务的安装工具 无自动回滚工具 无灰度发布工具 没有足够Monitoring 架构问题 服务部署 服务不支持 服务不支持 断业务 灰度发布 自动回滚 无法开展充分的 没有足够自动化 本地测试活动 测试保证质量 Flaky tests 需求粒度太大 测试运行时间太长 团队规模太大 其它…… www.huawei.com • Huawei Confidential 6

7. Lack of: Ø Deployability Ø Modifiability Ø Security Ø Loggabilty Ø Monitorability Ø Testability Ø …… Source: Lianping Chen, "Towards Architecting for Continuous Delivery," in Software Architecture (WICSA), 2015, 12th Working IEEE/IFIP Conference on, 2015, pp.131-134.

8.从一个单体大包发布到小粒度微服务独立变更上线

9.Benefits of Microservices

10. Parnas, D.L., On the criteria to be used in decomposing systems into modules. Commun. ACM, 1972. 15(12): p. 1053-1058.

11. No Silver Bullet “Despite the above benefits, Microservices is not a silver bullet. Adopting Microservices introduces new complexities and challenges. Without properly managing them, we can easily run into another problematic situation.” – Lianping Chen. “Microservices: Architecting for Continuous Delivery and DevOps.” IEEE International Conference on Software Architecture. Seattle, USA, 2018.

12.Increased number of services

13.Source: http://www.jamesbowman.me/post/cdlandscape/ContinuousDeliveryToolLandscape.jpeg

14. A microservice technologies timeline Source: Jamshidi, Pooyan, et al. "Microservices: The Journey So Far and Challenges Ahead." IEEE Software 35.3 (2018): 24-35.

15. 1st Generation of Microservice Architecture Source: Jamshidi, Pooyan, et al. "Microservices: The Journey So Far and Challenges Ahead." IEEE Software 35.3 (2018): 24-35.

16. 2nd Generation of Microservice Architecture Source: Jamshidi, Pooyan, et al. "Microservices: The Journey So Far and Challenges Ahead." IEEE Software 35.3 (2018): 24-35.

17. 3rd Generation of Microservice Architecture Source: Jamshidi, Pooyan, et al. "Microservices: The Journey So Far and Challenges Ahead." IEEE Software 35.3 (2018): 24-35.

18. 4th Generation of Microservice Architecture Source: Jamshidi, Pooyan, et al. "Microservices: The Journey So Far and Challenges Ahead." IEEE Software 35.3 (2018): 24-35.

19.Evolving Interactions/Contracts among Services

20.Technology Diversity

21.Testing

22.

23.Testing code is treated the same as production code

24.Troubleshooting

25.Do Microservices Suit Every Situation? • Dealing with these new complexities and challenges can require significant costs. Therefore, if your system is simple enough that it can be comfortably managed as a monolith, it is not “worth the trouble” to use Microservices. • When teams do not have sufficient domain knowledge and experience to get the service boundaries right. • Technical constraints (sub-microsecond latency, strong consistency) • Organizational structure and culture is also an important factor (handoffs between biz, dev, testers, ops).

26.A software system’s architecture is the set of principal design decisions about the system. Trade-Off Rationale

27.References 1. Lianping Chen. “Continuous Delivery: Huge Benefits, but Challenges Too.” IEEE Software 32, no. 2 (2015). One of “Popular” IEEE Software Articles, 134 citations. https://doi.org/ 10.1109/MS.2015.27 2. Lianping Chen. “Continuous Delivery: Overcoming adoption challenges,” Journal of Systems and Software, vol. 128, pp. 72-86, 2017. One of Most Downloaded Journal of Systems and Software Articles. https://doi.org/10.1016/j.jss.2017.02.013 3. Lianping Chen. “Towards Architecting for Continuous Delivery.” In 12th Working IEEE/IFIP Conference on Software Architecture (WICSA 2015). Montreal, Canada: IEEE, 2015. https:// doi.org/10.1109/WICSA.2015.23 4. Lianping Chen. “Microservices: Architecting for Continuous Delivery and DevOps.” IEEE International Conference on Software Architecture. Seattle, USA, 2018. Received 150+ likes from architects abroad. http://bit.ly/2JZsBBE

28.Thank You! ID: lianping_chen