教训建立大规模、多重云,SaaS软件在砖

下载幻灯片

云计算已经成为最具吸引力的方式为企业购买软件,但它需要建筑产品在一个非常不同的方式从传统的软件。我将解释这些挑战在砖根据我的经验,创业作为服务提供数据分析平台在AWS和Azure。bob体育客户端下载砖管理每天数以百万计的vm运行数据工程和机器学习工作负载使用Apache火花,TensorFlow、Python和其他软件对成千上万的顾客。

看更多的火花+人工智能会话

免费试着砖

视频记录

——我火花,峰会和AI与会者。我很高兴你可以加入我的虚拟说话。今天我将谈论一些我们吸取的教训建筑砖,大规模的多重云数据平台。bob体育客户端下载首先,介绍,我杰夫彭日成和首席工程师砖工程团队在我们的平台。bob体育客户端下载砖可以帮助数据团队解决一些世界上最严格的问题。和砖平台团队的使命是提供世界一流的多重bob体育客户端下载云平台,使我们能够快速扩张和快速迭代,这样我们才能不断提高我们产品的数据团队。如果你有兴趣,你可以找到更多的信息关于我们在www.neidfyre.com/careers平台团队。bob体育客户端下载

正如你可能知道,砖于几年前由最初的创造者Apache火花。我们现在提供一个数据和人工智能平台,为5000多个bob体育客户端下载客户在不同的行业。我们仍然启动但我们已经超过一千名员工,年收入超过200名工程师,现在有超过2亿个,我们仍在增长。

我们的产品

我们的数据平台提供bob体育客户端下载统一的数据分析和人工智能科学家、工程bob体育亚洲版师、数据和业务用户。它包括一个数据相结合的科学工作区工具像笔记本一样,情绪和tensorflow流动。它也有一个统一的数据服务建立在最好的在课堂上部署Apache火花和数据湖。它是建立在一个企业云服务。这是简单的、可伸缩的和安全的,因为我们为我们的客户的所有操作进行管理。

是什么在这个演讲,首先我要带你在一个统一的分析平台,告诉你一些关于我们multicloud数据平台架构。bob体育亚洲版bob体育客户端下载然后我将描述三个挑战,我们在构建中所学到的功课。首先,我们如何成长和发展我们的数据平台。bob体育客户端下载其次,如何操作成功在多个云,最后我们如何使用数据在人工智能加速数据平台本身。bob体育客户端下载

但首先让我们看看砖数据平台的体系结构。bob体育客户端下载

简单的数据工程建筑

工程架构在一个简单的数据可以使用星星之火集群来处理你的数据从数据湖可能是数据存储在S3或者HDFS为例。你可能需要通过青铜、白银和黄金阶段,数据处理管道完善数据使用。最后你必须分析和报告应用程序的数据来为用户提供价值。

现代数据工程架构三角洲湖

现在,大多数现代数据平台实际上涉及到许多不同bob体育客户端下载的数据管道不只是一个。他们会涉及数据流数据除了湖,它可能包括调度更加复杂工作流的输出另一个工作是处理的输入之一。你可能使用一个现代数据格式像三角洲和您的应用程序将涉及流分析,笔记本,机器学习,人工智能,可能更多。做所有这些事情,你可能需要许多不同的火花集群规模和集群管理引发你可能需要一些像便或Kubernetes集群管理系统。这种类型的架构主要组织正在使用或试图建立以获得更多和更有价值的数据。

乘以成千上万的客户…

砖的数据为数以千计的客户提供了这个平台。bob体育客户端下载我们管理的控制平面处理分析、协作,人工智能工作流、集群管理、报告、业务洞察力,安全等等,这样我们的客户不需要自己管理。我们许多火花集群管理客户的首选网络处理数据从所有现有的流媒体和数据湖泊。

许多地区…

此外,我们的数据平台部署在全世界许多地区因为bob体育客户端下载我们有客户部署无处不在,关键是数据平台的数据。

