每周技术文章 No.200 2018.11.12-18
前端技术,界面、交互、安全
- 构建时预渲染:网页首帧优化实践。
- Modern Frontend CI/CD Architecture — The Missing Guide,Part1 CI、Part2 CD。
- 浅谈大型互联网的企业入侵检测及防护策略。
后端技术,操作系统、虚拟化、存储、网络、桌面、安全
- Overload control for scaling WeChat microservices,微信的后端微服务设计;过载识别主要靠每个窗口期的请求平均等待时间,窗口期是 1 秒活着 2000 个请求;发生过载会出发准入控制,根据请求的不同业务重要程度放弃不重要的请求;另一层准入控制是,将用户动态分级(每小时刷新),过载时会放弃低级别的用户请求,之所以不使用 Session ID,是因为这会培养用户反复登陆的习惯,反而加重过载状况。另见原论文。
- 你不知道的 Node.js 性能优化,使用新版 LTS,使用
bluebird
代替内建 Promise(这跟尽量使用新语法,然后等待官方优化的套路冲突啊,哈哈),记得利用 Promise 的all()
、race()
,GC 管理,使用node-clinic
快速定位性能问题。 - 容器、容器集群管理平台与 Kubernetes 技术漫谈,这个综述不错啊。
- 美团容器平台架构及容器技术实践。
- 美团点评携手 PingCAP 开启新一代数据库深度实践之旅,持续关注 TiDB。
- emptyDir、hostPath 以及 local volume 都是 Kubernetes 的本地存储卷,那么有何不同?
- Elasitcsearch 索引优化、阿里云 Elasticsearch 性能优化实践。
- 一份来自滴滴运维工程师的监控系统建设心得,源自 Open-Falcon 的架构,全面的自研升级。
- 携程一次 Redis 迁移容器后 Slowlog“异常”分析,偶尔出现的慢查询,旧机器 QPS 慢却没有满查询;gettimeofday 获取时间会偶尔变长 1800ms,匹配慢查询时间;追查到 Kernel 4.10 在 skylake-x 上的 bug;建议使用
clock_gettime
。 - 智能微服务的设计与开发(node.js)。
- Go,9 周年,另见Nine years of Go。
- Golang 在十二赞的深度应用,使用 Go 实现的工具服务包括:容器守护进程、HTTP 代理、Web 服务注册、日志采集、MySQL 数据变更消息广播。
- 在 Linux 命令行中使用 tcpdump 抓包,另见原文。
- Update on Basecamp 3 being stuck in read-only as of Nov 8, 12:41pm CST,32 位事件 ID 不够用了,服务离线升级到 big integer;恢复服务后,缓存服务器过载了,服务中断直到切换到备用缓存服务器。另见 Github10 月的故障分析,October 21 post-incident analysis。
- nvidia-docker2 在 kubernetes 上实践、深入理解 nvidia-docker2.0,我就看看。
- Apache Kafka 从 0.7 到 1.0:那些年我们踩过的坑,还有《Kafka 设计解析》系列文章值的看看。
硬件设备,ARM、终端、移动、智能设备、安全
- NEW PRODUCT: RASPBERRY PI 3 MODEL A+ ON SALE NOW AT $25,1.4G 4 核,5G wifi,1 USB,沿用 B+ 改进散热。
- 工业物联网常见的工业协议简介。
市场、产品、项目
- 这是一份迄今为止最全的亚马逊产品布局指南。
- Google 设计师谈方案演示中的三个“明确”,主旨明确,目标对象明确,语言明确。
团队建设
- 一个适合程序员的 Markdown 文档编辑 和文档管理方案,作者的选择是 Visual Studio Code + Markdown Shortcuts + markdownlint + Bitbucket。多机同步,除了代码仓库,还可以考虑使用 syncthing。
- BCH 分叉承担的风险–51%攻击者概率问题。
- One year nomad - a review,“fastlane 的创始人总结了他这一年来没有固定住所的生活经历,与遇到的挑战”。
- 研发哲学第五条:一定要有后备方案,
- 奈飞文化手册:只招成年人,绝对坦诚,用事实捍卫观点。