I’ve blogged about how
programming models change when developing for multi-core environments. While we can achieve a high level of performance with
multi-core systems, the cloud lets us take performance to a whole new
level. If we take this model forward,
an entirely new set of considerations exists.
Most technical people know the
three cloud computing models Software as a Service, Platform as a Service, and Infrastructure
as a Service. I find Platform as a Service most applicable to Sogeti's business model. I see three areas of concern when programming
for the cloud:
·
Dynamic Provisioning – Image an infinite number
of process servers available on-demand for your application. We will need new
models of load balancing the application to dynamically allocate these
servers. In addition, we’ll have new
patterns to support:
o
Handling exceptions in this world and how they
appear to a user is going to be a big challenge.
o
We will have no way of knowing where servers are
physically located and this will introduce latency and the programs must be
prepared for this condition.
o
The traditional commit process will need to be
modified to support a widely distributed application functions that support
parallel execution.
·
New persistence models already exist including
very fast, very flat, object oriented systems are being adopted in favor of
traditional relational databases (Netflix.com
and Smugmug.com already use these models). Developers will need to be trained to
maximize performance with these new data models.
·
New development environments
o
Entire new tool sets are already appearing that
didn’t exist before (e.g. rbuilder) are
re-defining how servers are provisioned for development and testing. It will take time for standards across
vendors to appear. As solution
architects and developers, we need to be aware of and competent in use of
support tools.
o
Google and Amazon have both developed a rich set of
API’s and Services to support cloud development. Just as it takes time to learn the Java
Framework, these new models will take time to master. Get started now!
IBM is working
hard to make development in the cloud feel like a traditional environment but
it will take some time to work this out. I
strongly suggest we all start learning this new model because Chrome OS is coming and it’s going make
this approach mandatory for all future applications.
Latest comments