ITPub博客

首页 > 数据库 > 数据库开发技术 > 架构师面试和晋升技巧

架构师面试和晋升技巧

原创 数据库开发技术 作者:greencoatman 时间:2024-01-25 09:30:39 0 删除 编辑

如何考察架构能力

面试和面评 - 三项能力

【判断能力】

是否能够准确的分析业务需求中隐含的复杂度问题。

【拆解能力】

是否有足够的技术深度或者技术宽度,能否设计合适的架构来解决复杂度问题。

【取舍能力】

是否能够挑选合适的落地方案,决策和取舍是否有逻辑,逻辑是否正确。

案例 - 印度板球赛事图文直播架构优化

【业务背景】

某公司印度资讯业务,有一个板球图文直播的系统,一个升P7的同学做了系统的性能优化,引入了 Redis 缓存优化架构,优化后性能提升10倍。

【判断能力】

1. 系统响应慢是表象问题,根因是什么?你当时是如何分析的?

2. 全流程的性能耗损分布大概是什么样的?哪个阶段是瓶颈?

【拆解能力】

你为什么选择了引入缓存?

【取舍能力】

为什么选择了 Redis 而不是 Memcached,或者其它性能优化方案?

如何展现架构方案 - 架构设计复杂度


【业务复杂度】

业务固有的复杂度,主要体现为难以理解、难以扩展,例如业务数量多(微信)、业务流程长(支付宝)、业务之间关系复杂(例如ERP)。

【质量复杂度】

高性能、高可用、成本、安全等质量属性的要求。

业务复杂度和质量复杂度是正交的。

案例 - 大数据平台架构优化

【业务背景】

某公司大数据平台架构优化,将存储服务器从80台降低到4台。

【技术复杂度】

日志压缩!

架构面评技巧有哪些?

STAR 方法

Situation:概括性的总结业务背景和挑战。

Task:介绍你负责的任务以及需要达成的目标。

Action:项目中你采取的关键行动,例如用了微服务拆分,引入了Flink、规则引擎,设计了整体异地多活方案等等。

Result:最终的架构方案,以及落地后的实际结果,一般三个维度以上,尽量用量化结果描述,例如日活、转化率、留存率等。

STAR 如何写/讲架构

STAR 案例 - 游戏异地多活架构 (1/2)

【Situation】

XX 业务1个月4次故障,持续时间n分钟,造成***万的损失,严重影响平台口碑。

【Task】

1. 攻坚项目负责人;

2. 总架构师。

【Action】

1. 成立研发、测试、运维、项目的攻坚团队;

2. 架构演进:第一个实现异地多活架构。

【Result】

1. 3分钟发现问题,5分钟恢复;

2. 可复用的运维平台;

3. 可复制的异地多活的方法论。

STAR 案例(3/3) - 异地多活设计方法论

如何回答面评/面试问题

关注“结果”,回答“事情 + 结果”。

1. 微服务拆分后研发效率有多大提升?带来了什么挑战么?

2. 你们的 Docker 容器一共有多少,大概的负载如何?

关注“过程”,回答“方法 + 步骤”。

1. 你们是如何拆分某某服务的?

2. 微服务拆分的时候数据库怎么处理?

关注“原因”,回答“原理 + 思考”。

1. 为什么选择 Redis,而没有选择Memcached?

2. Redis 相比 Memcached 有什么优势,有什么缺点?

如何回答面评/面试问题 - 典型疑问

【疑问1】

有人建议在答辩环节,为了防止问到自己不会的问题,在自己准备的问题上尽量多说,从而让面试官少问问题,这种方法可取吗?

答:不可取,面试官和评委不会因为你一个问题答得多就给你通过,评委会综合考察相关能力。事实上,我们评委经常会阻止晋升的人长篇大论,啰里啰嗦地讲,评委需要听到关键的技术点和分析。

【疑问2】

评委的问题我不太会,但是我掌握的一些技术可能与这个问题有关,应该尝试回答一下么?

答:不可,不要蒙,直接说不会,然后引导评委转向自己会的内容。例如:评委问了 Redis 的多路复用自己不会,可以说 Redis 的数据结构自己比较熟。

原文作者:二进制跳动;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2022-07-08

  • 博文量
    312
  • 访问量
    141276