Udayan Banerjee’s Blog – From The Other Side

February 2, 2010

China and India – Spider and Starfish

Filed under: Emergence, Trend — Udayan Banerjee @ 10:46 am
Tags: , , , ,

Last week I came across 2 seemingly unrelated essays (one blog post – Understanding the Nature of Self-Organizing Teams by Jim Highsmith and one article – Don’t Underestimate India’s Consumers by John Lee)

The blog post provides a snapshot of the book – The Starfish and Spider: The Unstoppable Power of Leaderless Organizations, by Ori Brafman and Rod Beckstrom. This is how the post starts:

“A spider is an eight-legged arachnid that has a head attached to a central body. Pull a leg off a spider and most can still walk, even if a little lopsided. Cut off the head and the spider dies. Not so the starfish. While many people know that if you cut off a starfish’s leg, it will grow back, most don’t know that a starfish’s major organs are replicated throughout its body. One species, Linckia, can regenerate an entire starfish from each of its severed parts. A starfish is a decentralized network.”

Here is a summary of the book – The Starfish and the Spider: The Unstoppable Power of Leaderless Organizations. It outlines 10 rules for the new world:

  1. Diseconomies of Scale
  2. The Network Effect
  3. The Power of Chaos
  4. Knowledge at the Edge
  5. Everyone wants to contribute
  6. Beware of the Hydra response
  7. Catalysts Rule
  8. The Values are the Organization
  9. Measure, Monitor, Manage
  10. Flatten or be Flattened

The article compares the centralized, state managed China with decentralized, chaotic India quoting the following interesting statistics:

  • Wage and income growth, even for China’s urban residents, hovers at about half the level of GDP growth over the past 15 years
  • India can now boast of an overwhelmingly independent middle class about 300 million strong, vs. China’s 100 million to 200 million, depending on the parameters
  • The rural half of China is falling behind. Back in the mid-1980s, the mainland’s urban-rural income ratio was 1.8. It now stands at about 3.5
  • In India, … urban-rural income gap has steadily declined since the early ’90s
  • Rural India now accounts for half the country’s GDP, up from 41% in 1982. World Bank studies show that rural China accounts for only a third of GDP
  • Rural China … generates just 15% of China’s growth. Meanwhile, rural India is chipping in about two-thirds of overall growth

Is there any doubt that India is more like a Starfish and China is more like a Spider? In terms of infrastructure and other related development India is about 15 years behind China – but in the new world will the Starfish upstage the Spider?

Here are some more links explaining the Starfish and the Spider (Eswaran: thanks for the references):

January 21, 2010

Cloud Economics – A Platform Comparison

Any new technology adoption happens because of one of the three reasons:

  1. Capability: It allows us to do something which was not feasible earlier
  2. Convenience: It simplifies
  3. Cost: It significantly reduces cost of doing something

What is our expectation from cloud computing? As I had stated earlier, it is all about cost saving … (1) through elastic capacity and (2) through economy of scale. So, for any CIO who is interested in moving to cloud, it is very important to understand what the cost elements are for different cloud solutions. I am going to look at 3 platforms: Amazon EC2, Google App Engine and Microsoft Azure. They are sufficiently different from each other and each of these companies is following a different cloud strategy – so we need to understand their pricing model.

(A word of caution: this analysis is as per the published data on 20th January, 2010 and texts in green italics are my interpretation)

Quick Read: Market forces seem to have ensured that all the prices are similar – for quick rule of thumb calculation to look at viability, use the following numbers irrespective of the provider. You will not go too much off the mark.

  • Base machine = $0.1 per hour (for 1.5 GHz Intel Processor)
  • Storage = $0.15 per GB per month
  • I/O = $0.01 for 1,000 write and $0.001 for 1,000 read
  • Bandwidth = $0.1 per GB for incoming traffic and $0.15 per GB for outgoing traffic

However, if you have time, you can go through the detail analysis given below.

