SlideShare ist ein Scribd-Unternehmen logo
1 von 40
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语言运行和开发效率




                                                  摩托罗拉C/Erlang开发效率比较




纯Erlang的运行效率大概是C的1/5, 编码效率是C的7倍,在脚本语言中属于中等水
平.但是云计算不仅仅是纯计算,任务调度和集群管理是Erlang的强项,从而拉升系统的
整体表现.
第三方独立评测网站 The Computer Language Benchmarks Game
Erlang对SMP的支持

从2006年发布的R11B开始.
SMP开发人员的信条:
"SMP should be transparent to programers in much the way as
erlang distribution."

                                     -Ulf Wiger, Ericsson AB
Erlang进程调度及策略



Full load or not




                   多个运行队列,动态迁移进程


调度器看起来很像操作系统,实际上Erlang的第
一个进程名字叫做otp_ring
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?

Weitere ähnliche Inhalte

Andere mochten auch

Erlang开发实践
Erlang开发实践Erlang开发实践
Erlang开发实践Feng Yu
 
开源混合存储方案(Flashcache)
开源混合存储方案(Flashcache)开源混合存储方案(Flashcache)
开源混合存储方案(Flashcache)Feng Yu
 
淘宝商品库MySQL优化实践
淘宝商品库MySQL优化实践淘宝商品库MySQL优化实践
淘宝商品库MySQL优化实践Feng Yu
 
了解集群
了解集群了解集群
了解集群Feng Yu
 
MySQL和IO(上)
MySQL和IO(上)MySQL和IO(上)
MySQL和IO(上)Feng Yu
 
利用新硬件提升数据库性能
利用新硬件提升数据库性能利用新硬件提升数据库性能
利用新硬件提升数据库性能Feng Yu
 
了解网络
了解网络了解网络
了解网络Feng Yu
 
mnesia脑裂问题综述
mnesia脑裂问题综述mnesia脑裂问题综述
mnesia脑裂问题综述Feng Yu
 
了解内存
了解内存了解内存
了解内存Feng Yu
 
Systemtap
SystemtapSystemtap
SystemtapFeng Yu
 
Flash存储设备在淘宝的应用实践
Flash存储设备在淘宝的应用实践Flash存储设备在淘宝的应用实践
Flash存储设备在淘宝的应用实践Feng Yu
 
SSD在淘宝的应用实践
SSD在淘宝的应用实践SSD在淘宝的应用实践
SSD在淘宝的应用实践Feng Yu
 
MySQL和IO(下)
MySQL和IO(下)MySQL和IO(下)
MySQL和IO(下)Feng Yu
 
了解Cpu
了解Cpu了解Cpu
了解CpuFeng Yu
 
了解IO协议栈
了解IO协议栈了解IO协议栈
了解IO协议栈Feng Yu
 
低成本和高性能MySQL云架构探索
低成本和高性能MySQL云架构探索低成本和高性能MySQL云架构探索
低成本和高性能MySQL云架构探索Feng Yu
 
Cpu高效编程技术
Cpu高效编程技术Cpu高效编程技术
Cpu高效编程技术Feng Yu
 
Erlang分布式系统的的领域语言
Erlang分布式系统的的领域语言Erlang分布式系统的的领域语言
Erlang分布式系统的的领域语言Feng Yu
 

Andere mochten auch (18)

Erlang开发实践
Erlang开发实践Erlang开发实践
Erlang开发实践
 
开源混合存储方案(Flashcache)
开源混合存储方案(Flashcache)开源混合存储方案(Flashcache)
开源混合存储方案(Flashcache)
 
淘宝商品库MySQL优化实践
淘宝商品库MySQL优化实践淘宝商品库MySQL优化实践
淘宝商品库MySQL优化实践
 
了解集群
了解集群了解集群
了解集群
 
MySQL和IO(上)
MySQL和IO(上)MySQL和IO(上)
MySQL和IO(上)
 
利用新硬件提升数据库性能
利用新硬件提升数据库性能利用新硬件提升数据库性能
利用新硬件提升数据库性能
 
了解网络
了解网络了解网络
了解网络
 
mnesia脑裂问题综述
mnesia脑裂问题综述mnesia脑裂问题综述
mnesia脑裂问题综述
 
