WOT2018沈剑:从58速运看微服务架构的最佳实践
【讲师简介】
58速运CTO 沈剑
58沈剑,互联网架构技术专家,“架构师之路”公众号作者。曾任百度高级工程师,58同城高级架构师,58同城技术委员会主席。15年调至58到家任高级总监,技术委员会主席,负责基础架构,技术平台,运维安全,信息系统等后端技术体系搭建。17年调至58速运任CTO,负责58速运技术体系的搭建。
有利有弊,揭开微服务的真面目
近年来,微服务已经成了一个热门词汇,获得了越来越多的关注。微服务固然有很多优点:通过分解巨大单体式应用为多个服务方法解决了复杂性问题;使每个服务都有专门开发团队来开发;独立部署;易扩展。但微服务也不是任何业务都适用。“任何脱离业务的架构设计都是耍流氓”,沈剑老师一针见血。“如果不了解微服务解决的问题领域,不了解微服务的优缺点,带来的坑可能会高于带来的收益。”
微服务分层拆分后,能够使系统变得清晰,服务职能更加明确,并且可以向服务调用方屏蔽底层的复杂性,消除代码拷贝,提高系统整体稳定性及质量。
但是,微服务架构会使请求调用路径变长,请求耗时也会增加,系统的复杂性和运维的复杂度都会上升,定位问题的难度和周期都会加长。
所以,只有当业务和系统复杂到一定程度,数据量大到一定程度,并发量逐步上升时,使用微服务架构才更为合适。
曾经困扰58速运架构的那些痛处
沈剑老师以58速运为例,深入解释了微服务架构的适用场景。58速运在使用微服务架构之前,系统存在诸多痛点,例如:
1. 频繁的代码拷贝
2. 组件库的版本兼容与耦合
3. 所有调用方都要关注底层系统的复杂度,例如:存储引擎,分库分表,缓存等细节,使研发效率降低
4. 数据库耦合
5. SQL质量低下,数据库性能降低。
微服务架构的实施,大大缓解了上述痛点。
微服务不可避免的问题:耦合
微服务架构虽好,但是如果实施不当,很可能引发系统之间的耦合。耦合,是架构中本来不相干的代码、模块、服务、系统因为某些原因联系在一起,各自独立性差,导致相互影响。如:IP耦合、数据库耦合、服务耦合等。
当系统之间出现了耦合,就需要通过一系列的手段消除耦合。沈剑老师简单例举了几种方式:
1. 服务之间通过IP耦合在一起,可以通过配置中心解除耦合。
2. 数据库之间耦合,可以通过数据库拆分,在数据库上游建立数据访问服务来解除耦合。
3. 有些服务间的耦合,可以通过异步消息来解除耦合。
沈剑老师透露,在WOT2018全球软件与运维技术峰会上,他将在《58速运微服务架构解耦最佳实践》专场,与大家现场交流更多关于消除耦合的技术。
最后,沈剑老师表示,作为技术人,一定要理解透彻一个技术方案到底解决的是什么问题,适用场景是什么,如果一味追求最新的技术,对业务的发展只会是损害。
5 月 18 - 19日,北京•粤财JW万豪酒店,全球最值得关注的IT技术盛宴与您不见不散。2018WOT全球软件与运维技术峰会一定是您发现全新思路、挖掘最新思想、拓展人脉的重要平台。
目前我们的各项票种已全面发售。需要提醒您的是,购票越早,折扣越大!与KOL零距离交流,呈现不一样的“英雄盛宴”!