百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

全球技术宏观趋势——云、机器学习与其他

toyiye 2024-05-25 20:11 20 浏览 0 评论

《技术雷达》是一份技术趋势快照,来自我们最近在软件行业的最新发现。

以下是本期的一些重点内容:

为争霸主,云产品还未成熟就已入市

之前我写过一篇文章,其中提到云已成为当今业界的主导基础设施和架构模式,而且各大云供应商都在争夺市场份额,争取抢占先机。在我看来,这就导致他们在一些功能和服务远为真正成熟之前,就急于将产品推向市场。在过去,我们经常看到这种模式,企业软件供应商会宣称自己的产品拥有比竞争对手更多的功能,而不管这些功能在产品中是否已经完善或可用。这个问题本身并不是什么新问题,但却是当今云服务行业面临的一大挑战。这也不是意外,而是一种有意的战略,是云公司为了快速推出软件而对自身进行重组所产生的结果。

各个云平台竞相推出新的产品和服务,这不一定会给使用这些平台的团队带来好处。供应商过度承诺,言过其实,因此团队作为买方需要保持谨慎。当有新的云数据库或其他服务问世时,团队必须要评估这些服务是否真正成熟,可供他们使用。团队能否承受这些服务不可避免尚需完善的缺陷和局限性?

混合云工具开始日趋成熟

许多大型组织都处于“混合云”状态,使用不止一个云提供商。是应该采用一个还是多个云服务提供商?这个选择非常复杂,不仅要考虑技术,还要考虑商业、政治甚至监管因素。例如,在监管非常严苛的行业,组织可能需要向监管机构证明,如果他们的现有云提供商遇到某种灾难性的技术或商业问题,使他们无法持续运营,他们可以很轻松地转向新的云提供商。我们的一些客户正在进行重大的云整合工作以过渡到单一云平台,因为多云存在延迟、VPN 设置复杂的问题,也有的组织进行整合是为了从供应商处获得更优惠的定价,或者获得特定的云功能(例如支持 Kubernetes 或使用特定机器学习算法)。

这种过渡或整合可能需要数年时间,尤其是考虑到遗留企业系统对此类计划的影响,因此组织需要一种更好的方法来处理多云。一些“混合云控制平面”正在兴起,有助于减轻这种痛苦。我们认为,如果你正在遭受多云的困扰,可以考虑使用 Google Anthos、AWS Outposts、Azure Arc 和 Azure Stack。

“量子就绪型”云或将成为明年的关键战略

Google 最近正在宣扬他们在所谓“量子霸权”方面取得的成就,他们开发了一台量子计算机,可以运行传统计算机基本上无法应对的算法。具体情况是,Google 使用了一台 53 量子位的量子计算机在 200 秒内解决了一个传统超级计算机需要一万年才能解决的问题(IBM 驳斥了谷歌的说法,认为自己的超级计算机可以在 2.5 天内获得这样的结果)。这里要指出的重点是,量子计算机不仅仅是实验室里的昂贵设备,它已经跨越各种潜在障碍,能够通过量子计算解决更大规模的重要问题。

目前,使用少数量子位可以解决的问题在数量和实用性方面都很有限,但是量子计算无疑拥有广阔前景。加拿大初创公司 Xanadu 不仅在开发量子芯片(Google 使用的是超导体,而 Xanadu 是使用“光子”方法来捕获量子效应),而且还在开发量子模拟和训练工具。他们指出,尽管目前的大多数量子算法看起来有点理论化,但是可以使用量子技术来加速解决蒙特卡洛模拟之类的问题,这在当今金融科技等领域非常有用。

像对待许多技术转型(大数据、区块链、机器学习)一样,你至少要基本熟悉这项技术并了解它可以为你的企业带来什么好处。IBM、Microsoft 和 Google 都提供量子计算机模拟工具,在有些情况下还可提供真正的量子计算硬件获取途径。虽然你们的企业可能目前还不能受益于高度专用的算法加速技术,但是“量子就绪型开发者”云很快就会像过去“数据科学家”那样流行起来。

90% 的设备淘汰并未节约任何成本

作为一个行业,IT 不断面临系统过时的压力。如果有的系统太过时,就无法充分适应当今快速变化的节奏,而且维护成本高昂,或者充满风险,例如在 eBay 的硬件上运行过时的系统无疑是一大隐患。作为 IT 专业人员,我们经常需要处理并最终淘汰过时的系统。要更换过时的系统,一种听起来很酷的方法是采用 Strangler Fig Application,就是围绕某个过时的系统进行构建和补充,最终完全取代它。这种模式引起了广泛关注,一个重要的原因是这个名称(Strangler 字面意思为扼杀者)听起来很暴力,很多人都希望能对那些令人沮丧的过时系统采取暴力措施,而这个方法涉及“扼杀”这类过时系统,所以肯定会获得大量支持。