了解内存
了解内存了解内存
了解内存
 
Systemtap
SystemtapSystemtap
Systemtap
 
Flash存储设备在淘宝的应用实践
Flash存储设备在淘宝的应用实践Flash存储设备在淘宝的应用实践
Flash存储设备在淘宝的应用实践
 
SSD在淘宝的应用实践
SSD在淘宝的应用实践SSD在淘宝的应用实践
SSD在淘宝的应用实践
 
MySQL和IO(下)
MySQL和IO(下)MySQL和IO(下)
MySQL和IO(下)
 
了解Cpu
了解Cpu了解Cpu
了解Cpu
 
了解IO协议栈
了解IO协议栈了解IO协议栈
了解IO协议栈
 
低成本和高性能MySQL云架构探索
低成本和高性能MySQL云架构探索低成本和高性能MySQL云架构探索
低成本和高性能MySQL云架构探索
 
Cpu高效编程技术
Cpu高效编程技术Cpu高效编程技术
Cpu高效编程技术
 
Erlang分布式系统的的领域语言
Erlang分布式系统的的领域语言Erlang分布式系统的的领域语言
Erlang分布式系统的的领域语言
 

Ähnlich wie Erlang low cost_clound_computing

Inside Erlang Vm II
Inside Erlang Vm IIInside Erlang Vm II
Inside Erlang Vm IIFeng Yu
 
Erlang Optimize
Erlang OptimizeErlang Optimize
Erlang OptimizeFeng Yu
 
Erlang在网页游戏开发领域的应用
Erlang在网页游戏开发领域的应用Erlang在网页游戏开发领域的应用
Erlang在网页游戏开发领域的应用Peng Guo
 
Zh tw introduction_to_cloud_computing
Zh tw introduction_to_cloud_computingZh tw introduction_to_cloud_computing
Zh tw introduction_to_cloud_computingTrendProgContest13
 
高性能集群服务器Erlang解决方案
高性能集群服务器Erlang解决方案高性能集群服务器Erlang解决方案
高性能集群服务器Erlang解决方案Michael Yang
 
美团点评技术沙龙14:美团四层负载均衡
美团点评技术沙龙14:美团四层负载均衡美团点评技术沙龙14:美团四层负载均衡
美团点评技术沙龙14:美团四层负载均衡美团点评技术团队
 
Oracle服务器及存储介绍
Oracle服务器及存储介绍Oracle服务器及存储介绍
Oracle服务器及存储介绍Ethan M. Liu
 
C1000K高性能服务器构建技术
C1000K高性能服务器构建技术C1000K高性能服务器构建技术
C1000K高性能服务器构建技术Feng Yu
 
基于Erlang的
基于Erlang的基于Erlang的
基于Erlang的hnoutman
 
Nodejs & NAE
Nodejs & NAENodejs & NAE
Nodejs & NAEq3boy
 
openGauss DBMind.pdf
openGauss DBMind.pdfopenGauss DBMind.pdf
openGauss DBMind.pdfwot chin
 
新时代的分析型云数据库 Greenplum
新时代的分析型云数据库 Greenplum新时代的分析型云数据库 Greenplum
新时代的分析型云数据库 Greenplum锐 张
 
利用统一存储获得无与伦比的速度,简化系统,并节省更多
利用统一存储获得无与伦比的速度,简化系统,并节省更多利用统一存储获得无与伦比的速度,简化系统,并节省更多
利用统一存储获得无与伦比的速度,简化系统,并节省更多ITband
 
Yupoo! (花瓣网/又拍云) 架构中的消息与任务系统
Yupoo! (花瓣网/又拍云) 架构中的消息与任务系统Yupoo! (花瓣网/又拍云) 架构中的消息与任务系统
Yupoo! (花瓣网/又拍云) 架构中的消息与任务系统Dahui Feng
 
众行业公司系统架构案例介绍
众行业公司系统架构案例介绍众行业公司系统架构案例介绍
众行业公司系统架构案例介绍mysqlops
 
Hacking Nginx at Taobao
Hacking Nginx at TaobaoHacking Nginx at Taobao
Hacking Nginx at TaobaoJoshua Zhu
 
