Author Archive

Designing Cloud Based Systems – 3. Scalability, Performance and Software Engineering
By Abhijat Vatsyayan (5) on February 3rd, 2010

Scalability and robustness

Since a very compelling business reason for using cloud computing is the ability to scale on demand and when needed, using the best practices and guidelines for designing large scale  distributed systems is a good starting point. While academia has a preference for   distributed transactions, ACID properties, and all kinds of consensus protocols, you are better off with loosely coupled systems where nodes will eventually reach a consistent state (as opposed to waiting for all nodes in a very large system to  reach a consistent state before proceeding). Considering the state of existing systems, loosely coupled self healing self regulating systems should be preferred over system with exotic distributed transactional properties and consensus protocols. Continued »

Designing Cloud Based Systems – 2. System Integration and Development Considerations
By Abhijat Vatsyayan (5) on January 22nd, 2010

Enterprise Application Integration

You need to consider how your system integrates with other systems in your organization. Clouds are good but one-off systems that use cloud but do not integrate with existing systems will diminish the payoffs of using a cloud.

You need to consider how your system and its data get integrated with existing data. This may need to be done both ways. Without access to existing data or data created and maintained by your cloud based system, you will again limit the potential of your system under design. Continued »

Designing Cloud Based Systems – 1. Introduction
By Abhijat Vatsyayan (5) on December 23rd, 2009

Definitions and architecture

I am not a big fan of using definitions as a starting point.  In technology many useful and successful concepts have escaped definition. People still argue about what exactly is an object in an object-oriented system.  There is no scarcity of definitions for software architecture. The internet cannot be pinned down to a simple definition. A definition, however, it is still useful in certain contexts. Continued »

Cloud Computing Demystified: Part-I
By Abhijat Vatsyayan (5) on July 14th, 2009

I recently took part in a panel discussion on cloud computing and how it relates to software architecture. The event used an online event organizer for signing up and the website wouldn’t let me register for the event. I later found out that I could not sign-up because the event was sold out. This says something about the hype surrounding cloud computing which has become the in-thing to be ’seen with’. The panel discussion was interesting and animated and one takeaway for me was that everybody had their own idea of what cloud computing is and to some it was barely more than a buzzword. Continued »

Application programming in the era of multicore processors
By Abhijat Vatsyayan (5) on April 15th, 2009

Computer chip manufacturers cannot keep on increasing the clock speed indefinitely to make their processors faster. They seem to have already reached the limit (on clock speed) and have started putting multiple Continued »