可扩展的Web架构和分布式系统】的更多相关文章

作者:Kate Matsudaira 译者:尹星 本文介绍了分布式架构是如何解决系统扩展性问题的粗略方法,适合刚刚入门分布式系统的同学,我把整篇文章翻译如下,希望给你一些启发. 备注:[idea]标注的内容为译者的理解和注释,非原作内容. 开源软件已经成为了一些大型网站的基本组成部分.随着这些网站的发展,围绕其架构的最佳实践和指导原则已经诞生了.本章试图覆盖一些设计大型网站时需要考虑的关键问题和实现这些目标所需要使用的构件. 本章主要侧重于 web 系统,其中一些材料也适用于其他的分布式系统.…
原文链接:http://www.aosabook.org/en/distsys.html 开源软件已经成为一些大型网站的基石.随着这些网站的发展,围绕其架构的最佳实践和指导原则应运而生.本章旨在讨论设计大型网站时需要考虑的一些关键问题,以及用于实现这些目标的一些构建模块. 本章主要集中在Web系统上,尽管有些材料也适用于其他分布式系统. 1.1 分布式网站设计原则 构建和操作可伸缩的Web站点或应用程序究竟意味着什么?在原始层,它只是通过Internet连接用户与远程资源,可伸缩性的部分是指资源…
原文:可扩展Web架构与分布式系统 开放源代码已经成为一些大型网站的基本原则.而在这些网站成长的过程中,一些优秀的实践经验和规则也出现在他们的结构中.本文旨在介绍一些在大型网站结构设计的过程中需要注意的关键问题以及实现目标的基础工作. 本文侧重于介绍网络系统,尽管一些准则在其他分布式系统中也是适用的. 1.1. web分布式系统的设计原则 搭建和运营一个可伸缩的web站点或者应用程序意味着什么?在原始层面上这仅仅是用户通过互联网连接到远程资源-使系统变得可伸缩的部分是将资源.或者访问的资源,分布…
1.1. web分布式系统的设计原则 搭建和运营一个可伸缩的web站点或者应用程序意味着什么?在原始层面上这仅仅是用户通过互联网连接到远程资源-使系统变得可伸缩的部分是将资源.或者访问的资源,分布于多个服务器上. 像生活中大多数事情一样,当构建一个web服务时花时间提前做好计划从长远看来还是很有帮助的:了解一些注意事项和大网站背后的权衡原则可以在创建小型网站时做出更明智的决定.以下是一些影响大规模web系统设计的关键原则: 可用性:对于很多公司来说一个网站的正常运行时间是非常关键的声誉和功能,像…
开源软件近年来已变为构建一些大型网站的基础组件.并且伴随着网站的成长,围绕着它们架构的最佳实践和指导准则已经显露.这篇文章旨在涉及一些在设计大型网站时需要考虑的关键问题和一些为达到这些目标所使用的组件.本文主要关注于Web系统,然而其中的一些内容同样适用于其他分布式系统. 1.Web分布式系统设计准则 构建和运行一个可伸缩的网站或应用来说究竟意味着什么?从一个基本的层面来看,就是将用户和远程资源通过互联网连接起来——将其变得可伸缩的部分,是指这些资源或者访问这些资源是分布式的.贯穿于多个服务器.…
开源软件近年来已变为构建一些大型网站的基础组件.并且伴随着网站的成长,围绕着它们架构的最佳实践和指导准则已经显露.这篇文章旨在涉及一些在设计大型网站时需要考虑的关键问题和一些为达到这些目标所使用的组件.上篇文章介绍了Web分布式系统设计准则和基本原理,本文介绍构建快速.可伸缩数据访问的组件. (上文)谈及了在设计分布式系统中需要考虑的一些核心问题,现在让我们来聊聊(比较)困难的部分:访问数据的可伸缩性. 大多数简单的web应用,例如LAMP栈应用,看上去如图1.5 图1.5:简单的web应用 随…
Open source software has become a fundamental building block for some of the biggest websites. And as those websites have grown, best practices and guiding principles around their architectures have emerged. This chapter seeks to cover some of the ke…
1 什么是高性能Web架构 在互联网业务中,我们经常会面临流量巨大的复杂的分布式场景.这就要求我们在设计系统的时候保证系统具有承载高并发(High Concurrency)的能力,同时能够保证系统的高可用性(High Availability). 所以,具备高性能Web架构通常是指,通过稳健的系统设计能力,来保证系统能够同时处理复杂的业务场景,并保证性能.稳定性.可用性的架构体系.. 高性能Web常用的一些衡量指标有响应时间(Response Time),吞吐量(Throughput),每秒请求…
在现代的软件系统中,几乎所有的系统都使用到了数据库,不论是关系型数据,例如MySql.SQLite.Oracle.SQLServer等,还是非关系性数据,例如mongoDB.redis等.本文已web系统为例来阐述为什么要降低数据库的压力,在提出具体方案之前先大致讲解一下现在web系统的架构,要了解web系统的架构和演变过程具体可以参考大型网站架构演变和知识体系这片文章. 现代web系统的架构 现在的大型web系统多采用分布式的架构,分布式系统面临的最大挑战就是如何在复杂的.并发的情况下保证数据…
[编者的话]本文作者重点介绍了如何使用Docker.CoreOS.Mesos.Vulcand.对象存储来部署一个可扩展的Web应用,他首先介绍了为什么要选择这些工具以及与其它工具相比这些工具的优势.紧接着,他通过实际案例演示了整个部署过程,图文并茂,推荐阅读. 介绍 让我们先来讨论一下为什么我决定使用这些软件来展示如何创建一个可扩展的Web基础架构. 为什么选择Docker? 那问题来了,为啥要选择Linux容器?因为相比于虚拟机,Linux容器拥有更低的计算和存储开销. Docker简化了人们…