如何成为一个系统/服务/模块的owner

成为服务owner需要掌握JAVA、Mysql等技术,理解计算机原理,具备良好的沟通和工程能力。接手服务通常包括理解系统需求、阅读代码、实践小需求以及规划服务未来。关键在于明确服务边界,绘制架构图,并能有效执行和推广方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(本人表示任重道远,惭愧)

基本技能:

  • 各种应用技术JAVA、Mysql等;有专攻、有覆盖;
  • 理解计算机工作原理;算法/数据结构;
  • 沟通:态度、理解、表达
  • 工程能力
  • 执行力和自我管理能力

 

个人认为接手一个服务的一般过程:

第一步:理解系统需求的前世今生(这里需要阅读文档,约谈PM,RD等),最终能一个需求过来能判断是不是服务的边界范围之内

第二步:阅读接手的代码,要求能做到能够画出系统的架构图,清楚依赖方

第三步:从小需求开始,以点带面,包括前端后台到数据库,包括代码的提交到最终的部署上线等等

第四步:对服务的未来规划,推广有自己的方案输出,后续能坚持执行等

 

 
要求
内容,或例子

开发

实现

1.理解业务模型

2.工程模块化管理(要必要的话)

3.代码仓库管理

4.文档输出

  • 理解原始需求,判断可行性、代价

比如sinai得业务服务的边界,服务只管信息的聚合,并不着重检索。

  • 业务建模:

完整、准确的把产品需求转换成合理的软件模型。比如sinai分成各个模块,哪些依赖包,真正部署在线上的哪个模块

  • 系统设计、快速实现:

对新的需求评审能力,单独开发能力,能够画出系统的架构图等等

  • 自身管理

代码的模块部署结构,多分支开发、进度控制、代码/资源/对外输出文档管理,对于每个服务应该有自己的文档主页,如sinai的文档给调用放节省了不少RD交流时间

质量

保证

坚持BASE原则,

可用+一致性+分布式

等等。

1.保证功能,3个9还是4个9

2.性能

3.健壮

4.排查问题机制,或是事故处理,或是排查问题处理

5.代码风格

功能:

  • 单元测试,junit的覆盖到多少个接口和函数,百分比控制在多少为达标等等
  • 集成测试:现有的checklist是否可接入使用

性能:

  • 单点响应时间,一个总的思想是:对第三方的处理策略(比如兜底策略+快速失败+多久重试机制+...),防备使用方策略(暴露的粒度是多少),做好自己(降级容错等)。。。sinai这块还需加强。
  • 容量可扩展,是否可以容易做到分布式扩容,比如sinai的thrift模块就可以简单分布式扩容,但job模块就比较麻烦
  • 对服务的容量有清晰认识,上限等等

健壮性

  • 外部依赖容错,常见问题:连接池(连接数、超时等),JVM,机器配置等等
  • 程序回滚、数据恢复:比如怎么快速回滚,怎么快速回复脏数据,可hotfix?可否直接操作db去完成?

代码风格 

  • 关键的地方代码有注释吗?是否需要代码规范?

运维

简捷

 

1.监控

2.报警

3.部署管理

4.数据库的迁移和备份

5.处理事故

 

努力做到,对等机房节点配置相同,发布部署方式统一

监控/报警/排查、解决问题

  • 监控、展示各种业务、技术数据,上下游是否都加监控,JVM,DB,VM的指标是否添加监控
  • 关键数据一定要有报警机制
  • 注重日志,查问题的关键
  • 监控数据、日志、使用各种命令/工具(如JVM的工具)在线检查状态,这3点基本就能发现绝大部分问题原因
  • 虽然线上数据库有专门的dba搞,但是线下环境我们是否能够做到管理和备份
  • 服务是否能找到backup,事故发生时如果自己时间不允许的时候是否有RD替代


注重降低运维成本:

一些琐事:机器申请、磁盘日志清理、自动重启等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值