MezzFS文件系统

这篇文章MezzFS — Mounting object storage in Netflix’s media processing platfor 是出自medium Netflix Technology Blog,作者 Barak Alon MezzFS: Mezzanine文件系统的缩写, 是Netflix使用Python开发的一个工具,可通过FUSE将云对象作为本地文件挂载。 FUSE支持用户态空间的文件系统, 文件操作命令通过VFS->FUSE->glibc->libfuse->用户自定义文件系统实现, 从而可以在用户态重新定义文件操作. Netflix处理视频编码主要涉及以下几个方面问题: 针对不同编码器分辨率进行多次编码,如果编码技术更新调整 可能需要全部重新编码 文件拆分并加密为单独的块,并将这些块存储在Amazon S3中。另外需要处理内容安全性,审核,灾难恢复等 视频编码器都是处理本地文件系统上的文件,不会去调用API去处理云上文件。视频文件非常大,需要避免为了处理一小块而下载整个视频文件 MezzFS的一些特点; Stream objects: 流对象不要外设存储 Assemble and decrypt parts: MezzFS知道如何组装和解密 Mount multiple objects: 挂载多个对象 Disk Caching: 支持本地磁盘缓冲 Mount ranges of objects: 可以将云对象指定范围对象挂载到本地 Regional caching: 一个区域的缓冲信息可以被另一个区域使用 关键特征replay; 支持配置MezzFS为记录replay文件。 该文件包括: 元数据, 文件操作, 缓存的内容, 统计信息。有这些信息可以实现可视化的功能, 可以用来调试错误,进行性能分析. 关键特征Adaptive Buffer; 由于使用FUSE系统, 内核将分块读入, 这意味这1G 的挂载文件, MezzFS可能要针对64KB块进行16384次读取。 因此最好可以预先读取一大块进行缓存。但是由于涉及离散和连续数据, 因此出现了Adaptive Buffer 具体公式数据来源于最近的读取的信息. ...

2020-09-02 · 1 min · 136 words

Netflix Blog- Mantis 开源

这篇文章Open Sourcing Mantis: A Platform For Building Cost-Effective, Realtime, Operations-Focused Applications 是出自 Netflix Technology Blog。 作为流式微服务生态系统,Mantis平台为工程师提供将观察和操作复杂分布式系统的成本降至最低的功能。 Mantis已开源 特点: 解决问题变得容易 开发人员可以根据需要从任何检测的应用程序中获取事件流。 解决问题成本降低 能够在事件上实现基于流的可观察性,同时使工程师能够使用工具来降低原本会对业务造成不利影响的成本。 指导原则 访问原始事件 实时访问这些事件 对获取数据进行新维度分析 保证最小花费,不抢占正常业务使用资源 Mantis 一些应用 Netflix流健康实时监控 上下文报警 Raven,MQL Mantis查询语言 Cassandra 健康检查 日志监控 Chaos监控 PII快速识别敏感数据。

2019-11-03 · 1 min · 38 words

Netflix Blog- 重构视频GateKeeper

 这篇文章Re-Architecting the Video Gatekeeper 是出自 Netflix Technology Blog。 Netflix上的视频需要通过Title Operations 团队的策划,使其遵守的合同;字幕、配音、翻译能够提供给合适的人群;标题名称和概要可供使用和翻译;满足各个国家的成熟度等级(分级)。 Gatekeeper是Netflix的系统, 他通过汇集多个上游系统数据, 应用一些业务逻辑,为每一个国家地区每一个视频状态的输出来完成器规定任务。GateKeeper 设置这些视频是否对用户可见。为Title Operations 指出缺少的内容, 协助其工作。 现存问题: GateKeeper是一个事件驱动的系统,上游系统每个改变都会向GateKeeper发送事件,GateKeep再通过访问每个上游服务来响应事件。可能会出现下问题: I/O 瓶颈 处理延时 事件丢失 而主动扫描处理一些指定目录可以缓解这些问题, 但是增加了更多的事件。 解决方案: 使用技术:Hollow 可以看下这篇文章使用技术 Hollow ( Drew Koszewnik),( 2016年,是这篇的作者) Netflix Hollow是一个java库和工具集,用于将内存数据集从单个生产者传播到许多消费者,以实现高性能的只读访问。 适合小到中级数据集 Hollow 第一阶段: 使用Hollow为每个上游系统在GateKeeper增加缓存, 在指定周期内循环迭代处理所有国家地区的视频,并生成完整输出。 第二阶段: 由于第一个阶段时间片相对较长, 整个数据来自实际数据源,一个迭代周期需要很长时间。需要进一步优化。 将Hollow分为更小时间片单位, 应用程序将每次的更改通过kafka推送 Hollow,辅助周期性的整个数据源扫描来防止数据遗漏。 效果: 性能及可用性提高:消除了I/O瓶颈,提高了性能,单个上游系统故障下可以通过过时数据进行评估。 对于新投产版本,将某一个时间X的数据做为输入, 将其输出结果其与生产版本应用的输出结果进行对比(diffed )来准确判断是否达到预期效果。对于开发,验证,部署都比之前有了很大提高, 安全性方面也比以前架构更高。 在文末也写道将在未来几个季度实现这一目标。 对于文中描述的实时推送,全量补齐方式,实施的项目中也使用过,不过是联机+批量模式:报文从一个系统A实时推送到系统B, 夜间再通过下发批量进行全量更新补全推送时丢失的信息。 对于数据重放到预发布版本,与生产版本比较执行执行结果, 来验证新版本是否达到预期效果,和我现在项目中验证方式不一样, 目前投产后通过实际交易进行验证, 如果能方便将相关数据重放到新版本进行验证,确实将减少不少验证的工作, 不过也需要相应的应用做出相关的改造才可以。

