原文地址: , 欢迎大家访问。
架构师是个什么样的岗位?我们其实可以将架构师看成一个城市规划师的角色。作为一个城市规划师我们需要将城市分片,分成工业区,生活区等等,并且还需要为未来的变化预留空间。那么对于架构师而言也是这样,架构师需要规划我们的系统,将微服务分片,需要预测未来的变化,设计的架构需要灵活可变的。那么我们应该如何开始一个架构师的工作呢?
分区
首先要做的,就是像城市规划师将城市分片一样,将我们的系统分区。
- 可以将一个服务作为一个分区,也可以粗粒度的一小群微服务作为一个分区。
- 尽可能少的去规定分区内的具体实现方式。
- 关注点应该在服务之间的交互方式,而非服务的具体实现。
原则和实践
其实就是为了更好的达成我们的目标而制定一些原则和实践。比如说如果我们最终的目标是很大的跨国业务,那么我们架构在设计之初的一个原则可能就是系统必须可以很容易部署在很多不同的地方。
- 原则最好不要超过10个,容易让人记住。
- 实践是基于原则的,包括我们常说的代码规范,更多的是技术层面上的一些约束,所以可能会改变的比原则更频繁一些。
- 有些时候可能实践会是原则本身。
架构设计中的几条标准
- 监控:整个系统级别,确保所有的服务使用同样的方式报告健康状态以及其他监控相关的数据。对与监控和日志数据都需要集中式管理。
- 选用少数几种明确的接口技术来方便消费者集成。
- 每个服务都需要有很健全的容错机制,需要很好的处理下游服务的异常。
技术债务
先解释一下什么是技术债务,其实就是在我们的实际实施过程中由于一些短期的利益而偏离的我们的原则,从长远来看这个妥协是会带来一定的代价的。这就是技术债务。对于一个架构师来讲,对与技术债务需要把握下面两点:
- 理解技术债务的层级以及其对系统的影响。
- 应该给团队提供一些温和的指导,然后让团队自行决定如何去偿还技术债务。
例外管理
其实我们定制的所有原则也会有一些考虑不周的,也有一些原则会随着时间或者愿景的变化而变的不再适用,那么这时候我们就需要在恰当的时机去修改它。例外管理就是将这项工作变得可衡量。 当某个原则每破例一次的时候,我们就记录一下。如果这样的例外出现的次数很多,那么我们可以通过修改原则或者实践的方式来把理解固化下来。
集中治理和管理
什么是治理?治理通过评估干系人的需求、当前情况及下一步的可能性来确保企业目标的达成,通过排优先级和做决策来设定方向。对与已经达成一致的方向和目标进行监督。
架构师主要会承担技术治理这一部分的工作。架构师还需要对很多事情负责,制定开发原则、确保这些原则衍生出来的实践不会给开发人员带来通过、了解新技术、和团队一起工作甚至是编码工作。在实际的工作中我们不要过度的干预团队的决定,但是当团队的决定会引起很重大的后果时应该进行干预。架构师的职责
- 愿景 确保在系统级有一个经过充分沟通的技术愿景,这个愿景应该可以帮助你满足客户和组织的需求。
- 同理心 理解你所做的决定对客户和同事带来的影响。
- 合作 和尽量多的同事进行沟通,从而更好地对愿景进行定义、修订以及执行。
- 自治性 在标准化和团队自治之间寻找一个正确的平衡点。
- 治理 确保系统按照技术愿景的要求实现。