QCon2015_Shanghai_XuLi

Similar documents
实践课堂成都站-0609.key

<4D F736F F F696E74202D20C8EDBCFEBCDCB9B9CAA6D1D0D0DEBDB2D7F92E707074>

SiteView技术白皮书

CH01.indd

2005 3

穨japhkesch.PDF

A API Application Programming Interface 见 应 用 程 序 编 程 接 口 ARP Address Resolution Protocol 地 址 解 析 协 议 为 IP 地 址 到 对 应 的 硬 件 地 址 之 间 提 供 动 态 映 射 阿 里 云 内

ebook 99-11

Oracle 4

mvc

TopTest_Adminstrator.doc

% ~ AAA

Network Bandwidth Applications MATE Applications Applications On Demand Calendaring Load Balancer Live Archive Design Northbound Service,Netwo

<4D F736F F D20312D3120D5D0B9C9CBB5C3F7CAE9A3A8C9CFBBE1B8E5A3A92E646F63>

untitled

有 不 同 想 法 馬 上 記 錄 下 來, 作 為 寫 作 和 較 特 殊 題 型 的 答 題 材 料 把 握 這 四 到, 再 加 上 考 試 用 書 的 重 點 整 理, 搭 配 服 用, 讓 課 文 與 你 不 再 有 距 離 2. 考 試 成 績 好 差, 心 情 也 好 差, 可 不 可

chapter 2 HTML5 目錄iii HTML HTML HTML HTML HTML canvas

D C 93 2

User Group SMTP

目 录 1. 业 务 流 程 系 统 开 发 面 临 的 挑 战 与 机 遇 业 务 流 程 管 理 新 一 代 开 源 业 务 流 程 开 发 平 台 BPMX BPMX3 是 什 么 为 什 么 要 优 先 采 用 BPMX

51434S Fundamentals of the UNIX system 5 40, H3064S HPE-UX System and Network Administration I 5 40, H3065S HPE-UX System

的 開 銷, 請 務 必 先 和 家 裡 討 論 後 再 做 決 定 二 研 修 學 校 簡 介 卡 內 基 美 隆 大 學 (Carnegie Mellon University), 位 於 賓 州 匹 茲 堡 會 選 擇 來 這 裡 交 換, 我 相 信 大 部 分 的 人 都 已 經 知 道

(TestFailure) JUnit Framework AssertionFailedError JUnit Composite TestSuite Test TestSuite run() run() JUnit

ABOUT ME AGENDA 唐建法 / TJ MongoDB 高级方案架构师 MongoDB 中文社区联合发起人 Spark 介绍 Spark 和 MongoDB 案例演示

1 o o o CPU o o o o o SQL Server 2005 o CPU o o o o o SQL Server o Microsoft SQL Server 2005

untitled

PowerPoint 演示文稿

经华名家讲堂

6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM

<B1B1BEA9B9E2BBB7D0C2CDF8BFC6BCBCB9C9B7DDD3D0CFDEB9ABCBBEB4B43F3F12FB6CB293>

C3_ppt.PDF

ArcGIS Sever.NET ArcGIS Server Web JAVA ArcGIS Server Web

FAQ -PowerDesigner9.5.DOC

幻灯片 1

路演公告.PDF

epub 94-3


基本概念

OSI OSI 15% 20% OSI OSI ISO International Standard Organization 1984 OSI Open-data System Interface Reference Model OSI OSI OSI OSI ISO Prototype Prot


WinMDI 28

Microsoft Word - 生活禮儀柯友惠981

59 1 CSpace 2 CSpace CSpace URL CSpace 1 CSpace URL 2 Lucene 3 ID 4 ID Web 1. 2 CSpace LireSolr 3 LireSolr 3 Web LireSolr ID

TCP/IP TCP/IP OSI IP TCP IP IP TCP/IP TCP/IP

BYOD IP+Optical (IP NGN) API 4. End-to-End (Service Aware) 5. IP NGN (IP Next Generation Network) ( ) Prime Carrier Management Access Edge Co

untitled

1 SQL Server 2005 SQL Server Microsoft Windows Server 2003NTFS NTFS SQL Server 2000 Randy Dyess DBA SQL Server SQL Server DBA SQL Server SQL Se

目 录 第 一 章 电 力 行 业 内 部 控 制 操 作 指 南 概 述... 1 第 二 章 内 部 控 制 规 范 体 系 建 设 与 运 行 第 三 章 内 部 环 境 建 设 第 一 节 组 织 架 构 第 二 节 发 展 战 略 第 三 节

