注册 / 登录

天下武功唯快不破-微服务实践快速响应瞬息万变的市场

分会场:  架构演进/工程实践/大前端

分享时间: 2017年11月9日 - 12日

案例来源 :

案例讲师

刘晓涛

途牛 研发总监

途牛旅游网笛风平台事业部研发部部门负责人,途牛架构委员会成员,2008年加入途牛,先后参与过多个核心系统的开发,经历过系统数据的爆炸增长、系统架构的迭代升级、研发团队的规模壮大、业务需求的不断增多,并在期间从事系统设计、开发、性能优化、故障解决、代码重构、项目管理等工作。致力于在面对需求多迭代快的残酷现实下,如何保证系统高可用、高性能、易扩展、可伸缩。

扫描二维码分享案例

为什么这个案例值得分享?

随着业务的不断变化和扩张,研发人员经常要面对需求多迭代快的残酷现实,如何在满足业务需要的同时,保障系统质量,提升研发效能,微服务是目前比较流行的一个可选方案。

 

 

案例简述

 

本案例以旅游平台的系统建设为例,介绍当系统要支持一个新的业务时,如何能够快、准、好的实现。
旅游平台的系统建设要面临旅游的业态、形式、目的、内容等元素的复杂性和多样性。我们在系统设计时,使用了微服务架构,并结合实际的业务场景,界定边界,对业务进行抽象,对系统进行切分。不仅涵盖了各种业务场景,而且留出了很多扩展空间,因为旅游的业务变化是非常快的,所以如果第一次上线的系统没有设计好的话,对于后续的开发和维护而言是个很大的灾难,而我们的设计保证了系统上线之后易于维护,并且具备灵活快捷的响应业务需求的能力。除此之外,
我们还引用了相关的组件和框架,保证微服务的效率和质量,确保微服务的稳定运行。

 

案例目标

 

业务的复杂性带来了系统的复杂性,业务的迫切需求和系统的长治久安之间存在着矛盾,当系统越来越复杂之后,对业务的支持往往会变得越来越差,最后面临的就是系统生命周期的结束。而对于研发人员而言,也是事倍功半,工作劳心劳力,产出还不高。我们的目标就是通过像微服务这样的技术手段,更好更高效的支持业务,并且在支持业务的同时,也保障着系统的高质量,和长久稳定的发展。

 

成功(或教训)要点

 

首先我们对业务进行了较好的抽象,运用了微服务“微”的特性,“服务”的精神,对服务进行了切分,最大程度的遵从职责单一的原则,使每个微服务都对应一个唯一的业务。其次我们对微服务不盲目信仰,也不盲目照搬,根据实际需要对微服务做一些灵活个性化的处理。最后我们对微服务做了较好的管理,比如服务部署,服务治理和自动化。

 

案例ROI分析

 

协作方面,微服务在不同的泳道开发,分工明确且互不干扰,协作效率提升大约20%。交付方面,微服务良好的扩展性和复用性,交付周期缩短30%。质量方面,服务治理的隔离、降级等机制,系统故障大幅减少。

 

案例启示

 

技术是为业务服务的,即使是做底层研发,研发成果最终也是为业务服务的,每个研发团队都直接或间接的业务使命和技术价值。如果业务并发高,流量大,那么技术价值就在于高可用,高性能。如果业务多样化,变化快,那么技术价值就在于高抽象,高敏捷。微服务就是实现技术价值的方法之一,对于微服务而言,拆与不拆,怎么拆,拆的边界,拆的粒度,需要理论和实际业务场景相结合,再在实践中不断总结优化,就能最大程度的体现技术价值。

 

案例在团队中的意义

 

随着业务的不断变化和扩张,研发人员经常要面对需求多迭代快的残酷现实,如何在满足业务需要的同时,保障系统质量,提升研发效能,微服务是目前比较流行的一个可选方案。