加入收藏 | 设为首页 | 会员中心 | 我要投稿 辽源站长网 (https://www.0437zz.com/)- 云专线、云连接、智能数据、边缘计算、数据安全!
当前位置: 首页 > 服务器 > 安全 > 正文

拍摄纸牌屋的Netflix为何要迁移数据库入云?

发布时间:2021-01-11 04:43:59 所属栏目:安全 来源:网络整理
导读:《拍摄纸牌屋的Netflix为何要迁移数据库入云?》要点: 本文介绍了拍摄纸牌屋的Netflix为何要迁移数据库入云?,希望对您有用。如果有疑问,可以联系我们。 对任何公司来说账务都是一种关键服务,这一点大部分人都不会否认.在任何迁移项目中,数据库的迁移都是
副标题[/!--empirenews.page--]

《拍摄纸牌屋的Netflix为何要迁移数据库入云?》要点:
本文介绍了拍摄纸牌屋的Netflix为何要迁移数据库入云?,希望对您有用。如果有疑问,可以联系我们。

对任何公司来说账务都是一种关键服务,这一点大部分人都不会否认.在任何迁移项目中,数据库的迁移都是最基本要素,数据库能否成功迁移直接决定了整个项目能否成功.

Netflix CDE(云数据库工程)团队最近对这一最重要的数据库子系统进行了迁移.本次项目的目标在于将所有这一切都搬入云中,不在数据中心内运行任何计费应用程序或数据库,但所有操作不能影响业务的正常运转.我们的前路十分艰巨!

前言

毫无疑问,在不中断业务的情况下迁移高度敏感的应用程序和重要数据库是一项意义深远的工作,与此同时我们还将继续构建新的业务功能和服务.

计费系统的一些重要用途和面临的挑战包括:

  • 计费团队负责管理整个公司的重要财务数据.我们每天会通过用户的付费订阅、礼品卡、信用额度、退款等行为生成大量数据,这些数据将汇总至财务部门并创建成报表交给公司会计.为确保每天的收入情况可以准确记录,我们在日常处理流程中实施了严格的SLA.处理管线的任何延迟都是无法接受的.
  • 计费系统对数据丢失持零容忍态度.
  • 大部分情况下,现有数据使用了一种关系型模式的结构,因此需要通过事务确保这类数据实现“全有或全无(all-or-nothing)”的行为.换句话说,我们的运维必须符合ACID(原子性、一致性、隔离性、持久性)要求.但某些情况下还必须让这些数据实现跨区域高可用,同时确保不同区域间复制的延迟最小化.
  • 计费系统与公司的DVD业务相集成,而DVD业务与在线流播业务使用了截然不同的体系结构,这也大幅增加了集成工作的复杂度.
  • 支付团队还希望向Netflix客户服务代理提供数据支持,帮助他们回答会员提出的有关计费操作的问题.因此迫切需要向客户支持人员提供此类数据的概括性视图.

当我们着手进行该项目时,计费系统是这样的:

  • 数据中心内部署2个Oracle数据库 – 一个存储客户订阅信息,另一个存储发票/支付数据.
  • 多个基于REST的应用程序 – 为www.netflix.com和客户支持应用程序的调用提供服务.这些应用程序主要执行CRUD(创建、读取、更新、删除)操作.
  • 3个批处理应用程序:
  • 服务续订 – 这个每天运行一次的作业会扫描所有客户信息以确定当天需要计费的客户,并通过这些客户的订阅计划、折扣等信息确定需要计费的金额.
  • 订单和支付处理 – 通过一系列批处理作业为需要续订的客户创建发票,并负责在发票生命周期内的不同阶段处理有关发票的任务.
  • 营收报表 – 这个每天运行一次的作业会检索计费数据并生成Netflix财务部门需要的报表.
  • 一个计费代理应用程序(位于云中) – 用于将Netflix在云中的其他应用程序的调用路由至数据中心.
  • 使用老版本格式的Weblogic队列负责不同过程之间的通信.

规划

我们制订了一个三步规划:

  • 第1步 – 服务新落地国家的计费系统直接从云中运行,并将所产生的数据同步回数据中心,供原有批处理应用程序继续使用.
  • 第2步 – 对面向用户的数据进行建模,以实现最终一致性并且不再需要符合ACID特性,将这些数据持久保存在Cassandra(Cassandra使得我们能够在一个区域执行写操作,并用非常低的延迟让写入的数据可在所有区域使用.同时还可以帮助我们实现跨区域高可用性).
  • 第3步 – 最终将SQL数据库迁移至云中.

从每个国家迁移过程的每一步操作中学习经验,进行迭代和完善,确保后续工作能取得更好的成绩.

第1步 – 将新落地国家重定向至云中,将数据同步回数据中心

Netflix很快将在6个新国家落地.我们决定利用这一机会直接通过云环境运行这些国家的部分计费系统.这意味着面向用户的数据和应用程序将从云中运行,但依然需要将数据同步回数据中心,这样数据中心内的批处理应用程序才能继续运行,不至于影响到业务运转.这些新落地国家客户的数据将保存在云中,但批处理任务依然在数据中心内处理.这是我们的第一步.

我们将2个面向用户的应用程序中的所有API移植到使用Spring Boot和Spring Integration开发的云应用程序中.通过使用Spring Boot可以快速着手创建新应用程序,这个产品内建了开发工作所需的基础结构和组件,可以让我们更专注业务逻辑本身.

通过使用Spring Integration,只需一次开发码即可重复使用大部分工作流风格的代码.借助这些产品对Header以及基于Header的路由技术提供的支持,我们可以在应用程序内部实现Pub-sub模式,将消息放入一个渠道(Channel),并让每个用户通过各自独立的方式使用.

在将数据存储于Cassandra的情况下,现在可以通过任意AWS区域处理这6个新国家会员的API调用.就算某个AWS区域彻底故障,这些国家的计费操作也不会受到影响,而这也是我们首次真正意义上认识到云计算的威力!

我们在AWS多个区域的EC2实例上部署了自己的应用程序,另外为现有的云代理应用程序增加了一个重定向层,以便将新落地国家用户的计费调用切换至云中新部署的计费API,并让原有国家用户的计费调用继续由数据中心内原有的计费API处理.

(编辑:辽源站长网)

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

推荐文章
    热点阅读