`
chinese.darren
  • 浏览: 98563 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

大型互联网应用的设计理念

阅读更多
On Designing and Deploying Internet-Scale Services

Three simple tenets
1. Expect failures
2. Keep things simple
3. Automate everything

1. Overall Application Design
1. Design for failure
2. Redundancy and fault recovery
3. Commodity hardware slice
4. Single-version software
5. Multi-tenancy
6. Quick service health check
7. Develop in the full environment
8. Zero trust of underlying components
9. Do not build the same functionality in multiple components
10. One pod or cluster should not affect another pod or cluster
11. Allow rare emergency human intervention
12. Keep things simple and robust
13. Enforce admission control at all levels
14. Partition the service
15. Understand the network design
16. Analyze throughput and latency
17. Treat operations utilityies as part of the service
18. Understand access patterns
19. Version everything
20. Keep the unit/functional tests from the last release.
21. Avoid single points of failure

2. Automatic Management and Provisioning
1. Be restartable and redundant
2. Support geo-distribution
3. Automatic provisioning and installation
4. Configuration and code as a unit
5. Manage server roles or personalities rather than servers
6. Multi-system failures are common
7. Recover at the service level
8. Never rely on local storage for non-recoverable information
9. Keep deployment simple
10. Fail services regularly

3. Dependency Management
1. Expect letency
2. Isolate failures
3. Use shipping and proven components
4. Implement inter-service monitoring and alerting
5. Dependent services require the same desgin point
6. Decouple components

4. Release Cycle and Testing
1. Ship often
2. Use production data to find problems
3. Invest in engineering
4. Support version roll-back
5. Maintain forward and backward compatibility
6. Single-server deployment
7. Stress test for load
8. Perform capacity and performance testing prior to new releases
9. Build and deploy shallowly and iteratively
10. Test with real data
11. Run system-level acceptance tests
12. Test and develop in full environments

5. Hardware Selection and Standardization
1. Use only stantard SKUs
2. Purchase full racks
3. Write to a hardware abstraction
4. Abstract the network and naming

6. Operations and Capacity Planning
1. Make the development team responsible
2. Soft delete only
3. Track resource allocation
4. Make one change at a time
5. Make Everything Configurable

7. Auditing, Monitoring and Alerting
1. Instrument everything
2. Data is the most valuable asset
3. Have a customer view of service
4. Instrmentation required for production testing
5. Latencies are the toughest problem
6. Have sufficient production data
7. Configurable logging
8. Expose health information for monitoring
9. Make all reported errors actionable
10. Enable quick diagnosis of production problems

8. Graceful Degradation and Admission Control
1. Support a "big red switch"
2. Control admission
3. Meter admission

9. Customer and Press Communication Plan

10. Customer Self-Provisioning and Self-Help
 
具体内容请参考JamesRH_Lisa博士的论文《On Designing and Deploying Internet-Scale Services

分享到:
评论

相关推荐

    基于JSP的乐趣大型购物系统设计与实现

    近年来,随着Internet的迅速崛起,互联网已日益成为收集提供信息的最佳渠道并逐步进入传统的流通领域。于是电子商务开始流行起来,越来越多的商家在网上建起在线商店,向消费者展示出一种新颖的购物理念,本购物系统...

    用微前端的方式搭建类单页应用

    美团已经是一家拥有几万人规模的大型互联网公司,提升整体效率至关重要,这需要很多内部和外部的管理系统来支撑。由于这些系统之间存在大量的连通和交互诉求,因此我们希望能够按照用户和使用场景将这些系统汇总成一...

    计算机平面设计专业岗位能力分析报告.doc

    高层的设计目前不多,为具有专业设计资质的企业所有,有其独到的设计理念,发表 的作品事先具备足够的社会调查、分析和评估。作品有内涵和深度。对于员工,企业有 专门的培训,以求其在行业中处于领先地位。此类...

    网络系统设计方案.doc

    根据xxxxx工程需求,网络中包含内网和外网,通常内网中运行业务系统,办公自动 化系统及专网应用等,外网运行互联网应用。业务系统具有较高的可靠性要求,因此网 络结构上,内网网络主干需要更高的可靠性,内网网络...

    红树林建筑协同设计平台

    红树林软件的《协同设计管理系统》由红树林软件技术有限公司研发,它通过对我国设计单位的实际需求的摸索,以及对现有的设计院管理信息系统整理提炼,结合国际上成熟的建筑软件设计理念和技术,是一套面向设计单位的...

    E语言.rar

    <br>具有完善的网络、端口通讯和互联网功能支持,为开发工业控制、局域网、互联网应用程序提供保证。数十个程序组件、完善的多媒体支持,让用户轻松搭建自己的应用程序。 <br>支持先进的程序编写理念,如...

    逐浪CMS 3.0含3D展台的CMS

    其于卓越开发平台研发的逐浪CMS,为适应未来站点发展的需要,独创的模型设计理念与无限节点功能,用户可以根据自己的网站需要建立各类模型,从而满足个性化开发的需要,不再限于传统的“内容管理系统”只能简单的...

    标准流程的生态:互联网标准化的教训-研究论文

    这些值反映了互联网的设计遗产。 我们对形成人口生态的大型机构内部的工作组的诞生和消亡的动态进行了推测。 我们讨论了为什么特定的互联网标准制定工作没有Swift解决的合理解释。 该研究的理论含义是生态方法将很...

    网吧设计方案.doc

    2 第二章 需求分析 3 2.1可行性分析 3 2.2实训环境需求 3 2.3硬件平台需求分析 3 2.3.1网络管理实验 3 2.3.2应用平台设备需求 4 2.3.3实训设备需求 4 2.3.4网络接入 6 2.5软件平台需求分析 6 2.6设计原则 6 第三章 ...

    短信平台设计方案.pdf

    二、平台总体规划 2.1、平台总体设计 根据短信平台建设的总体要求,结合目前应用系统状况,系统建设的 技术路线应坚持"需求为导向、应用促发展,统筹规划、科技支撑,分 工负责、持续发展"的指导思想,建立安全与...

    校园网的建设计算机网络设计.doc

    在经历了以大型主机为核心的集中式运算和以个人电脑为基本单元的分布 式处理后,计算机的处理模式已发展成现在的网络计算,其应用围已远远超出了科学计算 ,成为无所不在的工具。计算机网络的发展既受到计算机科学技术...

    汉光 电力监控系统在企业供配电系统中的应用 .pdf

    汉光HV-SCADA-WEB系统完全基于互联网技术架构,采用先进的设计理念,采用分层分布式模块化结构,从功能上划分为:主站监控管理层、中间采集通讯接口层、现场设备间隔层三层,前端数据基于通信接口读取,仪表装置的...

    金蝶EAS V8.5 发版说明.pdf

    产品核心的设计理念为用双模 IT 的方法论,打造领先的大企业混合云,帮助客户成就数字 化企业。 金蝶 EAS 为大型集团企业提供一体化管控解决方案,广泛适用于资本管控型、战略管 控型及运营管控型的集团企业。可提供...

    苦菊OA软件_大型PHP开源OA系统.zip

    采用全球认可的最为先进的开放理念——OOP(面向对象),进行全新框架设计。框架结构更为清晰,代码更易于维护。模块化做为功能的开发形式,让扩展性得到保证,让你轻松享受二次开发带来的便捷的同时,不再为官方升级...

    基于项目驱动的Java编程基础教学研究与实践-熊威.pdf

    同时在互联网技术高速发展的今天,Java 语言的应用十分广泛,从大型的企业级开发到小型的移动设备应用开发,随处可见 Java 语言的身影,各行各业对 Java 语言的专业人才需求量正逐年递增。因上述特点,Java 语言一直...

    科锐国际2020人才市场洞察及薪酬指南.pdf

    云计算让互联网应用和企业应用的界限变得越来越模 糊。对于IT企业而言,未来懂得最新云计算技术的运营人才需求激增。在云管理 方面,未来企业的管理理念、方法、工具都要适应云计算时代的特征,因此导致 企业对既...

    【推荐】2020北京网络安全大会演讲PPT资料大全.zip

    高效的 PowerShell 脚本解混淆系统及对应的检测方案设计 LEAF:基于同态加密的高效密文检索技术 针对现实应用的文本对抗攻击研究 数字金融内生安全建设论坛: 金融机构开源软件安全治理思考与实践 安全的最后一公里...

    OpenAI chatGPT 微信小程序 .zip

    随着移动互联网技术的发展和用户需求的变化,【小程序名称】应运而生,以其轻量化、便捷化的设计理念为用户提供了一种全新的服务模式。作为一款无需下载安装即可使用的应用,【小程序名称】依托于微信庞大的生态系统...

    基于J2EE框架的个人博客系统项目毕业设计论...

    这些都预示着我们进入了一个新的互联网阶段web 2.0,它是相对web 1.0的新的一类互联网应用的总称,是一次从核心内容到外部应用的革命[10]。这个阶段发展迅速,互联网应用趋于多样化,其中变化最大的是由web 1.0网站...

Global site tag (gtag.js) - Google Analytics