Presentation is loading. Please wait.

Presentation is loading. Please wait.

核心系统数据库组 褚霸 http://yufeng.info 2011-07-29 高性能集群服务器 Erlang解决方案 核心系统数据库组 褚霸 http://yufeng.info 2011-07-29.

Similar presentations


Presentation on theme: "核心系统数据库组 褚霸 http://yufeng.info 2011-07-29 高性能集群服务器 Erlang解决方案 核心系统数据库组 褚霸 http://yufeng.info 2011-07-29."— Presentation transcript:

1 核心系统数据库组 褚霸 http://yufeng.info 2011-07-29
高性能集群服务器 Erlang解决方案 核心系统数据库组 褚霸

2 十万英尺高度看Erlang

3 我是谁?

4 Erlang是什么? 江湖传说 官方定义 支持高并发 伤眼睛 怪异难学 通用的语言和运行环境 内置并发,集群,容错机制
电信行业大规模部署应用 经过时间验证的成熟商业系统

5 Erlang的历史 很老的FP语言,始于80年代末 爱立信投资10亿美金主导开发 EPL版权方式开源 需要记住的几个年份
1987  The first experiments with Erlang.  1993  Distribution is added to Erlang. 2006  SMP support is added to Erlang.

6 Erlang社区

7 印象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

8 Erlang适合做什么 互联网应用服务器 消息系统 海量存储 需要软实时的数据库应用  网关代理服务器 异构系统粘合

9 Erlang成熟项目

10 显微镜看Erlang

11 语言和虚拟机天生可伸缩 最酷的语言特性: 函数式语言,方便排错 轻量级进程 异步消息机制 软实时 代码热升级

12 集群特点及规模 集群全连通或者分区连通 访问授权: nothing or all策略 节点规模可强力伸缩 节点热插拔 规模可达上千台
典型系统的集群进程组织图

13 Erlang语言运行和开发效率

14 Erlang对SMP的支持 从2006年发布的R11B开始. SMP开发人员的信条:
"SMP should be transparent to programers in much the way as erlang distribution." -Ulf Wiger, Ericsson AB

15 Erlang进程调度及策略

16 Erlang调度器的伸缩性

17 稳定性 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

18 异构性 不同的平台 不同的体系结构 Windows(smp支持的有待改进) Linux(*NIX) 无需关心endianess问题
工业级协议的支持(asn.1, snmp等)

19 历史遗留系统粘合 API: nif C系统: ei Java: jinterface Cobra: cos* TCP/HTTP

20 Erlang技术发展路线图 虚拟机的运行期持续改进计划涵盖了对众核NUMA体系结构的支持,保证了它在未来新的硬件体系结构下能持续获得更好的性能。

21 软件生命周期看Erlang

22 设计 基于Actor模型 异步消息传递 无类型系统, 模块化,内置大部分应用模块
行为提炼: gen_server, gen_fsm,gen_event 90%的模块都是gen_server

23 开发 工具 效率 编辑器 Emacs或者其他文本编辑器 编译器:内置 Make工具: rebar 开发人员素质要求中等
开发效率是C/C++的7倍(摩托罗拉,4399游戏)

24 排错 静态分析器:dialyzer 动态分析器: debugger 完善的日志系统和出错原因 完善的coredump分析

25 测试 单元测试 eunit 系统测试 common_test test_server

26 部署 独立的安装包自带运行环境 无需停机维护 在线升级,系统同时跑新旧代码 发现问题在线降级 工具化,一切自动化

27 远程维护 强大的内置shell 内置SSH和SFTP服务器, 分布式日志系统

28 监控功能 操作系统,CPU,内存,磁盘监控 无比详细的运行期状态 支持工业标准SNMP/HTTP

29 从淘宝看Erlang

30 淘宝的业务特点 用户数目庞大 海量数据 应用繁多

31 淘宝现存软件的特点 开源基础改进 自家酿造,门派繁多 开发周期长,软件生命周期长 稳定性要求高

32 Erlang来救助 IO密集型:小菜一碟 计算密集型: 无助 网络密集型:拿手好戏 集群密集型:拿手好戏 稳定密集型:拿手好戏
粘合型:小菜一碟 数据库:小菜一碟

33 推广障碍 函数式语言, 开发人员少, 招聘成本高 独特的并发和错误处理哲学 开发社区偏小,知识积累不够 应用库偏少 软件经理不了解

34 提问时间 谢谢大家!


Download ppt "核心系统数据库组 褚霸 http://yufeng.info 2011-07-29 高性能集群服务器 Erlang解决方案 核心系统数据库组 褚霸 http://yufeng.info 2011-07-29."

Similar presentations


Ads by Google