百度应用开发引擎肖伟(xiaowei@baidu.com)•超牛服务器,最好有1万个cpu!•要支持热插拔,性能不够的时候插一个核进去,不影响服务•cpu热插拔?内存、硬盘也要。另外内存至少得1000G,硬盘至少得1P•硬盘永远不会坏!•价格要便宜!•虽然我申请了1万个核,1万G,1万P,但是实际只用了1个核,100M内存,1K数据。•你得按用多少收费!•机器牛有怎么用!•机器被砸了能恢复不?•停电了,能恢复不?•必须能不间断提供服务才行!•上面的需求我们都能满足都满足了,那我干嘛?•作为BAE的用户,写最关键的业务逻辑代码就可以了–是面向“单机”的编程!•将物理机器统一成一个大的资源池•通过软件手段分配虚拟资源给服务包括为一个服务分配–100核的2.4GCPU–1000G的内存–10000T磁盘•通过分布式调度,完成永不停机的保证•用户处于一个“单机”的编程环境统一前端接入(软7层)资源定位服务分布式虚拟化系统(支持多任务多用户)进程调度器分布式存储系统统一前端接入(软7层)资源定位服务分布式虚拟化系统(支持多任务多用户)进程调度器分布式存储系统•维护主键到进程列表的映射•进程迁移,通知客户端,服务列表变化•提供分布式粗粒度锁服务统一前端接入(软7层)资源定位服务分布式虚拟化系统(支持多任务多用户)进程调度器分布式存储系统•寻找空闲的机器资源运行用户程序–故障发生、扩容、压力过大的时候触发•通过调度算法一定程度上提高机器利用率–众多小服务调度到一台机器上,而不是单独使用机器–IO密集型和大内存服务调度到一台机器上,提高机器利用率进程进程进程进程进程进程资源定位(管理服务进程)进程通讯统一通讯方式分布式存储进程通讯虚拟结点(1)虚拟结点(2)虚拟结点(3)本地缓存本地缓存本地缓存分布式文件系统资源定位fastcgifastcgifastcgi代码发布通知定位服务器统一前端接入(软7层)统一前端接入(软7层)资源定位服务分布式虚拟化系统(支持多任务多用户)进程调度器分布式存储系统–不同用户的进程可以部署到一台机器上,提高机器利用率–同台机器不同账户的进程完成资源隔离•综上所述,BAE就是一台给力的机器。保证用户针对单机编程•但是,我有时候裸用API写程序也挺烦人的•我们还有开发环境,包括丰富的SDK和调试工具编程框架国际化支持业务流程支持统一通讯机制分布式服务云存储分布式关系存储消息队列分布式缓存定时服务……OpenAPI百度账号支持空间用户数据知道用户数据……本地调试环境模拟API模拟调试器•满足图片、视频、文档等数据的存储需求•提供高并发对外访问(慢连接优化)•http/https接口,支持p2p下载等功能•支持0到无限大的文件断点上传、下载•提供大文件瞬间上传功能(如果云中存在)•提供文件的访问权限管理、目录管理和分享自定义异步WebServer集群ACL认证文件目录服务数据异步抓取系统数据提交逻辑处理分布式块存储(sata)分布式块存储(ssd)浏览请求•其它不一一展开•BAE难学吗?•代码打包上传到平台就能运行–对于Lamp架构来说,老代码无需修改–对于普通进程来说,必须使用BAE的API开发BAE全貌分布式Runtime消息队列云存储定时服务缓存服务分布式关系存储服务多语言编程框架(用户接口)完成代码后自动部署到Runtime上RPC调用•可使用海量cpu–较常规cpu没有明显性能损耗•可使用海量内存–较常规内存没有明显性能损耗•可使用海量存储–IOPS:单盘(sata,无cache)200/s–吞吐:IOPS不是瓶颈,会跑满网卡•迁移大量百度服务,每天http请求数超过50亿•逐步统一百度用户数据存储,包括文档、mp3、视频…百度基础架构部(inf)–在线服务统一架构组(IIS)–邮件:iis@baidu.com