Archive for the ‘Cloud Computing’ Category

Power of Abstraction

November 23, 2009

Every programmer is familiar with the command Print “Hello World” or some variation depending upon language used (this one being Python).
When we step back to think about what that single line of code represents, in terms of all the processing that a computer undertakes, from interpreting the command to instructing the right peripherals to result in “Hello World” appearing [typically] on the computer screen, we grasp in that instance the power of abstraction.

IT is all about abstraction, with many advances ultimately being about introducing higher levels of abstraction or offering a new perspective on an existing level of abstraction.

As we consider cloud computing, abstractions abound, whether we think of it in terms of infrastructure, platforms or applications we are seeing entities that we readily recognize being abstracted as a set of services.

More exciting is the change in context we can expect as our knowledge around cloud computing matures. Specifically in the realm of PaaS, I see us moving from a container-centric perspective to an application-centric perspective. Currently the container is king, we think about setting up app servers to host our applications, with clouds the app will eventually become king, were we think of running an application in the cloud, and focus more on how we want the app to behave, rather than the topology of components (web servers, app servers, databases etc) required to enable the application to behave the way we want. In this near future that is all abstracted by the cloud.
While we will see and already seeing this future materialize in public cloud offerings, the impact on enterprise data centers that will host private clouds, and the approach enterprises will take to developing and running applications will be much more profound.

I’ve seen the future and the forecast is cloudy.


Its all about the Service!

June 28, 2009
    On Tuesday 23rd as planned, I delivered, quite smoothly I might add, my Keynote at SOA World, titled “Convergence in the Cloud: How Cloud Computing and SOA Produce Real Change”,  it was a fun filled experience and it would seem from the emails I got later as well as the delegates who spoke to me afterwards it was well received .

    During the keynote, I reinforced a point-of-view that I have already expressed in this blog, regarding the true importance of cloud computing being defined by the cloud based services that are delivered and I touched on 5 areas of innovation that I am tracking and will delve deeper into in this blog over time:

  1. Automation and Management
  2. Elastic Applications
  3. Software Delivery
  4. Pricing and Licensing
  5. Cloud-based Services
  6. Regarding cloud-based services, a gem I recently stumbled across while reading an article on cloud based storage services is Dropbox. Dropbox like many of its genre provide some amount of storage that you  transfer files to and can share those files with others (usinga URL). What has stood out for me however is the effort that they have gone to, to integrate this service with desktop environments. Yes you have the standard browser based access, but more intriguing is how they integrate into my Windows environment as just another folder, which — wait for it — if I put files into it automatically transfers those files up to the storage service. Things got really exciting when having installed dropbox on two machines, I was able to  view and access all files uploaded from either machine on the other just by looking at the dropbox folder.  Such seamless integration can only be applauded and more importantly  illustrates an adherence to what I would state is the golden rule .. Its all about the service!

Impressions from JavaOne

June 12, 2009

Last week I attended Java One, which proved to be both an entertaining and enlightening experience … who knew I would be excited to see “Duke” in person (for the uninitiated Duke is the Java Mascot).

 

During the Key note on Day 1, the key messages all centered around Java  being everywhere, with a lot of focus on consumer electronics (yes Java coming to a TV near you). A lot of emphasis was placed on JavaFX being the way of the future .. with Larry Ellison anointing it the savior of all AJAX programmers. While AJAX is not necessarily simple, after attending a few JavaFX sessions, I’ll have to say “I don’ quite see it yet”. It offers some potential for creating UIs, but quite frankly still has some maturing to do, and given no one technology is standing still I’d say the jury is still out. That said as one application vendor put it to me, they can create Uis for mobile, desktops and the web using one language …  so seems its back to the future .. Write once, run everywhere.

 