2019-07-22 · 1 min · 61 words

Netflix Blog- Netflix的应用安全

这篇文章 Scaling Appsec at Netflix 是出自 Netflix Technology Blog Netflix的 应用安全团队的主要服务对象是在云基础架构上发布应用的工程团队, Netflix安全主张:安全是每个产品团队的责任 Netflix安全团队工作主要分为三类: 应用安全运营功能:传统的AppSec活动: BUG赏金分类,测试, 威胁建模,漏洞管理,产品安全。 安全合作伙伴关系:推动整体安全改进降低风险。 应用安全自动化:构建全面的应用程序库并启动自助安全指导。 运营Appsec功能由于存在高度中断,非持续性,过去的几个月,团队进行了重组,分为自动化和合作伙伴小组两个团队。 APPsec自动化队目标是提供 一致,可操作, 自我服务,为开发提供指导。通过Spinnaker 的平台,为开发人员提供单一的视图提供相关操作, 确保应用安全。 安全工作从过去的使用一些传动的DevSecOps方法如:静态代码扫描,动态测试,反模式grep, 转变为使用自动化方式提供自助服务。 合作伙伴小组更关注于与具有高风险的工程和产品团队(例如支付工程)密切合作, 目标是确定安全风险领域, 专注于更大的战略举措从而降低风险。 团队的最终目标是退出运营职责,将工作重点放到自动化和合作伙伴两种工作模式上。

2019-07-13 · 1 min · 30 words

Netflix Blog-令人愉快的用户界面:复活节彩蛋

 这篇文章 Delightful User Interfaces: Easter Eggs 是出自 Netflix Technology Blog 作者分享了网剧《Marvel’s Jessica Jones》最后一季的预告片标题页上设置的动态图特效的(Easter Eggs)的实现方法。 背景中摇摆闪烁的电灯,点击后预告片中的照片由 Jessica Jones和她的朋友,转化为Gregory Sallinge。 而这个特效没有使用视频或者webGL , 是通过css实现的。相比视频10MB,仅需要10kb的css与722kb 图片, 背景图片由5mb压缩到108kb, 没有对效果产生影响。(这里的kb我理解是byte) 下面从三个方面介绍了CSS动态图的实现思路: 1. 开灯效果(Turning on the lights) 使用animation property 通过三张片(关闭,闪烁,开启)图片的切换实现灯泡打开的效果; 通过transform ( (rotateX, rotateX, and translate), 及30帧图片模拟灯泡摇摆。 2. 灯管特效(Lighting: Flare and Flair) border-radius 设置影响边界, and filter: blur(80px) 设置影响区域. mix-blend-mode: 与背景颜色混合, 效果看上去很棒。 3. 背景聚焦(Bringing the background to focus) 使用 clip-path 用一个圆形对图片进行遮挡. 使用 **transition,**展示背景图片。 遇到的问题(求助StackOverflow) 1. 图片不能再某些浏览器分辨率下可以显示,解决方案 , 将opacity过渡到父元素 不仅仅是预告片 UI工程师与设计师的合作将其实现的更为简洁而有创意。

2019-06-27 · 1 min · 72 words

Netflix Blog- Netflix Python技术的使用

这篇文章 Python at Netflix 是出自 Netflix Technology Blog 本文主要介绍python在Netflix各个组内的应用 Open Connect: Netflix搭建的全球CDN网络,python有广泛应用。 Demand Engineering: 数值分析类:numpy, scipy AWS SDK:boto3 Web 框架: Flask 队列: RQ(Redis queue) 轻量级IDE: bpython 编辑工具: Jupyter Notebooks, nteract Data Explorer: visualization tools Data FrameWork:Semiotic CORE: 统计学数值分析类:numpy, scipy ruptures pandas Monitoring, alerting and auto-remediation: Spectator : metris的客户端 客户端: Spectator Python client Winston and Bolt : Web 框架: Flask WSGI http server: Gunicorn Flask Rest APIs 插件: Flask-RESTPlus Information Security: 安全监控: Security Monkey SSH资源保护: Bless TLS证书生成:Lemur. AWS安全部署(权限最小化): Aardvark and Repokid 数据取证 : Diffy Prism, Lanius Personalization Algorithms: 深度神经网络学习: TensorFlow Keras PyTorch Gradient Boosted Decision Trees : XGBoost LightGBM 其他相关科学运算类:numpy, scipy pandas sklearn matplotlib cvxpy Machine Learning Infrastructure: ML Libraries: R Project TensorFlow XGBoost ...

2019-05-21 · 2 min · 238 words