菜单

采纳?

  • 持续采用容器的方式进行部署,尤其是Docker,让容器安全扫描变成了必不可少的技术,我们已将该技术移至“采纳”中以体现这一点。具体来说,容器为安全问题带来了一条新的途径,在部署过程中使用工具扫描和检查容器尤为重要。我们更愿意将自动化扫描工具的运行作为部署流水线的一部分。

    历史信息
  • 今天,许多组织对如何解锁用于分析的数据的解决方案是建立迷宫般的数据管道。管道从一个或多个数据源检索,清理,然后转换数据并将其移动到另一个位置以供使用。这种数据管理方法通常会让使用数据的管道承担一项困难的任务,即验证入站数据的完整性,并构建复杂的逻辑来清理数据,以满足所需的质量级别。根本的问题是,数据源没有为其消费者提供高质量数据的动机和责任。出于这个原因,我们强烈主张从源头保证数据完整性,我们的意思是,任何提供可消费数据的源都,必须明确地描述其数据质量的标准,并确保这些标准。这背后的主要原因是,原始系统和团队最熟悉他们的数据,并且最适合在源头修复它。数据网格架构更进一步,将可消费数据与产品相比较,其中的数据质量及其目标是每个共享数据集的整体属性。

    历史信息
  • 引入微服务令我们受益匪浅,使用微服务,团队可以扩展那些独立部署及维护的服务的交付。遗憾的是,我们也看到许多团队创建了单体前端——一个建立在后端服务之上的大而混乱的浏览器应用程序——这在很大程度上抵消了微服务带来的好处。自从问世以来,微前端持续变得流行。我们已经看到,许多团队采用这种架构的某种形式,来管理多开发人员和多团队的复杂性,以提供相同的用户体验。在今年的六月份,这个技术的发起人之一,发表了一篇介绍性的文章,可以起到微前端参考文献的作用。它展示了这种设计是如何通过各种Web编程机制实现的,以及使用React.js构建了一个示例应用程序。我们有理由相信,随着大型组织尝试在跨多团队中分解UI开发,这种风格将越来越流行。

    历史信息
  • 使用持续交付流水线来编排软件的发布过程已经成为主流观念。CI/CD工具能够被用来测试服务器的配置(如Chef cookbooks,Puppet modules和Ansible playbooks),服务器的镜像构建(如Packer),环境的生成(如Terraform,CloudFormation)和环境间的集成。将流水线用于基础设施即代码,可以让你在变更应用于运行环境(包括开发和测试环境)之前就发现错误。它们还提供了CD/CD代理(Agent)而非独立工作站的方式,来确保基础设施工具运行的一致性。我们团队在项目中采用这种技术取得了良好的效果。

    历史信息
  • 对于今天的组织来说,自动化评估、跟踪和预测云基础设施的运行成本是必要的。云供应商精明的定价模型,以及基于定价参数的费用激增,再加上现代架构的动态本质,常常导致让人吃惊的运行成本。例如,无服务架构基于API访问量的费用,事件流方案中基于流量的费用,以及数据处理集群中基于运行任务数量的费用,它们都具有动态的本质,会随着架构演进而产生改变。当我们的团队在云平台上管理基础设施时,将运行成本实现为架构适应度函数是他们的早期活动之一。这意味着我们的团队可以观察运行服务的费用,并同交付的价值进行对比;当看到与期望或可接受的结果之间存在偏差时,他们就会探讨架构是否应该继续演进了。对运行成本的观察和计算需要被实现为自动化的函数。

    历史信息
  • 当成功采用持续交付后,团队尽可能让各种测试环境更接近于生产环境。这样他们就可以避免那些只会在产品环境中暴露的缺陷。这对于嵌入式和物联网软件也有效。如果我们不在真实的环境中测试,可预见的是,我们将在产品环境中首次发现某些缺陷。使用真实设备进行测试,在持续交付流水线中确保提供正确的设备,可以帮助避免这个问题。

    历史信息

