如何成为云原生时代的卓越架构师

简介: “软件开发需要面对本质困难和附属困难。云原生、DevOps大幅降低了附属困难,使得架构师可以全力聚焦于业务复杂性,而DDD恰是管理业务复杂性的有效方法。”

本文作者:张刚,阿里云云效资深技术专家,ALPD方法学核心成员。

立即学习:https://developer.aliyun.com/topic/course/alpd

软件开发的本质困难

1986年,软件工程巨匠Frederick Brooks撰写了一篇著名的论文《没有银弹》。他在文章的开篇写道:

在未来的10年以内,不存在任何单一的方法和技术,能够10倍以上的提高软件开发的生产力。

这个论断在当时就引发了巨大的争议。至今,《没有银弹》仍然是一个被经常拿出来讨论的话题。不过,这篇论文的真正价值远不限于此,继续读下去,就会发现,。停留在是否存在10倍以上生产率的讨论是不够的。真正值得关心的,是Brooks对原因的论断。我把其中的重要观点概括如下:

软件开发的困难有两类,一类是本质(Essential)困难,一类是附属性(Accidental)困难。

本质困难是和软件的本质紧密联系在一起的,所以这类困难无法通过工具或者语言等加以解决。例如,软件解决的问题是现实世界的问题,如果现实世界的问题本来就是复杂的,那么无论任何工具,都不可能消除这种复杂性。

附属性困难是和我们采取的工具或者方法相关的。例如,软件需要被通过某种语言实现,软件需要被编译、被部署,软件可能被实现为缺陷,这些都和具体的实现方法相关。这一类困难,可以通过工具、方法和技术的提升得以改善。

本质困难包括软件的复杂性,不可见性、可变更性和符合性(指软件开发还需要遵从诸如法律法规、外部系统等不受主观意志决定的因素)

作为一名在软件开发行业工作了20年的架构师,《没有银弹》关于本质困难和附属性困难的论述给了我巨大启发。

多年以来,我一直都把“管理本质困难、消除附属困难”作为软件开发活动的座右铭。特别有意思的是,最近我发现,作为一个主要工作在业务系统上的架构师,在云原生渐成趋势的时候,架构师的职责已然发生了改变。而这个变化,恰恰和“管理本质困难、消除附属困难”密切相关。

业务架构当然也是架构师的重要职责。业务和技术已经深度融合,业务对响应速度的要求和开发质量的要求越来越高,同时在云原生时代,服务化几乎成为必然选择。而无论是业务响应能力、开发质量和服务化,都和业务规划能力密切相关。这不就是最重要的“管理本质困难”的方面嘛!

领域驱动设计,虽然Eric Evans的同名书籍写于2004年,多年以来,在技术社区也有较大影响。但是为什么最近几年热度突然大幅上升,变得特别受关注呢?这是因为,我们的业务终于越变越复杂,到了如果没有恰当的方法,就不能很好的管理的地步——这也恰恰暗合了DDD一书的副标题“软件核心复杂性应对之道“。微服务和云原生在服务方面的划分等,也是关键的助推因素。

成为云原生时代的架构师

在今天的业务环境下,能更好地利用好云原生基础设施,更好地进行业务规划、高效高质地分析和管理领域模型,用领域模型指导架构设计和开发实践,是云原生时代架构师的重要技能。

这次云效和阿里云开发者学院联合推出的《ALPD云架构师系列——领域驱动设计》课程也正是围绕着这个主题展开。

ALPD全称Advanced Lean product development,它是阿里云云效团队提出的云原生时代的研发新范式,它整合了技术、工程、协作、创新4类实践,并提供高效解决方案。

image.png

image.png

上面2幅图分别是ALPD方法和支撑体系图,我们希望ALPD及其解决方案可以帮助企业和开发者,实现10倍效能提升——10倍的响应速度,10倍的过程质量,10倍的有效价值交付。

在本次课程中,我们将为大家带来 ALPD方法体系中的领域驱动的架构和实践 部分的内容。

能通过这一次的对外整理,将知识和经验分享给社区开发者小伙伴,也是非常开心的事情。

ALPD云架构师系列课程——DDD高手进阶

在课程整理中,我们把课程分成了如下章节:

01|领域模型的本质是业务认知
02|案例分析:高质量领域模型提升业务灵活性
03|高质量领域模型源自持续演进
04|案例分析:梳理业务概念,发现领域模型
05|从模型到代码:领域驱动设计的构造块
06|聚合:保证业务完整性的单元
07|领域驱动设计的分层模型和代码组织
08|核心域、通用域和支撑域
09|基于业务能力和业务场景拆分子域
10|守护领域边界,构建自治服务
11|限界上下文映射的模式
12|使用微服务构建领域资产

其中每讲都保持了15分钟左右的篇幅,以聚焦于一个比较内聚的主题。

1-4讲,讨论领域模型的一个基础概念,包括什么是领域模型?为什么要关心领域模型?如何进行基本的领域建模?
5-7讲,主要关心领域模型为中心的软件实现,具体对应于领域驱动设计的战术模式,例如实体对象、值对象,领域服务、领域事件构造块及聚合、资源库和工厂这些跟业务完整性密切相关的部分。
8-12讲,关心领域模型为中心的架构设计,具体对应于领域驱动设计的战略模式,比如说子域、限界上下文、限界上下文映射等方面的话题。最后的12讲,我们把微服务跟领域资产之间的关系也做了讨论,微服务是当前一个重要话题,如果对领域驱动设计关注不足,也会影响到微服务和云原生的实施。
在整个课程中,没有晦涩难懂的概念,我更希望能通过简明的案例让学员轻松理解领域驱动设计的核心思想和关键实践。希望你也能通过学习这个课程,可以从本质出发,更好地理解DDD并付诸实际项目实施。

