专栏首页Vincent-yuan微服务之演化式架构师(二)

微服务之演化式架构师(二)

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

对于我们创造的大多数产品来说,交付到客户手里之后,还是要响应客户的变更需求,而不是简单的交给客户一个一成不变的软件包。

因此,架构师必须改变那种从一开始就要设计出完美产品的想法,相反我们应该设计出一个合理的框架,在这个框架下可以慢慢演化出正确的系统,

并且一旦我们学到了更多知识,应该可以很容易的应用到系统中。

当用户对软件提出变更需求时,我们需要对其进行响应并作出相应的改变。未来的变化很难预测,所以与其对所有变化的可能性进行预测,不如做一个允许变化的计划。

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

下图是,原则和实践的真实例子

监控

能够清晰的描述跨服务系统的健康状态非常关键。

日志功能和监控情况类似:也需要集中式管理。

接口

选用少数几种明确的接口技术有助于新消费者的集成。

架构安全性

一个运行异常的服务可能会毁了整个系统,而这种后果是我们无法承担的,所以,必须保证每个服务都可以应对下游服务的错误请求。

你可以至少让每个下游服务使用它们自己的连接池,进一步让每个服务使用一个断路器。

代码治理

两种比较奏效的方法是,提供范例和服务代码模板。

范例 编写文档是有用的。但是开发人员更喜欢可以查看和运行代码。 理想情况下,你提供的优秀范例应该来自真实项目,而不是专门实现的一个完美的例子。因为如果你的范例来自真正运行的代码, 那么久可以保证其中所体现的那些原则都是合理的。 裁剪服务代码模板 针对自己的开发实践裁剪出一个服务代码模板,不但可以提高开发速度,还可以保证服务的质量。

技术债务

有时候可能无法完全遵守技术愿景,比如为了发布一些紧急的特性,你可能会忽略一些约束。其实这仅仅是另一个需要做的取舍而已。

我们的技术愿景有其本身的道理,所以偏离这个愿景短期可能会带来利益,但是长期来看是要付出代价的。这里用技术债务这个概念帮助我们理解这个取舍。

架构师的职责就是从更高的层次出发,理解如何做权衡。理解债务的层次及其对系统的影响非常重要。

例外管理

原则和实践可以指导我们如何构建系统。那么,如果系统偏离了这些指导又会发生什么呢?

有时候我们会决定针对某个规则破一次例,然后把它记录下来。如果这样的例外出现了很多次,就可以通过修改原则和实践的方式把我们的理解固化下来。

总结

一个演进的架构师赢狗承担的职责。

  • 愿景    : 确保在系统级有一个经过充分沟通的技术愿景,这个愿景应该可以帮助你满足客户和组织的需求
  • 同理心 : 理解你所做的决定对客户和同事带来的影响
  • 合作 : 和尽量多的同事进行沟通,从而更好的对愿景进行定义、修订及执行
  • 适应性 : 确保在你的客户和组织需要的时候调整技术愿景
  • 自治性 : 在标准化和团队自治之间寻找一个正确的平衡点
  • 治理 : 确保愿景按照技术愿景的要求实现

演进式架构师应该理解,成功要靠不断的取舍来实现。总会存在一些原因需要你改变工作的方式,但是具体做哪些改变就只能依赖于自己的经验了。

而僵化的固守自己的想法无疑是最糟糕的做法。

在微服务系统中,架构师需要做更多的决定,因此,能更好的平衡这些取舍是非常关键的。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 前端学习(9)~css学习(三):样式表和选择器

    CSS:Cascading Style Sheet,层叠样式表。CSS的作用就是给HTML页面标签添加各种样式,定义网页的显示效果。简单一句话:CSS将网页内容...

    Vincent-yuan
  • 微服务之部署

    CI能够保证新提交的代码与已有的代码进行集成,从而保证所有人保持同步。CI服务器会检测到

    Vincent-yuan
  • 查看存储过程定义

    Vincent-yuan
  • 美化Windows Mobile上的自定义数据表

        前段时间做实验室项目,需要以报表的形式将数据展示给用户。首先想到的是visual studio自带的listview,用起来是比较方便,可是看着不美观,...

    ShiJiong
  • Kubernetes的容器存储接口(CSI)GA了

    Kubernetes实施的容器存储接口(CSI)已在Kubernetes v1.13版本中升级为GA。CSI的支持在Kubernetes v1.9版本中作为al...

    CNCF
  • 机械萌新的窘迫与展望!大神们,还记得自己刚入行时的样子吗?

    作为一个刚离开校园不久的机械专业毕业生,初入工厂,开始工作,总会遇到很多的问题与困难。本人做为一个刚刚毕业入职一年的新人,把自己的所见所闻所想,归纳分享出来,以...

    UG数控编程
  • 买卖股票算法题的后续!

    之前我们介绍了买卖股票的前三道题目:如何买卖股票?不要慌,我有妙招!没想到188题还有第四道题目,这道题目的介绍如下: ? 这道题是股票系列的第四题,在第三题的...

    石晓文
  • 容器化 RDS:借助 CSI 扩展 Kubernetes 存储能力

    RDS 并不是新生事物,新鲜的是通过容器技术和容器编排技术构建 RDS。对金融客户而言,他们有强烈拥抱 Docker 和 Kubernetes 的愿望,但可用性...

    沃趣科技
  • 举世瞩目的「深度神经网络」如何应用于移动端?

    随着深度学习算法在图像领域中的成功运用,学术界的目光重新回到神经网络上;而随着 AlphaGo 在围棋领域制造的大新闻,全科技界的目光都聚焦在“深度学习”、“神...

    CSDN技术头条
  • man epoll的惊喜

    今日问题: 0.1ms socket a 过来一起个请求 a 0.2ms socket b 过来一起个请求 b epoll_wait 返回结果是什么 我...

    程序员小王

扫码关注云+社区

领取腾讯云代金券