网易考拉海购已顺利度过了 2017 年的雙十一、双十二等大促活动销售额达到了 2016 年的四倍。那么在技术架构层面,考拉是如何支持如此快速发展的业务呢网易考拉海购首席架构师谢骋超为您解密《网易云上的第一跨境电商技术架构》。
网易考拉海购首席架构师 谢骋超
和很多互联网业务一样考拉刚开始的架构非常简单,只有线上、线下、管理、后台和缓存服务更多考虑的是实现业务功能,并没有太多的考虑服务拆分、解耦、服务化这些方面因为当时第一要务是把服务上线,很多问题可以后面再改这些功能对于一个从 0 开始的电商平台来说已经够用了。
在刚开始的一段時间里开发主要是满足业务的需要,不停地增加功能、服务后来随着商品、用户越来越多,架构也越来越臃肿业务的需求慢慢也满足不了了,一些大促、秒杀活动高并发的需求也不能满足主要问题是:
- 每个服务耦合了太多的业务逻辑。以线上服务为例前台的商品,下单素材,活动等都在一个工程多个功能被耦合在了一个类,甚至一个方法中
- 并行开发困难不同需求不同分支的功能会经常修改哃一块代码,对多个模块产生影响
- 核心业务与非核心业务耦合在关键时候互相影响。比如后台的通关数据曾经就影响了核心的支付业务;线上的优惠券兑换热点数据问题影响了核心下单业务
于是就开始了对现有架构服务化改造。每个功能指定专门的负责人让具体的功能开发负责具体的模块设计,内部实现对外透明只需要保证接口正确。
当然架构的服务化也是要根据实际业务情况做的。比如跨境电商和传统电商相比在仓储、物流、通关的流程要复杂的多,因此进销存服务被拆分了出来另外,版本的发布越来越多频率越来越快,原来手动发布的方式不仅慢而且容易出错,因此自动部署系统的开发上线就会极大地提高版本发布的效率
经过服务化改造后,虽然仩线次数变多但单次上线的需求减少了,时间缩短了影响面也变小了,风险越来越可控
然而,对于开发来讲最主要的任务还是开發业务系统,支撑业务系统的基础服务虽然也非常重要但是需要投入很大的人力和精力去做。因此考拉开始采用网易云的服务减少重複造轮子的情况。
考拉每天产生的图片和视频有上百 G需要稳定且容易扩展的文件系统,因此使用了网易云的对象存储服务很轻松地解決了海量文件存储的问题。对于数据库考拉采用了网易云的分布式数据库,比起原来的 Oracle 扩展性要好很多
随着业务规模的继续扩大,提供的服务越来越多比如支付、第三方接口、移动端的服务等都独立出来,服务拆分的也越来越细目前已经有上百个服务。这时也开始接入更多网易云的服务例如搜索、反垃圾、消息队列。