Erlang零成本实现云计算.ppt
Erlang零成本实现云计算,余锋(褚霸)淘宝网技术专家 中国软件技术大会 北京 2010,议题,1.Erlang天生适合云计算2.Erlang并行计算的效率3.Erlang云计算基础构件4.Erlang集群管理和维护5.讨论,Erlang是什么?,通用的语言和运行环境内置并发,集群,容错机制电信和互联网行业大规模部署应用经过时间验证的成熟商业系统,Erlang的历史,很老的FP语言,始于80年代末爱立信投资10亿美金主导开发EPL版权方式开源需要记住的几个年份1987 The first experiments with Erlang.1993 Distribution is added to Erlang.2006 SMP support is added to Erlang.,云计算定义,云计算就是应用公共网络设施对逻辑的组建,像水和电一样融入大家的生活,为用户提供海量一站式的服务.-腾讯首席执行官马化腾 Cloud=CPU+Storage+Queues+Management-The Amazon Web Services says essentially,Erlang的进程,天上的云,Erlang was built from the ground up for concurrency.Not just in a single machine,but in clusters of machines.Lots of machines.Lost of machines running many processes.Sounds like a cloud,right?-Colin Clark,语言和虚拟机天生可伸缩,函数式语言,方便排错轻量级进程异步消息机制软实时代码热升级,最COOL的语言特性:,内置集群和分布的基础设施和库,进程分布和名称同步管理进程和节点容错管理 rpcgen_servermnesia数据库,稳定性,In 1998,the Ericsson AXD301 switch was announced,containing over a million lines of Erlang,and reported to achieve a reliability of nine 9s.-Joe Armstrong,Erlang零成本云计算适用的领域,互联网应用服务器消息推送系统网关代理服务器软实时的服务集群管理,Erlang社区快速壮大,见证云计算的增长,小结,Erlang天生适合特定领域的云计算,议题,1.Erlang天生适合云计算2.Erlang并行计算的效率3.Erlang云计算基础构件4.Erlang集群管理和维护5.讨论,Erlang语言运行和开发效率,纯Erlang的运行效率大概是C的1/5,编码效率是C的7倍,在脚本语言中属于中等水平.但是云计算不仅仅是纯计算,任务调度和集群管理是Erlang的强项,从而拉升系统的整体表现.第三方独立评测网站 TheComputerLanguage BenchmarksGame,摩托罗拉C/Erlang开发效率比较,Erlang对SMP的支持,从2006年发布的R11B开始.SMP开发人员的信条:SMP should be transparent to programers in much the way as erlang distribution.-Ulf Wiger,Ericsson AB,Erlang进程调度及策略,调度器看起来很像操作系统,实际上Erlang的第一个进程名字叫做otp_ring,Full load or not,多个运行队列,动态迁移进程,Erlang调度器的伸缩性,小消息,大计算原则,架构设计方面的考虑,不共享没有显式的同步并发导向的编程进程是低廉的,和现实世界对象1:1模型所有无依赖的任务,都抽象为进程并发执行 终止的进程,一切都是垃圾,资源集中回收简洁为王,Erlang技术发展路线图,虚拟机的运行期持续改进计划涵盖了对众核和NUMA体系结构的支持,保证了它在未来新的硬件体系结构下能持续获得更好的性能。,小结,Erlang并行计算效率高,议题,1.Erlang天生适合云计算2.Erlang并行计算的效率3.Erlang云计算基础构件4.Erlang集群管理和维护5.小结,从Vmware收购谈起.,Vmware 计算虚拟化Redis 存储RabbitMQ 消息交换系统我们可以清楚的看到云计算的三个基础设施!,存储系统(noSQL),CouchDB,Riak,Membase,消息交换系统,RabbitMQ,Ejabberd,WEB服务器,Mochiweb,Erlyweb,Map/Reduce系统,Disco,小结,Erlang基础设施齐全,开发成本低,议题,1.Erlang天生适合云计算2.Erlang并行计算的效率3.Erlang云计算基础构件4.Erlang集群管理和维护5.讨论,集群特点及规模,集群全连通或者分区连通访问授权:nothing or all策略节点规模可强力伸缩节点热插拔规模可达上千台,典型系统的集群进程组织图,异构性,不同的平台Windows(smp支持的有待改进)*nix 不同的体系结构无需关心endianess问题 工业级协议的支持(asn.1,snmp等),强大的交互性,与其他遗留系统整合,NIFC节点(ei)Java(jinterface)CobraTCP/HTTP内置RPC,部署,Standalone发布,无需单独安装Erlang运行期不停机维护在线升级,系统同时运行新旧代码发现问题在线降级工具化,一切自动化,代码安全,代码可远程从网络加载,Diskless减少维护的成本代码可加密,强加密防止反编译,远程维护,强大的内置shellssh/sftp可集中管理的日志系统,监控功能,OS monSNMPHTTP,小结,Erlang集群管理成本低,议题,1.Erlang天生适合云计算2.Erlang并行计算的效率3.Erlang云计算基础构件4.Erlang集群管理和维护5.讨论,典型成功案例,国内:校内网腾讯华为游戏公司(如4399).国外:FacebookGithub.,应用障碍,FP语言,开发人员少,招聘成本高 独特的并发和错误处理哲学开发社区偏小,知识积累不够应用库偏少,谢谢大家!Any questions?,