生成式AI领域的最新成果都在这里!抢 QCon 展区门票 了解详情
写点什么

大数据公司 LiveRamp 上云记(二):哪些功能可以直接迁移,哪些需要重新设计?

  • 2020-02-20
  • 本文字数:1993 字

    阅读完需:约 7 分钟

大数据公司 LiveRamp 上云记(二):哪些功能可以直接迁移,哪些需要重新设计?

踏上征途

在上一篇文章中我们讨论了迁移到云也就是 GCP(谷歌云计算平台)的原因。一旦确定了迁移,我们就开始问自己三个问题:


  1. 我们的云架构在第一天会是什么样子?云平台的确可以让我们做很多令人兴奋的事情,但我们究竟希望自己的 MVP 看起来如何呢?

  2. 我们该如何实现?构建一个全新的云环境很容易,但是要把一个现有的基础设施平稳迁移到云上就没有那么容易了。

  3. 我们的环境在一年后又会是什么样子?我们知道自己的基础设施不会在第一天就很完美,这没关系,但我们希望会在接下来成功。


我会在这里详细讨论第一个问题。

MVP 架构

单单要求开发团队迁移到云上已经很困难了,而在迁移过程中又不断要求他们重新设计原有的应用程序,这就给整个过程带来了很大的不确定性。所以当我们不能在 GCP 中找到适合我们基础设施的替代品时,我们会尽量避免重新设计原有架构。


即便这样,GCP 上的很多功能已经很棒了,也为我们的基础设施提供了一些足够直接的转换方式,我们也觉得在迁移时进行这些切换是非常适合的。


首先,我们保留的部分:


  • 我们的本地环境有一个单逻辑内部网络。内部服务通过私有 IP 进行通信,大部分通过 Hashicorp Consul 进行协调。我们认为保留这一点对应用程序团队至关重要,至少在迁移期间是这样的。通过使用专用互连共享VPC网络,我们为开发人员提供了一个就像本地数据中心扩展一样的云。

  • Liveramp 的大数据处理核心 ETL 和连接管道都运行在 Cloudera Hapdoop 平台上。这一点不会改变,至少目前不会。

  • 尽管本文的重点不是我们的安全和数据隐私决策,但它们与我们做的每一件事都息息相关。我们的运营团队保留了对数据权限和网络规则的控制权。云平台让开发人员更加强大,但也使他们更容易做出非常愚蠢的决定。只有当你知道你不能意外泄露客户数据时,你才能更容易进行安全快速的开发。


那我们又需要改变那些部分呢?有很多,但这里将重点关注下面的三种技术:



在本地数据中心,我们很自然地选择 Hadoop HDFS 来保存持久数据。虽然我们的 HDFS 集群在迁移时仍然运行良好,但无停机或无中断的维护和升级要求让我们倍感压力。随着公司的发展,我们能够跟产品团队协调的停机时间也越来越短,直到再也无法在规定停机时间内完成升级。我们知道我们想使用 GCS(谷歌云存储),只有这样才可以保持作为开发团队的灵活性。


在本地数据中心,我们使用 Chef 管理所有的虚拟机。我们在 Chef 中嵌入了很多逻辑,也尝试在云平台中使用 Chef 管理虚拟机,但是效果不佳。再加上 Docker 和 Kubernetes 为我们提供了非常好的使用体验,我们最终在新环境里完全放弃了 Chef。


最后一点,我们认为 Google 的 BigTable 可以很好地替代我们自主研发的键值数据存储。放弃一个已经使用了这么久的工具的确令人难过,但只有这样才能让我们专注于那些新的令人兴奋的挑战。

云上 Hadoop

接下来,我将着重介绍一下我们的 Hadoop 基础设施,包括过去和现在。我会简要介绍一下我们的基础设施,以及我们在 GCP 上的构建。


下面是我们本地 Hadoop 集群的一个高度简化视图:



为保持简洁,该图省略了 Journal Nodes、ZooKeeper 和 Cloudera 管理角色。值得一提的是,该生产环境集群能够:


  • 在不同开发团队之间共享;

  • 在不随负载扩展的物理节点上运行;

  • 从网关虚拟机启动作业;

  • 将所有数据存储在一个 HDFS 联邦中(4 个 HA NameNode 对);

  • 自 2009 年以来持续运行(除了某些系统升级的时段)。


