科技
-
可观测性平台迁移实践:从供应商依赖到自主掌控的经验教训
如何通过一次复杂的大规模可观测性平台迁移,转向内部可观测性平台,获得更好的工具、更一致的数据,并从根本上重塑开发者体验。 可观测性,是指通过指标、日志和链路追踪等数据,了解应用程序的性能与可靠性状态。对任何一家公司的基础设施团队而言,可观测性都是最重要的能力之一。没有一个可靠、成本可控且易于使用的可…
-
SRE 参与模式如何演进:从生产就绪评审 PRR 到 SRE 平台
SRE 参与:做什么、怎么做,以及为什么做 在现代软件工程和服务可靠性建设中,SRE 参与模式决定了一个服务能否更早、更系统地满足生产环境要求。本文将围绕 SRE 参与、生产就绪评审(Production Readiness Review,PRR)、早期参与模型以及 SRE 平台化实践,讨…
-
软件可靠性的代价,是对极致简洁的追求
软件系统本质上是动态的,也因此天然并不稳定。对于 SRE(站点可靠性工程)而言,提升软件可靠性,并不只是增加更多流程、工具或代码,而是持续在系统稳定性、开发敏捷性与架构简洁性之间寻找平衡。本文将从复杂性治理、无用代码清理、极简 API、模块化设计和简化发布等角度,讨论为什么软件简洁性是系统可靠性的前…
-
发布工程:软件构建、自动化发布与持续部署实践
发布工程是软件工程领域中一个相对较新、且发展迅速的分支,核心关注软件的构建、交付、自动化发布和持续部署,可以简要概括为:软件的构建与交付[McN14a]。发布工程师通常需要对源代码管理、编译器、构建配置语言、自动化构建工具、包管理器和安装程序有扎实的理解,虽然他们未必在每个领域都达到专家水平。他们的…
-
Metis:构建下一代数据管理平台,统一元数据、数据治理与数据血缘
Meta Description: 本文介绍某海外住宿平台如何将数据目录升级为下一代数据管理平台 Metis,通过统一元数据服务、数据门户和数据血缘服务,实现大规模数据资产管理、数据治理、数据质量提升和数据仓库可观测性建设。 某海外住宿平台如何将数据目录演进为一个面向大规模数据仓库管理与治理的平台。…
-
使用 Codemod 加速 JavaScript 重构:大规模遗留代码清理实践
Meta Description: 本文介绍如何使用 Codemod 和 jscodeshift 加速 JavaScript 重构,自动化清理遗留代码、统一代码风格,并降低大规模代码迁移中的沟通、审查和合并冲突成本。 在花园里播种、培育并收获作物,固然是一件很有成就感的事。但如果不定期除草,花园迟早…
-
服务 IDL 实践:海外某民宿平台如何扩展 SOA 服务开发能力(第一部分)
本文是“扩展服务开发”系列文章的第一篇,重点介绍支撑海外某民宿平台新一代 SOA 架构的核心基础:服务 IDL。文章将围绕服务接口定义、RPC 客户端生成、Thrift-over-HTTP、强类型 API 和后端服务治理等关键内容展开。 该公司正在加速将基础设施迁移到 SOA(面向服务架构)。然而,…
-
微服务 API 测试实践:海外某民宿平台如何构建模式驱动测试基础设施
本文是“扩展服务开发”系列文章的第四篇,将深入探讨如何为微服务开发构建一套基于模式的 API 测试基础设施。文章将围绕静态 API 模式验证、API 数据工厂、API 模拟框架、API 集成测试框架(AIT)以及 API 测试覆盖率等关键内容展开。 引言 在本系列的第一篇、第二篇和第三篇文章中,我们…
-
大型 iOS 应用生产力设计:构建系统、模块化架构与 Dev App 实践
技术创新与团队流程改进,如何让 iOS 开发者在庞大代码库中依然保持高效。本文以某海外短租平台的大型 iOS 应用为例,介绍其如何通过现代构建系统、模块类型设计和开发应用(Dev App),优化 Xcode 构建体验,提升 iOS 开发效率和代码库可维护性。 每一位 iOS 工程师大概都记得,第一次…
-
SRE 可靠性测试:从传统测试到生产环境测试
站点可靠性工程师(SRE)的一项核心职责,是量化所维护系统的可靠性。可靠性测试是 SRE 提升系统稳定性、降低故障风险、优化 MTTR 与 MTBF 的重要手段。SRE 通常会把传统软件测试技术应用到大规模系统中,以完成这项工作。可靠性既可以从历史角度衡量,也可以从未来角度衡量:前者通过分析监控系统…