ebook140-9

目 录 1. 前 言 为 什 么 要 用 ESB 技 术 发 展 业 务 需 求 IT 需 求 IT 与 业 务 一 致 性 要 求 TongIntegrator ESB v5 简 介..

1 目 錄 1. 簡 介 一 般 甄 試 程 序 第 一 階 段 的 準 備 第 二 階 段 的 準 備 每 間 學 校 的 面 試 方 式 各 程 序 我 的 做 法 心 得 及 筆 記 結 論..

IP505SM_manual_cn.doc

Microsoft Word - PS2_linux_guide_cn.doc

f2.eps

摘 要 1. GSLB: 全 局 负 载 均 衡 2. SLB: 服 务 器 负 载 均 衡 四 层 交 换 LVS 七 层 交 换 Nginx 3. Heartbeat 实 现 HA 4. MySQL 数 据 库 集 群 5. 集 群 环 境 下 的 存 储 备 份 6. 集 群 的 监 控 及

untitled

ansoft_setup21.doc

ebook 132-2

1. 二 進 制 數 值 ( ) 2 轉 換 為 十 六 進 制 時, 其 值 為 何? (A) ( 69 ) 16 (B) ( 39 ) 16 (C) ( 7 A ) 16 (D) ( 8 A ) 在 電 腦 術 語 中 常 用 的 UPS, 其 主 要 功 能

中图分类号:TP393

編輯要旨 一 教育部為了協助本國失學民眾 新住民及 其他國外朋友 有系統的學習華語文的 聽 說 讀 寫 算等識字能力及跨文化 適應 以培養具有基本公民素養的終身學 習者 特別委託新北市政府教育局新住民 文教輔導科團隊編輯本教材 二 依據上述目的 本教材共有六冊 並分為 六級 分級及單元名稱詳如下表

Cadence SPB 15.2 VOICE Cadence SPB 15.2 PC Cadence 3 (1) CD1 1of 2 (2) CD2 2of 2 (3) CD3 Concept HDL 1of 1

PowerPoint 演示文稿

壹、國內外車輛產業概況