毫无疑问,HDFS 是最具可伸缩性的本地文件系统,但与云原生的对象存储(S3,GCS)相比仍有一些缺点。例如,数据会随着实例的销毁而丢失(除非你还保留了持久磁盘记录)。在设计云集群时,我们知道有以下需求:


  • 能够长期运行的临时集群(有问题?结束当前集群重启一个开始就好);

  • GCS 中所有重要的数据;

  • 按应用程序团队隔离集群;

  • 快速自动伸缩;

  • 从 GKE(谷歌 Kubernetes 引擎)发起工作任务。


所以,我们得到了如下所示的设计:



上图包含了很多内容,让我们逐个分析:


  • 不同的集群按应用程序团队运行在不同的子网中;

  • 工作任务从 GKE 发起而不是从虚拟机发起。每个 pod 中只包含一个应用程序,不再需要手动将应用程序打包到虚拟机上;

  • HDFS 仍然存在,但只有很少的一部分:YARN 使用 HDFS 保存 JobConf、分布式 Cache 和应用程序日志。但所有的应用程序数据都存储在 GCS 上;

  • 因为几乎不怎么使用 HDFS,所以我们只需要几个数据节点。大多数 worker 节点只是节点管理器。它们可以根据应用程序负载快速伸缩。


我会在另一篇文章中更详细地讨论这个问题,但重点是,临时的去数据化基础设施让我们在配置和机器类型上迭代的速度比在物理机器上快了 1000 倍。


这些决定为我们的迁移提供了一个起点。在下一篇文章中,我将讨论迁移的实现细节问题,重点讨论如何在吞吐量有限的情况下处理数据复制。


原文链接:


https://liveramp.com/engineering/migrating-a-big-data-environment-to-the-cloud-part-2/


相关阅读:


大数据公司 LiveRamp 上云记(一):为什么选择 GCP?


2020-02-20 10:061212

评论

发布
暂无评论
发现更多内容

布局电力行业,百度智能云与中国电科院签署战略合作协议

百度大脑

人工智能 百度

互联网 | 逻辑上的黑话才是真正的花里胡哨

程序员 互联网 黑话

13万字!腾讯高工手写JDK源码笔记 带你飙向实战(1)

Java 程序员 后端

150 道面试题:集合 +JVM+ 设计模式 +spring

Java 程序员 后端

【死磕Java并发】-----Java内存模型之重排序

chenssy

11月日更 死磕 Java 死磕 Java 并发

10 K8S之名称空间

穿过生命散发芬芳

k8s 11月日更

在WE大会看见出行未来:告别拥堵,15分钟飞到办公室

脑极体

大数据毕业作业

Clarke

13万字!腾讯高工手写JDK源码笔记 带你飙向实战

Java 程序员 后端

研发人员除了编码还能干什么?

卢卡多多

研发效能 11月日更

南瓜电影 7 天内全面 Serverless 化实践

阿里巴巴云原生

阿里云 Serverless 云原生 实践 南瓜电影

18张图揭秘高性能Linux服务器内存池技术是如何实现的

Java 程序员 后端

19年末从外包辞职,10000小时后,进字节跳动拿offer

Java 程序员 后端

Qcon 实时音视频专场:实时互动的最佳实践与未来展望

声网

人工智能 算法 音视频

理解Java中对象基础Object类

Java JVM jdk8 Object

150个超实用的网站,整理成资源库页面分享给大家

Java 程序员 后端

15个顶级Java多线程面试题及答案

Java 程序员 后端

《大教堂与集市》

石云升

读书笔记 开源 11月日更

Java 设计模式 Monads 的美丽世界

码语者

Java 设计模式 Monads

“平”地而起,2022中国企业数智服务市场趋势洞察报告即将发布

海比研究院

NodeJs深入浅出之旅:异步I/O (下)🐂

空城机

大前端 Node 11月日更

-So-easy!多图详解CLH锁的原理与实现,轻松把握AQS

Java 程序员 后端

12 高可用的应用(1)

Java 程序员 后端

从欧拉捐赠中,读懂数字基建与数字中国

脑极体

18级大数据专家,漫谈大数据平台安全风险与建设,值得学(下篇)

Java 程序员 后端

18道kafka高频面试题(附答案)

Java 程序员 后端

1万字长文高速你千万级并发架构下如何提高数据库存储性能

Java 程序员 后端

rfc2988:Computing TCP's Retransmission Timer

Changing Lin

11月日更

统一开发平台通用管理端工程

中原银行

中原银行 管理端

ClickHouse深度解析,收藏这一篇就够了~

大数据老哥

10分钟搞定OAuth2

Java 程序员 后端

大数据公司 LiveRamp 上云记(二):哪些功能可以直接迁移,哪些需要重新设计?_大数据_Benjamin Podgursky_InfoQ精选文章