当前位置: 首页 > news >正文

Netflix已经全部迁移到云端

我们把Netflix迁移到云端的旅程开始于2008年8月,那时我们正在经历一场主数据库错误,长达3天无法向会员发放DVD。正是在那个时候,我们意识到必须从纵向扩展的单点系统失败模式——比如我们数据中心的关系数据库——转向高度可靠的横向扩展的云端分布式系统。我们选择了AWS云服务作为我们的云服务提供商,因为它为我们提供了最大的规模和最广阔的服务与功能。大部分我们的系统在2015年前就已经被迁移到了云端,其中包括全部面向客户的服务。从那时起,我们就开始为计费基础架构和客户与员工数据管理寻求安全且持久的云服务。我们很高兴地在2016年的1月份宣布,在长达7年的勤奋努力之后,我们终于完成了云迁移,并且关闭了流媒体服务使用的剩余数据中心!

迁往云端给Netflix带来了许多益处。我们现在拥有了8倍于2008年的流媒体会员数量,而且他们的参与度也更高了,整体看来在8年里这个数据增长了3个数量级。

20160219091815627.png

Netflix产品本身继续迅速发展,开启了很多新的消耗资源的功能,并且依赖于不断增长的数据量。对我们的数据中心来说,支撑如此迅猛的增长极端困难;我们根本不可能让服务器足够快。云的灵活性允许我们在几分钟内增加数千个虚拟服务器和PB级存储,从而使上述扩张成为可能。2016年1月6日,Netflix将它的服务扩展到130多个新国家,成为一个真正意义上的全球互联网电视网络。充分利用遍布全球的多个AWS云区域,使我们能够动态地变换并扩张我们的全球基础架构容量,从而为Netflix世界各地的会员创造出更好、更舒适的视频播放体验。

在所有的可扩展计算和存储需求方面,我们都依靠云计算。我们的业务逻辑、分布式数据库和大数据处理/分析、推荐、转码和数以百计构成Netflix应用的其他功能,都是如此。视频是通过Netflix开放连接来传送的,这个开放连接是一个全球分布式内容分发网络,可以有效地将我们的数据推送到会员的设备上。

云计算还使我们显著提高了自己的服务可用性。以前,我们的数据中心有非常多的运行中断,尤其是在云迁移的早期,我们重点解决了一些不可避免的云端问题。在整体可用性方面,我们的服务稳定提升,已经接近了期望中的目标——99.99%的服务正常运行时。在任何大规模分布式系统中失败都是不可避免的,即使基于云的系统也一样。然而,云计算却可以使一个基于不稳定的冗余组件建立高可用的服务。在架构设计中采取冗余和优雅降级的原则,加上通过Simian Army严控生产环境,即使云基础设施和我们自己的系统都出现问题,仍然不会影响用户的体验。

成本削减并不是我们迁移到云端的主要原因。然而,我们在云方面的花费最终只是那些数据中心花费的一小部分——这是一个令人欣慰的额外好处。这可能还是由于云的灵活性,使我们能够不断优化实例类型的配置,并几乎瞬时地增加和收缩占用的资源,而不用维持大量的备用资源。我们还能从规模经济中受益,而规模经济只在庞大的云生态系统中才成为可能。

鉴于云的益处如此明显,那为什么我们花了整整7年才完成迁移呢?事实上,迁往云端是件非常艰苦的工作,在前进的道路上我们不得不做出许多艰难的选择。毋庸置疑,最简便的迁往云端的方法就是复制整个系统直接放到AWS上。但是这样做,你最终就把数据中心所有的问题和局限一并带去了云端。作为替代,我们选择了云原生的方法,纵向重建所有的服务,从根本上改变我们运营公司的方式。在结构上,我们从一个单一庞大的APP转向了数以百计的微服务,转向非规格化,转向我们使用NoSQL数据库的数据模型。预算审批、集中发布的协调工作和多个星期的硬件置配循环,让位于持续的交付,让位于工程团队制作使用自助服务工具,并在松散连接的DevOps环境中独立决策,这些都加速了创新。我们必须建立许多新的系统,学习新的技能。把Netflix转变成一个云原生的公司需要时间和努力,但这也把我们置于更有利的位置,让我们继续增长并成长为全球化电视网络。

在过去的几年中,Netflix的流媒体技术已经走过了漫长的道路。最终不被我们先前面临的限制所束缚,这感觉真是太棒了。对我们业界的很多人来说,云计算仍然是相当新的事物,还有许多问题要去解答,许多难题要去克服。通过Netflix Open Souce这样的开源举措,我们希望继续和伟大的科技头脑合作,共同应对所有这些挑战。


本文转自d1net(转载)

相关文章:

  • grep 信息提取
  • 利用大数据加强医疗保障
  • spring mvc controller间跳转 重定向 传参
  • Centos下MySQL使用总结
  • 专家答疑:重复数据删除在云中是如何工作的?
  • Spring、控制反转与依赖注入(概念)
  • 掌握设计开发维护大型网站的技术之性能
  • Spreadsheet Calculator 电子表格计算器 (Uva 215)
  • 资交所遭遇黑客攻击勒索,阿里云并肩为投资者保驾护航
  • 使用Log4j记录日志说明
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • 东芝荣获年度存储影响力品牌大奖
  • centos+scala2.11.4+hadoop2.3+spark1.3.1环境搭建
  • 集结“互联网+”优势 广电网络全面推进汉中市智慧城市建设
  • Android之SqlLite数据库使用
  • ES2017异步函数现已正式可用
  • Intervention/image 图片处理扩展包的安装和使用
  • JavaScript新鲜事·第5期
  • Java小白进阶笔记(3)-初级面向对象
  • js对象的深浅拷贝
  • Js基础知识(四) - js运行原理与机制
  • Linux各目录及每个目录的详细介绍
  • Spring Cloud中负载均衡器概览
  • vue中实现单选
  • 动态规划入门(以爬楼梯为例)
  • 猴子数据域名防封接口降低小说被封的风险
  • 简单实现一个textarea自适应高度
  • 如何优雅地使用 Sublime Text
  • 积累各种好的链接
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • # 学号 2017-2018-20172309 《程序设计与数据结构》实验三报告
  • #HarmonyOS:Web组件的使用
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • ( )的作用是将计算机中的信息传送给用户,计算机应用基础 吉大15春学期《计算机应用基础》在线作业二及答案...
  • (13)Hive调优——动态分区导致的小文件问题
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (附源码)ssm高校运动会管理系统 毕业设计 020419
  • (力扣)1314.矩阵区域和
  • (力扣题库)跳跃游戏II(c++)
  • (每日持续更新)jdk api之FileReader基础、应用、实战
  • (三)mysql_MYSQL(三)
  • (十三)Java springcloud B2B2C o2o多用户商城 springcloud架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)...
  • (新)网络工程师考点串讲与真题详解
  • (转)总结使用Unity 3D优化游戏运行性能的经验
  • *Django中的Ajax 纯js的书写样式1
  • .cfg\.dat\.mak(持续补充)
  • .NET 材料检测系统崩溃分析
  • .NET 反射的使用
  • .NET简谈互操作(五:基础知识之Dynamic平台调用)
  • .net使用excel的cells对象没有value方法——学习.net的Excel工作表问题
  • .NET是什么
  • [ 数据结构 - C++] AVL树原理及实现
  • [20150707]外部表与rowid.txt
  • [2021ICPC济南 L] Strange Series (Bell 数 多项式exp)
  • [android]-如何在向服务器发送request时附加已保存的cookie数据