如何定义架构师

架构师从英文单词Architect翻译而来,在英文中,Architect原来的意思是“建筑师”。作者吐槽英文中架构师与传统的建筑师单词相同,但实际的工作性质并不相同,以致于在英文的语境中会造成理解上的差异。

传统的建筑师在设计建筑时要求极端地精确,在正式施工之前会进行完整的论证、设计、计划等,不允许出现任何差错;而软件架构师则地面对的问题更加不可测,软件在使用的过程中会面临大量的需求变更,甚至在发布至正式环境后仍然不断演化。

      因此软件架构师必须要改变那种一开始就要设计出完美产品的想法,相反,我们应该设计出一个合理的框架,在这个框架中慢慢地演化出正确的系统。这就像城市规划师一样,他的职责是优化城镇布局,使其易于现有居民生活, 同时也会考虑一些未来的变化,如划分工业区和居民区,建在工业区的民居是不允许的,居民区的污水处理厂也是不允许的。城市就在这样的大原则下逐步演化。

      未来的变化很难预见,所以与其对所有变化的可能性进行预测,不如做一个允许变化的计划,为此,应该:专注在大方法向,避免对所有事件做过于详尽的设计,只在有限的情况下参与到非常具体的细节实现中来,要保证系统不但能够满足当前的需求,还能应对将来的变化。因而,我们更愿意把架构师叫成演化式架构师。

演化式架构师的职责

1.关心服务之间的事务,多于关注服务内部发生的事情

这并不意味着服务内部的完全自治,这要视情况而定,如果整个团队采用了10种不同的技术栈,可能意味着团队的学习成本更高;或者每个服务暴露出来的接口标准都不一致,这将造成灾难。最低的要求是花时间跟每个服务团队在一起工作。

2.让系统设计原则服务于最大目标,让实践来巩固原则

假如公司的目标是:快速占领东南亚新市场,那么你的原则可能就是要求服务必须能方便地部署到相应的国家,在实践层面,我们可能会寻找能提供全球化的云厂商来实现我们的需求。

原则与实战有时难以区分,但只要把握:重要的原则用来指导系统的演化,同时也要有一些细节来指导如何实现这些原则,就可以了。

3.全局掌控微服务的状态

必须全局掌握微服务的健康状态,将这些状态信息进行统一管理。

要全局掌握微服务的安全性,不能让一个异常的服务毁了整个系统,因此每个服务必须很好地应对其他服务的错误请求。

4.代码治理

      提供最佳实践范例和代码模板来保证质量,提供统一的服务来保证效率,在DRY中寻求平衡。

5.技术负债

有时为了服务于最大目标,在短时间内可能会忽略一些原则和最佳实践,虽然这短期能带来一些利益,但长期来年进要付出代价的。

不光走捷径会引入技术负债,有时系统的目标发生改变也会引用技术债务。

架构师应能提供一些温和的指导,然后让团队自行决定如何偿还这些技术负债。

6.团队领导

不要总是施加你的影响力,与各个服务团队一起工作,即使时间不那么多,从而了解所做的决定对团队造成的影响。可以从各服务团队抽一个人出来形成一个团队治理小组。

参考

《微服务设计》(Sam Newman 著 / 崔力强 张骏 译)

相关文章:

  • 微服务的概念——《微服务设计》读书笔记

原文地址:http://www.cnblogs.com/gudi/p/6591246.html


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

