Erlang low cost_clound_computing
-
Upload
feng-yu -
Category
Technology
-
view
6.071 -
download
0
description
Transcript of Erlang low cost_clound_computing
Erlang 零成本实现云计算
余锋 (褚霸) 淘宝网技术专家
http://yufeng.info 中国软件技术大会 北京 2010
议题
1. Erlang 天生适合云计算 2 .Erlang 并行计算的效率 3. Erlang 云计算基础构件 4. Erlang 集群管理和维护 5. 讨论
Erlang 是什么 ?
• 通用的语言和运行环境• 内置并发 , 集群 , 容错机制• 电信和互联网行业大规模部署应用 • 经过时间验证的成熟商业系统
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.
云计算定义
云计算就是应用公共网络设施对逻辑的组建,像水和电一样融入大家的生活,为用户提供海量一站式的服务 .
- 腾讯首席执行官马化腾 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 的语言特性 :
内置集群和分布的基础设施和库
• 进程分布和名称同步管理• 进程和节点容错管理 • rpc• gen_server• mnesia 数据库
稳定性
In 1998, the Ericsson AXD301 switch was announced, containing over a million lines of Erlang, and reported to achieve a reliability of nine "9"s.
-Joe Armstrong
Erlang 零成本云计算适用的领域
• 互联网应用服务器• 消息推送系统 • 网关代理服务器• 软实时的服务• 集群管理
Erlang 社区快速壮大 , 见证云计算的增长
小结
Erlang 天生适合特定领域
的云计算
议题
1. Erlang 天生适合云计算 2 .Erlang 并行计算的效率 3. Erlang 云计算基础构件 4. Erlang 集群管理和维护 5. 讨论
Erlang 语言运行和开发效率
纯 Erlang 的运行效率大概是 C 的 1/5 , 编码效率是 C 的 7 倍,在脚本语言中属于中等水平 . 但是云计算不仅仅是纯计算 , 任务调度和集群管理是 Erlang 的强项 , 从而拉升系统的整体表现 . 第三方独立评测网站 The Computer Language Benchmarks Game
摩托罗拉 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 策略• 节点规模可强力伸缩• 节点热插拔• 规模可达上千台
典型系统的集群进程组织图
异构性
• 不同的平台o Windows ( smp 支持的有待改进)o *nix
• 不同的体系结构o 无需关心 endianess问题 o 工业级协议的支持( asn.1, snmp 等)
强大的交互性 , 与其他遗留系统整合
• NIF• C 节点( ei)• Java (jinterface)• Cobra• TCP/HTTP• 内置 RPC
部署
• Standalone 发布,无需单独安装 Erlang 运行期• 不停机维护• 在线升级,系统同时运行新旧代码• 发现问题在线降级• 工具化 , 一切自动化
代码安全
• 代码可远程从网络加载 , Diskless减少维护的成本• 代码可加密 , 强加密防止反编译
远程维护
• 强大的内置 shell• ssh/sftp• 可集中管理的日志系统
监控功能
• OS mon• SNMP• HTTP
小结
Erlang集群管理成本低
议题
1. Erlang 天生适合云计算 2 .Erlang 并行计算的效率 3. Erlang 云计算基础构件 4. Erlang 集群管理和维护 5. 讨论
典型成功案例
国内:• 校内网• 腾讯• 华为• 游戏公司 (如 4399)• ...
国外:• Facebook• Github • ...
应用障碍
• FP 语言 , 开发人员少 , 招聘成本高 • 独特的并发和错误处理哲学• 开发社区偏小,知识积累不够• 应用库偏少
谢谢大家!
Any questions?