Amazon:

  • Overview: You can create one or more instances of a virtual machine for processing and for storage
    • You pay based on time the instances are running and not on how much they are used – if an instance is idle, you still pay for it
    • There are three physically different locations where the facility is available (called availability zones) – US(N. Virginia, N. California) and EU(Ireland)
    • When you either shutdown the machine instance or it crashes for whatever reason you lose all your data – to preserve your data you need to opt for one of the 4 possible data persistence mechanisms
    • It is possible to have a reserve instance (for 1 year or 3 years) for an initial payment and discounted rate of usage – however, I do not think it provides any guarantee against data loss because of machine crash
    • Data storage can be both relational and non-relational
  • Machine Instance: Virtual machine can be of different capacity – Standard(Small, Large, Extra Large), High-Memory(Double Extra Large, Quadruple Extra Large), High-CPU(Medium, Extra Large)
    • Charge for Machine Usage: You are charged for the time you keep the instance of the machine running – the time is calculated in hours, any fraction of hour is taken as full hour
      • Hourly charge vary from $0.085 (Small – Linux – N. Virginia) to $3.16 (Quadruple Extra Large – Windows – N. California)
      • Both Linux and Windows machine instances are supported – Windows machines are about 40% more expensive – other software charges are extra
    • There are separate charges for mapping IP addresses, for monitoring & auto scaling ($0.015 per instance per hour) and load balancing
    • A message queue is available (Simple Queue Service – SQS) but again it has a separate charge – $0.1 to $0.17 per GB depending on the total monthly volume
  • Data Persistence: To persistent data storage you can one of the 4 alternatives – Elastic Block Store (EBS) Simple DB, Simple Storage Service (S3) or Relational Database Service (RDS)
    • EBS behaves like a mountable hard drive and is automatically replicated. You can use it in any way you want.
    • Simple DB and S3 storage mechanism is not RDBMS – that is you do not have tables therefore you cannot retrieve records through using JOIN
    • RDS is an instance of MySQL – so you can use it like a normal RDBMS
    • Charges for EBS: you pay for allocated storage and I/O
      • Storage charge are $0.10 per allocated GB per month
      • I/O requests are charged separately at $0.10 per million I/O
    • Charges for Simple DB: you pay separately for CPU, disk space and data transfer – though up to a limit they are free (25 CPU hours, 1GB data transfer, 1GB of storage)
      • CPU usage calculation is normalized to 1.7 GHz Xeon (2007) processor and works out to $0.14 to $0.154 per hour depending on location
      • Data transfer In is free till June 2010 and charge for transfer Out is between $0.1 to $0.17
        per GB depending on the total monthly volume
      • Actual storage is charger at $0.25 to $0.275 per GB per month – it includes 45 bytes of overhead for each item uploaded
    • Charges for S3: You are charged for disk space, data transfer and number of request made instead of CPU usage – data transfer charges are the same
      • Storage charge varies from $.055 to $0.165 per GB per month making it slightly cheaper than Simple DB but at a higher level of usage (more than 1000 TB)
      • I/O requests are charged separately – you pay between $0.01 to $0.011 per 1,000 write requests and $0.01 to $0.011 per 10,000 read requests – deletes are free
    • Charge for RDS: You pay for storage, I/O request, data transfer and machine instance (Small, Large, Extra Large, Double Extra Large, Quadruple Extra Large) based on usage
      • You pay for RDS instance – charges vary from $0.11 to $3.10 per hour depending on the instance size
      • The storage charge is not pay as you use – you have to decide in advance (5 GB to 1 TB) and the charges are $0.10 per GB per month
      • The is no charge for backup up to the amount of storage you have chosen but you have to pay $0.15 per GB per month for extra backup
      • You pay separately for I/O at $0.10 per 1 million I/O requests

