面试笔录

2025-04-27

蚂蚁-算力治理

岗位描述

我们是超级计算技术部-算力治理团队,负责提供支撑全站业务的强大算力服务,算力涵盖但不限于传统的微服务、AI训练与推理、搜索推荐、高性能分布式缓存等多个领域。秉承云原生和Google SRE的先进设计思想与理念,我们致力于构建一个高性能、稳定、经济且绿色的算力生态。我们的重点工作领域涵盖但不限于:

  1. 实施基于基础设施即代码(IaC)和配置驱动的多云管理平台工程
  2. 采用AIOps和SLO驱动的模式,不断优化算力资源的配置和使用效率
  3. 通过数据化运营及智能化探索服务工作的各个方面,包括大模型全生命周期、搜索推荐链路等

团队介绍

  1. 掌握基于K8S的使用范式,管理超过200+集群的控制面,开发并维护规模化观测工具链,提升可观测和应急发现能力。
  2. 参与制定集群生命周期管理与基础设施组件交付的标准,编写SOP,高质量完成对应的基础设施交付。
  3. 参与oncall轮值,并持续打磨应急工具链,确保集群控制面异常状态下能够在分钟级别发现并恢复。
    常见集群问题:Pod Pending、CrashLoopBackOff、APIServer 无响应
    面试题:10分钟内找出 Pod 无法调度原因并提出修复建议
  4. 挖掘集群稳定性异常,设计并建设K8S控制面的高可用和容灾能力,推动架构演进。

职位描述

  1. 熟练掌握Docker、Kubernetes等云原生技术,有大规模集群管理、交付经验者优先
  2. 掌握至少一门编程语言,Golang优先
  3. 对云原生可观测架构有深入实践,具有Prometheus/Grafana/OpenTelemetry等大规模应用经验者优先
    thanos实践总结
  4. 了解AIOps、异常检测算法,有数据分析和优化系统实践经验者优先、主导或维护模型训练及推理服务者优先

一面

一、ArgoCD为什么用lua做脚本引擎,如何做集成的

轻量、高效
Lua 解释器运行效率很高,跟 Python、JavaScript 这种通用脚本语言比,在嵌入式应用场景下,Lua 的速度和内存占用都有优势
易嵌入
gopher-lua 是一个 用纯Go写的 Lua 5.1 VM,不是调用外部Lua解释器,所以非常轻量,也避免了 CGo 依赖问题
安全
Python、JavaScript天生有很多系统调用接口,比如 os, fs, net,除非非常复杂地魔改解释器,否则很难完全关掉用户脚本的危险功能

二、restful API有什么问题

状态管理
状态转移描述能力弱:REST 本质上是无状态的(Stateless),但是很多真实业务,是有状态机的
查询拼接
很多次请求才能拼出一个页面要的完整数据,后面才有 GraphQL 这种“单次查询多个资源”的东西出现
性能劣势
使用gRPC:适合高性能场景,支持流式通信,但依赖 HTTP/2 和协议缓冲区。

三、Umi用什么做状态管理

useModel
基于 React Hooks 的状态管理,适合中小型项目
Dva
整合了 Redux、Redux-Saga 和 Immer,适合复杂异步逻辑

四、Horizon(https://horizoncd.github.io/) 怎么部署helm-chart的

预置了一些模板,用于交付数据库、中间件等服务,如milvus,redis-cluster等,不能随意上传helm chart,避免安全问题

五、告警阈值不合理问题要怎么解决

  1. 统计分位数(如 P99、P95)识别异常,而非依赖绝对值阈值。
  2. 分级告警与渐进式响应
  3. 基于服务等级目标(SLO)设计阈值,而非孤立指标。

六、流程图和时序图有什么区别

  1. 流程图是“怎么做”(How)的蓝图,适合步骤分解。
  2. 时序图是“谁在何时做什么”(Who-When-What)的交互快照,适合系统协作分析。