Soumettre la recherche
Mettre en ligne
可扩展的架构设计
•
8 j'aime
•
1,364 vues
Bruce Dou
Suivre
关于服务端架构和产品架构的分享
Lire moins
Lire la suite
Technologie
Signaler
Partager
Signaler
Partager
1 sur 27
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
HPX台南讀書會-Axure RP基礎課程
HPX台南讀書會-Axure RP基礎課程
Souyi Yang
高雄和春資工系-Axure RP基礎課程
高雄和春資工系-Axure RP基礎課程
Souyi Yang
Drupal Camp Taipei Keynote
Drupal Camp Taipei Keynote
John Albin Wilkins
[DCTPE2011] 11) Drupal 是好的生財工具嗎? 1. 網站標案經驗分享 x 2
[DCTPE2011] 11) Drupal 是好的生財工具嗎? 1. 網站標案經驗分享 x 2
Drupal Taiwan
前端大型系統的基石 TypeScript
前端大型系統的基石 TypeScript
Gelis Wu
網頁設計 - 概述
網頁設計 - 概述
Vincent Chi
高雄前端社群 Web 開發讀書會 - 網頁設計規劃
高雄前端社群 Web 開發讀書會 - 網頁設計規劃
Chih-cheng Wang
使用 .NET Standard 開發跨平台應用程式
使用 .NET Standard 開發跨平台應用程式
Gelis Wu
Recommandé
HPX台南讀書會-Axure RP基礎課程
HPX台南讀書會-Axure RP基礎課程
Souyi Yang
高雄和春資工系-Axure RP基礎課程
高雄和春資工系-Axure RP基礎課程
Souyi Yang
Drupal Camp Taipei Keynote
Drupal Camp Taipei Keynote
John Albin Wilkins
[DCTPE2011] 11) Drupal 是好的生財工具嗎? 1. 網站標案經驗分享 x 2
[DCTPE2011] 11) Drupal 是好的生財工具嗎? 1. 網站標案經驗分享 x 2
Drupal Taiwan
前端大型系統的基石 TypeScript
前端大型系統的基石 TypeScript
Gelis Wu
網頁設計 - 概述
網頁設計 - 概述
Vincent Chi
高雄前端社群 Web 開發讀書會 - 網頁設計規劃
高雄前端社群 Web 開發讀書會 - 網頁設計規劃
Chih-cheng Wang
使用 .NET Standard 開發跨平台應用程式
使用 .NET Standard 開發跨平台應用程式
Gelis Wu
【第一季第五期】要漂亮很容易!——超简单CSS速成教程
【第一季第五期】要漂亮很容易!——超简单CSS速成教程
tbosstraining
Java并发编程培训
Java并发编程培训
longhao
编辑器设计Kissy editor
编辑器设计Kissy editor
taobao.com
第三方内容开发最佳实践
第三方内容开发最佳实践
taobao.com
淘宝实验室(Taobao labs)产品介绍 d2
淘宝实验室(Taobao labs)产品介绍 d2
taobao.com
动态 Css sprite
动态 Css sprite
taobao.com
钱宝坤:多浏览器集成的JavaScript单元测试工具
钱宝坤:多浏览器集成的JavaScript单元测试工具
taobao.com
實踐 Clean Architecture(實作高可用性的軟件架構)
實踐 Clean Architecture(實作高可用性的軟件架構)
Gelis Wu
網站規劃
網站規劃
jiannrong
应用开发一般工作流程和注意
应用开发一般工作流程和注意
cucued
選一個框架當好朋友,讓您成為開心攻城獅
選一個框架當好朋友,讓您成為開心攻城獅
Shengyou Fan
Artifacts management with CI and CD
Artifacts management with CI and CD
Chen-Tien Tsai
常用Js框架比较
常用Js框架比较
Adam Lu
Langchain and Azure ML and Open AI
Langchain and Azure ML and Open AI
Ko Ko
[DCTPE2010] 從企劃到開發維護的 Drupal 專案經驗
[DCTPE2010] 從企劃到開發維護的 Drupal 專案經驗
Drupal Taiwan
前端开发的那些事儿
前端开发的那些事儿
jndream
Drupal7第一堂
Drupal7第一堂
Hen Chen
美团前端架构简介
美团前端架构简介
pan weizeng
使用GoogleAppEngine建立个人信息中心
使用GoogleAppEngine建立个人信息中心
Du Yamin
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)
Duran Hsieh
6.twitter bootstrap 元件介紹
6.twitter bootstrap 元件介紹
Nelson Chen
Rest与面向资源的web开发
Rest与面向资源的web开发
topgeek
Contenu connexe
En vedette
【第一季第五期】要漂亮很容易!——超简单CSS速成教程
【第一季第五期】要漂亮很容易!——超简单CSS速成教程
tbosstraining
Java并发编程培训
Java并发编程培训
longhao
编辑器设计Kissy editor
编辑器设计Kissy editor
taobao.com
第三方内容开发最佳实践
第三方内容开发最佳实践
taobao.com
淘宝实验室(Taobao labs)产品介绍 d2
淘宝实验室(Taobao labs)产品介绍 d2
taobao.com
动态 Css sprite
动态 Css sprite
taobao.com
钱宝坤:多浏览器集成的JavaScript单元测试工具
钱宝坤:多浏览器集成的JavaScript单元测试工具
taobao.com
En vedette
(7)
【第一季第五期】要漂亮很容易!——超简单CSS速成教程
【第一季第五期】要漂亮很容易!——超简单CSS速成教程
Java并发编程培训
Java并发编程培训
编辑器设计Kissy editor
编辑器设计Kissy editor
第三方内容开发最佳实践
第三方内容开发最佳实践
淘宝实验室(Taobao labs)产品介绍 d2
淘宝实验室(Taobao labs)产品介绍 d2
动态 Css sprite
动态 Css sprite
钱宝坤:多浏览器集成的JavaScript单元测试工具
钱宝坤:多浏览器集成的JavaScript单元测试工具
Similaire à 可扩展的架构设计
實踐 Clean Architecture(實作高可用性的軟件架構)
實踐 Clean Architecture(實作高可用性的軟件架構)
Gelis Wu
網站規劃
網站規劃
jiannrong
应用开发一般工作流程和注意
应用开发一般工作流程和注意
cucued
選一個框架當好朋友,讓您成為開心攻城獅
選一個框架當好朋友,讓您成為開心攻城獅
Shengyou Fan
Artifacts management with CI and CD
Artifacts management with CI and CD
Chen-Tien Tsai
常用Js框架比较
常用Js框架比较
Adam Lu
Langchain and Azure ML and Open AI
Langchain and Azure ML and Open AI
Ko Ko
[DCTPE2010] 從企劃到開發維護的 Drupal 專案經驗
[DCTPE2010] 從企劃到開發維護的 Drupal 專案經驗
Drupal Taiwan
前端开发的那些事儿
前端开发的那些事儿
jndream
Drupal7第一堂
Drupal7第一堂
Hen Chen
美团前端架构简介
美团前端架构简介
pan weizeng
使用GoogleAppEngine建立个人信息中心
使用GoogleAppEngine建立个人信息中心
Du Yamin
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)
Duran Hsieh
6.twitter bootstrap 元件介紹
6.twitter bootstrap 元件介紹
Nelson Chen
Rest与面向资源的web开发
Rest与面向资源的web开发
topgeek
白玉磊 Webrebuild
白玉磊 Webrebuild
裕波 周
石玉磊 Web rebuild
石玉磊 Web rebuild
Webrebuild
如何,高效利用搜索引擎+构建网络工具箱
如何,高效利用搜索引擎+构建网络工具箱
84zhu
Top100summit前端的云时代支付宝前端平台架构 王保平
Top100summit前端的云时代支付宝前端平台架构 王保平
drewz lin
基于架构的开发模式
基于架构的开发模式
thinkinlamp
Similaire à 可扩展的架构设计
(20)
實踐 Clean Architecture(實作高可用性的軟件架構)
實踐 Clean Architecture(實作高可用性的軟件架構)
網站規劃
網站規劃
应用开发一般工作流程和注意
应用开发一般工作流程和注意
選一個框架當好朋友,讓您成為開心攻城獅
選一個框架當好朋友,讓您成為開心攻城獅
Artifacts management with CI and CD
Artifacts management with CI and CD
常用Js框架比较
常用Js框架比较
Langchain and Azure ML and Open AI
Langchain and Azure ML and Open AI
[DCTPE2010] 從企劃到開發維護的 Drupal 專案經驗
[DCTPE2010] 從企劃到開發維護的 Drupal 專案經驗
前端开发的那些事儿
前端开发的那些事儿
Drupal7第一堂
Drupal7第一堂
美团前端架构简介
美团前端架构简介
使用GoogleAppEngine建立个人信息中心
使用GoogleAppEngine建立个人信息中心
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)
6.twitter bootstrap 元件介紹
6.twitter bootstrap 元件介紹
Rest与面向资源的web开发
Rest与面向资源的web开发
白玉磊 Webrebuild
白玉磊 Webrebuild
石玉磊 Web rebuild
石玉磊 Web rebuild
如何,高效利用搜索引擎+构建网络工具箱
如何,高效利用搜索引擎+构建网络工具箱
Top100summit前端的云时代支付宝前端平台架构 王保平
Top100summit前端的云时代支付宝前端平台架构 王保平
基于架构的开发模式
基于架构的开发模式
可扩展的架构设计
1.
可扩展的架构设计 关于产品架构和 Web 后端架构 Bruce
Dou May, 2013 可扩展的架构设计 http://blog.eood.cnhttp://t.cn/zHxOsAx
2.
关于我 • 语⾔言控:PHP、JavaScript(Node.js)、Java、Ruby、Python、Erlang、C • 原理控:对系统内部的细节感兴趣 •
新技术发烧友:关注开源项⺫⽬目 • 关注前端架构:HTML5、Backbone.js、⾃自动化部署 • 关注应⽤用层框架:Drupal、Ruby on Rails、Django、Express.js • 关注数据库:MySQL、Redis、MC、MongoDB • 其他关注点:产品设计、UX、分布式、HA、⾃自动化运维 Github: http://github.com/doubaokun Twitter: @chinadrupaller Weibo: @Erlang Email: doubaokun@gmail.com Blog: http://blog.eood.cn/ 可扩展的架构设计 http://blog.eood.cnhttp://t.cn/zHxOsAx
3.
分享内容⼤大纲 • 什么是架构,宏观和微观架构 • 架构的本质和存在的价值 •
架构实施和优化的普适⽅方法 • 可扩展的产品架构 • 可扩展的 Web 后端架构 • 如何实现可扩展的 Web 后端架构 • 流⾏行的 Web 架构模式和开源模块 可扩展的架构设计 http://blog.eood.cnhttp://t.cn/zHxOsAx
4.
什么是架构,宏观和微观架构 可扩展的架构设计 http://blog.eood.cnhttp://t.cn/zHxOsAx
5.
⼈人们常谈论到的架构 • 信息架构 • 产品架构 •
Web 架构:前端架构、后端架构 • 团队架构 • 等等 可扩展的架构设计 http://blog.eood.cnhttp://t.cn/zHxOsAx
6.
⼈人们常谈论到的架构 可扩展的架构设计 http://blog.eood.cnhttp://t.cn/zHxOsAx
7.
我理解的架构 架构是规划、选择、组织、组合、优化 (⻓长期的 A/B testing、迭代的过程) 宏观架构:总体规划,⽐比如,产品线的定义 微观架构:具体的实现⽅方式 今天只讨论微观产品架构、Web
后端架构 可扩展的架构设计 http://blog.eood.cnhttp://t.cn/zHxOsAx
8.
⼤大家都熟悉的架构活动 编程开发活动可以看做是⼀一种微观架构设计 该使⽤用内存还是⽂文件系统还是⺴⽹网络, 需要权衡成本、执⾏行性能、 延时各个⽅方⾯面。 类、函数、对象、⽅方法如何组织才能减少重复性⼯工作、适应需 求变化。 产品策划和设计活动也可以看做是⼀一种架构设计 该使⽤用什么样的布局、什么样的配⾊色组合, ⼤大量的信息如何合理 得传递给⽤用户,主次的区分。 可扩展的架构设计
http://blog.eood.cnhttp://t.cn/zHxOsAx
9.
题外:每个程序员都应该知道的延迟数 可扩展的架构设计 http://blog.eood.cnhttp://t.cn/zHxOsAx
10.
架构的本质和存在的价值 可扩展的架构设计 http://blog.eood.cnhttp://t.cn/zHxOsAx
11.
架构的本质和存在价值 对于组织来说 1 降低⻓长期成本(中⻓长期的优化) 2 降低⻛风险(可增减、可预期) 3
适应市场、业务、⽤用户的增⻓长 对于组织个体来说 1 ⼈人员活动更⾼高效 (⽂文档化,摩擦更少、沟通耗费的时间更少、对 业务理解更⼀一致) 2 提⾼高⽣生产⼒力 3 少加班、更多的⾃自由时间学习新东⻄西提⾼高综合能⼒力 可扩展的架构设计 http://blog.eood.cnhttp://t.cn/zHxOsAx
12.
架构实施和优化的普适⽅方法 可扩展的架构设计 http://blog.eood.cnhttp://t.cn/zHxOsAx
13.
架构实施和优化的普适⽅方法 架构是⼀一个不断衡量 ROI、做选择、决策、预测、实施、测试, 迭代试错的过程 可维护、并⾏行、分层、分区、隔离、 冗余、备份、重⽤用、可测、可伸缩、 可通信、监控、平衡、互补、异步、 缓冲、缓存、故障检测、⾃自恢复、重 试、限流、分布式决策、虚拟化、⾃自 动化、⾃自竞争 可扩展的架构设计 http://blog.eood.cnhttp://t.cn/zHxOsAx
14.
可扩展的产品架构 可扩展的架构设计 http://blog.eood.cnhttp://t.cn/zHxOsAx
15.
可扩展的微观产品架构 适应⽤用户群体的增⻓长(男⼈人、⼥女⼈人、其他/⾃自购、送⼈人、代购/ ⽼老⼈人、⼩小孩/Web、Mobile) (KISS) 视觉感受(⻚页⾯面横向宽度的限制,纵向是可扩展的) 分⻚页是⼀一 种可扩展的例⼦子、视觉组合(Spaces) 使⽤用体验(⼀一致性的响应时间、⼀一致性的查找⺫⽬目标的成本) 适应功能的持续添加和删减(要求更⾼高)
(结构尽量松耦合) 弹性伸缩,可增可减 可扩展的架构设计 http://blog.eood.cnhttp://t.cn/zHxOsAx
16.
可扩展的微观产品架构的⼀一些例⼦子和实践 List 可增⻓长 1-N Menu
可增⻓长 1-N 松耦合和留空⽩白,任何⼀一个部件都应该是可有可⽆无的,任何 ⼀一个组件都应该有存在的原因(Cool不是原因) 简化意味着更强的适应性 衡量ROI,使⽤用⽤用户已经熟悉的控件和⾏行为模式 激励反馈模式 ⽤用户群体的增⻓长和划分 可以不断加减功能 可扩展的架构设计 http://blog.eood.cnhttp://t.cn/zHxOsAx
17.
可扩展的Web后端架构 可扩展的架构设计 http://blog.eood.cnhttp://t.cn/zHxOsAx
18.
可扩展的 Web 架构 运维很轻松:
⾃自动化、进程当了会⾃自动补充、机器当了会⾃自 动切换到备机、可以回头处理故障、有更充裕的时间 运营想促销就促销: 发红包不⽤用考虑技术问题 产品的需求都能实现:(实时性的需求)、想要什么功能都能 实现、局限更少 开发⼈人员很 Happy: 更多的重⽤用、少了很多重复性的⼯工作、 对⾃自⼰己的领域可以研究得更深⼊入(职业发展) Boss 很 Happy: ⺴⽹网站不停机不当机(每个部件故障或者消 失、被隔离都不影响整体运作) 弹性架构、⾃自动根据业务量⽤用户量增加减少机器、进程、各个组 件。 服务各司其职、不需要了解完整的业务、只需要了解接⼝口、⿊黑盒 抽象、隔离忧虑。 可扩展的架构设计 http://blog.eood.cnhttp://t.cn/zHxOsAx
19.
如何实现可扩展的 Web 后端架构 可扩展的架构设计
http://blog.eood.cnhttp://t.cn/zHxOsAx
20.
Web 架构扩展的 2
种⽅方式 Scaling up: Better machine, but expensive Scaling out: More cheap machines,open source, no licence fee 可扩展的架构设计 http://blog.eood.cnhttp://t.cn/zHxOsAx
21.
如何实现可扩展的 Web 架构
(1) 通过接⼝口和协议沟通 (不需要了解内部实现⽅方式、只需要了解实现了什 么)(降低通信消耗) 松耦合: 意味着可以实现更⾼高的性能(可以只优化瓶颈) 切忌以某个组件为 中⼼心的模式,⽐比如以数据库为中⼼心的架构 SOA 每个组件提供⼀一种服务,服务直接通过接⼝口和协议进⾏行通信 服务保证 SLA 单⼀一服务性能可测、整体⽀支撑性能可测并且可预测 (祈祷 撑得住是⼀一种⾼高⻛风险的做法) 同样服务有多个实例、之间互为冗余、互为备份 (服务性能可测) 服务可以分级, 集中优化瓶颈实现更⾼高整体性能 服务可以重⽤用、减少了⼯工作量 服务更容易测试、运维、部署、分版本、迭代开发、测量性能、跟踪⽇日 志 可以区分实时性需求和不需要实时性的需求,异步处理⾮非实时性需求 可扩展的架构设计 http://blog.eood.cnhttp://t.cn/zHxOsAx
22.
如何实现可扩展的 Web 架构
(2) 单⼀一的服务更容易开发,不需要考虑太多牵扯的内容。开发⼈人员的实现 ⽅方式可以更深⼊入、减少了⼯工作量。 可以实现异构、使⽤用任何语⾔言、任何框架 服务之间可以隔离、当的也许只是⼀一个不重要的服务,减少了整体损 失。不重要的服务在特性情况下可以关闭。 服务部件可替换:性能不好、语⾔言不爽、有了更好的开源产品 核⼼心数据库承担尽量少的⼯工作、并且做 Sharding (⼒力⽓气再⼤大的⽜牛所拉⻋车的 重量也是有限的,CPU 主频达到极限) 服务⽆无状态和状态的中⼼心化 分层次 (例⼦子:Router App Cache MQ DB) 分区域 (例⼦子: Sharding、业务的拆分) Naming service (虚拟化) ⾃自动化、分布式、开源 可扩展的架构设计 http://blog.eood.cnhttp://t.cn/zHxOsAx
23.
流⾏行的 Web 架构模式和开源模块 可扩展的架构设计
http://blog.eood.cnhttp://t.cn/zHxOsAx
24.
流⾏行的 Web 架构模式 Client-Server、Browser-Server Database-centric:
(Most small website) ESB (Enterprise Service Bus) Event Driven and Async:(Most GUI、Most Proxy) Message Queue、Task Queue SOA:RESTful、SOAP、XMLRPC、Thrift P2P Share nothing (Stateless) Layered (分层) Map-Reduce 数据库的 Sharding、Router 数据库的 Master-Slave、Replica ⼤大前端 (包括了服务端渲染和浏览器端渲染) 可扩展的架构设计 http://blog.eood.cnhttp://t.cn/zHxOsAx
25.
Web 架构中常⻅见的开源模块 分布式协同: Zookeeper 负载均衡:
LVS(Layer 4), HAProxy(Layer 4、 7), Nginx(Layer 7) 虚拟化: LXC、KVM、Xen HA:Keepalived、Heartbeat 分布式缓存: Memcache, Redis 消息队列: 0MQ, Beanstalkd、Gearman、etc 监控和⾃自恢复⼯工具: Supervised, Monit, Forever, etc Storage RDMS:MySQL、Postgres Storage K-V DB: MySQL(handlersocket)、Redis、Hbase、LevelDB、 Riak、S3 Internal DNS:dnsmasq 集中 Logging、图表:Logstash、Graphite 压测⼯工具:Tcpcopy、EM-Proxy、Seige、Tsung 可扩展的架构设计 http://blog.eood.cnhttp://t.cn/zHxOsAx
26.
⼀一些有⽤用的链接 • http://ggatz.com/images/Enterprise_20Integration_20-_20SOA_20vs_20EAI_20vs_20ESB.pdf • http://www.slideshare.net/erichleipold/SOA-ESB-Presentation •
http://jasonwilder.com/blog/2012/01/03/centralized-logging/ • https://code.google.com/p/tcpcopy/ • https://github.com/igrigorik/em-proxy • http://zookeeper.apache.org/ • http://www.linuxvirtualserver.org/ • http://www.ibm.com/developerworks/cn/linux/l-lxc-containers/ • http://tsung.erlang-projects.org/ • http://code.google.com/p/leveldb/ 可扩展的架构设计 http://blog.eood.cnhttp://t.cn/zHxOsAx
27.
Q & A 可扩展的架构设计
http://blog.eood.cnhttp://t.cn/zHxOsAx
Télécharger maintenant