【开源软件】最好的开源软件-2022-第25名 nbdev
使用Jupyter或Google Colab等环境进行笔记本编程的一个肮脏秘密是,它产生了一些你见过的最糟糕的意大利面条代码,数据科学家从一个Cell跳到另一个Cell,造成了无法维护的混乱。有些人甚至说,笔记本编程可能和GOTO当年一样有害。nbdev拥抱笔记本编程的好处,并试图减轻坏处。
nbdev是fast.ai的一个支持Git的Jupyter笔记本驱动的开发平台,它为数据科学家提供了所需的探索自由,但也能够在同一个笔记本内轻松创建带有文档的模块,是的,甚至可以进行适当的测试。你会发现它在Netflix和Lyft等公司使用,当然还有fast.ai,它们使用nbdev创建了fast.ai库的新版本。
——Ian Pointer
【开源软件】最好的开源软件-2022-第24名 JAX
谷歌广受欢迎的开源TensorFlow机器学习平台的创新包括自动微分(Autograd)和用于深度学习的XLA(加速线性代数)优化编译器。JAX同样来自谷歌,是另一个将这两种技术结合在一起的项目,它在速度和性能方面提供了相当大的好处。当在GPU或TPU上运行时,JAX可以替换其他调用NumPy的程序,但它的程序运行得更快。(Autograd引擎可以自动区分原生Python和NumPy代码。)此外,将JAX用于神经网络可以使添加新功能比扩展TensorFlow等更大的框架更容易。
——马丁·海勒
【开源软件】最好的开源软件-2022-第23名 Apache Druid
Apache Druid是一个实时分析数据库,通过Kafka、Kinesis和其他平台的流摄取,提供亚秒查询、高并发性以及实时和历史见解。该技术建立在10年的发布、400多名贡献者和分布式数据存储架构的基础上,该架构结合了数据仓库、时间序列数据库和搜索系统的思想。包括Netflix、Salesforce和沃尔玛在内的数千家公司使用Druid为分析应用程序提供支持。用例包括点击流分析、风险和欺诈分析以及供应链分析。开发人员可以查看Apache Druid的介绍和成功故事的电子书,开始学习。
——Isaac Sacolik
【开源软件】最好的开源软件-2022-第22名 Apache Iceberg
Apache Iceberg是一种用于大型分析表的高性能格式,它将SQL表的可靠性和简单性带到了大数据中,同时使Trino、Spark、Sonar、Presto、Hive、Flink和Impala等引擎能够同时安全地使用相同的表。Iceberg支持灵活的SQL命令来合并新数据、更新现有行和执行有针对性的删除。它可以急切地重写数据文件以获得读取性能,也可以使用删除增量以获得更快的更新。Iceberg支持模式进化、自动分区、时间旅行查询、版本回滚和开箱即用的数据压缩。
——马丁·海勒
【开源软件】最好的开源软件-2022-第21名 Redpanda
Redpanda是主要用C++编写的Kafka的插件替代品,它使用Seastar异步框架和Raft共识算法作为分布式日志。它可以将平均延迟降低10倍,Kafka事务速度提高6倍,同时运行的资源更少。Redpanda不需要使用ZooKeeper或JVM,其源代码可在GitHub上获得商业源代码许可证(BSL)。
即使在C++中重新实现之外,Redpanda也使用异步、无共享、每个核心线程的模型,无锁定、最小上下文切换和线程本地内存访问。Redpanda通过内联WebAssembly转换和地理复制的分层存储/阴影索引,超越了Kafka协议,进入了流媒体的未来。
——马丁·海勒
【开源软件】最好的开源软件-2022-第20名 Dapr
对于分布式应用程序,每次构建新服务时,都会面临同样的无数问题:保护连接、设置可观察性、处理状态、处理消息等。所有这些都需要一次又一次地完成,通常是使用不同的第三方服务,所有这些都为您的代码添加了一层cruft,并将其与您可能不想继续使用的外部服务联系起来。
进入CNCF的孵化项目Dapr,它致力于消除一些困难和重复。Dapr作为应用程序的助手运行,可以抽象出微服务连接的复杂性。你的应用程序与Dapr对话,其余的由Dapr完成,所以你可以在AWS上运行并使用Kinesis,或者在谷歌云上运行并用PubSub,你的服务不需要知道区别。您可以在应用程序逻辑上花费更多的时间,而在所有粘合代码上花费更少的时间。
——Ian Pointer
【开源软件】最好的开源软件-2022-第19名 Grafana
Grafana的创建者努力制作一个开源仪表板来统治所有人,但很难找到另一个接近的产品——无论是完全专有的还是像Grafana一样具有付费选项的开源产品。Grafana 8.0将普罗米修斯警报可视化与Grafana本地警报相结合,并通过普罗米修斯警报器管理器处理来补充这一点。Grafana 9.0为Prometheus PromQL和Loki LogQL查询语言添加了查询构建工具;允许您使用缩略图预览面板,而不仅仅是描述;并在产品的企业版中将基于角色的访问控制从测试版提升为通用版。
【开源软件】最好的开源软件-2022-第18名 OpenTelemetry
为了了解当今的分布式应用程序,昨天的简单日志和指标已经不够了。因此,Zipkin和Jaeger等可观察性工具以及Honeycomb等付费服务的兴起,使开发人员能够比以往任何时候都更深入地了解他们的应用程序。当然,这种新工具激增的缺点是它们的工作方式都有点不同。
OpenTelemetry通过一组标准API和工具弥合了可观察性系统之间的差距,以与供应商无关的方式将遥测数据的生成、发射、收集、处理和导出结合起来。你是不是一开始使用可观察性产品A,但后来发现自己想使用可观察性产品B?OpenTelemetry只需进行一些小的配置更改就可以实现这一点。
——Ian Pointer
【开源软件】最好的开源软件-2022-第17名 Gravite
Gravite API管理平台允许您集中管理、管理和保护分布式API,这是在当今事件驱动的API和微服务世界中控制成本和复杂性的绝对必要条件。Gravite的Cockpit门户将引导访问与功能丰富的工具集相结合,用于发布、记录和发现API,模型开发和文档编制的低代码方法。任务自动化最大限度地减少了错误,加快了调试速度,并简化了部署。安全访问和审核基础允许您通过身份验证和授权服务锁定端点。企业许可证解锁了额外的设计师和生产网关功能,以及警报引擎、异常检测和实时分析等额外功能.
【开源软件】最好的开源软件-2022-第16名 Hypertrace
Hypertrace由Traceable在Apache Kafka上构建,是一个开源、分布式跟踪和可观察性引擎,能够在庞大的云原生架构中从大量服务中获取和处理大量实时性能数据。Hypertrace监控您的应用程序和微服务,跟踪其多个接触点上的分布式事务,并将所有这些信息提取到服务指标和应用程序流图中,并在完全可定制的仪表板中显示。
除了实现基于路径的分析外,Hypertrace还提供实时警报,帮助您在性能瓶颈和令人不安的应用程序交付趋势影响您的底线之前,主动解决这些问题。Hypertrace支持开箱即用的流行跟踪格式,包括Zipkin和Jaeger,并为Java、Go和Python提供本地检测代理。