当我们声称要扼杀过时系统时,问题就来了,因为最终我们只能在这些过时系统的基础上构建额外的系统和 API,而从未真正淘汰掉那些过时的系统。我们的同事 Jonny LeRoy(他善于给事物取名字)称这种方法对于过时系统而言只是“隔靴搔痒”,建议我们将它放在技术雷达评估的“Hold”(暂缓)环节。我们原本认为这个技术太复杂,但是人们都很喜欢听到这样的讯息:如果我们计划使用扼杀者模式来淘汰过时系统,我们最好着手进行淘汰,否则我们的努力往往都会白费。

主干开发似乎正在失去战斗力

多年来,我们一直在推广主干开发,认为最好的软件开发方法就是让每个开发者直接将他们的代码提交到源代码管理的“主线”(每天如是,越多越好)。就像有些见过很多源代码混乱情况的人一样,我可以肯定,分支模型并非免费(甚至谈不上便宜),即使是结合 Git 等工具编写的工整代码也无法使团队避免这种“持续隔离”的开发模式导致的各种问题。人们为需要采用分支代码给出的原因往往正好表明团队或系统架构存在深层次问题,需要直接予以解决,而不是采用代码分支。例如,如果你不信任某些开发人员向你的项目提交的代码,于是使用分支或 Pull Request 作为代码审核机制,那么实际上你应该解决的是核心信任问题。如果你不确定能否赶上项目截止日期,于是想用分支来为候选版本“cherry pick”最佳变更内容,你就会陷入痛苦之中,那么实际上你应该解决项目预估、优先事项安排和项目管理问题,而不是用分支来敷衍这个问题。

遗憾的是,我们在这方面似乎无法挽回局势。GitFlow 等短期分支技术继续受到欢迎,使用 Pull Request 来管理代码审查等活动也同样广受青睐。我们以前的同事 Paul Hammant 创建了 trunkbaseddevelopment.com 并且一直在进行维护,他也建议采用短期功能分支来执行大规模的主干开发。虽然我们最喜欢的这项技术似乎正在失去战斗力,这让我们很难过,但我们仍然希望志同道合的团队将继续尽可能地推动明智的主干开发。

翘首期待 Apple 发布 XR

在最近的 Facebook Connect 大会上,Oculus 确认他们正在开发 AR 眼镜,但未发布任何具体细节。最新传言称,Apple 将于 2020 年发布某种 XR 耳机,并且将于 2022 年发布 AR 眼镜。就像在智能手机和智能手表等许多其他先进技术领域一样,在打造真正吸引用户的体验设计方面,Apple 很可能再次走在前沿。Apple 的魅力始终在于将先进技术与卓越的消费者体验结合起来,只有在真正做到这一点之后,他们才会进入市场。很长一段时间以来(也许今天仍然如是),Apple 的人机界面设计准则一直是应用开发者必读的经典。我预计,Apple(最终)进入 AR 领域时,也会实现类似的飞跃。在此之前,虽然会出现一些精巧的演示和有限的训练体验,但 XR 仍将是一种小众技术。

机器学习继续制造惊喜,但是我们真正理解它吗?

我最喜欢的一个 YouTube 频道是 Two Minute Papers(两分钟论文),在其中研究员 Károly Zsolnai-Fehér 会对 AI 系统的发展进行报道,令人眼界大开。最近,该频道介绍了一系列 AI 技术,有的可以基于仅仅五秒钟的输入模拟人类语音;有的可以推导客观世界的运动规律,速度是传统物理模拟系统的三万倍;有的可以学习如何玩捉迷藏,并且从真正意义上打破相应游戏世界的规则。这个频道做得很出色,展示了狭义 AI 能力的惊人(甚至有点可怕)的进步,通常用于解决可以直观显示的问题,因此是良好的视频展示内容。但是机器学习也被应用到许多其他领域,比如商业决策、医疗,甚至用于为法官给罪犯量刑提供建议,所以我们必须了解人工智能或机器学习系统如何运作。

一个大问题是,尽管我们可以描述一个基础算法如何运行(例如神经网络的反向传播如何工作),但是我们无法解释网络在经过训练之后实际上会怎么运行。本期《技术雷达》将介绍 what-if 等工具和道德偏见测试等方法。我们认为,在选择机器学习模型时,可解释性是应当考虑的一个重要因素。

Mechanical Sympathy(机械同感)再度回归

