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
分享到:
相关推荐
On Designing and Deploying Internet-Scale Services(译).文主要介绍OVS中QoS的应用和实现方法,因为QoS技术在传统网络中应用较为成熟和广泛,所以本文不赘述QoS的相关原理和算法,只关
This resource provides detailed guidance on how to design and deploy directory services, including upgrading and restructuring domains, as well as designing and deploying directory services, and more.
70-345 Designing and Deploying Microsoft Exchange Server 2016 题库,用这套图库顺利通过考试,考虑800多分,基本全覆盖,准确性因该在80%左右。
Microsoft Exam 70-345,全称为“Designing and Deploying Microsoft Exchange Server 2016”,是微软针对Exchange Server 2016部署和设计的专业认证考试。这个考试主要面向那些负责规划、实施和管理Exchange Server...
Moore’s law continues unabated and new design challenges lead to new design methodologies and even paradigm shifts. One such recent development is the introduction of three-dimensional integration ...
本书《Designing and Deploying 802.11n Wireless Networks》由Jim Geier编著,由Cisco Systems, Inc.出版,是关于802.11n无线局域网络(WLAN)规划设计的专业参考书籍。本书提供了关于无线网络设计的全面信息,其中...
A Practical Guide to Implementing 802.11n and 802.11ac Wireless Networks For Enterprise-Based Applications Plan, deploy, and operate high-performance 802.11ac and 802.11n wireless networks
Enterprise.Integration.Patterns.Designing.Building.And.Deploying.Messaging.Solutions
Bridging the gap from theory to programming, Designing Software Synthesizer Plug-Ins in C++ For RackAFX, VST3 and Audio Units contains complete code for designing and implementing software ...
提供的PDF文档《Designing With the EZ-USB FX3 Slave FIFO Interface》和《利用 EZ-USB FX3从设备 FIFO 接口进行设计》详细阐述了这些步骤,并提供了具体实现的指导。同时,"Source files for FPGA code and FX3 ...
Designing-Sound-Andy-Farnell Designing-Sound-Andy-Farnell Designing-Sound-Andy-Farnell
标题与描述中提到的知识点是关于“MCPD(Microsoft Certified Professional Developer)自我节奏培训套件(考试70-548),使用Microsoft .NET框架设计和开发基于Windows的应用程序”。这一主题涵盖了广泛的IT知识...