本篇文章2723字,读完约7分钟
2008年5月14日新闻(Text/李):作为跨国数字转型咨询公司thoughtworks的董事兼软件架构师,尼尔·福特是一位具有多重身份的传奇人物。他精通各种编程语言,并为大型企业应用的设计、建设和工程实践提供咨询服务;作为一名国际知名的讲师,他曾多次出现在世界顶级开发者大会的平台上;作为一个极客和作家,他写了许多畅销书,如《有效程序员》和《函数式编程思维》。
尼尔·福特,思想工程总监兼软件架构师
最近,neal带着thoughtworks首席技术官Rebecca Parson博士总结和提炼的进化建筑核心概念来到中国,向中国的开发者和建筑师介绍了进化建筑的概念和应用。他们借鉴了生物进化的分析视角,从更长远的角度考虑软件架构的存在,改变了过去单一时间点判断架构质量的视觉局限,而是思考如何通过定义可度量的适应度函数来创造建筑进化的生态。
时间进化结构是如何进化的?随着企业数字化转型的转型,业务实践不断丰富,相应的工具和框架不断发展,创新的工具和技术不断涌现。在这种情况下,开发人员需要应对不断变化的变化。长期以来,架构师习惯于提前评估和设计软件体系结构,以保护那些系统的重要特性(即不同的体系结构维度),如业务需求、性能、安全性、可扩展性等。然而,在软件开发这样的生态系统中,新业务需求的出现、爆炸性的用户增长和新技术的出现将打破这种动态平衡。架构师和团队必须不断地进行调整来应对这些变化,并在不同的架构特性之间进行痛苦的权衡。
可演化性作为一种新的体系结构特性被添加到系统中,这样当系统演化时,它可以为其他特性提供保护。这就是进化架构,它使我们能够考虑多种架构维度来进行有指导的增量更改。演化体系结构在体系结构层面上进行演化变化,并在开发实践、发布实践和整个开发管道中建立体系结构变化的实时反馈机制,使得变化变得更容易,成本更低。
谈到所提出的进化架构,尼尔说,作为一家技术咨询公司,think works可以联系不同地区或世界上不同客户的不同业务模式。进化架构来自思想工作的真正全球项目经验的积累。同时,thoughtworks也有一个技术顾问委员会来讨论持续探索的最新技术趋势,这也丰富了进化架构的内容。
进化建筑的进化有两个维度。第一个方向是渐进式进化,它使系统能够实现渐进式进化或渐进式改变;第二种是引导进化或引导进化。通过定义一个适应度函数,我们可以帮助我们实现进化架构,这样开发者就可以清楚的知道当前的方向是架构进化的方向还是我想要的方向,然后就可以定量的告诉开发者离这个目标还有多远。进化架构可以自然地解决企业增量和迭代开发的需求。尼尔说。
适应性建筑在整个行业中仍然很流行。其解决方案是使用大型配置文件或系统,这将涉及许多配置项目。例如,当我有一个新的需求或者一个新的业务流程进来时,我只需要改变这个配置项来支持整个系统。这种架构模式称为自适应架构。
Neal说进化架构不同于适应性架构,它的目的是使架构本身能够支持新业务模型的进化问题。进化架构基于新的基本实践,例如持续集成、持续交付、devops、作为代码的基础设施等等。例如,我们都知道很多关于混沌工程的知识,在英语中叫做混沌工程。这种做法实际上是在微型服务出现后的最近几年出现的。十年前,开发团队和操作维护团队实际上是分开的,完全分开的。通过devops的实践,进化架构可以将混沌工程作为整体可持续健身功能的一部分。自适应架构产生时,操作和开发是分开的。
因此,自适应架构是未来支持不同业务模式的大型综合解决方案,可以通过配置项灵活更改。但是进化问题解决的思想是,当我的业务需求真正出现时,我们可以通过适应度函数来把握整个架构的进化方向。进化架构可以保证我想要在架构中保护的特性,比如性能和可伸缩性,这可以支持企业的进化。
进化架构将把原来的企业架构治理或架构设计变成一个文档,并把自己变成一个组和一系列的适应功能。这样的适应度函数不仅可以帮助我们的架构师定义我希望在我的架构中看到的特性,比如我的耦合度有多高,还可以帮助他们成为一个在真实管道上运行的代码和一个正在运行的函数。这个函数将持续帮助我们检查当前的架构是否违反了这个规则。
企业如何登陆进化架构?既然进化架构可以解决新形势下企业的需求,那么企业如何引入进化架构呢?Neal说,进化架构的登陆有一定的基础,企业需要在开发过程和模型中实现敏捷、连续的交付和开发。
由于企业处于转型阶段,在实现演化架构之前,有必要构建自动化基础设施,并将购买软件包的模式转变为新的模式,如持续集成和持续交付。许多企业在敏捷性转变过程中,并没有对自己的工程实践做出很大的改变。他们可能不采用持续集成或开发的工作模式,而只是进行一些敏捷的过程转换。对于致力于成为精益企业或进化架构的企业来说,这种转变的基础还没有打开,他们需要进行彻底的转变。尼尔说。
同时,当企业架构师考虑软件架构设计时,他们需要量化可维护性和可扩展性,并且应该有一些定量的指标来描述需求,而不仅仅是简单的定性指标。这是企业架构师采用进化架构的第一步,第二步是改变历史上的思维方式。
Neal说,在传统意义上,企业架构师更像是治理或管理的角色。他会说整个企业的架构模型应该是这样的,你应该遵循我的模型。然而,在进化架构中,我们对企业架构师的要求是,他可以从经理的角色转变为向导的角色,并且他应该指导不同的系统或不同的团队。设计企业架构时应该遵循什么原则,如何实现更好的渐进演进,以及在工程实践中应该采用什么最佳实践?它应该成为一个向导或类似于教练的角色,而不是经理。
目前,企业架构师的角色在一个新的时代被重新定义,进化架构给出了一个方向。至于企业架构师或企业在设计架构时如何支持整个系统的演进,不仅是中国,全世界的企业都面临着同样的问题。
尼尔说网飞在进化建筑方面做了大量的实践。无论是传统企业还是像网飞这样的公司,thoughtworks参与或合作的公司或多或少都会在进化架构中进行一些实践,但在此之前,我们不会将其定义为进化架构或适应度函数。
至于中国企业采用的进化架构,尼尔认为,中国企业可以在许多方面实现跨越式发展,因为它们没有历史包袱。从市场的角度来看,如果企业意识到这样的做法可以帮助他比竞争对手跑得更快,他肯定会做这样的事情。
通过沟通,中国思想工厂的重要客户,如戴姆勒,对我们在建筑方面的新想法持乐观态度。Thoughtworks是一家全球咨询公司。我们现在不仅会看到中国企业的实践,更重要的是,作为我工作的tab组织,它会观察世界上的最佳实践,这些实践会被总结并反馈到各个地区和国家,给各个企业和不同地区带来不同的价值。尼尔最后说。
来源:搜狐微门户
标题:进化的视角 演进式架构让企业可以更好拥抱变化
地址:http://www.shwmhw.com/shxw/47027.html