菜单

采纳?

    试验?

    • 自从Apache Flink在2016年首次进入技术雷达“评估”环以来,越来越多的人开始采用它了。Flink被视为领先的流处理引擎,在批处理与机器学习领域也逐渐成熟。与其他流处理引擎相比,Flink的独特之处在于,它使用了一致的应用状态检查点。当发生错误时,应用可以重启,并从最近的检查点载入状态继续处理,就好像错误从未发生一样,这让我们不必为了容错而不得不构建和操作复杂的外部系统。我们看到越来越多的公司,在使用Flink构建他们的数据处理平台。

      历史信息
    • Apollo Auto让自动驾驶技术不再是科技巨头独享的”火箭科技”。百度旗下的Apollo项目的目标,是成为自动驾驶产业里的安卓操作系统。Apollo平台拥有诸如感知、模拟、规划以及智能控制相关的一系列组件,能够让汽车公司将他们的自动驾驶系统集成到汽车硬件中。虽然开发者社区刚刚起步,但是许多第三方厂商陆续加入并贡献良多。我们的一个项目就是帮助客户,使用基于Apollo的自动驾驶系统,完成自动驾驶执照的考试。Apollo同时也提供演进式架构的方法,以逐步引入先进功能,让我们能以敏捷和迭代的方式,集成更多的传感器和功能。

      历史信息
    • GCP Pub/Sub是谷歌云的事件流平台。对于谷歌云平台上我们所使用的许多架构而言,由于具备大规模事件提取、无服务器工作负载通信以及具备能进行流数据处理的工作流等特性,这一基础设施广受欢迎。该平台另一个独特功能,是支持拉和推两种事件订阅方式,即在订阅期间能接收所有可用的已发布消息,并能将消息推送到特定端点。我们很喜欢该平台的可靠性和伸缩性,其工作表现名实相符。

      历史信息
    • Mongoose OS依然是我们首选的开源微控制器操作系统和嵌入式固件开发框架。值得关注的是,Mongoose OS为嵌入式开发人员解决了一个明显的问题,即消除了用于原型设计的Arduino固件与裸机微控制器原生SDK之间所存在的冲突。我们的团队已成功将Cesanta的新型端到端设备管理平台mDash,用于一些新的小型硬件项目中。如今,主要的物联网(IoT)云平台供应商,都支持Mongoose OS开发框架,以进行设备管理、连接控制和空中(OTA)固件升级。自从我们上次将Mongoose OS纳入技术雷达以来,意法半导体、德州仪器和乐鑫科技等公司所生产的板卡和微控制器,都开始对其提供了支持。其对OTA固件更新的无缝支持,以及单设备级别的内置安全性,都将继续受到我们的青睐。

      历史信息
    • ROS(Robot Operating System,机器人操作系统)这套程序库和工具集,能帮助软件开发人员创建机器人应用程序。它也是一个开发框架,提供硬件抽象、设备驱动、程序库、可视化程序、消息传递、包管理等功能。开放自动驾驶平台Apollo Auto正是基于ROS的。在另一个ADAS(高级驾驶辅助系统)模拟项目中,我们还使用了ROS的消息传递系统(使用bag文件格式)。随着ADAS的发展,ROS这项不算新的技术,又重新引发开发人员的关注。

      历史信息

    评估?

    • 尽管我们很多团队,已经将Terraform作为定义云基础设施的默认选择,但另一些团队却已经开始尝试使用AWS Cloud Development Kit (AWS CDK),并对其青睐有加。他们尤其喜欢该工具使用编程语言而不是配置文件来定义云基础设施,这样就能使用已有的工具、测试方法和技能来进行工作。即使对于定义云基础设施这样的工具,也需要用心确保部署代码易于理解和维护。考虑到该工具很快就会支持C#和Java语言,并且暂时忽略某些功能上的差距,如果希望不使用配置文件来定义云基础设施,我们认为AWS CDK值得关注。

      历史信息
    • Azure DevOps服务包括一组被托管的服务,如Git仓库、CI/CD流水线、自动化测试工具、待办列表管理工具和制品仓库。Azure DevOps Pipelines已经日趋成熟,其对流水线即代码的支持,以及在Azure DevOps市场中的生态系统的扩展能力,尤其赢得我们的青睐。但在撰写本文时,我们的团队还是发现它的一些功能不够成熟,比如缺少有效的UI,来进行流水线的可视化和导航,以及无法从制品或其他流水线,来触发某条流水线。

      历史信息
    • Azure PipelinesAzure DevOps套件中的一款产品,提供了基于云的解决方案,能为Azure DevOps Git或其他Git解决方案(如Github或Bitbucket)中的项目,实现流水线即代码的功能。该解决方案的亮点在于,能将脚本运行在Linux、MacOS和Windows代理(agent)上,而无须自行管理虚拟机。这对于团队(尤其是在Windowks环境下使用.NET框架的团队)来说,意味着前进了一大步。我们也正在评估此服务在iOS方面的持续交付能力。

      历史信息
    • 开发团队在开发大多数具有多语言支持的项目时,往往一开始只构建一种语言的功能,然后以电子邮件和电子表格形式,离线翻译其余语言。这种简单的安排虽然可行,但很快就会失控。因为可能需要为不同的语言翻译者,重复回答相同的问题,从而使译者、校对人员和开发团队,耗费大量精力进行协作。Crowdin是少数几个同类平台中的一员,能简化项目本地化工作流程的。开发团队在持续构建功能的同时,Crowdin平台可以持续将待翻译文本,整合至在线工作流中。我们喜欢Crowdin能推动团队持续和渐进地整合翻译工作,从而避免在最后阶段才进行大批量的处理。

      历史信息
    • Crux是一个带有双时态图查询的开源文档数据库。许多数据库系统都是有时态的,这意味着它们可以帮助我们对事实及其所发生的时间进行建模。双时态数据库系统不仅可以对事实所发生的有效时间进行建模,还可以对收到事实并产生交易的时间进行建模。如果需要使用具有图查询功能的文档库来查询内容,可以试试Crux。虽然该数据库当前还处在alpha测试阶段,且缺乏SQL支持,但是可以使用Datalog查询界面来读取和遍历关系。

      历史信息
    • Delta Lake是一个由Databricks开发的开源存储层,用于在大数据场景中引入事务处理。我们在使用Apache Spark时经常遇到的一个问题是缺少ACID事务。Delta Lake通过与Spark的API集成,使用事务日志和版本化的Parquet文件解决了这个问题。由于其可序列化的隔离性,它允许读取器和写入器对Parquet文件进行并发的操作。它的另一个广受好评的特性是对写操作和版本控制的模式强制,它允许我们在必要时可以查询和恢复到旧版本的数据。Delta Lake已经在我们的一些项目中得到了应用,并收获了极好的用户评价。

      历史信息
    • Kubernetes的无服务器生态系统正在增长。我们在之前的雷达中讨论过Knative,现在我们看到Fission获得了关注。Fission让开发人员可以专注于编写短期的函数并将它们映射到HTTP请求,而Kubernetes资源的自动化和其他工作则交给框架幕后处理。Fission还允许组合功能,通过web hooks与第三方提供商集成,并自动管理Kubernetes基础设施。

      历史信息
    • FoundationDB是一个开源的多重模型数据库。在被苹果公司收购三年后,于2018年4月进行了开源。它的核心是一个提供严格可序列化操作的分布式的键值存储。比较有意思的地方是FoundationDB是它的扩展层的概念。扩展层是在其核心键值存储之上的一些无状态组件,例如记录层文档层。同时FoundationDB为模拟测试设置了很高的标准,它们每天运行这些测试来模拟各种系统故障。出色的性能、严谨的测试和简单的操作使得它不单只是一个数据库,有人也用它来作为核心底层,并基于此开发分布式系统。

      历史信息
    • GraalVM是一种由Oracle开发的通用虚拟机,用于运行基于JVM的语言,JavaScript,Python,Ruby和R以及C/C++等其他基于LLVM的语言编写的应用程序。简单地说,GraalVM可以用作VM和其他所支持的非JVM的语言的高性能虚拟机。但它也允许我们编写多种语言的应用程序,而且对性能影响很小;它的原生镜像程序(当前仅可作为早期采用者的技术使用)让我们可以提前将Java代码编译成独立的可执行文件,从而加快启动速度并减少内存的使用。GraalVM在Java社区引起了巨大的反响,并且许多Java框架(包括MicronautQuarkusHelidon)已经在利用它的技术了。

      历史信息
    • 并非每个人都需要一个自托管的OAuth2解决方案,但是如果你需要,我们发现Hydra是一个非常有用的方案,它是一个完全兼容开源OAuth2认证服务器和OpenID Connect的服务提供方。我们非常喜欢它,因为它不提供开箱即用的认证管理解决方案,无论采用哪种身份管理方式,都可以通过干净的API与其集成。身份认证管理与OAuth2框架其余部分之间的清晰区分,使Hydra与现有身份认证生态系统的集成更加容易。

      历史信息
    • Kuma是可用于Kubernetes、VMs和裸机环境的,与平台无关的服务网格。它基于Envoy实现了一个控制平面来监测任何4层/7层的网络流量,以此保护、观察、路由和增强服务之间的连接性。大多数服务网格的实现都是针对Kubernetes生态系统的,这本身没问题,但是会阻碍现有的非Kubernetes应用程序使用服务网格。现在,你可以通过Kuma来使网络基础设施现代化,而不是花费精力完成大量的平台迁移工作。

      历史信息
    • 过去我们讨论过Kubernetes,它仍是在生产集群中部署和管理容器的默认选择。但为开发人员提供类似的本地体验变得越来越困难。在一些其他选项中,我们发现MicroK8s非常有用。安装MicroK8s snap,需要选择一个发布渠道(稳定版、候选版、Beta版或Edge版),使用一些命令来让Kubernetes运行起来即可。你也可以持续关注主流版本的发布,并选择是否自动化升级。

      历史信息
    • 我们在雷达中对AR/VR(增强现实/虚拟现实)技术关注了很长时间,但其仅仅在特定的平台及外接方案上展现了吸引力。Oculus Quest打破了这个局面,成为首批面向大众消费市场的无需智能手机绑定或支持的VR一体机之一。该设备为潜在的VR应用的大量增长打开了大门,其需求将反过来推动市场朝着更积极创新的方向发展。我们很欣赏该设备为VR普及带来的推动力,迫不及待地想看到即将到来的变化。

      历史信息
    • 目前,围绕神经网络的相关工具和框架的生态系统正在迅速地发展。但是,这些框架和工具之间的互通性也成为一个挑战。在机器学习领域,通常需要在一种工具中快速进行原型设计和训练,然后将其部署到其他工具中进行推理。因为这些工具的内部格式并不兼容,为了使他们兼容,我们需要实现并维护很多麻烦的转换器。开放神经网络交换格式ONNX的出现,就是为解决这一问题。在ONNX中,表示神经网络的图形由标准规格的操作符和一系列表示训练权重和神经网络模型的格式所组成,这些图形可以在不同的工具间传递。这种一致的格式带来了很多的可能性,其中之一就是Model Zoo,它是一系列基于ONNX格式的预训练模型的集合。

      历史信息
    • 理想情况下,容器应该由各自的容器运行时管理和运行,而不应具有root权限。这不是小事,当它实现时,能够减少攻击面并避免所有类型的安全问题,特别是容器外的权限升级。无根容器在社区被讨论了很长时间,它是开放容器运行时规范及其标准实现runc的一部分,而runc是Kubernetes的基础。现在,Docker 19.03将无根容器作为一个实验性特性引入。尽管功能齐全,该特性还不能与其他部分特性兼容,比如cgroups资源控制和AppArmor安全配置文件。

      历史信息
    • 我们经常将数据仓库和中心化的基础设施联系起来,而随着围绕数据的需求不断增长,中心化的基础设施是难以扩展和管理的。然而,Snowflake是一种全新的SQL数据仓库即服务解决方案,专为云平台而构建。Snowflake拥有大量精心设计的功能,例如数据库级的原子性,结构化和半结构化数据支持,数据库内分析功能,尤其是将存储、计算和服务层明确分离,从而解决了大多数数据仓库所面临的挑战。

      历史信息
    • Teleport是用于远程访问云原生基础架构的安全网关。其吸引人的功能,是除了用作网关以外,还可以兼作基础设施的证书颁发机构(Certificate Authority,CA)。它可以颁发短期证书,并为Kubernetes基础设施(或仅为SSH)构建更丰富的基于角色的访问控制(role-based access control,RBAC)。随着人们越来越关注基础设施的安全性,更改的跟踪变得非常重要。但是,并非所有事件都需要相同级别的审计。使用Teleport,就可以对于大多数事件仅做记录,而对于拥有更多权限的root会话,则可进一步记录用户的屏幕操作。

      历史信息

    暂缓?

      无法找到需要的信息?

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

      全新或有挪动,没有变化