有幸得到 Velocity 2016 大会门票,屁颠屁颠跑去听分享。
下面是第二天的笔记。记得比较简略,凑合看吧。
PPT 下载通道已经放出来了,感兴趣的可以自己跟踪一下。
阿里应用运维体系演变
分享者:阿里,毕玄
工作范围
- 日常运维操作- 变更
- 环境维护(OS 升级)
 
- 容量管理- 如何分布机器
 
- 稳定性- 监控、报警
- 故障处理
 
脚本化
- 单机脚本
- 批量操作脚本
- 主要问题- 复杂变更逻辑不好实现
 
- 发布到哪里了?运维自己都不知道
工具化
- 编写软件系统- 工具、运维团队
- 合并各工具团队
- 工具团队同时兼 OPS 工作
 
- 感受- 实现了大量工具系统,然而并没有更幸福
- 成就感不足,很难得到认可
 
- 可能原因:工具质量不够高
- 主要问题:- 推进落地难度- 思想转变,时间保障
 
- 软件质量- 成功率
- 稳定性
- 性能
 
- 标准化
 
- 推进落地难度
DevOps
- 借助 DevOps 推进工具化有效实现- 《SRE:Google 运维解密》
 
- 运维团队交还给研发团队,日常运维逐步交给研发自行完成- 挑战:工具化程度
 
- 借助 Docker,将 DevOps 思想落地- Dockerfile
 
自动化
- 参与多个环节 => 无人值守(需要架构级的支撑,eg 机房流量一键切换)
- 主要问题- 成功率:需要非常高,失败就需要人介入
- 架构支撑能力
 
智能化
- 根据系统行为反馈,自动进行处理- 大量的数据收集
- 大量经验收集
- eg. 单机房故障自动切换
 
- 主要问题- 数据准确性
- 经验格式化收集
- 机器学习介入,特征提取
 
Summary
- DevOps 是大方向,需要机制保障
- 自动化里程碑...
- ….
衡量服务的可运维性
分享者:来自 LinkedIn 的 李虓(xiao1)
服务可靠性 vs 可运维性
- 可靠性- 高可用性
- 平均故障修复时间
 
- 可运维性- 定义:保持服务运行在指定 SLA 所需要的运维人力时间成本
- 平均无故障工作时间(Mean Time Between Failures)
- 影响因素- 变更
- 系统级软件
- 硬件、基础软件
- 依赖关系
- 扩容
 
 
- 可靠性 vs 可运维性- 每年半天 or 每小时 5s
- 相关但不是因果关系
- “维护税”
- 运维团队可持续发展
- 运维功能不可避免
 
Service Score Card(服务记分卡)
- 发布相关- 发布频率
- 发布速度 —— 代码提交到进入生产环境的时间
- 发布成功率 —— 成功/回滚
- 回滚速度
 
- 生产环境相关- 是否 rack diversified
- 是否支持 ipv6
- 可否热重启
 
- 架构相关- 是否部署在多个数据中心
- 是否在多数据中心同时运行
- 是否支持热重启
- ...
 
- 对每项指标加权打分
- 打分汇总,A-F
- 根据开发、运维团队负责汇总
方法
- 文化- 得到开发团队支持
- 健康竞争机制,排行榜
- 鼓励运维团队提供解决方案
 
- 技术- 数据收集- 发布系统
- 监控系统
- ...
 
- 文档和自动化工具
 
- 数据收集
Summary
- 关注可运维指标
- 关键指标的选择
- 数据驱动提高
- 提高可维护性,降低运维成本,有助于提供系统可用性。
Data Integrity in Stateful Services
分享者: Laine Campbell
- Physical Integrity 
- Logical Integrity 
- Goals - Elimination- Eliminate Potential for Corruption and Data LOSS
 
- Empowerment- Recover rapidly from mistakes
- don't trust destructive requests
 
- Detection- early detection of corruption
- unit and regresion testing
- data validation pipelines
- tools for investigation
 
- Flexibility- Tiered Storage
- Replication and Data Portability
 
 
- Elimination
- What could go wrong - Planned Recovery- production deployments
- environment duplication
- Downstream services- analytics
- compliance
 
- ...
 
- Unplanned Recovery- Category
- ...
 
- Operation ERRORS- Data DELETION
- Data Corruption
- Relaxed Constraint
- Storage removal
 
- Application ERRORS- removing...
- character set multilation
- ...
 
 - …….此处省略很多很多 
- Planned Recovery
Polymer at Youtube
分享者:来自 Youtube 的 Mikhail Sychev, TL of next generation Youtube.com
Intro
- 1 billion users
Techs before
- Spitfire templates
- Google Closure for JS
- SPF for page transitions
- Custom layout framework
Forward
- Performance
- Focus on Future
- Productivity
- Shared plateform
- Shared visual design
New Stack
- Polymer for templating
- … core styling
- Closure for JS compilation
- A bit of Spitfire for bootstrap
Web Components
- demo: <search-icon>etc..
- Custom Elements、templates、Shadow DOM ...
Beyond Spec
- polymer-project.org
- A opinionated library
- Sugars for Web Components
- Encapsulated Reusable elems
- 500+ Google projects
Provided by Framework
- Template data bindings
- Attribute handling
- Polyfills
- Flexbox based styling primitives
- Components library
Component organization
- HTML: - dom-module > template- 内部的 template: dom-ifdom-repeat
- id => local to components
 
- 内部的 template: 
- JS - { is: ID properties: { [key]: {type, sobserver, } | 'any direct value' }, someMethod }
- CSS - shadow DOM, shady(?) DOM
- scoped styles
- polymer will do the polyfill
- Flexbox
 
- Unit tests + data - low level
 
- Fn test + data - changes: predictable
 
Engineering Productivity
- faster interaction cycle- better code organization
- per comp testing
- instant reload dev env
- pre-made comps- about Material Design
 
 
Perforamance
- Rule of one second
- Rendering control- comp reuse & in place update- no new DOM created, no DOM removed
- update orders and values
 
- FPS locking- every time new item injected, look up the time
 
- Application Serving- chunking
 
 
- comp reuse & in place update
- Challenges- Browser support & detection
- Bots, Extensions, search engines
- Modularization
- Bleeding edge
 
- Mobile Challenges- Browser support
- Performance
 
React 可视化开发框架
分享者:Accenture 的 Jeff Catania
声音有点小,对这方面兴趣有限,所以笔记做得不多。
RCDF(Aardvark)
- Tools - Manual Tools
- Aided
- Programmatic
 
- D3 + React => Aardvark standards -  
QQ 空间 Web 架构
分享者:QQ 刁维康
相对来说还是很传统的 hybrid 模式。说句实话,我总觉得这次分享的内容,我似乎在哪里看到过。应该是印象中的 QQ 的同学写的那些文章吧,有关于 QQ 空间 Hybrid 优化的,有手Q React 实践的,但我一时半会儿也找不到原文了。
总之就是充分利用缓存,充分利用 WebView 初始化的那段时间,然后就 socket 和 HTTP/CDN 之间如何选择的问题。嗯,还是非常棒的。
所以我一直在听,顺便做点其他的工作,木有做笔记。
(略...)
