揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!Netflix在AWS上的应用和创新方国伟首席云技术顾问亚马逊AWS揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!摘要•关于Netflix的一些事•Netflix的云计算演变之路•构建云服务的经验分享•案例启示揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!纸牌屋(HouseofCards)揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!NetflixInc.•全球领先的互联网在线影视服务供应商•在美国有超过3千万的订阅用户揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!高性能扩展性高可用揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!Netflix云平台战略•迁移到SaaS服务•公司的日常办公IT,如Workday、Pagerduty等•构建自己的PaaS•为增加开发效率定制化自己的平台•把基础设施迁移到IaaS•从2008年开始没有新增任何自己的数据中心容量•在线视频完全迁移到云平台揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!Netflix为什么使用公有云?揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!2008年8月数据库损坏RDBMS揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!更快的业务灵活性•Netflix来不及构建足够的数据中心•容量需求快速增加,无法预测•产品发布推动需求高峰(iPhone,Xbox等)揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!需求增长远远超过了数据中心容量揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!Netflix的选择:云计算•Netflix想要使用云计算,但是没有时间构建•需要利用公有云的敏捷性和规模•我们也使用电,但是并不需要构建一个电厂•AWS云平台有足够的规模在Netflix需要的时候按需分配几千个实例!揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!Netflix.com现在~100%基于云•Netflix对平台要求:有非常大的规模、高度的敏捷性和灵活性。•采用AWS和它自己的平台和工具•充分利用AWS的规模•利用AWS丰富的产品特性和自动化能力•利用AWS的地区(Region)来进行全球部署•利用AWS的可用区(AZ)来进行高可用设计揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!Netflix不做的事情等待申请许可被错误配置卡住了等待空间不够了空调不足容量规划与IT基础设施团队开会等待揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!Netflix的云计算演进过程揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!视频编码服务(2009)•成千上万的视频•几千个EC2实例•基于Windows/Linux的编码应用•基于S3的PB级数据存储•使用CDN揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!Netflix不同服务的EC2实例这是2010年夏天的数据,现在会高很多…揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!日志分析:ElasticMap-Reduce(EMR)•Web访问日志•视频服务日志•每天TB级数据量•通过AWS的EMR简化Hadoop的使用•基于HiveQL的数据集市•通过Pig与BI集成揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!播放服务(2010年初)•PC/Mac的Sliverlight播放器支持•高可用的“播放”按钮•DRM管理•CDN路由分析•播放标记管理•QoS日志揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!Web网站重建(2010-2011)•重写了展示层逻辑•搜索栏自动填充功能•搜索后台和登录页面•电影的分类管理•视频的评分和推荐•账户注册揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!构建自己的服务API(2010)•开放平台的API:developer.Netflix.com•终端设备配置•个性化视频选择•Facebook集成揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!客服工具(2011)•需要支持外包的客服•根据云计算架构重新设计•数据库从Oracle迁移到Cassandra•基于Web的SOA工具揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!例子:Netflix视频流是如何工作的?Web站点/DiscoveryAPIStreamingAPI用户数据个性化DRMQoS日志CDN管理内容编码OpenConnectCDNAWS云服务NetflixCDN客户设备客户终端(PC,TV,平板…)图例:揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!实际的Web服务器依赖图示从这里开始个性化电影选择服务在AppDynamics中看到Netflix主页的业务事务图每个图标代表着分布在3个AZ的,运行在3个到几百个实例的服务揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!2009/1/42009/3/42009/5/42009/7/42009/9/42009/11/42010/1/42010/3/42010/5/42010/7/42010/9/42010/11/42011/1/42011/3/42011/5/42011/7/42011/9/42011/11/42012/1/42012/3/42012/5/42012/7/42012/9/42012/11/42013/1/42013/3/42013/5/42013/7/42013/9/4Netflix视频流业务增长•每季度50亿小时视频•4000万用户•41国家•3大洲自2009年来有了100倍的增长揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!实践1:考虑到可能的故障而设计•经验法则:作为一个悲观主义者来设计云计算应用架构,假设会出问题•硬件总会发生故障(时间、规模),服务器会发生宕机•松耦合设计,并利用AWS的高可用服务和Multi-AZ架构揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!分布式部署AZ1Cassandra数据库AZ2Cassandra数据库AZ3Cassandra数据库AZ1Cassandra数据库AZ2Cassandra数据库AZ3Cassandra数据库Route53UltraDNSDynECTDNS区域性LB区域性LB揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!高可用设计的一些最佳实践•有一个清晰的数据备份和恢复机制,并自动化这个流程•构建能够在重启时继续运行的服务进程•系统的状态可以通过从消息队列重新读取信息来恢复•避免基于内存的会话或有状态的上下文,把这些数据放到数据存储中揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!测试你的HA方案揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!实践2:基于云的产品设计•松耦合设计你的服务和组件•实现弹性•周期性扩展•基于事件的扩展•按需扩展•考虑并行设计•在所有层次都考虑安全设计揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!旧的架构:耦合的Java应用JavawebJavawebJavaweb……揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!Netflix的云架构客户端自动扩展的细粒度服务自动扩展的细粒度服务分布式的NoSQL数据存储CassandraCassandraCassandraJVMJVMMemcachedJVMJVMJVM各种设备揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!基于Web的云管理:Asgard揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!Netflix开源门户揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!实践3:基于云的大数据分析•大数据和云计算是“天生一对”•大规模计算•海量数据存储等•按需动态构建群集数据生成收集&存储分析&计算协作&共享揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!Netflix的大数据方案RDSAegisthusUrsula元数据S3数据仓库超过2PB1500+节点多个100+节点群集DataPipelines工具流服务日志NoSQL的多维数据揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!实践4:灵活的开发和管理模式•开发和管理团队如何适应基于云的开发模式?•开发人员需要更多的灵活度和责任感•运维工作分散和自动化•开发/运维与业务部门结合更紧密揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!Netflix在组织架构上的调整•管理:把不同的角色统一在一个部门•业务、开发、运维在一个大团队•开发人员:数据反规范化--NoSQL•去中心化,扩展性,高可用•对开发的要求:连续交付•每天小更新•对运维的要求:敏捷的基础设施—云•分钟级别的开通要求;开发人员自己开通揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!演变成一个完全基于云的公司传统数据中心IT-Ops管理预算,容量开发团队自服务;通过工具一目了然通过统一的运营中心协调不同的发布分布的DevOps;测试工程师开发工具、分享最佳实践OracleDBA管理不同的数据库DevOps工程师支持几十个Cassandra群集数据分析:分析员编写SQL查询Hadoop工程师通过PIG/Python构建ETL揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!云计算让Netflix提升效率规模效率弹性2009/1/42010/1/42011/1/42012/1/42013/1/4视频流增长100倍周期性的视频流使用情况揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!案例启示•互