经 济 高 速 增 长 和 其 后 又 比 其 他 发 达 资 本 主 义 国 家 更 为 顺 利 地 克 服 了 石 油 危 机 的 冲 击, 使 日 本 的 市 场 经 济 体 制 在 7 0 ~ 8 0 年 代 赢 得 了 国 际 社 会 的 广 泛 赞 誉 ( 其 间 虽 有 欧 美 国 家

2015 TB-1-06.indd

目次 

Microsoft PowerPoint - Sens-Tech WCNDT [兼容模式]

ebook 132-6

1 Par t IBM 7 Par t 2 I BM IBM Par t Q & A

<4D F736F F D B0EAA5C1A470BEC7A4CEB0EAA5C1A4A4BEC7B8C9B1CFB1D0BEC7B9EAAC49A4E8AED7>

深入理解otter

Office Office Office Microsoft Word Office Office Azure Office One Drive 2 app 3 : [5] 3, :, [6]; [5], ; [8], [1], ICTCLAS(Institute of Computing Tech

Azure_s


ebook140-11

基于ECO的UML模型驱动的数据库应用开发1.doc

公務員服務法第13條相關解釋彙整表

浙江师范大学2014年度毕业生就业质量报告

目 录 监 管 资 讯 2016 年 全 国 保 险 监 管 工 作 会 议 召 开...3 协 会 动 态 赤 峰 保 险 行 业 协 会 召 开 数 据 统 计 和 信 息 宣 传 总 结 表 彰 会 议...5 赤 峰 市 保 险 行 业 协 会 秘 书 处 召 开 2015 年 度 述 职

同 时, 采 取 提 供 新 闻 线 索 和 素 材 安 排 专 访 等 方 式 主 动 为 新 闻 媒 体 服 务, 为 采 访 报 道 活 动 创 造 便 利 条 件 建 设 网 络 信 息 发 布 平 台 2013 年 9 月 开 通 中 央 纪 委 监 察 部 网 站,2015 年 1 月

B1

時間軸上的竹蓮記憶 學務主任 黃雅彙 我不是竹蓮國小的畢業校友 但對於身為新竹人的我來 說 仔細回想起來 似乎和竹蓮有著一種特別的緣分 對竹蓮國小最初的印象是在小學的時候 猶記得年幼的 我經過一段時日的啦啦隊舞蹈訓練後 老師便帶著我們從學 校步行到竹蓮國小來參加比賽 一踏入竹蓮校門 映入眼簾 的是黑

B1

Microsoft Word - 临政办发6.doc

大陸教育部等6個部門公佈「現代職業教育體系建設規劃 ( 年)」規劃到2015年初步形成現代職業教育體系框架,到2020年基本建成「中國」特色現代職業教育體系

资 讯 速 递 台 基 于 大 数 据 的 学 校 督 导 评 估 系 统 建 设 上 海 市 闵 行 区 人 民 政 府 教 育 督 导 室 ( 摘 要 ) 闵 行 教 育 在 深 化 教 育 改 革 探 索 管 办 评 分 离 的 背 景 下, 把 教 育 督 导 评 估 系 统 建 设 作 为

9 Internet 10 Internet

「西醫基層總額支付委員會《第28次委員會議紀錄

C6_ppt.PDF

<4D F736F F D20BAFEC4CFBFC6B4B4D0C5CFA2BCBCCAF5B9C9B7DDD3D0CFDEB9ABCBBEB4B4D2B5B0E5CAD7B4CEB9ABBFAAB7A2D0D0B9C9C6B1D5D0B9C9CBB5C3F7CAE9A3A8C9EAB1A8B8E C4EA36D4C23232C8D5B1A8CBCDA3A92E646F63>

一个开放源码的嵌入式仿真环境 ― SkyEye

untitled


untitled

01 SQL Server SQL Server 2008 SQL Server 6-1 SSIS SQL Server ( master ) ( msdb ) SQL Server ( master ) master 6-1 DTS sysadmin 6-1 sysa

股份有限公司

ME3208E2-1.book

京东容器平台与数据中心协同发展实践 鲍永成 京东商城 - 基础平台部 技术总监


Transcription:

基于连接与组合的微服务架构剖析 xuli@qiniu.com

Qiniu 1.0 POST GET Object Storage

Qiniu 2.0 POST GET Object Storage File Operation Process

Qiniu 2.0 / POST GET Object Storage Raw File Processed File File Operation Process (File Operation Process)

early Bandwidth LB More LB? 6

early Bottlenecks Network IO Data Flow Gate Bandwidth OMG! Daemon Disk IO 7

early Bottlenecks Fix Network IO Control Router Disk IO Data Control Agent Data 8

nanoservices Request with URL Load Balancer Pull raw File Storage AGENT Local AGENT IMAGE IMAGE IMAGE 9

API Gate (Logic Server) Supervisor Router [ACTION] http://domain/key?fop1 fop2 Qiniu Architecture 配置管理 / 服务发现 / 负载均衡 HOST-1 HOST-2 Agent Agent Docker Daemon Docker Daemon 图像处理 Container1 音视频转码 Container2 图像处理 Container1 音视频转码 Container2 文档转换 Container3 自定义处理 Container4 文档转换 Container3 自定义处理 Container4 Object Cache Object Storage 10

How Works? API Gate [GET] http://domain/key?fop1 (Logic Server) 1 2 3 8 Object Cache 5 Agent NO 4 Supervisor 6 7 Object Storage Router Data IO Daemon CONTAINER 11

Questions» 离线计算怎么做» 同 一个 并发请求怎么办» 多个 组合 工作流如何处理» 程序 IMAGE 可以 自定义吗 12

How Offline Works? [POST] http://customized.example.com/notify Callback API Gate [POST] http://domain/key?fop1 (Logic Server) 1 2 3 8 Object Cache 5 Agent NO 4 Supervisor 6 7 Object Storage Router Data IO Daemon CONTAINER 13

How Concurrency Works? 1 [GET] http://domain/key?fop1 [GET] http://domain/key?fop1 [GET] http://domain/key?fop1 Object Cache API Gate (Logic Server) 3 8 5 4 NO 7 Object Storage 2 Router Agent Memcached Data IO Supervisor 6 Daemon CONTAINER 14

Waiting for results done := make(chan Result, 1) go func() {... done <- Result{} }()... select { case result := <-done: do(result) case <- time.after(3 * time.second): fmt.println("timeout") } 15

How Multi- Works? [GET] http://domain/key?fop1 fop2 1 API Gate (Logic Server) 2 3 8 Object Cache 5 Agent NO 4 Supervisor 6 7 Object Storage Router Data IO Daemon CONTAINER 16

What is Multi-s? [ACTION] http://domain/key?fop1 fop2 fop3... 17

从 Unix 谈起» Unix 的连接和组合» app1 params1 app2 params2» App 接 口» 输 入 stdin, params» 输出 stdout» 协议 text (data stream)» Pipeline» 将 一个 app 的输出(stdout) 转为另 一个 app 的输 入 (stdin) 18

论 awk 编程与 Unix 管道艺术 200 GET... 500 POST... 200 GET... 500 GET... HTTP CODE COUNTING awk '{h[$1]++} END {for(k in h) print h[k], k}' test.log cut -d' ' -f1 test.log sort uniq -c 19

Unix Pipelines awk - pattern-directed scanning and processing language cut -- cut out selected portions of each line of a file sort - sort lines of text files uniq -- report or filter out repeated lines in a file 20

Pipeline 关键点» 多个 app 是并 行执 行的» 上游每产 生 一段output 会 立即交由下游 处理» app 间的协议是松散耦合的» 上游 app 的 ouput 是 xml 还是 json 下 游 app 需要知晓 但是属于 一种松散的 耦合关系 并 无任何强制的约束 21

Go 对 Unix Pipeline 的仿真 App func(in io.reader, out io.writer, args []string) app1 params1 app2 params2 bind(app1, params1) bind(app2, params2) pipe( bind(app1, params1), bind(app2, params2) ) 22

Go 对 Unix Pipeline 的仿真 func bind( app func(in io.reader, out io.writer, args []string), args []string ) func(in io.reader, out io.writer) { return func(in io.reader, out io.writer) { app(in, out, args) } } 23

Go 对 Unix Pipeline 的仿真 func pipe( app1 func(in io.reader, out io.writer), app2 func(in io.reader, out io.writer) ) func(in io.reader, out io.writer) { return func(in io.reader, out io.writer) { pr, pw := io.pipe() defer pw.close() go func() { defer pr.close() app2(pr, out) }() app1(in, pw) } } 24

Go 对 Unix Pipeline(s) 的仿真 func pipe(apps...func(in io.reader, out io.writer)) func(in io.reader, out io.writer) { if len(apps) == 0 { return nil } app := apps[0] for i := 1; i < len(apps); i++ { app1, app2 := app, apps[i] app = func(in io.reader, out io.writer) { pr, pw := io.pipe() defer pw.close() go func() { defer pr.close() app2(pr, out) }() app1(in, pw) } } return app 难以想象的优雅 } 25

Multi- Works Pipelines pipe(bind(fop1),bind(fop2)) [GET] http://domain/key?fop1 fop2 1 API Gate (Logic Server) 2 3 8 Object Cache 5 Agent NO 4 Supervisor 6 7 Object Storage Router Data IO Daemon CONTAINER 26

程序可以 自定义吗» Pipelined services» User-defined service (Docker) 27

自定义数据处理 U» U 用户 自定义的数据处理进程» 基于 Docker» 面向对象存储做就近计算处理» U 程序可以是 自 行部署 也可以选 用七 牛 U 公共平台上已有的服务程序» Docker 为部署 自定义 Image 提供了可能性 28

U 案例 https://hd.qiniu.com/nrop2015/ 29

U 不可以做什么» 不可以作为 网站主机 因为 U 没有 IP:PORT 只能通过 URL?ufop_api_args 形式调 用 其中 ufop_api_args 由 U 程序 自定义» 只要数据存在七 牛 针对该数据的各种特征 计算处理 都可以使 用 U 实现» U 也可与 七 牛云 平台上的其他 无缝集成 管道链式处理: fop1 fop2 app3 appn 30

Why Docker Product Compose Software Code Process Architecture Modularization Tool RevisionControl (git) Microservices Container (Docker) 31

软件架构变迁 Microservices Monolithic Application Introduction to Microservices, Chris Richardson 32

Why not Docker» 容器技术提供的隔离性 物理边界机制和微服务的理 念是契合的» 拆细/封装了环境和实现 不同的技术 不需要知道 里 面是怎样的 只关 心接 口» 然 而还不够 没有解决服务运维问题 是以出现官 方 的 工具链» 没有运维的解决 方案 如同空中楼阁» Kubernetes, 谷歌去年公开的容器编排系统 领先 十 年 omega/borg 论 文分量» 旨在解决容器运维问题 定义状态 而 非关 心过程» 其他问题 存储 网络 硬伤 33

Kubernetes»»»»»» Master Minion(Kubelet) Pods Replication Controller Labels - Proxy 34

as-nanoservices Storage DocFormat U Image Transcoding Customized HLS CDN Log & Data 35