Service Oriented Architectures [SOA] play a pivotal role in today’s Enterprise Systems. Service orientation requires loose coupling of services with the underlying technologies. There is a lot Web Oriented Architectures gain by taking the SOA approach, especially with regard to aspects like scaling and being cloud ready.

I dont use SOA here to mean XML web services, but as a pattern for breaking down applications into distributed software components (which we call services). The components being independent units that deliver specific functionality. Data is encapsulated and made accessible only through well defined hardened interfaces. Consumers of the service are provided with a contract for the functionality provided through the interface. Hence, a clear isolation of functionality and data storage is achieved. The services manage all data internally and never provide direct database accesses. Whether access happens as XML/JSON or over REST/XML-RPC/SOAP is irrelevant for SOA. They form the various implementation options.

SOA also provides operational advantages in terms of the break down of the development work. First, small teams are created around problems. Next, the interfaces are decided and agreed upon. The teams then have full freedom in choosing tools, design methodologies, etc., as long as they provide the promised functionality through the interface. Developers in the team own end-to-end responsibilities for the service and are subjected to direct customer feedback. The heightened sense of responsibility also usually translates to better ownership of work. With hardened interfaces, localised issues and reduced integration efforts the net chaos in the system reduces significantly.

The parallel for SOA approach in the programming paradigm would be the Object Oriented Programming approach [OOPS]. Like OOPS, SOA is also vastly misunderstood. Most programmers fail to think Object Oriented-ly (esp the ones coming from the procedural world) and end up building poorly architected systems, while blaming OOPs for its clumsiness. Similar is the case with SOA.

We use SOA extensively in the systems we build at Althea. In my future posts I plan to provide more practical insights into SOA.

cloudsFor a Cloud Infrastructure, the ability to scale dynamically is a double edged sword.

Lets take the example of a more reactive approach to scaling on the cloud. Here, the utilization of all resources(CPU, RAM) in the infrastructure is monitored continuously and when it goes above a pre-defined threshold level, more resources are added. Let’s consider some failure scenarios that can happen with this approach.

* We know that a bot crawling the site will eat up whatever resources are thrown at it. The bot’s activity triggers the addition of more instances hence further empowering it. This leads to a sort avalanche effect and a mightily pissed off CFO.

* Adding application servers to support increasing demand while there are significant bottlenecks in the database infrastructure, further worsens the overall performance of the system.

* Spikes in traffic result in triggering off multiple instances without significantly improving the end user-experience. Hence giving rise to a bloated cloud infrastructure without sufficient business benefits.

There are many approaches you can take to plan your cloud deployment to get around these scenarios. They will be the subject of some future posts.

Procrastination

One of the most touted features of cloud infrastructures is its ability to automatically scale vertically and horizontally with almost zero impact on the running application/service. It changes the way CFOs look at IT infrastructure funding. Though the feature is paradigm shifting, it needs to be exercised with care.

In the traditional approach of hosting private infrastructures, the peak capacity is estimated and all the necessary infrastructure investments are made upfront. Inspite of this you continue to run the risk of underestimating the peak capacity. In contrast, with the cloud approach you pay only for the resources you actually use and the cloud also scales up to accommodate any overshoots.

The cloud however can make architects lazy and not design systems efficiently. Hence using up more resources than required. It may also lead to the development of systems that can respond to very high demands by adding instances, when meeting such demands may have no business benefits.

Procrastination

Yesterday, I accidentally wondered into John Perry’s [American Philosopher] essay collection through some stray links and then got lost in them. I always felt something was wrong with my ways or with the world. His posts on procrastination and horizontal organisation give me a better perspective on things and make me feel less of an outsider.

Essays relevant to procrastination:
1. Structured Procrastination
2. Procrastination and Perfectionism
3. A Plea for the Horizontally Organized

