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.


Managing Innovation

September 18, 2009

Two weeks back, I was interviewed by some market researchers on the topic of managing innovation and bringing products to market. The discussion revolved around project selection, prediction of success, measurement of success and accuracy of predictions thereof. It was a timely conversation as right now I am in the process of working through where to divest and invest in my portfolio for 2010 and it got me thinking about the mental and business processes employed in bringing products to market and subsequently managing products through their lifecycle.

Conception of a product begins in many ways, from a conversation which ends with  “Think you can make a business out of providing this capability” to a spark of inspiration in the shower (at a Holiday Inn if the adverts are to be believed), based on something just read, or some discussion with a customer and recognition of a need. Once the idea takes hold, you find yourself in the process of fleshing out and trying to assess if this “puppy can really hunt”. Market opportunity, market access, product capability, ecosystem strategy all begin to coalensce, and of these nothing irritates me more than market opportunity assessment, because all markets are at least a billion dollars in size and the art of market sizing is anything but precise. But we live in a world of approximations and perceptions (is that chair really green?) and so you soilder on, documenting your assumptions, clearly defining your variables and gaining some confidence in your models. I am a big fan of market segmentation and calculating business cases from the bottom up, how many potential customers in the target segment, how many can I reach, what percentage penetration can thus be assumed, and what growth rate should I apply (better be at least as fast as the market, preferably faster, back to those market opportunity sizings). You also at this point depending on context decide on whether you build everything you need or whether you will acquire capability to form the nucleus of your offering or extend a nucleus you already have. Once you think you have enough its time for the roadshow and convincing everyone else who matters that this is a good idea, you run the gauntlet, submit your idols to trial by fire and assuming they stand up to the test you get approval to go “make it happen”.

At this point you move into delivery execution mode, and working with all relevant disciplines; development, sales, marketing, services, support, business development etc You set the stage to bring your offering to market. It is always instructive around this time to look back at the vision that blossomed in the shower and compare that rose-tinted view with what you are actually delivering now that the realities and pragmatics of the real world have imposed their view. Generally, you want to feel that what you have is a fair approximation of what you wanted, and that you have got enough to stake your claim. Armed with that feeling its “Lights, Cameras, Action”. Marketing launch, press interviews, analyst discussions, and if the buzz is just right the heady euphoria that its happening, your out there, your good to go.

Next phase begins with a focus on traction in the market, am I selling? Are customers adopting? Revenue anyone? And how is the product matching up to the projections I showed those who had to approve. Its a time for great flexibility, who said “In war no battle plan survives first contact with the enemy”? You always learn something, the zingers out of left field wing their way in, and you focus on the basic blocking and tackling required to establish a beach head with your latest addition to the family. Before long the results start rolling in, you have real-world data, you can make even better informed decisions, and you begin to shape your next phase (which you probably already had a good idea of where you wanted to go, ideas which being in market get validated or not), and you roll up your sleeves to start it all again.

Whether it be introducing or enhancing capability in an existing product line or introducing a brand new line, the process cycles through again and again, you immerse yourself in your market, in your customers served, and you marshall innovations, be they technological or business oriented (new licensing models, different packaging schemes),to deliver value, because in the final analysis your product line will live or die by the value it is seen to provide. Much like a soap opera, I find managing innovation into market to be  fraught with plot twists and turns, cliff hangers abound, and you taste the sweet triumphs of victory and the agonies of defeat. Its heady stuff, puts hair on a Man’s chest or gray in your hair, but then again isn’t that life as we know it?

PaaS

September 4, 2009

Its been a rather hectic summer since I last posted, what with vacations, work, vacations, more work, its been a month or so of playing continuous catchup. While par for the course in August, clearly the world of Cloud Computing has not been chilling out by the beach, and a topic I have found myself engaged in time and time again is the discussion around self-service and more precisely providing Platform-as-a-Service to internal test and development organizations.

Now the case is quite compelling, server resources are notoriously under utilized in test environments as teams are loathe to tear down a test environment once setup, due to the effort involved in getting the environment configured in the first place. Thus you find configured but idle boxes by the rack-load, and lets not forget the labour spent actually doing environment configuration, that is at best overhead to the real application tests they want to run.

Now imagine a world where by Test and Development team have access to a private cloud, that provides a virtualized pool of resources that can be easily requested in configurations that match to the desired tasks, and things are definitely looking up.

It is this scenario that I have been pretty focused on enabling for my Portfolio leveraging my newest addition WebSphere CloudBurst Appliance. This is an appliance that enables cusomer to marshall servers with a hypervisor into a cloud and into that cloud dispense and configure WebSphere based application environments. Now in setting up an internal self service cloud, one area that I have found gets everyone thinking is the business model. Should a fixed set of software licenses be assigned to the cloud? What will be the policy if test teams consume available licenses and want more? How should the cloud be segmented? E.g Performance test teams are able to configure larger configurations that say application test teams.

I believe we are at just the tip of the iceberg as we step into this brave new world, employing concepts from the public domain to change how we work within the enterprise, and I for one am excited.