试验?

  • 机器学习的强大能力和远大前途使得对专业人才的需求远远超出了专门从事该领域的数据科学家的数目。针对这种技能上的差距,我们看到了自动化机器学习AutoML)工具的出现,这类工具旨在帮助非专业人士更容易地自动化完成从模型选择到模型训练的端到端过程。比如Google的AutoMLDataRobotH2O AutoML Interface。尽管我们已经从这些工具中看到了可喜的成果,但还是要提醒企业不要将其视为机器学习旅程的全部。如H2O网站所述,“在数据科学领域,仍需要相当深厚的知识和经验才能产出高性能的机器学习模型”。对自动化技术的盲目信任,还会增加引入道德偏见或做出不利于少数群体的决策风险。虽然企业可以使用这些工具作为起点,生成基本有用的经过训练的模型,但我们还是鼓励他们寻找经验丰富的数据科学家来验证和完善最终的模型。

    历史信息
  • 随着容器的广泛使用,由自治团队部署大型服务并以越来越快的速度持续交付,在许多组织已变成一种通用实践,这也导致对自动部署时软件安全控制的需求增多。二进制鉴证就是一项实现部署时安全控制的技术,用密码学技术验证部署用的二进制镜像。使用这项技术,一个签证人,一个自动构建流程,或者一个安全小组可以签发已经通过安全检查、测试,并得到授权的待部署镜像。支持在部署前创建证明和验证镜像签名的,除了GrafeasGCP Binary Authorization服务,还有in-totoDocker Notary这样的工具。

    历史信息
  • 随着基于ML的应用程序的日益普及以及构建它们所涉及的技术复杂性,我们的团队严重依赖于机器学习的持续交付(CD4ML),以安全快速且可持续的方式交付此类应用程序。CD4ML是将CD原理和实践引入ML应用程序的学科。它消除了从训练模型到部署生产环境的长周期。在构建和部署模型的端到端过程中,CD4ML消除了不同团队、数据工程师、数据科学家和ML工程师之间的手动传递。使用CD4ML,我们的团队成功地实现了基于ML的应用程序所有组件的自动化版本管理,测试和部署,包括数据,模型和代码。

    历史信息
  • 数据科学家和分析师在工作流程中遇到的主要问题之一是找到所需的数据,弄清楚数据含义,并评估其是否值得使用。由于缺少可用数据源的元数据,并且缺少搜索和定位数据所需的适当功能,因此这仍然是一个挑战。我们鼓励提供分析数据集或构建数据平台的团队以数据的可发现性为其生态圈的首要功能;提供轻松定位可用数据,检测其质量,了解其结构和源头,并获得访问权的能力。传统上,此功能是由庞大的数据分类解决方案提供的。近年来,我们已经看到相关开源项目的增长,这些项目正在改善数据提供者和数据消费者的开发体验,从而使他们真正做好一件事:使数据易于发现。这些工具包括Lyft的Amundsen和LinkedIn的WhereHows。我们希望看到的改变是,提供者有意识地分享利于可发现性的元数据,从而帮助发现性工具从应用程序数据库中推断出部分元数据信息。

    历史信息
  • 许多团队和组织缺少正式或一致的方式来跟踪软件中的技术依赖关系。当软件需要更改,而其中使用的过时版本的库、API或者组件引发问题或者延期时,这个问题就暴露出来了。依赖漂移适应度函数是一项引入了特定的演进式架构适应度函数的技术,它能随着时间推移追踪这些依赖,从而能够指出可能需要的工作,以及某个潜在问题是在好转还是恶化。

    历史信息
  • 随着应用程序开发变得越来越动态和复杂,高效地交付风格一致可访问和可用的产品变成了一项挑战。设计系统定义了一套设计模式、组件库以及良好的设计和工程实践的集合,以确保数字产品开发的一致性。在跨团队和学科的产品开发中,我们发现设计系统是对工具箱的有用补充,因为它们让团队可以专注在产品本身更具战略性的挑战上,而无需在每次需要添加一个视觉组件时都不得不重新发明轮子。你用于创建设计系统的组件和工具的类型都可能存在很大的不同。

    历史信息
  • 机器学习的日常工作通常可以归结为一系列的实验,包括选择建模方法,网络拓扑,训练数据集以及对模型的各种优化或调整。由于其中许多模型仍然难以解析或解释,因此数据科学家必须使用经验和直觉来假设一些改变,然后测量这些变化对模型整体性能的影响。随着这些模型在业务系统中使用得越来越普遍,出现了几种不同的“用于机器学习的实验跟踪工具”,以帮助研究人员有条理地进行实验,并跟踪这些实验结果。尽管该领域还没有明确的赢家出现,但是诸如MLflowWeights&Biases之类的工具,CometNeptune之类的平台,已经在整个机器学习工作流程中引入了严谨性和可重复性。除此之外,它们还促进了相互协作,将数据科学从一项单独的工作转变为一项团队协作的运动。

    历史信息
  • 深度神经网络在很多问题上都表现出了惊人的记忆力和准确性。只要有足够的训练数据和适当拓扑选择,这些模型就能满足并超越某些特定问题域中的人类能力。然而,它们天生是不透明的。虽然模型的某些部分可以通过迁移学习进行重用,但是我们很少能够赋予这些元素人类可理解的意义。相比之下,可解释的模型是一个允许我们说明决策是如何做出的模型。例如,一个决策树产生描述分类过程的推理链。可解释性在某些受监管的行业,或当我们关注决策的道德影响时变得至关重要。由于这些模型被更广泛地合并到关键的业务系统中,因此将可解释性作为模型选择的头等标准非常重要。尽管功能强大,神经网络在可解释性要求严格的情况下,也可能不是一个合适的选项。

    历史信息
  • 安全策略是保护我们的系统免受威胁和破坏的规则和程序。例如,访问控制策略定义并强制谁可以在什么情况下访问哪些服务和资源;或者网络安全策略可以动态地限制特定服务的流量速率。当今技术环境的复杂性要求将安全策略视为代码;我们需要定义安全策略脚本、将其加入版本控制中、自动验证、自动部署并监测其性能。Open Policy Agent这样的工具或者Istio之类的平台提供了灵活的策略定义和实施机制,它们都可以支持安全策略即代码的实践。

    历史信息
  • 我们今天构建的许多技术解决方案,都运行在日益复杂的多云或混合云环境中,其中包含多个分布式组件和服务。在这种情形下,我们在实施初期应用了两个安全原则: 零信任网络,永远不要信任网络并始终进行验证;以及最小权限原则,即授予执行特定作业所需的最小权限。端点安全性的边车(Sidecars for endpoint security)是实现这些原则的一种常用技术,用于在每个组件的端点上实施安全控制,例如服务、数据存储和Kubernetes控制接口的API。我们使用进程外的边车来实现——一个共享相同执行上下文、主机和标识的运行中的进程或容器。开放策略代理(Open Policy Agent)Envoy是实现此技术的工具。用于端点安全的Sidecars将可信的足迹最小化到本地端点,而不是整个网络。最后,我们希望由负责端点的团队负责sidecar安全策略的配置,而不是单独的中心化团队。

    历史信息
  • 近年来,中台一直是中国IT界的流行语,但它尚未在西方国家流行起来。中台的核心是提供封装业务模型的方法。它旨在帮助新型的小型企业提供一流的服务,而无需传统企业基础架构的成本,并使现有组织能够以惊人的速度将创新服务推向市场。中台战略最初是由阿里巴巴提出的,并很快被许多中国的互联网公司所采用,因为它们的商业模式是数字原生的,可以复制到新的市场和领域。如今,越来越多的中国公司将中台作为数字化转型的杠杆。

    历史信息

