This is more of a hosting question but since you’re pointing out a few ways on who to host a website powered by Grav in the learning section of this website maybe I can drop this question here.
I’ve been experimenting with Grav for two weeks now and I’m highly impressed. This is definitely the way to go for me and I have plans for a serious project. But I was wondering what ways there are to scale my website globally so that people in Asia get the same performance as they will get in another region.
I did some research and from what I understand I basically have to set up two different websites for two different regions so lets say Asia and Europe. But how do I sync these Grav installations? I’m not sure but I think Microsoft Azure and Linode provide some special mechanism for that. Any thoughts on this?
You can start with using a CDN such as Amazon CloudFront or Akamai (or any other CDN) and the Grav CDN Plugin: https://github.com/getgrav/grav-plugin-cdn, that properly configured will handle distributing assets (images, javascript, css) to different geographical locations.
That’s the easiest thing to do, to start with, and find a server that serves the PHP files reasonably fast from all the locations.
You can also setup multiple sites, with multiple domains, and host them on separate servers, develop locally, push your content to a central repository and then configure those sites to grab the content from that repository, for example using this strategy explained in the Grav blog: http://getgrav.org/blog/developing-with-github-part-2
This works as long as you just serve content, but not for example if you also host comments or have forms or other plugins that save something to the filesystem, as you’d need to sync and that’s (way?) m ore complex to handle, it all depends on your scenario.
Having 2 completely separated websites is probably the best solution in this case.
KeyCDN has datacenters in Singapore, Tokyo, Hong Kong and Australia and it looks like they want to build a few more on Seoul and Taiwan which is exactly what I need. Problem solved. Thank you everyone.