在多个云. .

因为我们的客户有自己的数据在多个云,我们复制这些在几个云部署和集成这些云的最佳特性如AWS和微软Azure。砖数据平台的基础是全球范围内多重云平台,bob体育客户端下载管理数据平台为成千上万的世界各地的客户。

>每天数以百万计的vm管理

因此,砖数据平台管理每天数以百万计的火花上虚拟机集群。bob体育客户端下载正如你所看到的这张图的vm管理每天我们预料我们的数据平台的规模将持续增长相当迅速。bob体育客户端下载

砖的控制飞机

砖控制平面数据的计划,我们的数据平台的控制平面简而言之。bob体育客户端下载这就是将这个演讲的主题。我们的控制平面有成千上万的用户,每天成千上万的火花集群,每天数以百万计的vm,每天的数据和流程艾字节。我们的数据平台支持bob体育客户端下载每个人从大学生尝试引发第一次免费的社区版本与成千上万的财富500强企业用户和很多复杂的工作负载。在这个演讲的其余部分,我将讨论一些大的教训,我们从构建大规模多重云数据平台。bob体育客户端下载

我将讨论第一个挑战是如何增长我们的软件作为服务数据平台。bob体育客户端下载

进化的砖控制飞机

作为一个创业公司,我们显然没有从全球范围内多重云数据平台。bob体育客户端下载事实上,我们一开始用很小的东西。挑战是如何种植一个数据平台,为一个客户提供了很多有价值的数以千计在几年的时bob体育客户端下载间内。

由于我们管理数据平台为我们的客户,我们希望继续扩大bob体育客户端下载的功能我们的客户能做什么。我们了解到数据平台本身实际上并不是最重要的,是构建bob体育客户端下载和发展的工厂数据平台比数据平台本身更重要。因为这可以让我们迅速提供更多的价值在我们的数据平台和支持更多的用例。bob体育客户端下载这发生的方式为我们的用户是透明的。

那么成功的关键在大数据平台建设一个工厂。bob体育客户端下载首先,我们需要迅速向市场交付价值。例如,我们提供了一个版本的我们的一个数据平台,其中包括一些分析工具如笔记本。bob体育客户端下载但很快必须提供两个版本包括更多的作业调度和管理等功能。具有挑战性的快速迭代数据平台是我们的用户使用和依赖它在同一时间,我们试图改变它。bob体育客户端下载所以我们需要能够确保我们不破坏东西当我们不断变化的数据平台。bob体育客户端下载成功的关键在建立这个虚拟循环,是我们现代持续集成基础设施,快速开发工具,和大量的测试。例如,在砖我们大量使用Scala,巴泽尔和反应JS开发平台。bob体育客户端下载我们花了很多时间优化Scala构建起来500 X加速的默认工具为例进行比较。我们每天运行数以千万计的测试,以确保我们的变化不打破东西。 Our developers also create hundreds of Databricks in a box full control plane environments to the every day so that they can develop test and demo new features. This allows us to keep adding new features or data platform very rapidly.

整个潜在市场的扩张

其次,我们需要迅速扩大潜在市场总通过复制我们的控制飞机在许多环境中。面临的挑战是,每个环境略有不同。不同地区有不同的云,和不同的数据治理区域,需要不同的配置。这很快就会变得非常复杂,如果我们想要支持所有这些不同的环境和快速迭代更新它们的最新功能。成功为我们迅速扩张的关键是集中在很大程度上声明的基础设施,我们仅仅依赖模板描述不同控制飞机和使用现代持续部署基础设施部署它们。

在砖,我们使用一个模板语言称为jsonnet起程拓殖和大三角帆形成我们的部署和管道。这使我们能够表达在1000万行配置例如和减少代码量。它允许我们提供新特性数据平台在全球范围内每个月几次。bob体育客户端下载

土地和扩大工作负载

