The growth of the number of visitors to our Dutch OliNo website, the launch of this international OliNo website and the continuous growth of the number of articles on the OliNo website is causing performance problems with our current web-server. As a result, loading web pages from the website take some time way too long. Something needs to be done.
We have made a decision that we are going to put OliNo into the cloud. Insiders know this as Cloud Computing. This will result in better performance (read faster website), higher availability of the data and last but not least, a green hosting solution. The migration will happen this weekend (20 December 2008).
Cloud Computing
With Cloud Computing a lot of computers are connected together (called the Cloud) and made available to a lot of people. The Cloud manages the request for resources in the Cloud and matches the requested load with the amount of physical servers needed to serve the request. The Cloud is spread over multiple data centers in different geographical locations. This is the ultimate example of sharing resources. Unused resources still drain power from the grid and are a waste of money and energy usage. The Cloud manages to spread the requests of the available resources (like computers, storage devices, networks, etc..) so that no resources are wasted. This will result in less energy usage (in kWh) per user in a cloud compared with traditional hosting solutions.
Amazon Web Services (AWS)
For our Cloud we are going to use Amazon Web Services (AWS). This will offer us the following advantages:
- Faster website
- Higher availability of the data
- Good scaling options
- More options for the future
Faster website
The main reason we migrate our server to AWS is due to the current performance problems with our current virtual server. The number of visitors has risen with 135% this year, the international OliNo website is launched where we expect a lot of extra visitors and the number of articles on the website keeps growing. Currently we have more than 300 articles and 2400 comments on our Dutch website. The international OliNo website has currently 82 articles and this number is growing fast. We plan to translate all interesting articles from the Dutch OliNo site and new articles will be published on both sites.
With AWS we get a computer instance (read virtual computer) of which the smallest version is already way faster than our current hosting solution. This will ensure a faster OliNo website.
The new OliNo server in the computer cloud
Higher availability of the data
In the AWS we are going to use an Elastic Block Store (EBS) volume for storing our data. Each storage volume is automatically replicated within the same Availability Zone. This prevents data loss due to failure of any single hardware component. Each night, a point-in-time snapshot is made of our EBS volume, which is persisted to Amazon S3. These snapshot is used to protect data for long-term durability. The first results are impressive, taking a snapshot of a 10 GB EBS volume takes less than 7 seconds.
As an example, volumes that operate with 20 GB or less of modified data since their most recent Amazon EBS snapshot can expect an annual failure rate (AFR) of between 0.1% – 0.5%, where failure refers to a complete loss of the volume. This compares with commodity hard disks that will typically fail with an AFR of around 4%, making EBS volumes 10 times more reliable than typical commodity disk drives. This is thus 800% – 4000% more reliable than data-storage on a commodity hard-disk.
Good scaling options
The computer cloud enables us to quickly scale for more computer resources if we need them. We can choose to run larger instances (read faster virtual computer) or we can run multiple instances which handle to load together (using load balancing). The more instances you start, the less load each instance gets and the more visitors the website can handle.
Soon Amazon AWS will offer a new service: auto-scaling. This will grows and shrinks the usage of Amazon EC2 compute capacity based on application requirements, automatically managing usage of the AWS cloud on your behalf. The auto-scaling capability will monitor your pre-set capacity thresholds and automatically add or remove compute capacity based on your application usage, helping you optimise your use of resources. Effectively this would mean that when the OliNo site would get a lot of unexpected visitors, and the load gets too high on the current number of running instances, the system will start more instances to handle to load. As soon as the number of visitors are reduced the system will also terminate more and more instances until the load is at the minimum load threshold.
With AWS you only pay per hour for the running instances. So you only pay for the resources you really use.
More options for the future
On top of the good scaling options, which we may need in the future, AWS offer also an option to use distributed content delivery using CloudFront. Amazon CloudFront delivers static content (photos, graphs, css files, javascript files, etc..) using a global network of edge locations. Requests for objects are automatically routed to the nearest edge location, so content is delivered with the best possible performance. This is an easy way to distribute content to end users with low latency, high data transfer speeds, and no commitments. Using Cloudfront will reduce the load on the main OliNo server(s) and content is delivered more quickly to the visitors of the OliNo website. We do not expect to need this service on the short term, however it is nice to know that this service is available when we need it.
Distributed content delivery with Amazon CloudFront
With the transition of OliNo to AWS we make a leap forward and are better prepared for the future.
The migration
The migration to the new environment will happen in the weekend of 20 december. The old website will be available during the migration, however you cannot add comments to existing articles. We expect that the migration is finished within 24 hours.