Netflix Data Platform - Genie 3
本文介绍了 Netflix 的数据平台 Genie 3 的改进思路。这个平台目前日均运行任务数量大约是 150k,运行在 40 台 EC2 实例上。用例主要有两个:1)对开发隐藏 data warehouse 的细节,只暴露出提交任务和查看任务的接口;2)提供 repl 式的沙盒体验,开发可以自己新建出沙盒然后把数据用 stdout 导出。
- Execution Engine: 业务方提交的任务并不是真正运行的脚本,任务会被根据具体的环境,集群,命令,应用等配置编译成脚本去运行。
- Leader Election:用 ZooKeeper 或者手动设定一个节点是 leader。有些任务只在 leader 上运行。
- Security: 通过 Spring Security 加上登录验证,默认 …
Self-hosted Live Streaming
本文介绍了直播技术的一些基本知识,并给出了 101 教程 - 使用 ffmpeg, x11grab, nginx 搭建直播 laptop 屏幕的流服务。
- ffmpeg 有内建的 DASH 格式,这个格式目前是业界给 web 浏览器做 live streaming video 的标准格式。这个格式讲视频分成离散的文件,然后用 xml 文件告诉播放器去哪里找这些文件。如果浏览器没有支持 dash,可以加上 dash.js 做个垫片。
- 做直播服务要做两件事:实时录视频 + 用 web 服务器支持访问录出来的流视频。前者可以用
ffmpeg -f dash ... /tmp/live.mpd
生成,后者可以通过 nginx 设置支持application …
SMS 2FA 不安全
本文介绍了 Reddit Data Breach 的经验教训:使用短信作为 2FA 的信道非常不安全,它走的是 cell-phone 网络,还是有可能会被第三方劫持。更安全的方法是部署 software tokens 2fa。这类软件包括 Google Authenticator, Misoft Authenticator, Duo, LastPass authenticator 神马的,使用 TOTP (time-based on-time password) 算法,生成 short-lived (30seconds) 密码。
如果网站被脱裤,建议及时采取措施更新密码。(还有不要多站一密
read moreMethodologies for measuring project health
本文描述了如何判断开源项目的健康程度(并可以进而选择要不要这个程序到自己的项目中)。
- 查看 user->community members->contributors->core contributors 这个链条。例如 Django 就是一个很健康的项目,整条链条人都很多。
- 查看项目的 Magnet / Sticky 程度。前者看能吸多少人,后者看能留住多少人。能做出的结论是:如果既不吸人也不留人的项目,那很可能是正在死掉的项目。
- 查看 NCR (New Contributors Ratio 新人贡献率)和 CCR (Coding Contributors Ratio),前者可以把才贡献了小于三个月的人归类为新人,大于三个月成为 Experienced Contributors。后者是看在给定期间给出没至少一个提交或者PR。更高的 CCR 或者 更高的 NCR 都可以算作健康羡慕。
- 需要注意的是,如果是个小项目,多少个 contributors …
Using Workers To Make Static Sites Dynamic
本文大概可以算做 Cloudflare Workers 的软文,探讨了这项技术在 CDN 节点上做 Serverless 的可行性。
在使用方法上跟 AWS Lambda 什么的都差不多,要写的代码也都差不多;好处可能就是代码是部署在非常 edge 的地方,用户能更快访问到数据。
这篇文章提到了一个有趣的小技巧:当 CMS 系统要藏起来一些东西但又不需要 military grade security
保障的时候,往 workers 上面丢一段代码 if(!request.headers.get('user-agent').indexOf('XXX')) {return new Response('Access Denied', {status: 403})}
。这样静态网站也能搞得出一些简单的动态逻辑。
另外一个有用的地方可以是给 静态网站上 A/B 测试 …
read more