Google:

  • Overview: Application written in Python or Java can directly be deployed – the implementation is a subset
    • No need to instantiate any virtual machine
    • You are charged on the actual normalized CPU cycles used
    • Storage is only non-relational
    • Charge is calculated on these parameters – bandwidth, CPU, storage, emails send
    • You have free quota for each of these parameters – it is enough for development, testing and small deployment
    • There are limits imposed for peak usage on many different parameters – with daily limits & limits on usage in a burst
    • You will need to rewrite your application to work on Google App Engine – see this
    • Charge for CPU usage: It is calculated in CPU seconds equivalent to 1.2 GHz Intel x86 processor
      • You pay $0.10 per hour of CPU usage for processing requests
      • 6.5 hours of CPU time is free
      • You do not pay for CPU idle time
    • Charge for storage: Only non-relational storage is available
      • You pay $0.15 per GB per month – the size includes overhead, metadata and storage required for indexes
      • It includes data stored in the datastore, memcache, blobstore
      • You pay for CPU usages for data I/O at $0.10 per hour
      • 60 hours of CPU time for data I/O is free
      • Up to 1 GB of storage is freeFAQ page says that it is 500 MB
      • You are charged every day at $0.005 GB per day after subtracting your free quota
    • Charge for bandwidth usage: Inward and outward bandwidth usage is charged at different rate
      • You pay $0.10 per GB for incoming traffic
      • You pay $0.12 per GB for outgoing traffic
      • 1 GB of incoming traffic and 1 GB of outgoing traffic is free

Microsoft:

  • Overview: Offering has 3 main parts – Windows Azure, SQL Azure and App Fabric
    • Details available on the Microsoft site is more about the vision of the product than about what is implemented here and now.
    • However this document “Introducing Windows Azure” is good
    • It uses Hyper-V for virtualization – it works more like Amazon than like Google
    • There is an introductory offer where the service can be avail for free
    • The development environment is Visual Studio through an SDK
    • The emphasis of creating applications which partly runs in premise
      and partly on cloud
    • Microsoft wants to keep the programming model as much unaltered as possible – see this
    • Charge for CPU usage: It is calculated in CPU seconds equivalent to 1.2 GHz Intel x86 processor
      • You pay $0.12 per hour of CPU usage for processing requests
    • Charge for storage: Only non-relational storage is available
      • You pay $0.15 per GB per month
      • Storage transactions are charged separately at $0.01 per 10,000 transactions
    • Charge for bandwidth usage: Inward and outward bandwidth usage is charged at different rate
      • You pay $0.10 per GB for incoming traffic – rates for Asia are different $0.30 per GB
      • You pay $0.15 per GB for outgoing traffic – rates for Asia are different $0.45 per GB

Looking at the complexity of pricing I see great prospect for anybody who specializes in optimizing application for cloud – unlike traditional applications – any improvement in cloud application and directly be measured in $$$ saved.

 

December 28, 2009

How to Architect For Web 2.0 – 3 Postulates and 10 Must Dos

Web 2.0 may not have a clear-cut definition but irrespective of which way you look at it (there are 3 different ways of looking at web 2.0), it is about the behavior of complex system, it is about collective intelligence and it is about emergence. The fundamental principles governing such systems are that the whole is much more than the sum of its parts – the behavior of the system cannot be derived or understood by analyzing individual elements.

Traditional approach to architecting and problem solving is to…

  • Look at the problem as a whole
  • Break it down to multiple sub-problems
  • Solve each sub problem separately
  • Put individual solutions together
  • Expect the whole problem to be resolved

This approach does not work for complex systems

and

Web 2.0 always deals with complex systems

So when dealing with such systems, as an architect, you need to modify your approach.

Postulate [1] – Any Web 2.0 success will always be unexpected

If you look at all the big web 2.0 success you will find that all of them (Google, Wikipedia, Facebook, Twitter …) have defied conventional wisdom. The chances are high that your web 2.0 success will happen in an unexpected way.

Must Do #1 – Let the Architecture Evolve