最后,我们想扩大我们的客户可以运行的工作负载在砖他们采用我们的数据平台。bob体育客户端下载这意味着我们需要扩大规模的数据平台可以同时操作和规模的新特性可以被添加到数据平台。bob体育客户端下载随着越来越多的我们的工程师为一个数据平台开发功能我们需要确保他们不重新发明轮子和建筑的一切其他人已经建立。bob体育客户端下载第一个成功的关键在迅速扩展的顾客已经采用了我们的数据平台是一个服务框架,做很多重活累活为所有数据平台特性。bob体育客户端下载之类的容器管理和副本管理api, rpc,速率限制,指标、伐木、秘密管理等等。这些是所有特性和所有团队砖需要为了建立他们的特性从笔记本电脑到SQL来毫升流。这些是我们所有的数据平台,但他们并不是真正的核心功能。bob体育客户端下载第二个成功的关键是向microservices分解我们的整体服务。例如,当我们开始我们的集群管理器服务负责管理我们所有火花集群是一个单独的机器,它只是几百DMS为我们的客户。但支持数以百万计的山药,今天我们管理我们需要把它分解为不同的核心功能所以帽子可能规模。 A well rounded service framework was the key to doing this rapidly so that we could spin up new services with different functionalities very quickly.

砖数据平台的工厂bob体育客户端下载

总之砖数据平台的工厂让我们很快我们的数据平台上进行迭代,快速复制在许bob体育客户端下载多地区和许多云,扩大规模和广度的工作负载,它可以支持。最伟大的事情之一有一个坚实的平台工厂是我们通常用它来改善工厂本身。bob体育客户端下载从这个图中可以看到,我们使用大量的原生云开源技术,砖从特使和GraphQL rpc和api Kubernetes起程拓殖和大三角bob下载地址帆容器管理和部署。但我们实际上并没有从所有这些技术数据砖的时候刚开始很多开源项目甚至不存在,但通过工厂方法开发过程中,我们不断的更新我们的工厂将随着时间的推移和扩展的最佳工具。bob下载地址本质上在使用我们工厂改进和完善本身除了我们的数据平台。bob体育客户端下载

接下来,让我们谈谈你在砖在多个云。

砖上运行的多个云包括AWS和Azure。我们为什么要这样做?嗯,因为数据平台需要注意数据的地方。bob体育客户端下载把相同的数据中心数据平台的数据延迟bob体育客户端下载和数据数据传输成本对性能产生影响。它让我们融入每个云的最好特性,让我们坚持数据治理策略,我们的客户需求所需的云。支持多个云的最大挑战是没有牺牲功能开发或数据平台本身的速度。bob体育客户端下载正如我刚才提到的迭代和快速扩展和扩展数据平台的关键。bob体育客户端下载我们不想牺牲。我们发现一个云不可知论者平台层的关键是保持开发速度,但这层也需要整合每个云的标bob体育客户端下载准和管理他们的怪癖。所以下一个幻灯片我将讨论我的意思。

挑战:开发速度在多个云

开发人员的经验在多个云是相当不同的。所以很难在每个云构建同样的事情。例如,许多云服务没有直接的等价物。例如在AWS, AWS有很大的可伸缩的文档存储键值称为DynamoDB。但是相同的接口在Azure真的不存在。云api也不像对方,甚至每个云上的身份验证和访问控制是非常不同的。操作工具,每个云也很不同,你甚至不能使用日志格式相同。这使它非常具有挑战性的支持多个云没有做很多额外的工作。

方法:云开发平台不可知bob体育客户端下载

为了克服这个我们构建了一个云不可知论者开发平台来支持我们的数据平台。bob体育客户端下载这些蓝线之间,我们的服务,我们的数据平台,比如SQL,笔记本,工作调度,情绪流,集群管理,等等。bob体育客户端下载确保这些服务可以无缝地在多个云。我们开发了一个服务框架API的常见的在不同的云,我们支持。这个API基于一些最小公分母云服务在每个云非常相似。虚拟机、网络、数据库和负载平衡器。砖的时候工程师工作情绪流等数据平台服务为例,他们会使用我们的服务框架API来管理API,bob体育客户端下载红血球用户、权限、计费、测试,和部署为例,他们会写代码,他们想让你担心每个云他们只会工作的差异。