See the attached video that demonstrates some of the features of WebSphere CloudBurst Appliance that facilitate delivering PaaS, and check out the IBM DeveloperWorks Space, WebSphere Cloud Computing for Developers to learn more.

The Penguin and I

July 21, 2009

Earlier in the year I decided to embark on “An Alternative OS” project and see if there was life without Windows. My motivation was in part curiousity, some irritation with Windows Vista and buzz I was picking up on Ubuntu. Armed with an old Thinkpad T60, I decided to give things a whirl.

First off I was quite pleased to find a thriving community in IBM on Ubuntu on the desktop and laid my hands on an excellent resource on installing and configuring Ubuntu within IBM. At this point I was using Ubuntu 8.10 Intrepid, and my first major challenge was getting LEAP wireless support to work .. it just didn’t, some digging around pointed to both hardware as well as OS issues, so I laid my hands on a T61 and it worked like a charm. The next step of configurations that definitely were quirky (from a Windows or even Mac user perspective) was getting the graphics display properly configured so that the screen didn’t look like a PC circa 1980, and getting digital media files, to work properly. Ubuntu does not really ship with the codec support needed to watch a DVD or play an MP4 and a repetitive process of playing a sample file, triggering the package manager to instal required pre-reqs, or hunting down online resources to explain how to add in necessary repositories to get required libraries ensued. For my productivity suite, I had Firefox (I use a lot of internal web based apps), Lotus Notes 8.0.2, Lotus Symphony 1.1 and Open Office 3.0 installed. Given I handle a lot of documents in Powerpoint format (.ppt) this was to be the true test, would I feel as productive without Microsoft Office? The simple answer was “NO”, while I was able to satisfactorily review docs, I just did not find OO or Symphony a nice environment in which to create presentations from scratch. I also dreaded the conversion issues that plagued me from time to time. I decided running a Windows based virtual machine might be the answer, for when I really really needed to drop back to MS Office, but performance of my image in VMWare player soon put a stop to that idea (even with 3GB of RAM onboard). With a major conference coming up and lots of docs to handle related to products I was launching, I decided to end my relationship with the penguin and return with my tail between my legs to my Windows box.

The release of Ubuntu 9.0.4 Jaunty, caused me to want to revisit my experiment, as well as some belief that Sun’s VirtualBox might give me a more performant Hypervisor for my Windows virtual machine. This time I went for broke, swapping in a new hard drive into my everyday Thinkpad X60, I decided it would either work on my primary machine or I was done experimenting. Installation proved to be a breeze, and Lord Behold, graphics cards were configured and optimized right out of the box (no more setting of Autohinter), LEAP worked with no issues, things were looking up!

Based on previous experience I was now an old pro at leveraging the Package Manager for installations, and a quick visit to Medibuntu.org got me sorted with all the codec support I needed to handle my digital needs. I had heard good things about OpenOffice 3.1 and a quick upgrade of the version shipped as part of Ubuntu gave me an environment that at least handled complex ppt. files better, even if I still think its authoring experience leaves much to be desired. For the occassions when I absolutely need MS Office, I decided to try out VirtualBox. That didn’t work out so well, I could not start a VMWare image I already had (a supported configuration) and I could not find a windows install CD to build a new image from scratch(even though I had license keys to spare), I guess since Windows comes pre-installed, Microsoft does not provide any download options (once again I stress I had a license key, just wanted the binary). Using VMWare Player was no better, then I discovered CrossOver Linux from CodeWeavers (this after a failed attempt at using WINE). Couple of minutes later I had MS Office 2007 running natively on my Ubuntu desktop .. Success!!!! I am using the CrossOver Linux trial and a week in, I’ll say while not perfect it does provide an easy way for me to use Powerpoint when I really need to. Its a little quirky, but so far nothing I can’t tolerate, and coupled with OpenOffice 3.1 I have generally found I can get on quite well.

So right now its official, the Penguin and I are back together and we will see if this is a lasting relationship. In case your wondering why I didn’t just go out and buy a Mac … beyond the fact that I would have been spending my own money for a work machine that would have just been too easy!

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..

We are the World

May 29, 2009

Some weeks back I happened to have a rather interesting conversation with the folks out at Baynote on behavioral analysis  and the wisdom of crowds (cue “we are the world”). This caused me to buy the  book Emergence by Steven Johnson, which is proving to be an entertaining read … I will never look at ants the same way again .. I also laid my hands on Programming Collective Intelligence by Toby Segaran, which looks at implementing a lot of these ideas in the context of Web 2.0 applications and mining of social interactions.  One thing I do like about Toby’s book is that it links to another passion of mine – dynamic scripting languages .. In that he uses Python as the programming language to render all of his example implementations. I’ll share more of my thoughts once I finish reading … In the meantime I am off to JavaOne, where, no surprises, among many things I will be dropping in on quite a few sessions on dynamic scripting languages and developing in the cloud …..

 And just because I could not resist .. Another trip down memory lane ….

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 …..