德比软件:基于云的微服务架构
作者:朱攀,德比软件架构师,同济大学研究生,2007 年 2 月加入德比软件(DerbySoft),拥有 10 年以上的软件架构和开发经验。目前主要负责公司数据对接平台的架构、基础设施建设、技术团队管理及公司技术的布道。作为德比软件的早期员工,从无到有地主导了德比软件数据对接平台的架构设计和实现,完成了数据对接平台多个版本的架构改进和升级,数据对接平台每天处理的 API 调用从 0 增长到现在的 10 亿多。期间设计实现了很多必要的基础设施和服务,如公司内部的 RPC 框架 DerbySoft-RPC、智能路由服务 Router、分布式数据存储服务 DStorage、网关服务 DGateway 等。目前主要关注基础架构、微服务、大数据存储和技术团队建设。
10.1 概述
微服务概念被提出来以后,短时间内就成了互联网圈的一个技术热点,有很多互联网公司计划或正在进行微服务化改造,那么应该怎么开始实施微服务呢?需要哪些基础设施来支持呢?我所在的公司德比软件从 2009 年就开始采用面向服务架构(SOA)来重新实现数据对接平台,我们积累了丰富的面向服务架构的经验,而微服务架构是面向服务架构思想的一种实现,只是服务职责更单一,粒度更小,过程更自动化。我们在多年的服务化架构实践过程中,已经不自觉地将服务的粒度细化了。本文想分享德比软件在实施微服务架构过程中积累的一些基础设施及这些基础设施解决的痛点问题,希望对大家有所帮助和启发。
10.2 德比软件数据对接平台的架构
数据对接平台的架构大体上分三个层次,如图 10.1 所示,最外面是 API 层,由 API Gateway(网关)和各业务的 API 服务组成;中间层是服务层(Service),平台的大部分功能在这一层实现,服务之间可以通过依赖或组合组成功能更强的服务;底层是数据存储层(Data Storage),由缓存层和存储层组成。数据对接平台采用微服务架构,为了支撑这个架构,我们提供了必要的基础设施来保障上层各个服务和应用的可用性。
10.3 德比软件微服务架构基础设施
如图 10.2 所示,将基础设施分为了八大部分,分别是服务框架、基础服务、API 网关、自动化、服务降级、监控报警(服务健康状态)、日志处理和调用链追踪。其中,
- 服务框架、基础服务、API 网关和服务降级的作用是提高服务的连续工作时间;
- 自动化可以简化开发和部署过程;
- 监控报警、日志处理和调用链追踪可以帮助快速发现问题、定位问题并解决问题。