挑战:不是所有可以云不可知论者

现在我们了解到,并不是所有可以云不可知论者。无论我们多么努力抽象细节。首先客户真正想要集成一些关于每个云的什么是最好的。我们想支持每个云的标准。第二,即使最小公分母BMS等云服务实现怪癖,透露自己一旦你开始建设。因此它们不是相同的。

方法抽象层集成的关键

处理与每个云服务的标准的集成框架还充当一个抽象层的差异在每个云,我们必须整合。例如,每个云做认证授权的方式,密钥管理,计费和存储相当不同。然而,大多数数据平台特性需要bob体育客户端下载深度整合所有这些属性。协调每个云的差异,我们的服务框架API抽象出尽可能多的差异,这样一个服务和一个把数据平台功能像emo流只需要知道我们的服务认证和密钥管理框架概念而不是每个云。bob体育客户端下载例如,它不会需要了解像公里Azure关键库。你只是知道自己带着自己的密钥对加密的概念。

例如,考虑存储。存储是一个非常特殊的例子,因为S3和Azure数据湖是最常见的和成本有效的方式来存储大数据对象在你的云。和通常存储层通常形成了表单数据基础湖泊,我们的大多数顾客选用。然而,S3是最终一致,而蔚蓝的湖是强烈一致的数据。所以他们有相当不同的语义。这是写一个文件之后S3下一个读取相同的文件也不能保证看到相同的数据,而这是一个湖Azure数据。显然在每个应用程序处理这个语义差异将是一个相当大的头痛所以我们抽象这种差异与S3提交服务基本上是与S3一样强烈一致的Azure湖那里的数据协调数据平台的数据访问层工厂服务。bob体育客户端下载

方法;协调“等效”云服务的怪癖

抽象层来处理云标准是必要的,但不足以使我们的服务平台不可知论者蒙上了阴影。bob体育客户端下载在现实中,即使是所谓的公共云服务有怪癖,一个相当大的噩梦。如果你只是试着提升的东西在一个云,试图在另一个工作。例如,考虑虚拟机与封隔器等工具实际上很容易创建完全相同的图像在每个云。所以你可以发射相同的二进制及其运行相同的代码,同样的操作系统,等等。然而,当使用BMS作为弹性计算这些虚拟机的创建和删除时间很重要的用户体验。例如,当你想自旋向上或拆除引发集群。如果你不小心采用云api的限制,您可能会创建和删除虚拟机的速度比云可以返回你的配额。最终你可能会处于死锁状态,实际上你不能创造更多的vm,即使你认为你有更多的配额。这是经验我们遇到的一个例子,我们基本上已经解决,以确保我们可以创建vm和弹性云火花集群成功。

同样,我们发现,不同的云处理不起眼的TCP连接非常不同。中间有很多看不见的盒子,将时间和闭连接没有警告。有小的差异数据发送方网络硬件的可靠性,可以导致非常灾难性的应用程序失败如果你不了解他们。例如,我们发现,在2019年,有一个主要的TCP错误在Linux内核中。基本上这是它引起了一些TCP连接永远挂。但是我们真的只有经历过错误在我们的一个云,因为非常小的差异的可靠性。

最后,尽管您可以运行MySQL和其他数据库和所有的云。它不是完全相同的。我们认为我们发现我们认为是微不足道的大小写敏感性的差异或不敏感的底层操作系统。例如,你是否喜欢文件可以区分大小写的命名可以进入数据库,如果你不小心咬你。

所以做一个真正的不可知论者平台层蒙上了阴影。bob体育客户端下载我们不断地发现这些怪癖和掩蔽他们从我们的日常开发人员不需要担心他们。

