When we speak about the speed of page loading it is necessary to say that the distance from server to user influences it a lot. If you choose to share your content among several servers that are geographically spread, it will make your website loading time quicker from the user point of view. So, what to begin with?
First of all, when trying to build a system of geographically spread content, don’t try to change the architecture of your applications to work with certain architecture. Depending on application the change in architecture may lead to complex changes, such as the synchronization of the sessions’ state or replication of transactions of the databases between the geographically spread server. If you do this you may ruin all your attempts of reducing the distance between servers and users.
You have to remember that 80 and 90 per cent of time that the pages take to fully load goes to loading of its components – pictures, CSS, scripts, flash content and so on. It is the golden rule of performance. So don’t change the architecture of your application – use your time to share the static content. It will allow to make page loading time quicker and it can be achieved with the use of CDN.
So, we may refer to CDN as to the network of numerous web-servers that are geographically spread in order to achieve the maximal possible speed of content delivery. The server that is automatically chosen to deliver content to the certain user, is chosen according to several attributes. For example, usually the server with the least number of hops is chosen or the server with the smallest response time.
Some big internet-companies own their own CDNs, but it is much cheaper to use the existing solutions, such as, for example, SpaceCDN. For startups and personal websites the costs may be too big, but when your audience will begin to grow it may also become more distant geographically. CDN is necessary to achieve faster response times – you can get 20% performance increase and even more. CDN requires minimal changes in code but will bring great productivity to your web-applications.