Scalable Web Architecture and Distributed Systems
来源:互联网 发布:怎么开通淘宝达人 编辑:程序博客网 时间:2024/04/20 21:44
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 key issues to consider when designing large websites, as well as some of the building blocks used to achieve these goals.
This chapter is largely focused on web systems, although some of the material is applicable to other distributed systems as well.
Below are some of the key principles that influence the design of large-scale web systems:
- Availability: The uptime of a website is absolutely critical to the reputation and functionality of many companies. For some of the larger online retail sites, being unavailable for even minutes can result in thousands or millions of dollars in lost revenue, so designing their systems to be constantly available and resilient to failure is both a fundamental business and a technology requirement. High availability in distributed systems requires the careful consideration of redundancy for key components, rapid recovery in the event of partial system failures, and graceful degradation when problems occur.
- Performance: Website performance has become an important consideration for most sites. The speed of a website affects usage and user satisfaction, as well as search engine rankings, a factor that directly correlates to revenue and retention. As a result, creating a system that is optimized for fast responses and low latency is key.
- Reliability: A system needs to be reliable, such that a request for data will consistently return the same data. In the event the data changes or is updated, then that same request should return the new data. Users need to know that if something is written to the system, or stored, it will persist and can be relied on to be in place for future retrieval.
- Scalability: When it comes to any large distributed system, size is just one aspect of scale that needs to be considered. Just as important is the effort required to increase capacity to handle greater amounts of load, commonly referred to as the scalability of the system. Scalability can refer to many different parameters of the system: how much additional traffic can it handle, how easy is it to add more storage capacity, or even how many more transactions can be processed.
- Manageability: Designing a system that is easy to operate is another important consideration. The manageability of the system equates to the scalability of operations: maintenance and updates. Things to consider for manageability are the ease of diagnosing and understanding problems when they occur, ease of making updates or modifications, and how simple the system is to operate. (I.e., does it routinely operate without failure or exceptions?)
- Cost: Cost is an important factor. This obviously can include hardware and software costs, but it is also important to consider other facets needed to deploy and maintain the system. The amount of developer time the system takes to build, the amount of operational effort required to run the system, and even the amount of training required should all be considered. Cost is the total cost of ownership.
go on: http://www.aosabook.org/en/distsys.html
- Scalable Web Architecture and Distributed Systems
- Scalable Web Architecture and Distributed Systems
- Scalable Web Architecture and Distributed Systems
- 可伸缩的Web体系结构和分布式系统(Scalable Web Architecture and Distributed Systems)
- 可扩展的网络架构和分布式系统 --Scalable Web Architecture and Distributed Systems
- Distributed Systems Architecture: A Middleware Approach
- Distributed Computing: Principles, Algorithms, and Systems
- 总结:Distributed systems for fun and profit
- Architecting Distributed Systems with Web Services
- Ceph cache pool tiering: a scalable and distributed cache
- Distributed and Parallel Systems: Cluster and Grid Computing
- Real-Time Design Patterns: Robust Scalable Architecture for Real-Time Systems
- Distributed and Parallel Systems: In Focus: Desktop Grid Computing
- Book reading: Distributed Systems(Principles and Paradigms)----Chapter 8
- Distributed Systems笔记-Web Service Design Patterns
- TIME_WAIT and its design implications for protocols and scalable client server systems
- A Distributed, Scalable Monitoring System
- 【转】The Hadoop Distributed File System: Architecture and Design
- linux 进程用户栈和内核栈
- const ptr与ptr const比较
- 一步步将vim改造成C/C++开发环境(IDE)
- JAVA的泛型 && JAVA的几种for循环方式
- Bind和Eval的区别详解
- Scalable Web Architecture and Distributed Systems
- android编译系统的makefile文件Android.mk写法如下
- No module ata_piix found的解决方法
- shell脚本练习
- C++面试题
- Introducing Ceph to OpenStack
- 快速傅里叶变换使用方法
- 统计子字符串在另一个字符串中出现次数问题
- 读《轻松SCRUM之旅》有感第一篇