微服务架构师的职责——《微服务设计读书笔记》相关推荐

  1. 系统部署文档_惊喜!Alibaba架构师终于发布“微服务架构与实践”文档

    前言: 对于微服务架构的概念,相信大家应该都不陌生,无论使用 Apache Dubbo.还是 Spring Cloud,都可以去尝试微服务,把复杂而庞大的业务系统拆分成一些更小粒度且独立部署的 Res ...

  2. 阿里P8架构师谈:微服务Dubbo和SpringCloud架构设计、优劣势比较

    本文主要围绕微服务的技术选型.通讯协议.服务依赖模式.开始模式.运行模式等几方面来综合比较Dubbo和Spring Cloud 这2种开发框架.架构师可以根据公司的技术实力并结合项目的特点来选择某个合 ...

  3. 五年Java架构师深入剖析微服务架构设计理念与技术体系(值得一看!)

    内容提要: 本书内容主要包含实施微服务架构的些方法论和工程实践,首先,通过对微服务架构的基本概念.服务建模.服务拆分和集成的介绍,帮助读者全面理解微服务架构中的设计理念,然后从微服务架构的基础组件.关 ...

  4. 微服务架构师封神之路09-Springboot多数据源,Hikari连接池和事务配置

    微服务架构师封神之路09-Springboot多数据源,Hikari连接池,和事务的配置 application.yml 初始化DataSource DataSourceConfig的两种写法 写法一 ...

  5. 唯品会、滴滴、沪江架构师,关于微服务粒度、高可用、持续交互的实践分享交流(下)...

    架构师小组交流会:每期选择一个时下最热门的技术话题进行实践经验分享. 本期小组交流会邀请到了沪江黄凯.唯品会郑明华.滴滴赵伟.七牛云肖勤,对微服务粒度.高可用.持续交互展开了交流. 本期接着上期唯品会 ...

  6. 微服务架构师封神之路02-为你的微服务应用添加日志

    微服务架构师封神之路02-为你的微服务应用添加日志 关于Kubernetes日志架构 我们的目标 helloworld project 项目结构 pom.xml Dockerfile AppMain. ...

  7. 真腻害,阿里P8架构师手撸微服务架构探险pdf,成功登顶榜首

    微服务来了,有了"服务"这两个字,这注定又是个一说就明白.一举例就糊涂.一讨论就吵架的概念.微服务的出现有其必然的商业背景和架构哲学,如何更好地认识微服务的内涵如即使指地应用微服务 ...

  8. 面向服务架构(SOA)与微服务架构

    面向服务架构 面向服务架构的思想在整个软件的架构中已经不是什么新鲜的东西.我简单地认为服务化是模块化的延伸,所以服务化有着和模块化类似的优点和缺点.无论你采用哪种协议定义服务与服务之间的通信方式(如W ...

  9. 你知道微服务架构深度解析:微服务的主要特性有哪些吗?

    微服务主要特性 粒度更细的服务 微服务架构相比SOA分布式架构强调按业务边界做细粒度的服务拆分.SOA架构使用粗粒度的服务模式来封装业务和技术能力,减少服务交互,但同时带来了业务耦合的复杂性.而微服务 ...

最新文章

  1. Yolo:实时目标检测实战(上)
  2. Facebook爆锤深度度量学习:该领域13年来并无进展!网友:沧海横流,方显英雄本色...
  3. 恐怖的shell命令
  4. 2020——网鼎杯 (青龙组)jocker
  5. 10.Windows线程切换_FS段寄存器
  6. consul宕机配置丢失_简单的配置死机
  7. mysql创建的数据库都在哪里看_mysql 怎么查看创建的数据库和表
  8. php 一些个 常用 函数
  9. VALSE学习(十三):网络结构搜索提速方法和训练技巧-NAS
  10. Android内存泄漏(转)
  11. matlab 象限图,【数据可视化】Tableau教程(十)象限图
  12. 筛选法求素数-c++
  13. (SQL)使用Excel连接数据库
  14. java生成的条形码扫不了_JAVA 生成扫描条形码
  15. correl函数相关系数大小意义_Excel使用Correl函数返回相关系数并确定属性关系的方法...
  16. 软体机器人空间感知技术综述
  17. SQL-2008函数大全
  18. [笔记]Windows核心编程《十六》线程栈
  19. java libusb_libusb中断传输
  20. python selenium移动端网页下拉刷新

热门文章

  1. Http协议Get方式获取图片
  2. 使用Ext.grid.Panel显示远程数据
  3. 记一次 .NET 某消防物联网 后台服务 内存泄漏分析
  4. VS扩展CodeMaid代码整理插件
  5. ABP Vnext 4.4:统一Ef Core的DbContext/移除EF Core Migrations项目
  6. .NET 6 新特性 System.Text.Json 中的 Writeable DOM
  7. Windows 程序包管理器 1.0 正式发布
  8. .Net5 WPF快速入门系列教程
  9. 在 WSL Ubuntu 上使用 .NET 进行跨平台开发新手入门
  10. 庐山真面目之一 微服务的简介和技术栈