Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Erlang low cost_clound_computing

6,417 views

Published on

Erlang低成本云计算

Published in: Technology
  • Be the first to comment

Erlang low cost_clound_computing

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

×