AirJD 焦点
AirJD

没有录音文件
00:00/00:00
加收藏

技术选型那些事-轻工厂技术分享 by 潘峰@百度

发布者 noder
发布于 1433119877621  浏览 7259 关键词 架构, Node.JS 
分享到

第1页

技术选型那些事

轻⼯工⼚厂设计实践

云平台/轻应⽤用泛前端组/潘峰



第2页

背景



第3页

2013年世界⼤大会推出轻应⽤用 2014年世界⼤大会推出直达号

技术⾓角度,假设你不了解他们是什么

轻应⽤用 = webapp + 云/端能⼒力 + 分发(搜索) 直达号 = 轻应⽤用 + @直达 + 综合分发(搜索/推荐) + CRM

@⻄西湖



第4页

• 百度已有的移动应⽤用创建体系:

• siteapp(转码):纯展⽰示型app、依赖pc • appbuilder(垂类模板):开发成本⾼高、难复制



第5页

设计⺫⽬目标



第6页

通过对⻚页⾯面、组件的简单拼装、配置即可完成建站 能构建出较复杂的强交互轻应⽤用 满⾜足内外部需求

“lego积⽊木式”app⽣生成



第7页

让APP动起来? 这样cool么?



第8页

让APP动起来?



第9页

跳出演⽰示



第10页

设计思路



第13页

服务模型

app



第14页

轻⼯工⼚厂应⽤用的构成

app



第15页

user



()



() app



RD/



架构



第16页

谈谈选择



第17页

技术选型原则

)) )

) • 技术适⽤用场景 • 运维⽀支持 • 通⽤用服务/经验

(

• 团队技术特点 • 是否够敏捷 + () + • 避免过度设计 • 技术是否⽕火



第18页

why node?



第19页

⾼高性能webserver



事件驱动、⾮非阻塞IO



javascript



⺴⽹网络应⽤用平台



第20页

前端⼯工程师的福⾳音 单线程/单进程 异步编程反⼈人类



第21页

⾼高效 可扩展 易部署 云端⼀一体 成熟且活跃的开源社区(⽕火!)



第22页

IO密集型



第23页

only node?



我们还有hhvm



第24页

并发Smarty模版渲染,hhvm的效率优于odp约50% 并发Smarty模版渲染,极限性能为3000q/s



第25页

curl



http request(500ms) 3200(q/s) 740(ms/q) 2400(concurrency) 70% idle



第26页

bae-php



hhvm



node



lighttpd+zendvm nginx+hhvm



lighttpd+node



不⽀支持异步



多线程模型 ⽀支持异步io



异步io



bae op/rd运维



部门op运维



rd运维/op不⿎鼓励



rd⾃自助上线



rd⾃自助上线



项⺫⽬目前期还不⽀支持 RD⾃自助上线



快速迭代



⾼高稳定性;⾼高性能



IO密集



第27页

模块特点 适⽤用场景 运维⽀支持 通⽤用服务 团队技术特点 是否够敏捷 避免过度设计 技术是否⽕火



创建平台 bae-php

迭代快,流量低



组件runtime hhvm

⾼高流量、⾼高稳定性、 核⼼心业务模块



接⼊入层 nodejs

轻量级,迭代慢



第28页

)

( )(

pss(mongo) ⽂文档结构 不⽀支持事务

⾮非索引字段性能⾼高 ⽀支持geohash rd运维



mysql 表状结构 ⽀支持事务

空间索引性能差 dba运维

稳定性极⾼高



第29页

轻⼯工⼚厂如何⼯工作



第30页

SPA? SEO不友好 前端逻辑复杂(mvc,按需加载等) 加重终端负担 对js依赖度⾼高,低端机兼容

smarty + blendui.js



加载 切换



低端机



⾼高端机



baiduRuntime



云端渲染;输出html⻚页⾯面



云端渲染;输出html⻚页⾯面; 监听全局链接跳转



云端渲染;输出html⻚页⾯面



链接跳转



发送异步请求⺫⽬目标⻚页html 调起webview,通过



⽚片段;渲染⻚页⾯面



native转场切换⻚页⾯面;



第31页

选完了还能改么…



第32页

⽣生命在于折腾



第33页

没有最好,只有最适合

技术适⽤用场景、运维⽀支持 通⽤用服务/经验、团队技术特点 是否够敏捷、避免过度设计 技术是否⽕火



第34页

THX



支持文件格式:*.pdf
上传最后阶段需要进行在线转换,可能需要1~2分钟,请耐心等待。