It is impossible to design for the unexpected. Only thing you can do is to move forward incrementally – always adjusting your architecture to the new reality – paying your technical debts regularly.

Must Do #2 – Adopt Agile Methodology

Agile methodology intimately connected to emergence – if you are not into agile don’t even come near web 2.0.

Must Do #3 – Opt for Loose Coupling and Simplicity of Interface

Only loosely coupled system can quickly evolve – only simple interfaces get widely used.

Must Do #4 – Implement Bottom-Up

The trick is to identify small successes – nurture them – adapt your system to help them proliferate.

Must Do #5 – Resist Temptation to Control

We have the inherent urge to control event which does not go according to our plan – but for web 2.0, such events may be the seeds of success.

Postulate [2] – Web 2.0 – more often than not – is about customer

Chances are high that as an architect you would want to distance yourself from selling & marketing. Unfortunately, web 2.0 is intimately connected with customer (existing & prospective) behavior – and the money for such project is likely to come out of marketing budget.

Must Do #6 – Think Customer Centric

There is clear evidence that improving customer experience can improve customer loyalty – therefore you need to tune the architecture keeping the customer at the centre (not the organization).

Must Do #7 – Learn Marketing Terminology

Marketers have spent their whole carrier trying to understand customer behavior – to architect for web 2.0, not only do you need to understand how traditional marketing works – you also need to understand and speak marketing language.

Postulate [3] – Underlying technologies of Web 2.0 is changing fast

There always will be hype around new technologies – not all of them will live up to that hype. However, once in a while, a new technology comes in and creates a paradigm shift in how & what we do. When such a thing happens, we call it an Inflection Point – there is a good chance that we are just about to reach one.

Must Do #8 – Design for Multiple Channels

Customers expect logically consistent (not necessarily identical) experience across multiple channels. BTW – Multi-channel is not just smart phone, many other types of devices and appliances are evolving (have you looked at Sixth Sense?). In fact even web is no longer a single channel – you need to look separately at Aggregators, Social Networking Sites, Micro Blogging…

Must Do #9 – Understand Cloud – Especially Google App Engine

In one sense, cloud is just an extension of virtualized hosting solution but 3 distinct cloud strategies are in vogue. However, do look at Google App Engine – though it is still work in progress – it has the potential of altering the economics of IT.

Must Do #10 – Think Beyond RDBMS

Have you heard of No SQL movement? Check it out – have a look at Big Table.

Brain cells are in billions but the interconnections are in trillions – our intelligence – collective intelligence of any complex system is derived from the number and quality of interconnections. So, architecting for interconnections is the key to success!

December 8, 2009

Architecture World’09 – Pune

Filed under: Conference, Web 2.0 — Udayan Banerjee @ 11:39 am
Tags: , ,

Good arrangements – I liked it more than the Bangalore event. Let me highlight 3 points from this event which can provide you with some food for thought.

1. Look at the list of speakers & panelists – you notice anything interesting?

If we discount the people from IT/Consulting companies (17-7=10) – Telecom accounts for 30% (3/10) of the remaining speakers. No other industry segment had more than one.

Sunil Dutt Jha – iCMG, Shirish Patwardhan – KPIT Cummins, Upal Chakraborty – DLF Limited, Amar Kumar Pandey – IG Police, Manish Gupta – Healthcare Global. Manoj Deshmukh – Fiserv Global Services, N Nataraj – Hexaware Technologies, Parag Matapurkar – Capgemini, Sanjay Marathe – Zensar Technologies, Manoj Shrivastava – Reliance ADA Group, Hiren Shah – CRISIL, Meenakshi Vajpai – Bharti Airtel, Steve Towers – BP Group, Tamal Chakravorty – Ericsson India, Abhay Chitnis – L&T Infotech, Suryanarayanan – NSR Centre for Entrepreneurial Learning, Udayan Banerjee – NIIT Technologies

