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

Netflix Blog-关于SVT-AV1

这篇文章 Introducing SVT-AV1: a scalable open-source AV1 framework 是出自 Netflix Technology Blog SVT-AV1是什么 ? SVT-AV1是2019年4月8日, Intel与Netflix合作开发的视频软件解码器,SVT Scalable Video Technology 是Intel的开源框架,Visual Cloud(视觉云)开发技术人员提供高性能的视频编码库。 视频标准历史 视频压缩标准两大组织: ITU-T and MPEG (ISO), 第一个成功的数字视频标准MPEG-2, 之后有 H.264/AVC是现代设备普遍支持的标准。 一些公司开发标准如Microsoft’s VC-1 and Google’s VPx 。 AOM(the Alliance for Open Media)意在生成一个先进的, 免税的视频解码器。 包括,Amazon, Apple, ARM, Cisco, Facebook, Google, IBM, Intel, Microsoft, Mozilla, Netflix, Nvidia, and Samsung, AOM在2018年发布了为AV1 解码器规范。 (对应的 ITU-T and MPEG组织退出了 HEVC(H.265, MEPG-H part2), 这个还是收税的) AV1编码器工具 libaom 目前是基于VP9,VP8基础上开发, 再google的git上通过AOM成员维护。 rav1e :open-source AV1 不过是用Rust语言编写的。 ...

2019-05-19 · 1 min · 137 words

Netflix Blog - Tips for High Availability Spinnaker介绍

这篇文章Tips for High Availability 是出自 Netflix Technology Blog 随着Netflix 用户增多,虽然没有出现扩展性问题,但Netflix一直设法提高服务的整体可用性 本文通过NetFlix的Spinnaker 平台实践为基础,介绍了一些最佳实践: 1. 区域部署: 2. 红黑部署: 3. 使用图形发布窗口; 4. 非工作日不触发自动部署; 5. 能够使用 Chaos Monkey; 6. 投产之前进行单元, 集成,冒烟测试; 7. 可以手工干预判断; 8. 发布测试通过的产品; 9. Page Owner通过页面找到能解决他的人; 10.知道如何快速完成发布的回退; 11. 部署成功应已应用状态正常为前提; 12. 部署成功后的自动项目组 13. 自动执行非典型部署, 而不是手工 14. 预先验证。 作者介绍的 Spinnaker 为Netflix 的持续交付平台, 他认为提到从错误中不断学习,并根据这些最佳实践创建相关工具或平台,从而达到提高服务的可用性的目标,同时将工程师解放出来去做更有价值,有意义的事情。

2019-05-11 · 1 min · 49 words

ramfs, rootfs and initramfs

查找initramfs资料的时候看到了这篇文章 ramfs-rootfs-initramfs.txt, ramfs, ramdisk, tmpfs, rootfs 文件系统: 1. ramfs内存文件系统,没有硬件存储,仅存放在内存; 2. ramdisk 生成一种块设备, 并且是固定大小, 文件系统需被挂在到系统; 3. tmpfs有大小限制,可以写回到swap space,是ramfs升级版本; 4. rootfs 是特殊ramfs, tmpfs, 2.6版本后支持, 不可卸载就像不能kill init进程一样。 可以通过修改CONFIG_TMPFS 使用tmpfs, 如需设置为ramfs, 强制"rootfstype=ramfs" initramfs与initrd的区别: 1. initrd 单个文件, initramfs 则可以链接到内核镜像 2. initrd文件格式 a gzipped filesystem image , 是需要驱动的, initramfs则是 a gzipped cpio archive 内核支持: 3. initrd使用的启动进程为initrd, 提供后调用内核;initramfs没有使用overmount 后调用内核init完成加载; 4. 切换到 其他的root设备, initrd使用 pivot_root之后卸载ramdisk, initramfs, 删除现有rootfs空间数据 find -xdev / -exec rm '{}' ';' overmount rootfs cd /newmount; mount --move . /; chroot . 构建initramfs工具包: 1. The “klibc” package ...

2019-04-28 · 1 min · 101 words

提升编程技巧的关键

这篇文章 The Key To Accelerating Your Coding Skills, 是皓哥推荐的文章。 读完这边文章,结合我自身经历有以下几点感受: 1. 开始学习时要注重细节, 学会调试错误,就是要多动手实际操作; 2. 编程是一件终身学习的过程, 不断的犯错误, 不断进步; 3. 编程需要学习特定领域知识和过程知识。( domain-specific and procedural knowledge.)

2019-04-22 · 1 min · 23 words