早在 2012 年,《技术雷达》介绍了一个概念“Mechanical Sympathy”(机械同感),当时是基于 LMAX Disruptor 团队的工作阐述了这个概念。那时候,许多软件应用编写的抽象化程度越来越高,Disruptor 越来越接近 metal 的水平,专为在特定 Intel CPU 上实现极高性能进行了调优。LMAX 问题在于它本质上是单线程的,需要单 CPU 机器提供极高性能。看来,似乎 Mechanical Sympathy(机械同感)问题又回归了。

上一期《技术雷达》介绍了 Humio,这是一种日志聚合工具,在日志聚合和查询方面速度都超快。这一期《技术雷达》将介绍 GraalVM,一款高性能虚拟机。我们认为具有讽刺意味的是:软件行业的许多先进技术都是脱离了硬件(容器、Kubernetes、功能即服务、云数据库等等),而有一些技术仍然高度关注我们用于运行这些技术的硬件。我认为这要取决于使用案例。你需要可扩展性和弹性吗?那就离开硬件,进入云端。但是对于高频交易等非常具体的使用案例,该怎么办?那还是要利用上述某些技术,更专注于从硬件上实现进步。

希望你喜欢我们对技术行业最新趋势的这些简要介绍。由于版面空间限制,有些其他内容没做介绍,可以在技术雷达(https://www.thoughtworks.com/cn/radar)中阅读相关内容。

相关推荐

为何越来越多的编程语言使用JSON(为什么编程)

JSON是JavascriptObjectNotation的缩写,意思是Javascript对象表示法,是一种易于人类阅读和对编程友好的文本数据传递方法,是JavaScript语言规范定义的一个子...

何时在数据库中使用 JSON(数据库用json格式存储)

在本文中,您将了解何时应考虑将JSON数据类型添加到表中以及何时应避免使用它们。每天?分享?最新?软件?开发?,Devops,敏捷?,测试?以及?项目?管理?最新?,最热门?的?文章?,每天?花?...

MySQL 从零开始:05 数据类型(mysql数据类型有哪些,并举例)

前面的讲解中已经接触到了表的创建,表的创建是对字段的声明,比如:上述语句声明了字段的名称、类型、所占空间、默认值和是否可以为空等信息。其中的int、varchar、char和decimal都...

JSON对象花样进阶(json格式对象)

一、引言在现代Web开发中,JSON(JavaScriptObjectNotation)已经成为数据交换的标准格式。无论是从前端向后端发送数据,还是从后端接收数据,JSON都是不可或缺的一部分。...

深入理解 JSON 和 Form-data(json和formdata提交区别)

在讨论现代网络开发与API设计的语境下,理解客户端和服务器间如何有效且可靠地交换数据变得尤为关键。这里,特别值得关注的是两种主流数据格式:...

JSON 语法(json 语法 priority)

JSON语法是JavaScript语法的子集。JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组JS...

JSON语法详解(json的语法规则)

JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔大括号保存对象中括号保存数组注意:json的key是字符串,且必须是双引号,不能是单引号...

MySQL JSON数据类型操作(mysql的json)

概述mysql自5.7.8版本开始,就支持了json结构的数据存储和查询,这表明了mysql也在不断的学习和增加nosql数据库的有点。但mysql毕竟是关系型数据库,在处理json这种非结构化的数据...

JSON的数据模式(json数据格式示例)

像XML模式一样,JSON数据格式也有Schema,这是一个基于JSON格式的规范。JSON模式也以JSON格式编写。它用于验证JSON数据。JSON模式示例以下代码显示了基本的JSON模式。{"...

前端学习——JSON格式详解(后端json格式)

JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLa...

什么是 JSON:详解 JSON 及其优势(什么叫json)

现在程序员还有谁不知道JSON吗?无论对于前端还是后端,JSON都是一种常见的数据格式。那么JSON到底是什么呢?JSON的定义...

PostgreSQL JSON 类型:处理结构化数据

PostgreSQL提供JSON类型,以存储结构化数据。JSON是一种开放的数据格式,可用于存储各种类型的值。什么是JSON类型?JSON类型表示JSON(JavaScriptO...

JavaScript:JSON、三种包装类(javascript 包)

JOSN:我们希望可以将一个对象在不同的语言中进行传递,以达到通信的目的,最佳方式就是将一个对象转换为字符串的形式JSON(JavaScriptObjectNotation)-JS的对象表示法...

Python数据分析 只要1分钟 教你玩转JSON 全程干货

Json简介:Json,全名JavaScriptObjectNotation,JSON(JavaScriptObjectNotation(记号、标记))是一种轻量级的数据交换格式。它基于J...

比较一下JSON与XML两种数据格式?(json和xml哪个好)

JSON(JavaScriptObjectNotation)和XML(eXtensibleMarkupLanguage)是在日常开发中比较常用的两种数据格式,它们主要的作用就是用来进行数据的传...

取消回复欢迎 发表评论:

请填写验证码