I attended the Script Bowl, which was a shoot out between a variety of scripting languages, with Language Guru’s demonstrating key features, and the winner being decided based upon crowd response (read that as cheers and applause):

  • Jython:  Stood out as a tried and tested language given its basis in Python, but got something of a muted response from the Java Developers
  • Groovy – Proved to be the crowd favorite, its closeness and compatibility with Java , giving it the necessary boost with the audience
  • Scala – Was a new one on me, but definitely was the runner up
  • Clojure – I think this took every developer somewhere they did not want to go … back to LISP type programming
  • Jruby – Did not get much love …  think it suffered from the same hangup as Jython .. Just a tad to different from Java for the audience’s taste

 

On the cloud front, attended a lot of good sessions of leveraging Amazon EC2 and Google App Engine, but my standout favorite was a session by eHarmony on leveraging Hadoop on EC2 to do analytics, aptly titled “Matchmaking in the Cloud:Hadoop and EC2 at eHarmony“. It was a great use case for  leveraging a public cloud infrastructure to augment an element of an internal business process. They showed  how they shipped certain matching data out to EC2 to run MapReduce algorithms , and then brought the results back in. It provided an honest assessment of benefits, challenges, and decision points.

 

For pure entertainment I attended a BOF at 7:30pm (sessions go till 10:30pm did I mention this was my first Java One?) that focused on using Java to program Lego NXT MindStorm robots, always cool having little robots running around.

 

Was not all at fun and games .. Obviously had a number of customers to meet and prep for the IBM Keynote at Java One by my boss Craig Hayman, titled “Extreme Transaction Processing and Elasticity” Which I must say was the most technical keynote of the conference!

 

On the horizon I will be delivering a keynote titled “Convergence in the Cloud: How Cloud Computing and SOA Produce Real Change” at the SOA World Conference in NY on June 23rd … So if your in town come and check it out..

Elasticity

May 18, 2009

Elasticity – the property of a substance that enables it to change its length, volume, or shape in direct response to a force effecting such a change and to recover its original form upon the removal of the force.

This property is in essence the defining characteristic of a cloud; the ability for the cloud to grow and shrink based upon the resources required to support the services being delivered. Now to some extent much like most algorithms for random numbers which require a seed there is a pseudo aspect to cloud elasticity in that the cloud is always bounded in some way by the physical resources (read that as the physical machines that host the virtual machines) that are available to the cloud, so elasticity really reflects a behavior experienced as opposed to a true physical characteristic.

Probably the most obvious illustration of cloud elasticity experienced is with Infrastructure as a Service (IaaS), Amazon EC2 being the most famous example, where compute resources are made available as a service and the user of the service can scale up or down the amount of compute resource required in a frictionless manner.

One other example that I have been noodling is related to distributed caching platforms; high performance distributed in-memory object caches / grids, which by design run across multiple servers/machines. It’s not a leap of faith to see distributed caches running as a service in a cloud, with the cloud growing and shrinking to accommodate the size and requirements of the cache. I manage such an offering called Websphere eXtreme Scale and Billy Newport has been discussing some of these scenarios in his blog.

Another key aspect of elasticity that has me thinking is elasticity as it relates to business models, particularly pricing and licensing of software running in a cloud, here my thoughts center around the provider of a cloud service and the licensing of software that supports that service.  As we evolve to running more and more virtual servers in a cloud, whose role and function may vary by the minute, the notion of license pools will need to be fleshed out to support this use case.  One might envision something analogous to the cell phone model, with a license pool representing cell minutes, and overage structures being available to deal with license overruns. These kind of structures will drive new capabilities and indeed philosophies when it comes to billing and metering and the notions of software compliance. 

Through this year, both aspects of elasticity; delivery of middle ware services and licensing models, will have a position of prominence on my to-do list, who knew that high school physics lab on elasticity of objects (remember the one with the metal ball and ring) would prove so relevant!

Rainmaking – Seeding the Clouds

May 10, 2009

