拍摄纸牌屋的Netflix为何要迁移数据库入云?
《拍摄纸牌屋的Netflix为何要迁移数据库入云?》要点: Netflix CDE(云数据库工程)团队最近对这一最重要的数据库子系统进行了迁移.本次项目的目标在于将所有这一切都搬入云中,不在数据中心内运行任何计费应用程序或数据库,但所有操作不能影响业务的正常运转.我们的前路十分艰巨! 前言毫无疑问,在不中断业务的情况下迁移高度敏感的应用程序和重要数据库是一项意义深远的工作,与此同时我们还将继续构建新的业务功能和服务. 计费系统的一些重要用途和面临的挑战包括:
当我们着手进行该项目时,计费系统是这样的:
规划我们制订了一个三步规划:
从每个国家迁移过程的每一步操作中学习经验,进行迭代和完善,确保后续工作能取得更好的成绩. 第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处理. (编辑:ASP站长网) |