Erlang 分布式系统的的领域语言 淘宝核心系统资深专家 余锋 淘宝褚霸 2013-6-3.

Slides:



Advertisements
Similar presentations
彰化縣和美鎮 和仁國民小學 本土語言教育暨 台灣母語日訪視 簡 報. 一. 學校概況 校地面積 校地面積廣達三公頃 學生活動空間寬廣!
Advertisements

高校教师、高级项目经理 任铄 QQ : 第一章 操作系统引论 1.1 操作系统的目标和作用 1.2 操作系统的发展过程 1.3 操作系统的基本特性 1.4 操作系统的主要功能 1.5 OS 结构设计.
高级服务器设计和实现 1 —— 基础与进阶 余锋
德式閱讀的力量.
報告者:蕭曄鴻 班級:溫馨甲孝 指導教授:李開濟博士
單元名稱: 健康的兩性交往.
主題─ 悌 授課教師:謝宛琳.
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
與櫻花有約 櫻花開放時間 櫻花前線 賞花便當 京都機場(附近) 夜櫻 哲學之道.
香港扶貧計劃 關愛基金 Group 5 組員 馬曉真 余葆 董賽騫 蕭雪兒.
习作一 作文的一般写法.
Erlang全接触 褚霸 2010/07/20.
核心系统数据库组 褚霸 高性能集群服务器 Erlang解决方案 核心系统数据库组 褚霸
美洲集团散拼项目分享 李维迪.
Erlang应用优化指南 余 锋 2009/11/07.
余锋 (褚霸) 淘宝网技术专家 中国软件技术大会 北京 2010
义和团运动和八国联军侵华战争.
淘宝核心系统资深专家 我为什么要选择RabbitMQ 淘宝核心系统资深专家
实用操作系统概念 张惠娟 副教授 1.
初中《思想品德》课程改革 回顾·现状·展望
101學年度下學期 團體諮商系列 身心健康中心.
基于解释性语言的手机跨平台架构 Sloan Yi. Qt MTK.
兒 童 營 養 高雄長庚醫院營養治療科 營養師 洪凱殷.
企业级云计算 A Enterprise Cloud Serivce
施耐德电气(中国)投资有限公司 运动控制部技术经理 李幼涵 高级工程师
Kvm异步缺页中断 浙江大学计算机体系结构实验室 徐浩.
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
余锋 2009/03/11 Erlang及其应用 余锋 2009/03/11
嵌入式系统课程简介 宋健建 南京大学软件学院 2004/02/10.
核心系统数据库组 余锋 了解内存 核心系统数据库组 余锋
第二讲 搭建Java Web开发环境 主讲人:孙娜
存储系统.
管理信息结构SMI.
Jul 2014 HEAT部署Hadoop集群
Qt网络编程实战之HTTP服务器 安晓辉(foruok)
第11章:一些著名开源软件介绍 第12章:服务安装和配置 本章教学目标: 了解当前一些应用最广泛的开源软件项目 搭建一个网站服务器
大数据管理技术 --NoSQL数据库 HBase 陈 辉 大数据分析技术.
Visual Studio Team System 简介
/8/19 Erlang的高级特性和应用 /8/19.
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
/8/19 Erlang的高级特性和应用 /8/19.
Erlang emulator 实现分析 2007/10.
S 数控机床故障诊断与维修.
聊聊并发编程 猫头鹰表哥.
数据挖掘工具性能比较.
PaPaPa项目架构 By:Listen 我在这.
Unit 11.Operating System 11.1 What’s OS 11.2 Related Courses
程序设计工具实习 Software Program Tool
何勉 新浪微博: Scrum框架及其背后的原则 原始图片 何勉 新浪微博:
内容摘要 ■ 课程概述 ■ 教学安排 ■ 什么是操作系统? ■ 为什么学习操作系统? ■ 如何学习操作系统? ■ 操作系统实例
C语言程序设计 主讲教师:陆幼利.
微机系统的组成.
软件设计演进和系列训练营 实践 丁辉 Tel:
VisComposer 2019/4/17.
Cassandra应用及高性能客户端 董亚军 来自Newegg-NESC.
计算机网络与网页制作 Chapter 07:Dreamweaver CS5入门
信号量(Semaphore).
解决“最后1公里”问题.
JSP实用教程 清华大学出版社 第2章 JSP运行环境和开发环境 教学目标 教学重点 教学过程 2019年5月7日.
静定结构位移计算 ——互等定理 主讲教师:戴萍.
核心系统数据库组 了解应用服务器 核心系统数据库组
Touch Github = Touch the World
临界区问题的硬件指令解决方案 (Synchronization Hardware)
OpenStack vs CloudStack
<编程达人入门课程> 本节内容 学习路线 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
本节内容 进程 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
FVX1100介绍 法视特(上海)图像科技有限公司 施 俊.
2019/9/19 互联网产业、立法与网规 张钦坤 腾讯法务部.
Presentation transcript:

