王晓中:Netflix云端架构是如何建立的.pdf

上传人:yyf 文档编号:3334529 上传时间:2019-08-13 格式:PDF 页数:30 大小:1.11MB
返回 下载 相关 举报
王晓中:Netflix云端架构是如何建立的.pdf_第1页
第1页 / 共30页
王晓中:Netflix云端架构是如何建立的.pdf_第2页
第2页 / 共30页
王晓中:Netflix云端架构是如何建立的.pdf_第3页
第3页 / 共30页
王晓中:Netflix云端架构是如何建立的.pdf_第4页
第4页 / 共30页
王晓中:Netflix云端架构是如何建立的.pdf_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《王晓中:Netflix云端架构是如何建立的.pdf》由会员分享,可在线阅读,更多相关《王晓中:Netflix云端架构是如何建立的.pdf(30页珍藏版)》请在三一文库上搜索。

1、Netflix云平台 王晓中Netflix 自我介绍 2011年加入Netflix Netflix Cloud Platform 客户端架构师,负责人 开源软件Archaius的创始人之一及主要贡献者 工作经历 Sun Microsystems, VeriSign 就读人大附中,北邮,Michigan State University http:/ allenxwang 云计算中平台的必要性 云计算并不能带来一切 为众多应用软件提供常用功能 促进均一的方式来获取服务 高效 平台是高瞻远瞩的策略 Netflix平台在云中的定位 Infrastructure As A Service (IAAS

2、) Platform As A Service (PAAS) Software As A Service Netflix云平台 Netflix 公共 API/Services 云计算抽象概念 Netflix具体实现 http:/ Netflix云平台构成 国际化/本地化/ 地理定位 消息传递 进程间通信 工具/框架 系统诊断 日志大数据 安全 配置管理 服务注册 应用软件基础设施 服务端 客户端 http:/ Netflix云平台的过去 国际化/本地化/ 地理定位 消息传递 进程间通信 工具/框架 系统诊断 日志大数据 安全 配置管理 服务注册 应用软件基础设施 服务端 客户端 platfor

3、m.jar Netflix云平台的现在 Platform(client) Amazon Web Services Service Registry Persisted Properties Service Security/Crypto graphy Service Localization Service Geo Location Service Log Collector 云平台在Netflix Stack中的定位 Linux Base AMI Java Tomcat platform None Java Applicatio n Apache Monitoring Agents Java

4、 Agents http:/ Netflix平台的独特之处 服务注册系统(Eureka)填补Amazon Cloud动态寻址功能的软肋 具备强大功能的进程间通信 大流量分布式容错系统 动态组合配置(Archaius) 高性能数据管道 http:/ 国际化/本地化/ 地理定位 消息传递 进程间通信 工具/框架 系统诊断 日志大数据 安全 配置管理 服务注册 应用软件基础设施 服务端 客户端 服务注册系统(Eureka) Amazon未能提供有效的Middle Tier寻址及 load balancing的解决方案 Elastic IP资源有限,Elastic Load Balancer更 适用于

5、前端服务 建立自己的服务注册系统Eureka 客户端服务端模型 客户端与服务端注册并发送heart beat 客户端从服务端获取其他服务信息并保留在缓 存之中 Round robin load balancing Eureka及进程间通信的一体化 Eureka Server Application Eureka Server Eureka Client Application Eureka Client Application Eureka Client 注册 获取注册 信息 注册 获取注册信息 注册 获取注册信息 信息复制 进程间通信 进程间通信 国际化/本地化/ 地理定位 消息传递 进程间

6、通信 工具/框架 系统诊断 日志大数据 安全 配置管理 服务注册 应用软件基础设施 服务端 客户端 进程间通信 开发基于JAX-RS的REST客户端 特点 负载均衡(Round Robin,Weighted) 虚拟IP 缓存(HTTP,Serialization) 统计监测 Throttle/retry 故障应变 Zone Affinity 相依性(Dependency)容错 有依赖关系的进程间通信的容错系统 相依性的通常实现方法 每个进程可靠率为99,调用四个进程的 可靠率仅96 http:/ 相依性容错的核心 挑战:当你的依赖方发生故障时如何保护 自己 Tomcat线程被耗尽是常见问题 容

7、错系统的设计模式 异步调用 水密隔舱(Bulkhead) 断路器和回退(Circuit breaker and fallback) 信号标(Semaphore) 相依性容错的实现 http:/ 国际化/本地化/ 地理定位 消息传递 进程间通信 工具/框架 系统诊断 日志大数据 安全 配置管理 服务注册 应用软件基础设施 服务端 客户端 配置管理(Configuration Management) 配置管理的常见问题 软件配置来自于多个渠道,如何统一管理? 软件库(library)有自己的配置,application能 否override? 有没有简单的办法让application cluste

8、r里的所 有服务器都同时改变配置? 能否不重启服务器就让配置改变生效? Netflix的解决方案Archaius Archaius 层次化组合配置 http:/ Archaius 动态配置 无需重启服务器 多种途径改变配置 以polling方式获取持久化的配置 多维度的持久化配置利于针对特定应用程序, Amazon Region或垂直虚拟堆(stack)所做的配置 改变 利用用户界面将属性加入特定服务器 国际化/本地化/ 地理定位 消息传递 进程间通信 工具/框架 系统诊断 日志大数据 安全 配置管理 服务注册 应用软件基础设施 服务端 客户端 高性能数据管道 Netflix 文化: 数据驱动

9、的决策模式 每天收集消息: 50亿条 中立的数据LogManager.logEvent(Annotatable event) 灵活多变的数据流向(Data Sink) 管道 HTTP S3 SQS Kafka Cassandra 资料提供:袁泳(g9yuayon) 高性能数据管道 异步操作 同时基于时间和数据量的缓冲 循序写入,尽量避免随机存取 容错机制 WAF(write and forward) Zookeeper存储meta data并调度 插件架构 数据管道实现协议 用户制定配置 灵活增减data sink,无需额外代码 资料提供:袁泳(g9yuayon) 高性能数据管道 同时支持离线

10、和实时数据采集 按需采集实时数据 数据生而不等 定点采集,注重时效 灵活的多维度数据过滤 资料提供:袁泳(g9yuayon) 云计算挑战和解决方案 No locking on hot path Connection不超时 使用未应答请求计数器跟踪网络服务器状况 AWS使用节流阀(Throttling) 重试与适当的后退策略(back off policy) DDoS攻击 开源节流 整个Zone停止运行 开发使用对Zone状况有感知的load balancer 技术之外的话题 平台发布周期从几小时到几星期 我们采用的软件开发流程是 无流程 无检测人员自动检测 我们遵循的原则 在设计中咨询同事 代码审查 单元测试 完整的拥有 从设计、实现、测试、发布、部署到24x7的技 术支持 我们的团队 http:/ 资料及图片提供者 Adrian Cockroft (adrianco) Sudhir Tonse (stonse) 袁泳(g9yuayon) Ben Christensen (benchristensen)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/环境 > 装饰装潢


经营许可证编号:宁ICP备18001539号-1