1181 #架构# 演进式架构师

  • 架构师的一个重要职责是,确保团队有共同的技术愿景,以帮助我们向客户交付他们想要的系统。

  • 技术愿景

    • 对于技术领导人来说,帮助团队理解这个愿景,并保证他们可以积极的参与到愿景的实现和调整中来。

  • 架构师的演化视角

    • 我们的行业很年轻,计算机出现到现在也只有70年左右,与建筑师不一样(上千年),类似城市规划师。

    • 架构师的职责之一,就是保证该系统适合开发人员在其上工作。

    • 架构师应该像城市规划师那样专注在大方向上,只在很有限的情况下参与到非常具体的细节实现中来。

  • 关注区域问题(服务边界)

    • 我们应该考虑不同的服务之间如何交互,或者说保证我们能够对整个系统的健康状态进行监控。

  • 一个原则性方法

    • 做系统设计方面的决定通常是在做取舍

    • 战略目标:战略目标关心的是公司的走向以及如何才能让自己的客户满意。与非技术的部分协作和交互。

    • 原则:最好不要超过10个,原则不是一成不变的。www.12factor.net

    • 实战:通过相应的实战保证原则能够得到实施。设计和交付实战->架构原则->战略目标

  • 要求的标准:

    • 监控

    • 接口

    • 架构安全性:包括返回码遵守一定的规则。

  • 代码治理

    • 编写文档

    • 代码模板

  • 技术债务

    • 理解债务的层次对系统的影响非常重要。

    • 可以维护一个债务列表,并定期回顾。

  • 管理例外

    • 针对某个规则破一次例可以,如果出现多次,应该修改原则和实践了。

    • 个人非常支持使用拥有更好自治性的微服务团队,他们有更大的自由度来解决问题。

  • 集中治理和领导

    • COBIT(信息和相关技术控制目标)定义

    • 治理是一个小组活动

    • 可以在较大范围成立一个小组,由技术专家领导,并且要有一线人员参与。

    • 负责跟踪和管理技术风险。

    • 什么时候应该放手,什么时候需要独断,什么时候应该给予适当指导或者帮助,是一种艺术。

  • 团队建设

    • 对于技术领导人来说,是帮助你的队友成长,帮助他们理解愿景

    • 在微服务架构中,存在多个自治的代码库,每个代码库都有着自己独立的生命周期,给队友负责和锻炼的机会,帮助他们达到职场目标

    • 分担任务,和备份

    • 我坚信,伟大的软件来自伟大的人。