Erlang 分布式系统的的领域语言 淘宝核心系统资深专家 余锋 淘宝褚霸

我是谁 ? 2

传统服务器集群 开发的痛 3

编程语言和模型选择 各种编程语言? 多线程? 事件模型? 阻塞模型? 各种库? 4

典型问题 稳定性挑战 C10K 问题 资源争夺 锁冲突和粒度 多核 scale 效果 网络编程复杂性 内存管理复杂性 5

传统服务器集群 运维的痛 6

集群规模 集群规模带来的问题 集群全联通 心跳压力 7

集群范围挑战 性能和瓶颈分析 日志分析挑战 消息跟踪需求 趋势分析 8

集群升级 不间断服务带来的挑战 灰度发布 升级和回滚 9

集群容错 机器失效 网络故障 机房层面 failover/takeover 10

服务质量 软实时带来的挑战 公平服务 爆发流量 11

为什么 Erlang ? Erlang 关键特性 12

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

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

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

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

哲学 - Joe Armstrong The world is concurrent Things in the world don't share data Things communicate with messages Things fail" 17

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

编程模型 函数式编程 – 变量不可变 actor 模型 – 与真实世界 1:1 映射 异步消息驱动 模式匹配 无类型系统 行为提炼 : gen_server, gen_fsm,gen_event –90% 的模块都是 gen_server 19

Erlang 运行效率 20

Erlang 开发效率 开发人员素质要求中等 开发效率是 C/C++ 的 7 倍 21

Erlang 的系统组成 编译器 erlang 库 erlang VM + 基本库 c 调试器 erlang Profile erlang 工具集 erlang 22

其实是个操作系统 Unix 操作系统 用 c++ 做例子 – 函数 (void f() {}) – 类 (class xxx{};) – 模块 (xxx.cpp) – 可执行文件(编译器,机器指令) – 应用程序包括数据文件 –OS 启动,系统进程(抢占式调度 ) –IPC 通讯 – 监控工具 (Top) 23

其实是个操作系统(续) Erlang 系统类比 – 函数 (fun () -> ok end) – 模块( module xxx. xxx.erl) –Beam 文件(编译器, opcode) –Application (beam+ 数据文件) –VM bootstrap, erlang 进程 ( 抢占调度 ) – 消息, Port, IPC 通讯 –etop 24

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

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

集群实现保障 C 底层支持, 效率保证 分布的原语是内置的(支持 cnode, jnode ) 进程的位置无关性 名称服务 节点间自动心跳检查,维护节点的 up, down Global 模块提供全局空间的访问 Group leader 提供全局的 IO 服务 27

健壮性 个以上 test case 容错设计 – 进程可监控 –supervisor 角色 –heart 看门狗 时间检验过的 –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 28

软实时性 ms 级别 抢占式调度 公平调度 – 进程 –IO –bif –nif 29

互联互通和异构性 不同的平台 不同的体系结构 协议互联 –http/ftp/sftp –ssh –ssl –tcp/udp/sctp –asn.1 –corba –snmp 30

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

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

Erlang 应用情况 33

行业 Advertising and New Media Automotive Financial Services Gaming Telecom 34

Erlang 成熟项目 35

whatsapp 300M 集群架构 36

whatsapp 300M 集群性能 37

whatsapp 300M 集群性能(续) 38

Erlang 后续发展 39

Erlang 社区 40

Erlang 影响力 TIOBE 2013 年 5 月 排名 31 Go 、 Scala 等语言山寨的对象 超算和并行计算大放异彩 41

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

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

提问时间 谢谢大家! 44