Mooncake是得物API一站式协作平台。从2022年3月份开始负责Mooncake,到现在已经一年了,回顾这一年,Mooncake大的阶段上,总共经历过两个版本: 1、Mooncake 1.0: 面向前端和客户端的mock平台,主要解决接口调用者的数据mock问题 2、Mooncake 2.0: 面向前后端的,融合了yapi和mock的一站式文档管理平台,从供需两端解决接口文档的流通效率问题
大型系统的本质问题是复杂性问题。互联网软件,是典型的大型系统,如下图所示,数百个甚至更多的微服务相互调用/依赖,组成一个组件数量大、行为复杂、时刻在变动(发布、配置变更)当中的动态的、复杂的系统。而且,软件工程师们常常自嘲,“when things work, nobody knows why”。 本文将重点围绕软件复杂度进行剖析,希望能够帮助读者对软件复杂度成因和度量方式有所了解,同时,结合自身的实践经验谈谈我们在实际的开发工作中如何尽力避免软件复杂性问题。
前言、理论,实践请参考 微博增值团队可观测性探索与实践-初探 、微博增值团队可观测性探索与实践-实践 强烈建议优先阅读。 提前说明一下,本人现在已经从微博离职了,这篇文章算是对我过去两年多关于可观测性相关工作的反思与回顾吧。 截止23年3月末,微博增值团队从上线一站式可观测平台到现在也运行了差不多两年的时间了。在这两年里,团队成员通过一站式可观测平台不断优化和改进服务,提高了整体系统的性能与稳定性(3个9到4个9,tp99 case by case优化,平均下降 100ms),同时降低了问题发现和定位的时间(5分钟发现问题,30分钟内定位问题),从而使开发人员能够更专注于创新和业务发展。
我们知道,若要保证一个系统的稳定运行,那么对于这个系统的监控是不可或缺的环节。当今在云原生领域中,Prometheus 作为已经毕业的 CNCF 项目,已经成为了非常主流的监控和报警工具。但它也存在一些缺点,例如:默认情况下,其数据存储于本地文件的 TSDB 中,不利于容灾和做数据管理,若用于生产一般需要搭配第三方的如 InfulxDB 进行使用。大数据量的场景下,指标的收集和管理性能存在一定的瓶颈。 而我们今天介绍的 VictoriaMetrics 可以认为是 Prometheus 在上述问题上的一个增强版。它不仅能作为时序数据库结合 Prometheus 使用进行指标的长期远程存储,也能单独作为一个监控解决方案对 Prometheus 进行平替。
随着历史业务不断迭代和业务场景越来越复杂,携程用车、租车(简称两车)面临历史技术债和系统复杂度越来越高带来的理解、维护、迭代困难等问题,我们开始寻求如何更有效的降低复杂度和提升效率的方法。 本文描述了两车如何利用DDD(Domain-driven Design,领域驱动设计)方法论降低系统复杂度以及在重构历史系统中的取舍和思考。对于复杂业务场景下的领域驱动设计具有借鉴意义。
目前,美团内部每天产生的慢查询数量已经超过上亿条。如何高效准确地为慢查询推荐缺失的索引来改善其执行性能,是美团数据库研发中心面临的一项挑战。为此,我们与华东师范大学开展了科研合作,在AI领域对索引推荐进行了探索和实践,并将基于代价的方法和新提出的基于AI+数据驱动的方法共同应用于慢查询的索引推荐,成功提升了推荐效果。