随着敏捷开发,DevOps开发模式的流行,代码质量分析作为研发质量保证体系的重要组成部分,不仅能有效的降低因频繁迭代带来的故障风险,而且对整个工程团队的效能提升有着巨大的价值。 携程很久以前就已经开始进行DevOps的建设,通过Gitlab CI/CD在开发提交代码触发的流水线pipeline中引入静态扫描、单元测试、集成测试等流程,在开发过程中打造了一套闭环的代码质量保障体系。其中,在静态代码分析阶段引入了SonarQube,并且通过对原有SonarQube代码规范库中的规范进行筛选和扩展,形成了自己的代码规范库。但是在实际应用过程中,我们发现仍然有一些问题需要优化解决: 在开发过程中,代码规范只能通过开发人员自我约束,缺少统一的平台对各应用代码的潜在风险问题统一进行分析,且问题难以定位到开发人员进行治理。 代码单元测试通过率和代码覆盖率都很高,但仍然存在一些在单元测试阶段应被发现的问题未暴露出来,导致上线后出现bug,单元测试用例的质量缺乏有效性及可靠性保证。 随着项目的发展,开发人员为了避免影响已有功能,在开发过程中大量复制粘贴,导致出现很多难以维护的重复代码
近期,我们接管并重构了十多年前的 Query 理解祖传代码,代码量减少80%,性能、稳定性、可观测性都得到大幅度提升。本文将介绍重构过程中系统实现、DIFF修复、coredump 修复等方面的优化经验。
今天下午和一位同学聊Redis集群,这玩意真没那么简单,内容非常多。 Redis Cluster是Redis官方提供的Redis集群功能。
技术永远是在“更新”或“替换”中得到发展。 在大数据行业里,2006 年 Hadoop 的诞生,给我们带来了变革意义的改变,大数据生态组件也开始层出不穷。各种不同体型的企业都喜欢选择开源大数据软件来搭建自己的系统,无论是先前十分繁荣的 Hadoop,还是后来涌现出来的 Kafka、Flink 等,都被广泛地使用着。 十多年来,这些系统经历了多轮技术洗礼,我们也随之需要根据新的技术潮流不断地进行调整甚至做技术转型。以 Hadoop 三大组件来说,计算引擎 MapReduce 基本被 Spark 取代。在数据上云的时代,对象存储也取代了一部分 HDFS 文件系统。近几年,云原生又火了起来,行业里再次开始了对大数据体系的云原生改造,同时 K8s 的流行,也让同为资源管理的 YARN 地位越来越尴尬。 然而,过去的技术体系在很多企业系统里仍发挥着很重要的作用,在技术更新迭代的时候,业务不能随意变动,那么我们在新旧技术共存的条件下,如何发挥新技术的最大潜力?
语音AI是最早从实验室走向应用的AI技术,其发展史就是不断创新、解锁应用的历史,从1995年 Dragon Dictate的桌面孤立词语音识别,到2011年苹果的手机语音助手SIRI,再到当下百花齐放的各种智能语音应用。 由于技术的快速进步,以及各大云计算厂商以API形式提供的语音AI能力,目前开发者已能便捷使用语音AI去搭建应用。但API也存在局限性,不少开发者希望获得更多、更底层的把控力,希望对API背后AI模型有更深入的了解;不只是开发应用,还可以开发模型;不只是调用API接口,还可以通过对模型的训练或微调(fine-tuning),以提升实际应用效果。 为了让所有满怀创意的开发者实现更高水平的创新,在最近推出的魔搭社区ModelScope上,阿里达摩院首批开源开放了40多个语音AI模型,公有云上广受欢迎的付费模型这次也免费开放。模型背后,我们提供了训练或微调脚本工具链,含盖语音AI各个主要方向。 下面,就让我们以语音合成、语音识别、语音信号处理为例,来展示如何玩转魔搭社区的语音AI模型。
这份分步指南将向你展示如何使用 Kubeadm 工具在 Debian 11 上安装 Kubernetes 集群。 Kubernetes(k8s)集群包含主控节点和工作节点,用于运行容器化的应用程序。主控节点作为控制平面,工作节点为实际工作负载提供环境。
大数据时代,数据的来源极其广泛,各种类型的数据在快速产生,数据也是爆发性增长。从数据的产生,通过加工融合流转产生新的数据,到最终消亡,数据之间的关联关系可以称之为数据血缘关系。在数据中台的大背景下,数仓的开发者经常需要解决以下问题: 面对成百上千张的数据表,不知道该如何关联,也不知道这些表具有什么业务价值 执行过长,慢的无法忍受的SQL脚本,却不敢轻易进行整改 数据表是否包含机密数据需要被清理,以及这些机密数据是否被转存导致权限放大 其实,以上的这些问题都可以统一归类为数据发现问题。大部分企业会针对离线数仓任务进行SQL分析,构建表和字段的血缘关系,数据发现包括但不限于: 数据 表/列的业务分类分级和机密字段识别等。
想要获得一个 A/B 实验系统,需要做些什么事情?火山引擎团队会把这些事情分成四个部分。 首先得有一个可靠的实验系统。其次,通过实验系统采集数据,从而观测用户在不同的策略下的反应。再次,采集到数据之后,借助统计学知识,对各组的结果进行分析,以得到正确的实验结论。最后,通过精细的治理和运维,来保证实验始终正常运行。 本篇内容围绕下面五点展开:A/B 实验系统平台概览、灵活的执行组件、高效的数据建设、科学的统计分析、精细的治理运维。