It is not really surprising because Indian Telecom industry …

  • …is among the largest in the world
  • …is also the fastest growing in terms of absolute numbers
  • …because of the size and rate of change has to deal with a level of operational scale and complexity not seen anywhere else in the world except China
  • …has to depend on IT to operate effectively
  • …needs an IT infrastructure with a scalable architecture capable of handling the scale and the growth
  • …has architectural experience to share with other industry

Therefore – other industries have a lot to learn for Telecom.

2. The panel discussion – “Are Indian Software Architects as competent as the western counterparts?” had an interesting twist.

There were five of us of Indian origin and Steve was the lone person of non-Indian origin. All five of us kept pointing out our shortcomings but Steve compared current Indian IT scene with that on Japanese car manufacturing industry of the sixties – how they started with imitation but went on to become world beater.

Therefore – question is how can we learn for Japanese auto industry?

3. Finally, in spite of what Sunil and Manoj had to say, comparison between IT architecture and civil architecture is both inaccurate and misleading.

Though this topic will need a separate post – here are some of the points.

  • Look at the definition of Civil Architecture (…design and construction…) and Software Architecture (…externally visible properties of those components, and the relationships …) from Wikipedia – they are not comparable.
  • Civil Architect, using past knowledge, creates a blue print or model of what needs to be constructed – in software that activity is called design
  • The rate of change of this knowledge and the underlying technology for Civil Architects is measured in terms of decade – but similar change happens in software in years –significantly reducing the possibility of reusability (see this – When Is Reuse Feasible?)
  • Civil Architects deals mostly with static characteristics – but any IT or software design is mostly about dynamic behavior
  • Once constructed the buildings, roads, bridges do not change much – but any IT system evolves and may become unrecognizable from its original version after a few years

Therefore – we need to look at biological systems for inspiration which grows and evolves.

November 25, 2009

Cloud Computing Service – Amazon EC2 vs Google GAE

Cloud Computing Service

  1. Service provider with large number of networked computer systems
  2. Allowing you to use a slice of that processing power and storage
  3. Shielding your program and data from others sharing the same service, and
  4. Charging you for your actual usage

Value Proposition of Cloud Computing

  • Elastic Capacity – Pay for what you actually use
  • Economy of Scale – Of hardware, Infrastructure and Management

Comparison between Amazon EC2 and Google GAE

[Detailed comparison of cost - Cloud Economics – A Platform Comparison]

Though different cloud service providers are following different strategies, these are the two uniquely different approaches. Others either are similar to one of these or fall somewhere in between.

I have excluded SaaS from this discussion – you can see the comparison between IaaS, PaaS and SaaS on this post on Cloud Strategy.

 

Amazon EC2 (Elastic Computing Cloud)

Google GAE (Google App Engine)

Base Technology

Virtualization

Existing Google infrastructure

Unit of Scalability

Dynamically instantiated virtual machines

Every transactions initiated by user

Every scheduled or queued task

Persistence

Reserved Virtual Machine using standard RDBMS

By directly persisting objects on to Google BigTable

No need for any object-relational mapping

Software License

All software license required

OS, RDBMS, Web Server, App Server …

Behaves like a Service Bus of infinite capacity

Application code can be directly deployed

Readiness

Reasonably mature

Can be viewed as an extension to existing hosting services

Very much in Beta

Will take couple of years to mature

Best for …

Application requiring heavy processing power for short duration

Startups wanting to start free and have the ability to scale when the venture succeed

Economics

Saving potential of 30-70% for the right type of application

Not clear

However, it can be an order of magnitude improvement

Innovativeness

Incremental

Potentially Disruptive

Why is GAE potentially disruptive?

  • Over the last decade, Google has build a huge cloud infrastructure for its search and other services
  • The infrastructure has been build using very cost effective hardware
  • Fault tolerance is designed into the architecture
  • They have perfected technologies and algorithms like MapReduce and BigTable created for such infrastructure
  • It is highly scalable

Their economy of scale will be difficult to match.