点击下方图片或文末链接,加入《云架构师系列课程——DDD架构实战》的学习之路吧!

当然,领域建模和领域驱动设计仍然是需要长期刻意练习的技能,课程中的内容也还只是抛砖引玉,在后续的实际工作中希望你能持续应用和提升,不断精进,成为云原生时代的卓越架构师!

立即学习:https://developer.aliyun.com/topic/course/alpd

目录
相关文章
|
7天前
|
Kubernetes Cloud Native 持续交付
云原生技术浪潮下的微服务架构实践
在数字化转型的今天,云原生技术成为推动企业IT革新的关键力量。本文将通过浅显易懂的语言和实际案例,带领读者了解云原生的核心概念、微服务架构的设计原则以及如何在云平台上高效部署和管理微服务。我们将从基础概念出发,逐步深入到微服务的生命周期管理,探讨如何在云原生生态中实现快速迭代和持续交付。无论你是云原生技术的初学者,还是希望深化理解的开发者,这篇文章都将为你提供有价值的指导和思考。
|
12天前
|
运维 Cloud Native 持续交付
云原生架构:企业数字化转型的加速器
【8月更文挑战第7天】在数字化浪潮中,云原生架构成为企业转型的关键。它不仅改变了应用的开发、部署和管理方式,还提升了系统的可伸缩性、弹性和自动化能力。本文将探讨云原生的核心概念、优势以及它如何助力企业实现敏捷和高效的运营。
|
1天前
|
Cloud Native API 云计算
云原生架构:企业数字化转型的催化剂
【8月更文挑战第18天】在数字化浪潮不断推进的今天,云原生技术已成为推动企业IT转型的核心力量。通过深入探讨云原生架构的基本原理、优势以及实施策略,本文旨在为企业提供一个清晰的云原生应用路线图,帮助它们在竞争激烈的市场环境中获得灵活性和创新能力。文章将详细阐述云原生如何助力企业实现资源的最优配置,加速产品上市时间,并提高系统的可维护性和扩展性。
|
2天前
|
运维 Cloud Native 云计算
探索云原生架构的未来趋势与挑战
【8月更文挑战第17天】随着云计算技术的不断发展和成熟,云原生架构已经成为现代软件开发的重要趋势。本文将深入探讨云原生架构的核心概念、优势以及面临的未来挑战和发展趋势,旨在为读者提供一个全面了解云原生架构的窗口,同时展望其对未来软件开发模式的影响。
|
7天前
|
Cloud Native 持续交付 开发者
云原生之旅:从传统到现代的架构演化
本文将通过一次虚拟的旅行,带领读者穿越回过去,探索软件架构的发展脉络。我们将从单体应用开始,一路经过服务化拆分,最终抵达云原生的乐土。这不仅是一段技术演进的历史,也是对如何在不断变化的技术浪潮中保持初心与创新的启示录。
18 2
|
8天前
|
运维 Cloud Native Devops
云原生架构:企业数字化转型的加速器
【8月更文挑战第11天】在数字化浪潮中,企业正经历前所未有的转型压力。云原生架构作为一种新型的IT架构模式,以其灵活性、可扩展性和高效性成为企业应对这一挑战的关键工具。本文将深入探讨云原生架构的核心概念、优势以及它如何助力企业实现敏捷开发、自动化运维和微服务治理,最终加速企业的数字化转型之旅。
20 3
|
10天前
|
运维 Cloud Native 持续交付
云原生技术浪潮下的微服务架构演进
【8月更文挑战第9天】随着云计算技术的不断进步,云原生已成为推动现代软件开发和运维模式变革的关键力量。本文旨在探讨云原生环境下微服务架构的演化路径,分析其在提升应用开发效率、促进持续交付以及增强系统可扩展性方面的优势。文章将着重讨论微服务架构在设计原则、部署策略及治理机制方面的适应性调整,并展望未来云原生技术如何进一步影响微服务架构的创新与实践。
|
11天前
|
Cloud Native 云计算 微服务
云原生时代:企业分布式应用架构的惊人蜕变,从SOA到微服务的大逃亡!
【8月更文挑战第8天】在云计算与容器技术推动下,企业分布式应用架构正经历从SOA到微服务再到云原生的深刻变革。SOA强调服务重用与组合,通过标准化接口实现服务解耦;微服务以细粒度划分服务,增强系统灵活性;云原生架构借助容器化与自动化技术简化部署与管理。每一步演进都为企业带来新的技术挑战与机遇。
41 6
|
7天前
|
运维 Cloud Native 持续交付
云原生时代的微服务架构演进
【8月更文挑战第12天】在数字化转型的浪潮中,企业级应用正逐渐从传统的单体架构向微服务架构转变。本文将探讨微服务架构的概念、优势以及在云原生环境下的演进路径,同时分析微服务实施过程中面临的挑战和解决策略。通过深入讨论微服务与容器化技术的结合,文章旨在为读者提供一种现代化的应用开发和部署范式。
|
8天前
|
运维 监控 Cloud Native
云原生时代下的微服务架构演进
在数字化的浪潮中,云原生技术如同一艘承载梦想的巨轮,带领企业驶向灵活、高效的未来。本文将深入浅出地探讨微服务架构如何在云原生的大背景下不断演进,从传统的单体应用到现代化的服务网格,每一步的变革都是对技术挑战的回应和对未来趋势的拥抱。通过具体案例分析,我们将一窥微服务与容器化、自动化运维等云原生概念的融合之美,以及这一进程如何为企业带来前所未有的敏捷性和创新能力。

热门文章

最新文章