软件架构师必备的八大工程技能

译文 精选
开发 架构
本文以学习路线的递进方式,为您总结并罗列了软件架构师必备的八项工程技能。

【51CTO.com快译】如今,随着软件技术的不断迭代,以及应用范围的持续扩展,企业对于软件架构师的基本工程技能期望,也在急速攀升。其中包含了:全栈的架构知识、以客户为中心的产品设计思维、应用平台工程的实验性创新思维、采用SRE实践的针对生产环境的主动监控和可观测能力,以及更多的常态化工程实践。而且,在某些特定的领域,工程知识的广度会比技术技能的深度更加重要。

如下图所示,从广义上说,工程项目的组件可以被大致分为八种不同的类别。您不必成为所有这八个领域的专家,但是有必要去深耕某几个领域,融会贯通,进而成长为一名真正的软件架构师。下面,让我们以学习路线的思路,逐一进行深入讨论:

一、软件工程、架构和设计模式

对于软件工程、架构、以及设计模式的基本知识,我向您推荐如下学习路径:

二、基础设施、云、DevOps与自动化

对于基础设施、云、DevOps与自动化的基本知识,我向您推荐如下学习路径:

  • 基础设施(计算、存储和网络)涵盖的基本要素包括:
  1. 计算:裸金属(Bare Metal)、虚拟化(Hypervisor)、容器、容器编排、边缘计算、无服务器、负载平衡等。
  2. 存储:对象存储、文件存储(如NFS、SAN)、数据库存储、存储复制等。
  3. 网络:基础网络(如集线器、网桥、交换机、路由器等)、拓扑、LAN、WAN、VPC(虚拟私有云,Virtual Private Cloud,)、CIDR(无类别域间路由,Classless Inter-Domain Routing,https://cidr.xyz/)等。
  • 云架构:涵盖了三大云服务提供商的、有关在云中设计和运行各类流量负载的关键概念、设计原则、以及有关架构的优秀实践:
  1. AWS的完善框架,以其卓越运营、安全性、可靠性、性能效率、以及成本优化,成就了架构支柱。
  2. Microsoft Azure的完善框架,同样提供了成本优化、高效运营、性能效率、可靠性、以及安全性。
  3. Google Cloud的架构,则以便捷的运营、安全性、隐私与合规性、可靠性、性能与成本优化等方面,成为关键的原则。
  4. 您还可以通过链接--https://vedcraft.com/architecture/software-quality-strategy-is-essential-for-every-architect/,了解更多有关云迁移或框架采用的综合文章。
  • DevOps涉及到持续构建与集成的生命周期、持续部署、持续交付、以及CI/CD 等方面,具体包括:
  1.  “DevOps周期表”涵盖了由digital.ai编译的大多数 DevOps工具和技术。
  2. 由Google发布的DevOps状态报告研究
  3. 有关GitOpsDevSecOpsAIOps、以及MLOps等最近趋势。

三、质量工程,持续交付

在了解质量工程和持续测试的细微差别的基础上,我向您推荐如下学习路径:

  • 持续交付:了解整个持续交付生命周期的基础知识。加入开源的CD Foundation社区,以分享和追更该领域的各种优秀实践。
  • 敏捷交付实践:可获得某一种敏捷框架的认证,例如SAFe(Scaled Agile Framework)。
  • 质量工程实践:涵盖了各种标准实践的基础知识,例如:单元测试、行为驱动测试、功能测试、健壮性测试、回归测试、进展测试(progression testing)、移动测试、可访问性测试、像素测试、性能测试、以及安全性测试。
  • 持续测试:通过诸如Selenium(等工具、以及实践,涵盖各种自动化的基本要素
  • 软件质量:您可以通过链接--https://vedcraft.com/architecture/software-quality-strategy-is-essential-for-every-architect/,来了解作为架构师需要了解的软件质量的方方面面。

四、生产工程与SRE

为了了解现代化生产工程的动态实践,我向您推荐如下学习路径:

五、平台工程(Platform Engineering)的研究和认知

要理解平台工程的研究与相关性,我向您推荐如下学习路径:

  • 平台工程:了解平台工程团队的新趋势,并获取其相应的应用能力。
  • 行业研究:通过链接--https://vedcraft.com/architecture/5-reports-every-software-architect-should-read/,了解ForresterGartner等的行业研究报告。
  • 工程博客:通过链接--https://vedcraft.com/architecture/engineering-blogs-every-software-architect-should-read/,了解最佳实践和案例研究。

六、数据工程、机器学习、人工智能

若想对数据工程、机器学习(ML)和人工智能(AI)有更加广泛的理解,我向您推荐如下学习路径:

  • 数据工程:涉及到由Oracle编写的《企业架构师指南》,有助于理解HadoopCloudera基本理论的《大数据基础知识》,《云中数据湖》,以及使用SnowflakeDatabricks(的新兴数据云平台等趋势。
  • AI和ML:您若想成为更具有广泛能力的技术专家,理解和应用AI与ML是至关重要的。您虽然不必成为该领域的数据科学家,但是您有必要了解如下有关AI和ML的知识:
  1. 通过《机器学习介绍》了解基本理论与算法。
  2. 知晓分类、回归、聚类等机器学习算法

七、可观察性、监控、分析

为了了解可观察性、监控和分析之间的细微差别,我向您推荐如下学习路径:

  • 应用监控:应区别对待应用状态和系统性能的监控。
  • 可观察性:将监控的边界扩展到日志、指标、数据跟踪、用户体验等可观察的元素上。
  • 分析:了解按需使用行为、性能、市场、以及客户分析的工具。

八、业务价值和以客户为中心

为了了解业务价值和以客户为中心的相关性,我向您推荐如下学习路径:

综上所述,工程技能不仅仅与技术有关。作为一个合格的软件架构师,您需要全面了解和掌握与工程项目有关的方方面面。希望上面给您总结和列举的八项技能,能够为您的日常工作提供帮助。

原文标题:Essential Engineering Skills For Every Software Architect,作者: Ankur Kumar

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

 

责任编辑:华轩 来源: 51CTO
相关推荐

2015-06-10 11:22:41

云计算云架构师

2023-09-27 10:23:19

NoSQL数据模型

2023-11-10 15:37:08

Linux网站

2013-09-26 11:00:53

2023-12-01 07:24:40

软件架构

2019-04-29 13:20:00

大数据工具数据库

2013-06-13 14:29:26

架构师程序员

2020-03-02 15:23:43

云计算云架构师

2020-09-29 13:10:28

DevOps自动化技能

2014-03-24 11:17:27

2023-11-29 13:50:00

数据分析师

2018-04-26 05:48:56

2009-06-22 14:07:46

JSF优势

2015-10-29 13:47:03

2013-01-14 10:02:02

2022-05-27 15:19:38

架构师沟通认知

2015-10-19 11:50:59

2011-04-29 09:15:16

Servlet

2018-11-04 11:59:03

神经网络机器学习深度学习

2013-12-18 10:56:48

Linux运维运维技能
点赞
收藏

51CTO技术栈公众号