What about Microsoft – they are constrained by the fact that they have to defend their desktop business – which will prevent them from following optimal cloud strategy!

November 19, 2009

Changing Role of CIO

Filed under: Trend — Udayan Banerjee @ 5:44 pm
Tags: , ,

“… creating business value with information technology will soon be less about reducing costs and improving efficiency (the traditional cost-side value creation objectives) and more about supporting activities that lead to new markets, products, services, and strategies (revenue-side value creation objectives) …” - Robert Austin (Cutter Consortium)

In last ten years or so, thanks to World Wide Web, the role of IT has totally transformed. Almost all new products and services have an IT component to it. The time when a CIO could adopt industry best practice and be satisfied is gone. It has become critical to differentiate and more often than not IT has to plays a key role in that.

Here is a diagrammatic representation of this transformation:

 

 

CIOs have to realize that the world has changed – a new proactive and business centric approach is needed.

November 6, 2009

BT Summit, Bangalore – 2009

Filed under: Cloud Computing, Conference — Udayan Banerjee @ 4:05 pm
Tags: , , , , ,

When I drove into the Tata Auditorium at IISc, Bangalore for the Business Technology Summit – my first reaction was “Oh! So many cars!”. Yes, it was a very well attended conference.

I have found that taking a statistics of the topics give a good way of gauging which way the technology wind is blowing. Here is my quick analysis.

  1. There were 6 tracks – SOA, Security, ECM BI, Cloud and Virtualization
  2. 23 of the 45 presentations were related to “Cloud Computing and Virtualization” – more than 50%
  3. SOA related sessions were only 6
  4. Similarly, BI related sessions were limited to only 5

This statistics maps nicely to Gartner emerging technology hype cycle – were “Cloud Computing” is the peak of its hype. However, what surprised me was the fact that there were no sessions on Google App Engine.

The level of participation in this conference and my experience in the airport next day were there was a long queue at the security check point leads me to believe that we are at the end of downturn – Indian IT scene will shortly start buzzing with activity and positive energy.

October 23, 2009

Technology Direction – Forrester and Gartner

Filed under: Trend — Udayan Banerjee @ 4:47 pm
Tags: , , , , , , , , , ,

Both Gartner and Forrester came up with their technology prediction this month. It is interesting to compare the two – here is a comparison.

Topic Forrester: The Top 15 Technology Trends EA Should Watch (here) Gartner Identifies the Top 10 Strategic Technologies for 2010 (here) Remarks
Web 2.0 Social Computing In And Around The Enterprise

  • Collaboration platforms become people-centric
  • Customer community platforms integrate with business apps
  • Tele-presence gains widespread use
Social Computing As usual Gartner has less to say about social computing than Forrester

  • Gartner had ignored the term Web 2.0 till 2006
  • Forrester has been trying to popularize the term Groundswell and has also published a book on the subject
SOA, BPM & Security Agile And Fit-To-Purpose Applications

  • Business rules processing moves to the mainstream
  • BPM will be Web-2.0-enabled
  • Policy-based SOA becomes predominant
  • Security will be data- and content-based
Security – Activity Monitoring Gartner has ignored SOA & BPM and I am inclined to agree with them
Mobile Mobile As The New Desktop

  • Apps and business processes go mobile
  • Mobile networks and devices gain more power
Mobile Applications Mobile is going to be very important but it is likely to give rise to a new class of applications – not possible on a desktop or laptop. Both Gartner & Forrester seems to have missed this point
Cloud Restructured IT Service Platforms

  • SaaS will be ubiquitous for packaged apps
  • Cloud-based platforms become standard infrastructure- and platform-as-a-service
  • Client virtualization is ubiquitous
  • Cloud Computing
  • Client Computing
  • Reshaping the Data Centre
  • Virtualization for Availability
Though there is lot of hype around cloud & virtualization – I think it is still at least 2 years away
Analytics Process-Centric Data And Intelligence

  • Business intelligence goes real-time
  • Master data management matures
  • Data quality services become real-time