最后一个教训,我会和你谈谈今天是多么重要它是使用数据和人工智能加速数据平台本身。bob体育客户端下载

nception: mproving数据平台数据&bob体育客户端下载

它实际上很难建造并运营一个没有数据和人工智能的数据平台。bob体育客户端下载你真的需要很多的数据和AI实际构建一个数据平台本身。bob体育客户端下载因此砖实际上是其最大的客户之一。我们使用砖非常严重。数据平台需要数bob体育客户端下载据从许多事情,这些数据跟踪使用情况,保持安全,用数据来观察用户的数据平台和批准它。和它需要数据本身启动并运行。我们发现有一个简单而强大的数据平台像砖已基本构建平台本身的数据,因此数据和人工智能加速数据平台。bob体育客户端下载

我们使用砖为许多事情,这包括关键平台的功能,如使用和计费报告,我们希望交付实际报告关于客户使用。bob体育客户端下载还有我们的审计日志,我们需要开发为客户提供安全日志,这样他们就可以找出他们的用户在做什么。我们使用砖为分析和未来使用看趋势和增长模型,观察生产和其他预测。这些是一些相同的特性,我们的客户也使用砖。显然我们也客户数据,因为我们使用了大量的数据和分析我们自己的产品。最后一个数据平台本身是一个管理服务和管bob体育客户端下载理服务需要实时数据有效地运作。这是对于关键任务devops,和监控可观测性,这样我们可以收集和分析从kpi api和其他日志像火花调试日志,这是必要的帮助客户调试工作负载并调试平台有问题时的问题。bob体育客户端下载

从分布式数据管道

所以这样做所有我们已经建立了几个全球分布的数据管道砖基础数据平台。bob体育客户端下载像我们的服务部署我们使用声明式模板部署数据管道,这样我们可以快速迭代和复制它们。我们有一个模板工具称为堆栈CLI,你可以找到在我们的文档,您可以使用自己部署这些数据管道砖或砖。我们每一个全球分布的砖部署流基本上从ETL数据流数据到我们的数据处理引擎是建立在砖和δ。但它也与其他大数据工具像普罗米修斯的紧密集成弹性搜索和Jaeger分布式跟踪。这使我们能够看到分析和模型的使用和帮助砖在实时和历史数据平台。bob体育客户端下载现在我们的数据管道每天处理上百tb的日志,并实时分析数以百万计的时间序列。这个数据管道真的是至关重要的持续进化数据平台,是Databricksn,实际上是建立在,因此砖实际上加速本身。bob体育客户端下载

总之,砖建筑管理数以百万计的世界各地的百时美施贵宝在多个云。我们学到一些重要的事情而构建这个庞大的数据平台。bob体育客户端下载首先,构建和发展的工厂数据平台比数据平台本身更重要。bob体育客户端下载未来的数据平台不会bob体育客户端下载看起来像一个今天。和工厂是将构建未来的数据平台。bob体育客户端下载

其次,云不可知的平台,集成了每个云标准和怪癖是构建bob体育客户端下载多重云数据平台的关键。比它首次出现,很难做,因为大数据的性能扩展集成需求。

最后,数据和人工智能可以加快数据平台、产品分析和devops特性。bob体育客户端下载你不能建立一个大规模数据平台实际上没有分析大量的数据。bob体育客户端下载

这给我带来了我的演讲结束,谢谢你的倾听。哦,PS如果你兴奋什么可能今天的演讲,砖工程是招聘的,我希望你们中的一些人将会加入我们。

看更多的火花+人工智能会话

免费试着砖
«回来
关于杰夫庞

杰夫彭日成是首席工程师砖平台团队。bob体育客户端下载他有砖的主要几个部分的发展统一的分析平台,包括砖笔记本,砖Community Edition, Azure砖。bob体育亚洲版bob体育客户端下载砖之前,他曾在大规模数据分析在AT&T实验室研究。他从卡内基梅隆大学获得博士学位,来自加州大学伯克利分校的英航。