Challenges and opportunities computing Kuo-Yi Chen
Challenges and opportunities computing   Kuo-Yi ChenChallenges and opportunities computing   Kuo-Yi Chen
Challenges and opportunities computing Kuo-Yi Chenkuoyichen
 
阿里云技术实践
阿里云技术实践阿里云技术实践
阿里云技术实践drewz lin
 
20141128(刘胜)UTC2014分布式和云服务的思考与实践——支付清算行业分布式架构的探索
20141128(刘胜)UTC2014分布式和云服务的思考与实践——支付清算行业分布式架构的探索20141128(刘胜)UTC2014分布式和云服务的思考与实践——支付清算行业分布式架构的探索
20141128(刘胜)UTC2014分布式和云服务的思考与实践——支付清算行业分布式架构的探索liu sheng
 

Ähnlich wie Erlang low cost_clound_computing (20)

Inside Erlang Vm II
Inside Erlang Vm IIInside Erlang Vm II
Inside Erlang Vm II
 
Erlang Optimize
Erlang OptimizeErlang Optimize
Erlang Optimize
 
Erlang在网页游戏开发领域的应用
Erlang在网页游戏开发领域的应用Erlang在网页游戏开发领域的应用
Erlang在网页游戏开发领域的应用
 
Zh tw introduction_to_cloud_computing
Zh tw introduction_to_cloud_computingZh tw introduction_to_cloud_computing
Zh tw introduction_to_cloud_computing
 
高性能集群服务器Erlang解决方案
高性能集群服务器Erlang解决方案高性能集群服务器Erlang解决方案
高性能集群服务器Erlang解决方案
 
美团点评技术沙龙14:美团四层负载均衡
美团点评技术沙龙14:美团四层负载均衡美团点评技术沙龙14:美团四层负载均衡
美团点评技术沙龙14:美团四层负载均衡
 
Oracle服务器及存储介绍
Oracle服务器及存储介绍Oracle服务器及存储介绍
Oracle服务器及存储介绍
 
C1000K高性能服务器构建技术
C1000K高性能服务器构建技术C1000K高性能服务器构建技术
C1000K高性能服务器构建技术
 
基于Erlang的
基于Erlang的基于Erlang的
基于Erlang的
 
Nodejs & NAE
Nodejs & NAENodejs & NAE
Nodejs & NAE
 
openGauss DBMind.pdf
openGauss DBMind.pdfopenGauss DBMind.pdf
openGauss DBMind.pdf
 
新时代的分析型云数据库 Greenplum
新时代的分析型云数据库 Greenplum新时代的分析型云数据库 Greenplum
新时代的分析型云数据库 Greenplum
 
利用统一存储获得无与伦比的速度,简化系统,并节省更多
利用统一存储获得无与伦比的速度,简化系统,并节省更多利用统一存储获得无与伦比的速度,简化系统,并节省更多
利用统一存储获得无与伦比的速度,简化系统,并节省更多
 
Yupoo! (花瓣网/又拍云) 架构中的消息与任务系统
Yupoo! (花瓣网/又拍云) 架构中的消息与任务系统Yupoo! (花瓣网/又拍云) 架构中的消息与任务系统
Yupoo! (花瓣网/又拍云) 架构中的消息与任务系统
 
众行业公司系统架构案例介绍
众行业公司系统架构案例介绍众行业公司系统架构案例介绍
众行业公司系统架构案例介绍
 
Hacking Nginx at Taobao
Hacking Nginx at TaobaoHacking Nginx at Taobao
Hacking Nginx at Taobao
 
Challenges and opportunities computing Kuo-Yi Chen
Challenges and opportunities computing   Kuo-Yi ChenChallenges and opportunities computing   Kuo-Yi Chen
Challenges and opportunities computing Kuo-Yi Chen
 
阿里云技术实践
阿里云技术实践阿里云技术实践
阿里云技术实践
 
20141128(刘胜)UTC2014分布式和云服务的思考与实践——支付清算行业分布式架构的探索
20141128(刘胜)UTC2014分布式和云服务的思考与实践——支付清算行业分布式架构的探索20141128(刘胜)UTC2014分布式和云服务的思考与实践——支付清算行业分布式架构的探索
20141128(刘胜)UTC2014分布式和云服务的思考与实践——支付清算行业分布式架构的探索
 
Dell
DellDell
Dell
 

Erlang low cost_clound_computing