{"id":269425,"date":"2022-03-14T06:57:25","date_gmt":"2022-03-14T11:57:25","guid":{"rendered":"https:\/\/www.webscale.com\/?p=269283"},"modified":"2023-12-29T07:58:45","modified_gmt":"2023-12-29T12:58:45","slug":"how-to-de-risk-cloud-region-selection","status":"publish","type":"post","link":"https:\/\/www.webscale.com\/blog\/how-to-de-risk-cloud-region-selection\/","title":{"rendered":"How to De-Risk Cloud Region Selection"},"content":{"rendered":"
When building a cloud application, one of the first decisions to consider is where to deploy it. In fact, Google\u2019s helpful document on\u00a0Best Practices for Compute Engine Regions Selection<\/a>\u00a0states \u201cWhen to choose your compute engine regions\u2026 Early in the architecture phase of an app, decide how many and which Compute Engine regions to use.\u201d Considerations for selecting the regions, according to Google, include latency, pricing, machine type availability, resource quotas and more.<\/p>\n It goes without saying that this is not just relevant for new apps; existing apps that need to scale with a growing user base should take these factors into consideration, particularly if the user base is distributed or even global.<\/p>\n Google specifically notes latency is a \u201ckey consideration for region selection\u201d as high latency can lead to an inferior experience. The document walks through the impact on latency of various cloud deployment patterns \u2013 including single region deployment, distributed frontend in multiple regions and backend in a single region, distributed frontend and backend in multiple regions, and multiple parallel apps \u2013 and discusses various strategies and best practices that can be used to mitigate latency issues, including premium tier networking, cloud load balancing and cloud CDN, local caching and app client optimization.<\/p>\n To be frank, this all has us scratching our collective heads. To begin with, the document is 19 pages long. That\u2019s 19 pages on how to choose where to deploy your app. Moreover, we find it a bit contradictory.<\/p>\n For instance:<\/p>\n When selecting Compute Engine regions, latency is one of the biggest factors to consider. Evaluate and measure latency requirements to deliver a quality user experience, and repeat the process if the geographic distribution of your user base changes.<\/em><\/p>\n \u2026while elsewhere\u2026<\/p>\n Even if your app serves a global user base, in many cases, a single region is still the best choice. The lower latency benefits might not outweigh the added complexity of multi-region deployment.<\/em><\/p>\n In other words, latency is critically important, so important that you should repeat this process as the geographic makeup of your user base evolves, but not so important that it\u2019s worth the added complexity of a multi-region deployment.<\/p>\n Actually, in one sense this is a point we agree on wholeheartedly; we\u2019ve\u00a0written<\/a>\u00a0extensively<\/a>\u00a0on the\u00a0barrier<\/a>\u00a0that\u00a0complexity<\/a>\u00a0can create when scaling your application.\u00a0However, we don\u2019t think the right answer is to limit your application to a single region. The right answer is to get rid of the complexity.<\/strong><\/p>\n