Advanced Analytics No opinion
Others  
  • IT for Green
  • Flash Memory
No opinion

October 19, 2009

Agile Australia – 2009

Filed under: Agile, Conference — Udayan Banerjee @ 4:45 am
Tags: , ,

There are two things about Agile Australia that surprised me.

  1. The level of participation: There were around 350 participants – in this period of economic slowdown it is a huge number
  2. Missing Indian IT companies: None of the “tier one” Indian IT companies were around – neither as sponsors nor as speakers – why?

As per Gartner’s hype cycle on Application Development – Agile Methodology is supposed to be ’sliding into the trough’. You would not get that impression if you were around here. There was an unmistakable buzz that Agile is the way to go.

One more point which repeatedly came out – from speakers – from delegates – that top management support can really give a fillip to agile adoption.

In my panel I was expecting some amount of disagreement on the feasibility of “Distributed Agile”. However, to my disappointment, there was a quick agreement that it is definitely feasible but requires little bit of additional effort.

There were 3 sessions on using Lean & Kanban (here is a nice explanation) with Agile and they rekindled my skepticism about applying manufacturing principles to software development. One of the driving principles behind the development of agile methodologies is the fact that software development is different from manufacturing. Are we not repeating the mistake by trying to apply Lead & Kanban to software development?

On the whole it was a good show.

October 1, 2009

Cloud does not require change in programming model – Microsoft

Filed under: Cloud Computing, Trend — Udayan Banerjee @ 5:25 pm
Tags: , , , ,

In two of my previous posts I have highlighted why I think cloud computing needs change in thinking. However, in a recent discussion Walid Abu-Hadba (of Microsoft) clearly stated that Microsoft’s cloud strategy assumes that they are going to retain the existing programming model for cloud. That is, programmers can develop their application without bothering about where it is going to be deployed.

This is how the logic goes:

  1. When mini computers came in, IBM did not / could not retain the mainframe programming model for mini and hence lost the mini race to DEC
  2. When PCs came DEC suffered in the same way
  3. The movement from character interface to GUI saw many companies (Ashton-Tate, Word Perfect) losing out
  4. When network based computing transitioned from file server to client server model, Novel lost out
  5. A programmer learns a programming platform in first few years of his/her carrier – very few make a transition to a different platform later on
  6. There are huge number of programmers who are familiar with the existing programming model – transitioning them is almost impossible

Do you see the fallacy in this logic?

Essentially what Microsoft is saying is that “we will be at a serious disadvantage if the programming model changes – so let us not change it”. But, is the current programming model right for the cloud?

In past Microsoft has changed the programming model twice – the change in each occasion has been triggered by competition. The GUI programming model was forced by Mac and the .Net programming model was forced by Java. They have retained the same programming model for mobile and the result is there for all to see.

So, let me restate why I think the programming model will change. I have based my thoughts on how Google App Engine is structured – after all Google has the largest cloud computing infrastructure.

  • You do not have to worry about object-relation (O-R) mapping. Big Table implementation of Google allows you to save the objects directly.
  • You will not need web server – app server – database server. All of them become redundant.
  • Designing for heavy transaction volume will not be necessary – it is in built. Instead …
    • …individual transaction performance will have to be optimized.
    • …designing for high data volume will be required.
    • …impact of data contention across transactions needs to be checked.
    • …compute intensive algorithm needs to be broken up.
  • Heterogeneity is the order of the day. Consuming services from different sources and providing services for others to use will be the starting point.
  • Approach to debugging will be totally different. I am not sure how it will be done.
  • In many situations, storing – searching – retrieving unstructured data may be advantageous compared to structured data.

I propose to elaborate each of these points in my future posts.

Is this Microsoft’s first major strategic decision in the post Bill Gates era? Let us see how it pans out.

Next Page »

Blog at WordPress.com.