加入收藏 | 设为首页 | 会员中心 | 我要投稿 潍坊站长网 (https://www.0536zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 外闻 > 正文

Salesforce将企业级软件全面迁移到Go语言

发布时间:2021-03-14 14:14:19 所属栏目:外闻 来源:互联网
导读:lytics 企业级软件从 C-Python 混合迁移到完全使用 Go 应用程序的经验。 我们很少有机会直接将两种技术彼此比较以完成同一任务。但是有时就会那么巧遇到星星排成一行的情况,比如从当前技术堆栈中你一直得到的是负面影响,而这时恰巧出现了满足你确切需求的

lytics 企业级软件从 C-Python 混合迁移到完全使用 Go 应用程序的经验。

我们很少有机会直接将两种技术彼此比较以完成同一任务。但是有时就会那么巧遇到星星排成一行的情况,比如从当前技术堆栈中你一直得到的是负面影响,而这时恰巧出现了满足你确切需求的新技术,或者项目的规模和功能集超过了现有技术的能力范围。

在 Salesforce,我们在过去几年中遇到了这种情况。我们将大多数 Einstein Analytics 后端从 Python-C 混合平台移植到了 Go。Go 是 Google 为大规模现代软件工程设计的一种语言。传说中,谷歌工程师想创建一种为大型应用程序设计的语言,并在等待大型 C ++ 项目编译时开始了对 Go 的设计。

这篇文章将分享了我们将企业级软件从 C-Python 混合迁移到(几乎)完全使用 Go 应用程序的经验。

Einstein Analytics 将业务智能处理添加到 Salesforce 实例中。通过基于云的 AI 处理,无论结构和格式如何,它都直接从 Salesforce CRM 数据以及尽可能多的客户外部数据中生成可行的见解或预测、管道报告、性能度量。

在后台,给定的 Salesforce 实例将 Einstein Analytics 功能公开为常规 Salesforce REST API 的一部分。这些链接到一个查询服务器集群,每个查询服务器都提供缓存在内存中的链接数据集的查询,但是它们可以从集群中的任何节点填充缓存的数据。为了管理所有这些请求,我们在每个服务器上都有一个优化的流程,该流程将请求路由到适当的节点,并将响应转发到 API 请求的发起者。对于任何读取数据集的查询服务器,这些调用都看起来是本地的。而本地意味着快速。较大的数据集是分区的,无状态查询协调器聚合来自远程分区子查询的数据。

数据集是使用 ETL(提取,转换,加载)创建的 批处理,然后以专有的列式数据库格式存储。最初成为 Einstein Analytics 的产品的查询引擎和数据集创建工具是用 C 编写的, 使用 Python 包装器提供高级功能解析查询、REST API 服务器、表达式引擎等等。

从本质上讲,该产品具有两全其美的优势。Python 非常适合快速编写更高级别的应用程序,但并不总是能够提供企业级所需的高性能。C 可以创建高性能的可执行文件,但是添加功能会花费更多时间。

转 Go 初体验

最初,这种组合是起作用的。但是,在开发该软件多年之后,Einstein Analytics 开始出现性能下降问题。这是因为不属于核心查询引擎的很多功能都被添加到了 Pyt

(编辑:潍坊站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读