… picking up on my premise that the value of the cloud lies in the services it provides I quickly progress to the discussion of what are the key considerations that the provider or consumer of such services has specifically of their enabling Infrastructure. Along with Yefim Natis of Gartner, I presented a detailed point of view on this at the recently concluded IBM IMPACT 2009 Conference in a session titled “Understand SOA-enabled Clouds and What They Can Do For you” (Session # 3102)

In it I surmised that the Provider was most focused on considerations that included:

  • Virtualization of infrastructure
  • Government and management of services
  • Multi-tenancy support
  • Consistent deployment
  • Chargeback and pricing
  • Security & access control

While the Consumer was in turn concerned with issues such as:

  • Ease of access
  • Discovery of services
  • RESTful interface support
  • Lower cost
  • Speed & availability
  • Security and data privacy

So what does any of this have to do with Rainmaking? Well if we go with a generally accepted definition that rainmaking involves seeding clouds to do something productive as in produce rain, then in addressing these considerations I can bring value and enable my customers to become rainmakers and derive productive value from adopting cloud computing. To this end, at IMPACT this week we launched a new product offering in the WebSphere Application Infrastructure Portfolio that I manage called WebSphere CloudBurst, an appliance that allows users to marshal a set of virtualized resources (think physical servers with a hypervisor) into a cloud into which are dispensed WebSphere based application environments, that enable various kinds of cloud services to be easily delivered (e.g. PaaS or AaaS).

As I fly home typing this at 35000ft, and noodle on all the discussions I have had over the last 5 days, with Customers, Press, Analyst, I think I can safely say I like the concept of Rainmaking and the role I personally and the IBM team I work with can play in seeding the cloud. So while I have this warm fuzzy feeling I think I’ll stop here ….. Since I am above the clouds … literally!!!

The Sky looks Misty and Cloudy

May 1, 2009

I expect very few people to recognize the opening line “The sky looks misty and cloudy” to Majek Fashek’s hit “Send Down the Rain” (it was a hit in Nigeria!) , but I must confess that every time I think or hear about cloud computing that line jumps into my mind unbidden.

There is no doubt that everyone is talking about cloud computing and while it has not exactly made it to headline news (that honor is reserved for Twitter), you can’t get an IT weekly on your desk anymore without seeing a cloud on its cover (please don’t tempt me to create a collage).

As a Product Manager in IBM, I have tracked many a technology trend, and noodled on how they bring value and how that value might be harnessed. As Majek says “Everything in life has got its time and seasons…” and the season of “shared resources” is definitely among us. For anyone willing to look back in time, we have in the IT industry moved through cycles of “sharing”, at first it was not an option, there was the mainframe and we all shared it, then client/server came to the fore, and the client became fatter, more independent, all powerful and the desktop was born, and some might say we didn’t think about sharing as much. Then the Internet was born and we all got connected and now find ourselves in the mode of sharing everything. It is interesting to note how much time we spend on our powerful desktops (portable or otherwise) using browsers and driving shared computing resources out there to do our bidding (thin client anyone? Yes I said it!) indeed we do this so much, that most of the real interesting logic gets executed out there somewhere in the Internet … Cloud.

So what is the or a cloud? What interests me more is less an absolute definition, but more a notion of how would you know one if you saw one, applying Duck Typing principles (Walks like a Duck, Talks like a Duck … Must be a …) one thing that immediately bubbles to the top is a cloud provides a service, be it compute resources or functional capabilities, we interact with a cloud to get a service. Access to that service is typically simple, cloud based services being characterized by a low barrier to adoption, no install, minimal setup, just point and use … and typically usage of these cloud services can thus be metered and appropriately charged for.

Now from this perspective .. The perspective of the user of of a cloud service, the question that bubbles to mind (applying the principles of service abstraction and service orientation) is given all the user wants is an easy to use service, do they care that it is in the cloud? If truth be told probably not, it could be in a raindrop for all they care. That said there is an emerging level of expectation that a user has in interacting with an entity termed a cloud (in no small part shaped by those who deliver cloud services).

Which leads to the next thought, “so who really cares about cloud computing and clouds?” … and to this I respond the service provider, cloud computing and cloud is really about an infrastructure management and services delivery method …. which encapsulates notions of desired/required user experience and very different business models … but more on that later. For now enjoy Majek Fashek singing about clouds and rain .. And maybe you too will be afflicted with not being able to get the tune out of your head whenever you hear Clouds …..