I'm curious to hear from some that may have been there before on how you decide to improve your response times in other countries by either building a foreign data center or using a CDN service.
Any considerations/recommendations for me to consider would be much appreciated!
Back in 2010 we went through exercise of first using a local data center and then using a CDN in a different country.
Interestingly enough using a remote CDN had much smaller latency. After doing an in depth analysis this is what we discovered.
There are two factors that influence your latency: throughput of the pipe and speed of the physical server.
Let's start with throughput. Consider two scenarios. In the first one you're using CloudFront from Amazon (or any other big name CDN) which probably has direct connection (or near direct) to the continents fiberoptic pipe.
The second scenario is if you build a data center in the country. In this case you will be removed from the main pipe by several hops through internet providers which in turn will narrow the throughput after every hop. Unless you are willing to pay very expensive bill for the access to continents, or at least contries main pipe the latency will be higher than from big name CDN's.
The second aspect deals with the type of servers involved in servicing GET requests. You need to install top notch hardware with very speedy SSD hard drives and extremely fast networking cards. You can go as far as start optimizing bus speeds between the components. All that leads to increase in price per server.
If you're using a CDN then you're much better off because all of that is taken care of for you and you constantly run on latest and greatest hardware that you don't need to upgrade. Count in the amount of time/money need to be spend to service a data center. From my experience the companies that do administration on demand are slow for near 100% uptime requirements so you will need to hire and staff to do monitoring and maintenance.
Also never forget about redundancy that also needs to be provided as your server will fail and will go down. Security is also a concern.
My conclusion from the the evaluation done in 2010, which is much stronger today, go with CDN unless you're a Fortune-500 company and need a dedicated special use data center.
Current CDN's usially offer multiple data centers at different continents for your disposal that can further shrink your response time.
Go the CDN route. It is often cheaper and to create the same speed presence across multiple countries is very costly.
That being said if you have an extreme budget and the need (if you run a very large website/application) then by all means go the route of creating your own presence across multiple countries.
As a personal recommendation, I always use MaxCDN. It is low cost and has great performance.
Here is their network coverage: https://www.maxcdn.com/network/
If you search "MaxCDN coupon" on Google you get a link that takes 25% off the prices you see on the site.
Agree with the other responses here, CDN first...its cheap and easy to implement vs another data centre.
You could go 2 levels of CDN - use Cloudflare which will act as a more general purpose or basic CDN and then if you have large static assets use a dedicated CDN service to host those.
Ultimately it depends if where the response time problem is being generated from - if the app itself is slow to respond then a CDN won't fix that and nor will having a local data centre as the problem is the time the app takes to spin up
Crappy DNS hosting will also contribute to latency - again moving to cloudflare will resolve this
Unless your strong suite is infrastructure you need to consider if you can negotiate the regional complexities of understanding how and where to choose (re: collocation) or build a datacenter, interact with local ISPs, etc.
...and assuming you could do that, what do you think your best case latency would be? And are you committed to constantly improving that and troubleshooting it should things go awry? Because that's what CDN's do - for an ever-decreasing cost and economies of scale.
The easiest answer would be to check with your existing CDN, which I'm assuming you're using already, unless you're considering building or collocating in foreign data center from scratch before launching your product? :) Cost-wise, some CDNs (e.g. CloudFront, EdgeCast) do not charge a fee for this, beyond the associated regional cost differential.
I would also suggest gaining leverage through an up-front GB/TB commit. Depending on your usage, you can negotiate significant discounts against whatever standard rate card you'll be presented with when discussing this with the CDN.