评估?

  • BERT代表来自变换器的双向编码器表征量。它是Google在2018年十月份提出的一种新的预训练表示方法。BERT通过获得各种自然语言处理(NLP)任务的最高水平结果,极大地改变了自然语言处理(NLP)的格局。基于转换器架构,它在训练期间从令牌的左右预警中学习。Google还发布了经过预训练的通用BERT模型,该模型已针对包括Wikipedia在内的大量未标记文本进行了训练。开发人员可以在其特定于任务的数据上,使用和微调这些经过预训练的模型,并获得出色的结果。我们已经在2019年四月份的技术雷达上讨论过NLP的迁移学习;BERT以及它的后继者会继续使NLP的迁移学习成为一个令人兴奋的领域,NLP的迁移学习可以大大减少处理文本分类的用户工作量。

    历史信息
  • 数据网格是一种可以解锁大规模数据分析的架构范式;快速解锁对越来越多的分布领域数据集的访问,从而支撑跨组织的大量数据的使用场景,如机器学习、分析或数据密集型应用程序。数据网格解决了传统集中式数据湖或数据平台体系结构的常见故障模式,它改变了数据湖及其前身数据仓库的集中式范式。数据网格的范式借 鉴了现代分布式体系结构:将领域作为首要关注点,应用平台思维来创建自服务的数据基础设施,将数据视为产品,并应用开放标准化,从而实现可交互的分布式数据产品生态系统。

    历史信息
  • 在过去的一年,我们已经看到人们对机器学习尤其是深度神经网络的兴趣正在发生变化。到目前为止,这些模型的卓越功能推动了工具和技术上令人兴奋的发展。虽然目前,人们越来越担心这些模型可能会造成意外伤害。例如,一个模型可以经过训练,通过简单地排除弱势申请人,而做出有利可图的信用决策。幸运的是,我们看到人们对道德偏见测试的兴趣与日俱增,这将有助于发现潜在的有害决策。一些工具,例如limeAI Fairness 360或者What-If,可以帮助我们发现一些训练数据和可视化工具中未被充分代表的群体而导致的不准确性。可视化工具中,Google FacetsFacets Dive可以用来发现大量训练数据中的子组。但是,这是一个正在发展的领域,我们期待随着时间的推移,出现针对道德偏见测试的标准和实践。

    历史信息
  • 模型训练通常需要从数据源收集大量的数据,并将这些数据传输到集中运行模型训练算法的服务器上。但是如果训练数据集中包括个人身份信息,这就会成为问题。而联邦学习这项技术的出现让我们备受鼓舞。联邦学习是一种隐私保护方法,用于训练大量的,与个人信息相关的各种数据集。联邦学习技术可以让数据保留在用户的设备上,并完全控制在用户的手中,但最终会仍然可以组合成一个整体的训练数据集。在联邦学习中,每个用户设备独立地更新模型。然后将模型的参数(而不是数据本身)组合成一个集中式的视图。尽管网络带宽和设备算力限制会给这项技术带来一些重大的技术挑战,但是我们喜欢联邦学习的思路,让用户可以完全控制自己的个人信息。

    历史信息
  • 许多年前从手机原生开发兴起的后端即服务开发模式,现在在Web开发上变得流行起来。我们将这种集合了静态站点生成和利用第三方API进行客户端渲染的框架被称为JAMstack(JAM代表JavaScript,API和Markup),例如Gatsby.js。这种方式之所以能给用户提供丰富的体验,主要依靠的是API和SaaS。因为HTML不管是在网页浏览器中还是在构建时渲染,它的部署模型和全静态生成的网站是一样的,共同的好处是服务端的攻击面很小,而使用很少的资源可以获得极好的性能。事实上,像这种在部署上对内容发布网络(CDN)非常友好的技术,我们开玩笑想把它称为CDN优先应用程序。

    历史信息
  • 在使用共享密钥的场景下,不同数据提供者之间的记录连接是很容易实现的。但是你可能并没有一个共享密钥;即使有,基于隐私的考虑也不建议公开它。使用布隆过滤器Bloom filter,一种节省空间的概率数据结构)建立保护隐私的记录连接(PPRL)是一种成熟的技术,它允许来自不同数据提供者进行概率记录链接,而不会公开私密的个人身份资料。例如,当连接来自两个数据提供者的数据时,每个提供者使用布隆过滤器,加密其个人身份数据以获得加密链接密钥,然后通过安全通道将它们发送给你。一旦接收到数据,就可以通过计算来自每个提供者的加密链接密钥之间的相似度得分,来链接这些记录。与其他技术相比,我们发现使用布隆过滤器的PPRL对于大型数据集是可伸缩的。

    历史信息
  • 半监督学习循环是一类迭代式的机器学习工作流,它们利用未标记数据中尚待发现的关系,来提升学习性能。这些技术通过不同方式组合标记和未标记的数据集,从而改进模型。此外,它们还对在不同数据子集上训练出来的的模型进行对比。与机器从未标记数据中推断分类的无监督学习,以及训练集完全标记的有监督技术不同,半监督技术利用的是一小部分被标记数据和大部分未标记数据。半监督学习还与主动学习技术密切相关,在主动学习技术中,人们被引导至选择性标记的模糊数据点。因为能够精确标记数据的专家是稀缺资源,并且标记通常是机器学习中最耗时的活动,所以半监督技术不仅降低了训练成本,还使机器学习对于新型用户而言是可行的。

    历史信息

