文/Jim Highsmith & Neal Ford 译者/禚娴静 这是技术雷达系列文章的第四篇。在这一系列的文章中,技术雷达的作者们向企业领导者分享了他们对于那些推动业务差异化的技术问题和解决方案的洞见和经验。ThoughtWorks技术雷达由ThoughtWorks全球技术专家咨询委员会创建,它包含了对软件开发和业务战略有显著影响的技术趋势组合,2016年是发布的第七年。 未来已经在这里,它只是分布不均。—— 威廉·吉布森 数字时代就在我们身边。将软件开发视为高成本开销而不是竞争力的企业将会举步维艰。为了参与并在这个数字世界中繁荣兴旺,企业必须学会适应我们这个时代的不确定性—更快地将新产品推向市场,快速而有效地改进当前的产品,并为客户提供有意义的数字体验。
为了实现这些目标,企业需要将敏捷性/适应性集成到三个领域:人、流程和技术。 人们需要适应试验和改变。以“迭代”的形式推进这一过程,并加强学习。技术,包括技术架构,需要支持快速地交付产品与服务。 技术的敏捷性不能被忽视——敏捷的团队和流程并不能弥补笨重的技术所带来的缺陷。 但作为一个高级管理人员,在这样一个充满了新技术的世界,你应该将注意力投注在哪里呢? 这个问题的答案被那些不停地讨论着看似神秘话题的技术人员们所掩盖。哪些神秘的话题需要得到管理层的注意呢?其中最重要的话题之一是微服务。原因如下所述: 微服务影响人、流程和技术:包括团队组织结构,流程和实践(如DevOps),以及重新调整架构以适应我们要解决的问题,而并非纯技术层面。微服务促进了每个领域的适应性。它值得管理层花时间去了解其潜在的贡献。 技术敏捷度 微服务架构风格的特性是由一组极小的服务组成,它们彼此独立且单独部署。微服务由Netflix这样的公司推广开来。每个服务包含一个离散的业务功能,它在技术上与其他服务相隔离,产生了类似乐高积木的效果:开发人员可以将服务切换为一个新的服务,而无需破坏其他服务。就像巨型的乐高模型可以由75,000块乐高组成,大型的数字应用程序也可以由这些受乐高思想启发的服务所构建。
这种架构有一些明显的好处。首先,每个服务与其他服务高度解耦,这意味着它们是自包含的。因此,一个服务中的技术更改(例如数据结构更改)不会影响另一个服务。服务仍然可以通过消息传递进行通信,但是任何一个服务都不允许修改另一个服务的实现细节。 第二,atv,因为开发人员不需要共享基础设施,他们可以选用适合于该问题复杂度的技术栈来实现每一个服务。考虑到当今的复杂性,在同一应用程序中,使用简单工具处理简单问题和使用复杂工具处理复杂问题的能力使开发团队在增加了灵活性的同时也降低了成本。领导者重视能将复杂问题简化的技术专家。 第三,每个服务封装了业务功能,它更容易促成围绕特定问题域的团队,而不是通过作业功能分割的团队。例如,服务团队通常包括开发人员、业务分析师、DBA、运维人员和QA—即构建和部署服务所需的一切角色。这样一来便降低了协调成本。 “从功能性组织结构向产品或服务结构转变”是敏捷企业转型的一个日益增长的趋势。而微服务架构支持了这种趋势的变化。 最后,因为每个服务是相互隔离的,所以以服务组成的架构既快速又灵活。同时因为服务的业务范围很小,对服务的更改可以快速地发生,这为开发人员提供了新的高级功能。一旦架构师设计了一个小型独立服务的系统,其中应用程序由部署的多个服务之间的消息传递组成,多变量测试等操作就变得容易了。
例如,企业可能对他们网站的未来发展方向并不确定。因此他们设计了具有相似性但功能不同的两种服务,并向不同的用户组部署不同的版本,以获取结果从而推动未来的发展。像Facebook这样的公司也是通过使用这种类型的A / B测试进行试验来分析他们的用户。 (责任编辑:本港台直播) |