It’s been a while since my last post and that’s because we were in the process of moving the www.papasotiriou.gr e-bookstore to windows azure. Papasotiriou is probably one of the largest bookstores in Greece with a large network of physical stores and was probably the first one to open one in the internet. So being willingful to take on new technologies and wanting to renew their aging e-store, they happily agreed to move to the cloud when we suggested it.
The process wasn’t easy though a number of challenges were tackled in order to achieve the result that you can see online
Firstly the solution had to be developed for windows azure.
Developers programming cloud solutions must adopt a completely different mindset from the one they have when developing on premise applications. So the stateless nature of the cloud, the need for scalability and the fact of transient errors in network connections forced us to develop the solution expecting and handling failures when they occur.
Just because one is using cloud technologies doesn’t necessarily mean that the application will magically run faster. On the contrary it may run a lot slower if you’re not careful to optimize every bit of the code to the new environment. An example I usually give when I talk about Windows Azure is the one of large numbers of fast SQL queries. Although these may run fast on premise the latency between your roles and SQL Azure could cause you problems. So we did a lot of work and tests to make sure that everything was as fast as it can be.
Unfortunately the client relied heavily on a legacy ERP system that couldn’t be updated for various reasons. That legacy used a SQL Server database to store data that needed to be imported to the store. Unfortunately the only supported version of SQL server was 2005 so we were forced to spawn an IaaS VM with SQL Server 2005 Express to act as a proxy between the new infrastructure and the legacy system.
The clients e-store sold 2,5 million book titles and although that number doesn’t seem so large it can really be if you think af all the information each book title caries. The database size was 7GBs and that required a lot of idle time (time were the database wouldn’t be used) in order not only to upload but also to migrate to the new database schema. The way we went arround this challenge was to move the data from the datacenter network which was a lot faster to an X-Large windows azure temp VM were the migration to SQL Azure ran.
The bookstore relied a heavily on a number of external data sources each of which used a different communication protocol from plain ftp, to web services as well as message formats from xml to plain text. So we had to implement a number of different import providers to handle all the available sources.
At the end though all that work paid up and the customer was enthusiast as we were able to offer him a number of benefits.
First but most importantly we were able to achieve a
35% 70% reduction in it’s monthly running costs. Windows Azure pricing is very cheap and the prices are constantly dropping.
Before moving to the cloud the client relied to a single web server and a SQL Server cluster that wasn’t reliable. Although the hardware had been upgraded recently the hard disks hadn’t been changed and there was no backup plan whatsoever. By moving to Windows Azure the client has now Load Balancing and automatic fail over between as many servers as he needs, his data are stored in triplicates and are Geo-Replicated and its database relies in a three servers cluster.
Previously the customer had a constant number of servers at his disposal at any time to handle all its traffic. That means that in a case of traffic increase he could potentially face problems. By moving to windows azure he can know dynamically scale out as well as scale up and thus can be sure that the e-bookstore can handle any kind of traffic.
All the servers are secured and watched by Microsoft and the intelligent load balancer can prevent DoS attacks on the service.
All the servers are managed by Microsoft and there’s no need for dedicated personnel to manage the e-store infrastructure.
Overall it’s been a great experience and can’t wait to do it again.