暂缓?

  • 在过去的几个月中,10倍工程师一词受到了密切的关注。一个广泛传播的推文讨论在实质上建议公司应原谅反社会和破坏性的行为,以留住被认为个人产出巨大的工程师。幸运的是,许多人在社交媒体上都嘲笑了这个概念,但是“明星开发者”的刻板印象仍然普遍存在。根据我们的经验,伟大的工程师不是因为个人产出而是因为能在优秀的团队中合作而诞生。打造一支混合不同经验和背景,但成员才华横溢的团队,并为团队合作、学习和持续改进提供良好的助力,这会是更行之有效的方式。这些10倍团队行动起来更快,弹性也更强——而无需屈从错误的行为。

    历史信息
  • 当团队接受微前端这个概念时,他们有很多种方式将各个微前端集成到一个应用程序中,同样也会有一些反模式。其中最常见的一种方式就是通过制品进行前端集成。每一个微前端会被构建成一个制品,这个制品通常是一个被推送到注册表中的NPM软件包。接下来,在不同的构建流水线中,将各个包组合成一个最终的软件包,这个软件包包含了所有的微前端。从纯粹的技术角度来看,这种集成方式可以使应用程序正常运行。但是,通过制品的方式进行集成,意味着每一次修改都需要重建整个包。这不仅耗时,还有很大可能会带来负面的开发体验。更糟糕的是,这种集成方式会引入构建过程中微前端的直接依赖关系,从而导致相当大的协调开销。

    历史信息
  • 在项目中构建无服务器架构的这几年,我们注意到落入一个分布式单体应用的陷阱是一件很容易的事情。当请求在日益复杂的云服务中不断跳转时,深陷Lambda、存储桶与队列中的Lambda弹球架构明显无法看清重要的领域逻辑,通常只能对应用整体进行集成测试,而很难进行单元测试。为了避免陷入弹球架构,我们可以明确区分公共与发布的接口,沿用良好的领域边界,并在其间使用已发布的接口。

    历史信息
  • 我们发现,越来越多的组织需要替换陈旧的遗留系统,以适应其客户(内部和外部)的需求。我们持续看到的一种反模式是遗留系统迁移的功能一致性,即保留旧版本同样功能的愿望。我们认为这错失了一个巨大的机会。随着时间流逝,旧系统往往会变得臃肿,包含了许多不被用户使用的功能(根据2014年Standish Group的报告,这一比例为50%)和随着时间而发展的业务流程。替换这些功能是一种浪费。我们的建议:说服你的客户退一步思考,了解他们的用户当前需要什么,并根据业务结果和指标,对这些需求进行优先排序——这通常说起来容易做起来难。这意味着需要进行用户调研,并采用现代产品开发实践,而不是简单地替换现有的系统。

    历史信息
无法找到需要的信息?

每期技术雷达中的条目都在试图反映我们在过去六个月中的技术洞见,或许你所搜索的内容已经在前几期中出现过。由于我们有太多想要谈论的内容,有时候不得不剔除一些长期没有发生变化的条目。技术雷达来自于我们的主观经验,而非全面的市场分析,所以你可能会找不到自己最在意的技术条目。

全新或有挪动,没有变化