Controlling costs in Windows Azure

One of the problems in dealing with any cloud platform is that we need to minimize the costs when nobody is using the service while when more users come in, it should scale as much as needed. When you have lot of money then it is easy to simply throw money at the problem so that even when nobody is using the service it runs say 2 small or 2 medium roles.

Sometimes we can try to justify this saying that the application really needs 2 small roles just for something like caching. It all adds up quickly when the main app needs another 2 roles and a service is another 2 roles.

I have gone from using 5 roles to just 3 roles at steady state. And I get better performance also. I am currently using 2 co-located roles which have caching + web. This makes the web role faster because the cache is in its own memory. This is faster than using dedicated roles and even trying local cache along with it.

The slowest is shared caching where they provide the service. This is followed by dedicated caching role because no matter what, even using local cache there is too much performance impact with using over the network calls to access the cache. Co-located caching I believe is a necessity to obtain practical performance for a web role. The only complication is that if any other service also accesses this cache, that will not have fast enough access. Ideally, I would like to have the same co-located cache running across all my services so this problem does not happen. Right now, because we have to specify the name of the server role in the cache, I am not aware of anyway in which different roles can co-locate the same cache.

Comments

Popular posts from this blog

Tutorial: Using Google Cloud Storage from C# and .NET

Late 2008 Macbook only giving 1.5 gb/s speed with 6 gb/s Intel SSD?

The ridiculous interview experience