[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["很难理解","hardToUnderstand","thumb-down"],["信息或示例代码不正确","incorrectInformationOrSampleCode","thumb-down"],["没有我需要的信息/示例","missingTheInformationSamplesINeed","thumb-down"],["翻译问题","translationIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2024-11-20。"],[[["\u003cp\u003eThe first step in building reliable cloud infrastructure is identifying the specific reliability requirements of each workload, as these vary depending on the application's nature and criticality.\u003c/p\u003e\n"],["\u003cp\u003eCritical periods, often coinciding with peak loads, require special attention to capacity planning and operational practices to prevent outages.\u003c/p\u003e\n"],["\u003cp\u003eWhile assessing reliability, it is important to also take into account other non-functional requirements, such as cost optimization and data residency, as they can create dependencies and trade-offs.\u003c/p\u003e\n"],["\u003cp\u003eImplementing solutions to meet other non-functional requirements, such as deployment automation, security controls, and content caching, can also improve the overall reliability of applications.\u003c/p\u003e\n"],["\u003cp\u003eReliability requirements should be periodically reassessed to ensure alignment with evolving business goals, and adjustments to architecture should be made if necessary.\u003c/p\u003e\n"]]],[],null,["# Assess the reliability requirements for your cloud workloads\n\nThe first step toward building reliable infrastructure for your cloud workloads\nis to identify the reliability requirements of the workloads. This part of the\n[Google Cloud infrastructure reliability guide](/architecture/infra-reliability-guide)\nprovides guidelines to help you define the reliability requirements of workloads\nthat you deploy in Google Cloud.\n\n### Determine workload-specific requirements\n\nThe reliability requirements of an application depend on the nature of the\nservice that the application provides or the process that it performs. For\nexample, an application that provides ATM services for a bank might need 5-nines\navailability. A website that supports an online trading platform might need\n5-nines availability *and* a fast response time. A batch process that writes\nbanking transactions to an accounting ledger at the end of every day might have\na data-freshness target of eight hours.\n\nWithin an application, the individual components or operations might have\nvarying reliability requirements. For example, an order-processing application\nmight need higher reliability for operations that write data to the orders\ndatabase when compared with read requests.\n\nAssessing the reliability requirements of your workloads granularly helps you\nfocus your spending and effort on the workloads that are critical for your\nbusiness.\n\n### Identify critical periods\n\nThere might be periods when an application is more business-critical than at\nother times. These periods are often the times when the application has peak\nload. Identify these periods, plan adequate capacity, and test the application\nagainst peak-load conditions. To avoid the risk of application outages during\npeak-load periods, you can use appropriate operational practices like freezing\nthe production code.\n\nThe following are examples of applications that experience seasonal spikes in\nload:\n\n- The inventory module of a financial accounting application is typically used more heavily on the days when the monthly, quarterly, or annual inventory audits are scheduled.\n- An ecommerce website would have significant spikes in load during peak shopping seasons or promotional events.\n- A database that supports the student admissions module of a university would have a high volume of write operations during certain months of every year.\n- An online tax-filing service would have a high load during the tax-filing season.\n- An online trading platform might need 5-nines availability and fast response time, but only during trading hours (for example, 8 AM to 5 PM from Monday to Friday).\n\n### Consider other non-functional requirements\n\nBesides reliability requirements, enterprise applications can have other\nimportant non-functional requirements for security, performance, cost, and\noperational efficiency. When you assess the reliability requirements of an\napplication, consider the dependencies and trade-offs with these other\nrequirements.\n\nThe following are examples of requirements that aren't for reliability, but can\ninvolve trade-offs with reliability requirements.\n\n- **Cost optimization:** To optimize IT cost, your organization might impose quotas for certain cloud resources. For example, to reduce the cost of third-party software licenses, your organization might set quotas for the number of compute cores that can be provisioned. Similar quotas can exist for the amount of data that can be stored and the volume of cross-region network traffic. Consider the effects of these cost constraints on the options available for designing reliable infrastructure.\n- **Data residency:** To meet regulatory requirements, your application might need to store and process data in specific countries, even if the business serves users globally. Consider such data residency constraints when deciding the regions and zones where your applications can be deployed.\n\nCertain design decisions that you make to meet other requirements can help\nimprove the reliability of your applications. The following are some examples:\n\n- **Deployment automation:** To operate your cloud deployments efficiently, you might decide to automate the provisioning flow by using infrastructure as code (IaC). Similarly, you might automate the application build and deployment process by using a continuous integration and continuous deployment (CI/CD) pipeline. Using IaC and CI/CD pipelines can help improve not just operational efficiency, but also the reliability of your workloads.\n- **Security controls:** Security controls that you implement can also help improve the availability of the application. For example, Google Cloud Armor security policies can help ensure that the application remains available during denial of service (DoS) attacks.\n- **Content caching:** To improve the performance of a content-serving application, you might enable caching as part of your load balancer configuration. With this design, users experience not only faster access to content but also higher availability. They can access cached content even when the origin servers are down.\n\n### Reassess requirements periodically\n\nAs your business evolves and grows, the requirements of your applications might\nchange. Reassess your reliability requirements periodically, and make sure that\nthey align with the current business goals and priorities of your organization.\n\nConsider an application that provides a standard level of availability\nfor all users. You might have deployed the application in two zones within a\nregion, with a regional load balancer as the frontend. If your organization\nplans to launch a premium service option that provides higher availability, then\nthe reliability requirements of the application have changed. To meet the new\navailability requirements, you might need to deploy the application to multiple\nregions and use a global load balancer with Cloud CDN enabled.\n\nAnother opportunity to reassess the availability requirements of your\napplications is after an outage occurs. Outages might expose mismatched\nexpectations across different teams within your business. For example, one team\nmight consider a 45-minute outage once a year (that is, 99.99% *annual*\navailability) as acceptable. But another team might expect a maximum downtime of\n4.3 minutes per month (that is, 99.99% *monthly* availability). Depending on how\nyou decide to modify or clarify the availability requirements, you should adjust\nyour architecture to meet the new requirements."]]