If you are going to be reading just one of Perry’s essays, then I would suggest you read the first one. Structured procrastination is the art of making the bad trait work for you. It involves shaping the structure of the tasks one has to do in a way that exploits the trait. Towards the end of the essay Perry makes a point that structured procrastination involves certain amount of self-deception but should be easy for a procrastinator.

Confession: I am using structured procrastination to revive this blog ;^).

The Zen Attitude

I was reading Srikrishna’s latest article on Hindu Business Line – Zen and the entrepreneur.

We seem to encounter the first two koans mentioned in his article (Persevere, grow) on a daily basis, the third one (listening to customers) is yet to happen to us. It would be a happy moment if we were to get that far.

The Zen koans are meant to tire the logic, giving a student of Zen the opportunity to look beyond from where the intellect ends. But the Koans of entrepreneurship require you to work within the bounds of logic.

One of my favorite koans is the Epimenides Paradox (which I happened to read in Douglas Hofstadter’s epic book GEB). Epimenides was a Cretan who made one immortal statement: “All Cretans are liars.”

Its been a primal human trait to try making meaning out of the chaos. The fascinating fields of astronomy, philosophy, evolution, number theory, quantum physics, .. have all sprung out of this basic urge; the urge to define the (currently) indefinable. But once meaning has been made things become less interesting, losing their charm. True-blood entrepreneurs look forward to the challenge of not being able to see or define success clearly. They prefer chances of failure over the comfort of a well set path to mediocre success.

All said there is much an entrepreneur can learn from spirituality.

Let the sufi in you follow your heart,
let the zen in you step aside letting life take its course,
let the yogi in you enjoy the path that leads to your destiny.

Sri, thanks for adding to the chaos! :)

web 2.0

History has always intrigued and humbled me. And consumer internet has been my main focus of interest in the last couple of years. So this well made video on the history of internet immediately caught my fascination. The video also brought up the role played by European organizations in the evolution of the internet, something I had been ignorant about till now. [Second thoughts: Was it really my ignorance or was it the story the American text books I read during my engineering wanted me to buy into ;-) ]

Going forward, I plan to blog more extensively about the changing trends in the use of internet technologies that aim to enhance creativity, communications, secure information sharing, collaboration and functionality of the web.

Checkout the HD version of the video on Vimeo.

funds
We have all heard stories of how hard companies are finding it to raise funds. It feels nice to hear a different story once in a while. I have always tried to maintain a positive outlook in life, and my fool’s optimism tells me that there was never a better time to start on a venture :-) . History has it that many of the great institutions we look up to today started off during a downturn. And I for sure wouldn’t want to miss out on the one that’s going on right now.

I happened to be passing by Kevin’s Corner yesterday, and found his posts on fund raising refreshing for my tastes.

Links to Kevin’s posts on fund raising:
1. Raising Seed Capital In A Recession
2. Venture Capital Outlook For 09
3. Raising Seed Capital In The “Great” Recession

Little angel

As the borders get blurry between F&Fs, Angels and VCs, Scott Shane tries to make some ground with his post which some what demystifies the angel math.

It also brings up the point that entrepreneurs look at angel investments for reasons more than the funds and contacts it brings in. Angels should ideally be less of businessmen and more of what the name means.

Article Link: The Funny Math of the Angel – Venture Capital Financing Gap

boring meeting
I came across this article on a linkedin group. It talks about habits, breaking routines, and cultivating new ones. All of which I strongly subscribe and occasionally succumb to. Striving for continuous improvement (which has been referred to as the kaizen technique here) has been a guiding philosophy for me in life [for those of you who chuckled after reading that bit, hey I still have a long way to go.. :-) ].

The fight-to-flight response when the fear of the unknown kicks in, which also the post speaks about, is something I see happening quite often around (and in) me. Another good point is made about the different approaches that people take while solving problems. It’s not a good idea to force-fit your approaches on others, and the make of a good team would be a nice blend of people with different approaches.

Article link: Can You Become a Creature of New Habits?

Hello world!
To all you programmers, coders, geeks & nerds out there :-) .

Link to a “Hello World” program collection.