<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>William Vambenepe&#039;s blog &#187; Application management</title>
	<atom:link href="http://stage.vambenepe.com/archives/category/application-management/feed" rel="self" type="application/rss+xml" />
	<link>http://stage.vambenepe.com</link>
	<description>IT management in a changing IT world</description>
	<lastBuildDate>Mon, 26 Jul 2010 06:04:24 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Introducing the Oracle Cloud API</title>
		<link>http://stage.vambenepe.com/archives/1538</link>
		<comments>http://stage.vambenepe.com/archives/1538#comments</comments>
		<pubDate>Mon, 19 Jul 2010 06:12:02 +0000</pubDate>
		<dc:creator>William (@vambenepe on Twitter)</dc:creator>
				<category><![CDATA[Amazon]]></category>
		<category><![CDATA[Application management]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[DMTF]]></category>
		<category><![CDATA[Everything]]></category>
		<category><![CDATA[IT Systems Management]]></category>
		<category><![CDATA[Management integration]]></category>
		<category><![CDATA[Modeling]]></category>
		<category><![CDATA[OpenStack]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Portability]]></category>
		<category><![CDATA[Protocols]]></category>
		<category><![CDATA[Specs]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[Utility computing]]></category>
		<category><![CDATA[Virtual appliance]]></category>
		<category><![CDATA[Virtualization]]></category>

		<guid isPermaLink="false">http://stage.vambenepe.com/?p=1538</guid>
		<description><![CDATA[Oracle recently published a Cloud management API on OTN and also submitted a subset of the API to the new DMTF Cloud Management working group. The OTN specification, titled &#8220;Oracle Cloud Resource Model API&#8221;, is available here. In typical DMTF fashion, the DMTF-submitted specification is not publicly available (if you have a DMTF account and [...]


Related posts:<ol><li><a href='http://stage.vambenepe.com/archives/936' rel='bookmark' title='Permanent Link: VMWare publishes (and submits) vCloud API'>VMWare publishes (and submits) vCloud API</a></li>
<li><a href='http://stage.vambenepe.com/archives/1108' rel='bookmark' title='Permanent Link: Review of Fujitsu&#8217;s IaaS Cloud API submission to DMTF'>Review of Fujitsu&#8217;s IaaS Cloud API submission to DMTF</a></li>
<li><a href='http://stage.vambenepe.com/archives/743' rel='bookmark' title='Permanent Link: Cloud API: what&#8217;s cooking between IBM and VMWare?'>Cloud API: what&#8217;s cooking between IBM and VMWare?</a></li>
<li><a href='http://stage.vambenepe.com/archives/1295' rel='bookmark' title='Permanent Link: HP has submitted a specification to the DMTF Cloud incubator'>HP has submitted a specification to the DMTF Cloud incubator</a></li>
<li><a href='http://stage.vambenepe.com/archives/1504' rel='bookmark' title='Permanent Link: Dear Cloud API, your fault line is showing'>Dear Cloud API, your fault line is showing</a></li>
<li><a href='http://stage.vambenepe.com/archives/220' rel='bookmark' title='Permanent Link: Moving towards utility/cloud computing standards?'>Moving towards utility/cloud computing standards?</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Oracle recently published a Cloud management API on <a href="http://www.oracle.com/technetwork/index.html">OTN</a> and also submitted a subset of the API to the new DMTF Cloud Management working group. The OTN specification, titled <em>&#8220;Oracle Cloud Resource Model API&#8221;</em>, is available <a href="http://www.oracle.com/technology/tech/cloud/pdf/oraclecloudresourcemodelapi.pdf">here</a>. In typical DMTF fashion, the DMTF-submitted specification is not publicly available (if you have a DMTF account and are a member of the right group you can find it <a href="http://www.dmtf.org/apps/org/workgroup/technical/download.php/54501/OracleCloudElementalResourceModelAPI.pdf">here</a>). It is titled the <em>&#8220;Oracle Cloud Elemental Resource Model&#8221;</em> and is essentially the same as the OTN version, minus sections 9.2, 9.4, 9.6, 9.8, 9.9 and 9.10 (I&#8217;ll explain below why these sections have been removed from the DMTF submission). Here is also a <a href="http://stage.vambenepe.com/wp-content/uploads/CloudResourceModels_CMF2F.pdf">slideset</a> that was recently used to present the submitted specification at a DMTF meeting.</p>
<p>So why two documents? Because they serve different purposes. The Elemental Resource Model, submitted to DMTF, represents the technical foundation for the IaaS layer. It&#8217;s not all of IaaS, just its core. You can think of its scope as that of the base EC2 service (boot a VM from an image, attach a volume, connect to a network). It&#8217;s the part that appears in all the various IaaS APIs out there, and that looks very similar, in its model, across all of them. It&#8217;s the part that&#8217;s ripe for a simple standard, hopefully free of much of the drama of a more open-ended and speculative effort. A standard that can come out quickly and provide interoperability right out of the gate (for the simple use cases it supports), not after years of plugfests and profiles. This is the narrow scope I described in an <a href="http://stage.vambenepe.com/archives/1344">earlier rant about Cloud standards</a>:</p>
<p style="padding-left: 30px;"><em>I understand the pain of customers today who just want to have a bit more flexibility and portability within the limited scope of the VM/Volume/IP offering. If we really want to do a standard today, fine. Let’s do a very small and pragmatic standard that addresses this. Just a subset of the EC2 API. Don’t attempt to standardize the virtual disk format. Don’t worry about application-level features inside the VM. Don’t sweat the REST or SOA purity aspects of the interface too much either. Don’t stress about scalability of the management API and batching of actions. Just make it simple and provide a reference implementation. A few HTTP messages to provision, attach, update and delete VMs, volumes and IPs. That would be fine. Anything else (and more is indeed needed) would be vendor extensions for now.</em></p>
<p>Of course IaaS goes beyond the scope of the Elemental Resource Model. We&#8217;ll need load balancing. We&#8217;ll need tunneling to the private datacenter. We&#8217;ll need low-latency sub-networks. We&#8217;ll need the ability to map multi-tier applications to different security zones. Etc. Some Cloud platforms support some of these (e.g. Amazon has an answer to all but the last one), but there is a lot more divergence (both in the &#8220;what&#8221; and the &#8220;how&#8221;) between the various Cloud APIs on this. That part of IaaS is not ready for standardization.</p>
<p>Then there are the extensions that attempt to make the IaaS APIs more application-aware. These too exist in some Cloud APIs (e.g. vCloud vApp) but not others. They haven&#8217;t naturally converged between implementations. They haven&#8217;t seen nearly as much usage in the industry as the base IaaS features. It would be a mistake to overreach in the initial phase of IaaS standardization and try to tackle these questions. It would not just delay the availability of a standard for the base IaaS use cases, it would put its emergence and adoption in jeopardy.</p>
<p>This is why Oracle withheld these application-aware aspects from the DMTF submission, though we are sharing them in the specification published on OTN. We want to expose them and get feedback. We&#8217;re open to collaborating on them, maybe even in the scope of a standard group if that&#8217;s the best way to ensure an open IP framework for the work. But it shouldn&#8217;t make the upcoming DMTF IaaS specification more complex and speculative than it needs to be, so we are keeping them as separate extensions. Not to mention that DMTF as an organization has a lot more infrastructure expertise than middleware and application expertise.</p>
<p>Again, the &#8220;Elemental Resource Model&#8221; specification submitted to DMTF is the same as the &#8220;Oracle Cloud Resource Model API&#8221; on OTN except that it has a different license (a license grant to DMTF instead of the usual OTN license) and is missing some resources in the list of resource types (section 9).</p>
<p>Both specifications share the exact same protocol aspects. It&#8217;s pretty cleanly RESTful and uses a JSON serialization. The credit for the nice RESTful protocol goes to the folks who created the original <a href="http://kenai.com/projects/suncloudapis/pages/Home">Sun Cloud API</a> as this is pretty much what the Oracle Cloud API adopted in its entirety. <a href="https://twitter.com/timbray">Tim Bray</a> described the <a href="http://www.tbray.org/ongoing/When/200x/2009/03/16/Sun-Cloud">genesis and design philosophy of the Sun Cloud API</a> last year. He also described his role and explained that &#8220;most of the heavy lifting was done by Craig McClanahan with guidance from <a href="https://twitter.com/lewtucker">Lew Tucker</a>&#8220;. It&#8217;s a shame that the Oracle specification fails to credit the Sun team and I kick myself for not noticing this in my reviews. This heritage was noted from the get go in the <a href="http://stage.vambenepe.com/wp-content/uploads/CloudResourceModels_CMF2F.pdf">slides</a> and is, in my mind, a selling point for the specification. When I <a href="http://stage.vambenepe.com/archives/863">reviewed the main Cloud APIs</a> available last summer (the first part in a <a href="http://stage.vambenepe.com/archives/1161">&#8220;REST in practice for IT and Cloud management&#8221;</a> series), I liked Sun&#8217;s protocol design the best.</p>
<p>The resource model, while still based on the Sun Cloud API, has seen many more changes. That&#8217;s where our tireless editor, <a href="http://twitter.com/yujack">Jack Yu</a>, with help from <a href="http://twitter.com/macsun">Mark Carlson</a>, has spent most of the countless hours he devoted to the specification. I won&#8217;t do a point to point comparison of the Sun model and the Oracle model, but in general most of the changes and additions are motivated by use cases that are more heavily tilted towards private clouds and compatibility with existing application infrastructure. For example, the semantics of a <em>Zone</em> have been relaxed to allow a private Cloud administrator to choose how to partition the Cloud (by location is an obvious option, but it could also by security zone or by organizational ownership, as heretic as this may sound to Cloud purists).</p>
<p>The most important differences between the DMTF and OTN versions relate to the support for assemblies, which are groups of VMs that jointly participate in the delivery of a composite application. This goes hand-in-hand with the recently-released <a href="http://www.oracle.com/us/products/middleware/application-server/virtual-assembly-builder-067878.html">Oracle Virtual Assembly Builder</a>, a framework for creating, packing, deploying and configuring multi-tier applications. To support this approach, the Cloud Resource Model (but not the Elemental Model, as explained above) adds resource types such as <em>AssemblyTemplate</em>, <em>AssemblyInstance</em> and <em>ScalabilityGroup</em>.</p>
<p>So what now? The DMTF working group has received a large number of IaaS APIs as submissions (though not <a href="http://docs.amazonwebservices.com/AWSEC2/2010-06-15/APIReference/">the one that matters most</a> or <a href="http://openstack.org/">the one that may well soon matter a lot too</a>). If all goes well it will succeed in delivering a simple and useful standard for the base IaaS use cases, and we&#8217;ll be down to a somewhat manageable triplet (EC2, RackSpace/OpenStack and DMTF) of IaaS specifications. If not (either because the DMTF group tries to bite too much or because it succumbs to infighting) then DMTF will be out of the game entirely and it will be between EC2, OpenStack and a bunch of private specifications. It will be the reign of toolkits/library/brokers and hell on earth for all those who think that such a bridging approach is as good as a standard. And for this reason it will have to coalesce at some point.</p>
<p>As far as the more application-centric approach to hypervisor-based Cloud, well, the interesting things are really just starting. Let&#8217;s experiment. And let&#8217;s talk.</p>


<p>Related posts:<ol><li><a href='http://stage.vambenepe.com/archives/936' rel='bookmark' title='Permanent Link: VMWare publishes (and submits) vCloud API'>VMWare publishes (and submits) vCloud API</a></li>
<li><a href='http://stage.vambenepe.com/archives/1108' rel='bookmark' title='Permanent Link: Review of Fujitsu&#8217;s IaaS Cloud API submission to DMTF'>Review of Fujitsu&#8217;s IaaS Cloud API submission to DMTF</a></li>
<li><a href='http://stage.vambenepe.com/archives/743' rel='bookmark' title='Permanent Link: Cloud API: what&#8217;s cooking between IBM and VMWare?'>Cloud API: what&#8217;s cooking between IBM and VMWare?</a></li>
<li><a href='http://stage.vambenepe.com/archives/1295' rel='bookmark' title='Permanent Link: HP has submitted a specification to the DMTF Cloud incubator'>HP has submitted a specification to the DMTF Cloud incubator</a></li>
<li><a href='http://stage.vambenepe.com/archives/1504' rel='bookmark' title='Permanent Link: Dear Cloud API, your fault line is showing'>Dear Cloud API, your fault line is showing</a></li>
<li><a href='http://stage.vambenepe.com/archives/220' rel='bookmark' title='Permanent Link: Moving towards utility/cloud computing standards?'>Moving towards utility/cloud computing standards?</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://stage.vambenepe.com/archives/1538/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>CMDB in the Cloud: not your father&#8217;s CMDB</title>
		<link>http://stage.vambenepe.com/archives/1527</link>
		<comments>http://stage.vambenepe.com/archives/1527#comments</comments>
		<pubDate>Wed, 16 Jun 2010 09:03:34 +0000</pubDate>
		<dc:creator>William (@vambenepe on Twitter)</dc:creator>
				<category><![CDATA[Application management]]></category>
		<category><![CDATA[Automation]]></category>
		<category><![CDATA[CMDB]]></category>
		<category><![CDATA[CMDB Federation]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Everything]]></category>
		<category><![CDATA[IT Systems Management]]></category>
		<category><![CDATA[ITIL]]></category>
		<category><![CDATA[Management integration]]></category>
		<category><![CDATA[Middleware]]></category>
		<category><![CDATA[Utility computing]]></category>
		<category><![CDATA[Virtualization]]></category>

		<guid isPermaLink="false">http://stage.vambenepe.com/?p=1527</guid>
		<description><![CDATA[Bernd Harzog recently wrote a blog entry to examine whether &#8220;the CMDB [is] irrelevant in a Virtual and Cloud based world&#8220;. If I can paraphrase, his conclusion is that there will be something that looks like a CMDB but the current CMDB products are ill-equipped to fulfill that function. Here are the main reasons he [...]


Related posts:<ol><li><a href='http://stage.vambenepe.com/archives/1216' rel='bookmark' title='Permanent Link: Generalizing the Cloud vs. SOA Governance debate'>Generalizing the Cloud vs. SOA Governance debate</a></li>
<li><a href='http://stage.vambenepe.com/archives/894' rel='bookmark' title='Permanent Link: REST in practice for IT and Cloud management (part 2: configuration management)'>REST in practice for IT and Cloud management (part 2: configuration management)</a></li>
<li><a href='http://stage.vambenepe.com/archives/673' rel='bookmark' title='Permanent Link: &#8220;Federationing&#8221;'>&#8220;Federationing&#8221;</a></li>
<li><a href='http://stage.vambenepe.com/archives/667' rel='bookmark' title='Permanent Link: Open Cloud Manifesto, circa 2004'>Open Cloud Manifesto, circa 2004</a></li>
<li><a href='http://stage.vambenepe.com/archives/773' rel='bookmark' title='Permanent Link: IT automation: the seven roads to management middleware'>IT automation: the seven roads to management middleware</a></li>
<li><a href='http://stage.vambenepe.com/archives/1007' rel='bookmark' title='Permanent Link: The future (2006 version), has arrived'>The future (2006 version), has arrived</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Bernd Harzog recently wrote a blog entry to examine whether &#8220;<a href="http://www.virtualizationpractice.com/blog/?p=5726">the CMDB [is] irrelevant in a Virtual and Cloud based world</a>&#8220;. If I can paraphrase, his conclusion is that there will be something that looks like a CMDB but the current CMDB products are ill-equipped to fulfill that function. Here are the main reasons he gives for this prognostic:</p>
<ol>
<li><em>A whole new class of data gets created by the virtualization platform – specifically how the virtualization platform itself is configured in support of the guests and the applications that run on the guest.</em></li>
<li><em>A whole new set of relationships between the elements in this data get created – specifically new relationships between hosts, hypervisors, guests, virtual networks and virtual storage get created that existing CMDB’s were not built to handle.</em></li>
<li><em>New information gets created at a very rapid rate. Hundreds of new guests can get provisioned in time periods much too short to allow for the traditional Extract, Transform and Load processes that feed CMDB’s to be able to keep up.</em></li>
<li><em>The environment can change at a rate that existing CMDB’s cannot keep up with. Something as simple as vMotion events can create thousands of configuration changes in a few minutes, something that the entire CMDB architecture is simply not designed to keep up with.</em></li>
<li><em>Having portions of IT assets running in a public cloud introduces significant data collection challenges. Leading edge APM vendors like New Relic and AppDynamics have produced APM products that allow these products to collect the data that they need in a cloud friendly way. However, we are still a long way away from having a generic ability to collect the configuration data underlying a cloud based IT infrastructure – notwithstanding the fact that many current cloud vendors would not make this data available to their customers in the first place.</em></li>
<li><em>The scope of the CMDB needs to expand beyond just asset and configuration data and incorporate Infrastructure Performance, Applications Performance and Service assurance information in order to be relevant in the virtualization and cloud based worlds.</em></li>
</ol>
<p>I wanted to expand on some of these points.</p>
<p><strong>New model elements for Cloud (bullets #1 and #2)</strong></p>
<p>These first bullets are not the killers. Sure, the current CMDBs were designed before the rise of virtualized environment, but they are usually built on a solid modeling foundation that can easily be extend with new resources classes. I don&#8217;t think that extending the model to describe VM, VNets, Volumes, hypervisors and their relationships to the physical infrastructure is the real challenge.</p>
<p><strong>New approach to &#8220;discovery&#8221; (bullets #3 and #4)</strong></p>
<p>This, on the other hand is much more of a &#8220;dinosaurs meet meteorite&#8221; kind of historical event. A large part of the value provided by current CMDBs is their ability to automate resource discovery. This is often achieved via polling/scanning (at the hardware level) and heuristics/templates (directory names, port numbers, packet inspection, bird entrails&#8230;) for application discovery. It&#8217;s imprecise but often good enough in static environments (and when it fails, the CMDB complements the automatic discovery with a reconciliation process to let the admin clean things up). And it used to be all you could get anyway so there wasn&#8217;t much point complaining about the limitations. The crown jewel of many of today&#8217;s big CMDBs can often be traced back to smart start-ups specialized in application discovery/mapping, like Appilog (now HP, by way of Mercury) and nLayers (now EMC). And more recently the purchase of Tideway by BMC (ironically &#8211; but unsurprisingly &#8211; <a href="http://virtualization.com/acquisitions-acquisition-takeover/2009/10/20/bmc-software-snaps-up-tideway/">often</a> <a href="http://www.bsmreview.com/blog/2009/10/what-the-bmc-acquisition-of-tideway-means-to-the-bsm-market.htm">cast</a> in <a href="http://cloudstoragestrategy.com/2009/10/bmcs-tideway-acquisition-a-stairway-to-the-cloud.html ">Cloud terms</a>).</p>
<p>But this is not going to cut it in &#8220;the Cloud&#8221; (by which I really mean in a highly automated IT environment). As Bernd Harzog explains, the rate of change can completely overwhelm such discovery heuristics (plus, some of the network scans they sometimes use will get you in trouble in public clouds). And more importantly, there now is a better way. Why discover when you can ask? If resources are created via API calls, there are also API calls to find out which resources exist and how they are configured. This goes beyond the resources accessible via IaaS APIs, like what VMWare, EC2 and OVM let you retrieve. This &#8220;don&#8217;t guess, ask&#8221; approach to discovery needs to also apply at the application level. Rather than guessing what software is installed via packet inspection or filesystem spelunking, we need application-aware discovery that retrieves the application and configuration and dependencies from the application itself (or its underlying framework). And builds a model in which the connections between application entities are expressed in terms of the configuration settings that drive them rather than the side effects by which they can be noticed.</p>
<p>If I can borrow the <a href="http://lewsblog.newrelic.com/2010/06/08/make-no-small-plans/">words of Lew Cirne</a>:</p>
<p style="padding-left: 30px;"><em>&#8220;All solutions built in the pre-cloud era are modeled on jvms (or their equivalent), hosts and ports, rather than the logical application running in a more fluid environment. If the solution identifies a web application by host/port or some other infrastructural id, then you cannot effectively manage it in a cloud environment, since the app will move and grow, and your management system (that is, everything offered by the Big 4, as well as all infrastructure management companies that pay lip service to the application) will provide nearly-useless visibility and extraordinarily high TCO.&#8221;</em></p>
<p>I don&#8217;t agree with everything in Lew Cirne&#8217;s post, but this diagnostic is correct and well worded. He later adds:</p>
<p style="padding-left: 30px;"><em>&#8220;So application management becomes the strategic center or gravity for the client of a public or private cloud, and infrastructure-centric tools (even ones that claim to be cloudy) take on a lesser role.&#8221;</em></p>
<p>Which is also very true even if counter-intuitive for those who think that</p>
<p style="text-align: center;"><em>cloud = virtualization (in the &#8220;<a href="http://stage.vambenepe.com/archives/135">fake machine</a>&#8221; interpretation of virtualization)</em></p>
<p>Embracing such a VM-centric view naturally raises the profile of infrastructure management compared to application management, which is a fallacy in Cloud computing.</p>
<p><strong>Drawing the line between Cloud infrastructure management and application management (bullet #5)</strong></p>
<p>This is another key change that traditional CMDBs are going to have a hard time with. In a Big-4 CMDB, you&#8217;re after the mythical &#8220;single source of truth&#8221;. Even in a federated CMDB (which doesn&#8217;t really exist anyway), you&#8217;re trying to have a unified logical (if not physical) repository of information. There is an assumption that you want to manage everything from one place, so you can see all the inter-dependencies, across all layers of the stack (even if individual users may have a scope that is limited by permissions). Not so with public Clouds and even, I would argue, any private Cloud that is more than just a &#8220;cloud&#8221; sticker slapped on an old infrastructure. The fact that there is a clean line between the infrastructure model and the application model is not a limitation. It is empowering. Even if your Cloud provider was willing to expose a detailed view of the underlying infrastructure you should resist the temptation to accept. Despite the fact that it might be handy in the short term and provide an interesting perspective, it is self-defeating in the long term from the perspective of realizing the productivity improvements promised by the Cloud. These improvements require that the infrastructure administrator be freed from application-specific issues and focus on meeting the contract of the platform. And that the application administrator be freed from infrastructure-level concerns (while at the same time being empowered to diagnose application-level concerns). This doesn&#8217;t mean that the application and infrastructure models should be disconnected. There is a contract and both models (infrastructure and consumption) should represent it in the same way. It draws a line, albeit one with some width.</p>
<p><strong>Blurring the line between configuration and monitoring (bullet #6)</strong></p>
<p>This is another shortcoming of current CMDBs, but one that I think is more easily addressed. The &#8220;contract&#8221; between the Cloud infrastructure and the consuming application materializes itself in a mix of configuration settings, administrative capabilities and monitoring data. This contract is not just represented by the configuration-centric Cloud API that immediately comes to mind. It also includes the management capabilities and monitoring points of the resulting instances/runtimes.</p>
<p><strong>Wither CMDB?</strong></p>
<p>Whether all these considerations mean that traditional CMDBs are doomed in the Cloud as Bernd Harzog posits, I don&#8217;t know. In <a href="http://communities.bmc.com/communities/blogs/exitrow/2010/01/29/why-applications-matter-in-the-cloud">this post</a>, BMC&#8217;s Kia Behnia acknowledges the importance of application management, though it&#8217;s not clear that he agrees with their primacy. I am also waiting to see whether the application management portfolio he has assembled can really maps to the new methods of application discovery and management.</p>
<p>But these are resourceful organization, with plenty of smart people (as I can testify: in the end of my HP tenure I worked with the very sharp CMDB team that came from the Mercury acquisition). And let&#8217;s keep in mind that customers also value the continuity of support of their environment. Most of them will be dealing with a mix of old-style and Cloud applications and they&#8217;ll be looking for a unified management approach. This helps CMDB incumbents. If you doubt the power to continuity, take a minute to realize that the entire value proposition of hypervisor-style virtualization is centered around it. It&#8217;s the value of <a href="http://stage.vambenepe.com/archives/1198">backward-compatibility versus forward-compatibility</a>. in addition, CMDBs are evolving into CMS and are a lot more than configuration repositories. They are an important supporting tool for IT management processes. Whether, and how, these processes apply to &#8220;the Cloud&#8221; is a topic for another post. In the meantime, read what the <a href="http://www.itskeptic.org/does-cloud-computing-infrastructure-obviate-need-i">IT Skeptic</a> and <a href="http://www.cloudfrontoffice.com/2010/05/clouderati-vs-itilista-thoughts-on-the-linkage-of-cloud-and-itil-and-where-twain-fails-to-meet.html">Rodrigo Flores</a> have to say.</p>
<p>I wouldn&#8217;t be so quick to count the Big-4 out, even though I work every day towards that goal, building Oracle&#8217;s application and middleware management capabilities in conjunction with my colleagues focused on infrastructure management.</p>
<p>If the topic of application-centric management in the age of Cloud is of interest to you (and it must be if you&#8217;ve read this long entry all the way to the end), You might also find this previous entry relevant: &#8220;<a href="http://stage.vambenepe.com/archives/1216">Generalizing the Cloud vs. SOA Governance debate</a>&#8220;.</p>


<p>Related posts:<ol><li><a href='http://stage.vambenepe.com/archives/1216' rel='bookmark' title='Permanent Link: Generalizing the Cloud vs. SOA Governance debate'>Generalizing the Cloud vs. SOA Governance debate</a></li>
<li><a href='http://stage.vambenepe.com/archives/894' rel='bookmark' title='Permanent Link: REST in practice for IT and Cloud management (part 2: configuration management)'>REST in practice for IT and Cloud management (part 2: configuration management)</a></li>
<li><a href='http://stage.vambenepe.com/archives/673' rel='bookmark' title='Permanent Link: &#8220;Federationing&#8221;'>&#8220;Federationing&#8221;</a></li>
<li><a href='http://stage.vambenepe.com/archives/667' rel='bookmark' title='Permanent Link: Open Cloud Manifesto, circa 2004'>Open Cloud Manifesto, circa 2004</a></li>
<li><a href='http://stage.vambenepe.com/archives/773' rel='bookmark' title='Permanent Link: IT automation: the seven roads to management middleware'>IT automation: the seven roads to management middleware</a></li>
<li><a href='http://stage.vambenepe.com/archives/1007' rel='bookmark' title='Permanent Link: The future (2006 version), has arrived'>The future (2006 version), has arrived</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://stage.vambenepe.com/archives/1527/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Dear Cloud API, your fault line is showing</title>
		<link>http://stage.vambenepe.com/archives/1504</link>
		<comments>http://stage.vambenepe.com/archives/1504#comments</comments>
		<pubDate>Wed, 26 May 2010 04:10:08 +0000</pubDate>
		<dc:creator>William (@vambenepe on Twitter)</dc:creator>
				<category><![CDATA[Application management]]></category>
		<category><![CDATA[Automation]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Everything]]></category>
		<category><![CDATA[Management integration]]></category>
		<category><![CDATA[Protocols]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[SOAP]]></category>
		<category><![CDATA[Specs]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[Utility computing]]></category>

		<guid isPermaLink="false">http://stage.vambenepe.com/?p=1504</guid>
		<description><![CDATA[Most APIs are like hospital gowns. They seem to provide good coverage, until you turn around.
I am talking about the dreadful state of fault reporting in remote APIs, from Twitter to Cloud interfaces. They are badly described in the interface documentation and the implementations often don&#8217;t even conform to what little is documented.
If, when reading [...]


Related posts:<ol><li><a href='http://stage.vambenepe.com/archives/936' rel='bookmark' title='Permanent Link: VMWare publishes (and submits) vCloud API'>VMWare publishes (and submits) vCloud API</a></li>
<li><a href='http://stage.vambenepe.com/archives/1538' rel='bookmark' title='Permanent Link: Introducing the Oracle Cloud API'>Introducing the Oracle Cloud API</a></li>
<li><a href='http://stage.vambenepe.com/archives/743' rel='bookmark' title='Permanent Link: Cloud API: what&#8217;s cooking between IBM and VMWare?'>Cloud API: what&#8217;s cooking between IBM and VMWare?</a></li>
<li><a href='http://stage.vambenepe.com/archives/943' rel='bookmark' title='Permanent Link: Separating model from protocol in Cloud APIs'>Separating model from protocol in Cloud APIs</a></li>
<li><a href='http://stage.vambenepe.com/archives/1284' rel='bookmark' title='Permanent Link: Waiting for events (in Cloud APIs)'>Waiting for events (in Cloud APIs)</a></li>
<li><a href='http://stage.vambenepe.com/archives/1108' rel='bookmark' title='Permanent Link: Review of Fujitsu&#8217;s IaaS Cloud API submission to DMTF'>Review of Fujitsu&#8217;s IaaS Cloud API submission to DMTF</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Most APIs are like hospital gowns. They seem to provide good coverage, until you turn around.</p>
<p>I am talking about the dreadful state of fault reporting in remote APIs, from Twitter to Cloud interfaces. They are badly described in the interface documentation and the implementations often don&#8217;t even conform to what little is documented.</p>
<p>If, when reading a specification, you get the impression that the &#8220;normal&#8221; part of the specification is the result of hours of whiteboard debate but that the section that describes the faults is a stream-of-consciousness late-night dump that no-one reviewed, well&#8230; you&#8217;re most likely right. And this is not only the case for standard-by-committee kind of specifications. Even when the specification is written to match the behavior of an existing implementation, error handling is often incorrectly and incompletely described. In part because developers may not even know what their application returns in all error conditions.</p>
<p>After learning the lessons of SOAP-RPC, programmers are now more willing to acknowledge and understand the on-the-wire messages received and produced. But when it comes to faults, there is still a tendency to throw their hands in the air, write to the application log and then let the stack do whatever it does when an unhandled exception occurs, on-the-wire compliance be damned. If that means sending an HTML error message in response to a request for a JSON payload, so be it. After all, it&#8217;s just a fault.</p>
<p>But even if fault messages may only represent 0.001% of the messages your application sends, they still represent 85% of those that the client-side developers will look at.</p>
<p>Client developers can&#8217;t even reverse-engineer the fault behavior by hitting a reference implementation (whether official or de-facto) the way they do with regular messages. That&#8217;s because while you can generate response messages for any successful request, you don&#8217;t know what error conditions to simulate. You can&#8217;t tell your Cloud provider &#8220;please bring down your user account database for five minutes so I can see what faults you really send me when that happens&#8221;. Also, when testing against a live application you may get a different fault behavior depending on the time of day. A late-night coder (or a daytime coder in another time zone) might never see the various faults emitted when the application (like Twitter) is over capacity. And yet these will be quite common at peak time (when the coder is busy with his day job&#8230; or sleeping).</p>
<p>All these reasons make it even more important to carefully (and accurately) document fault behavior.</p>
<p>The move to REST makes matters even worse, in part because it removes SOAP faults. There&#8217;s nothing magical about SOAP faults, but at least they force you to think about providing an information payload inside your fault message. Many REST APIs replace that with HTTP error codes, often accompanied by a one-line description with a sometimes unclear relationship with the semantics of the application. Either it&#8217;s a standard error code, which by definition is very generic or it&#8217;s an application-defined code at which point it most likely overlaps with one or more standard codes and you don&#8217;t know when you should expect one or the other. Either way, there is too much faith put in the HTTP code versus the payload of the error. Let&#8217;s be realistic. There are very few things most applications can do automatically in response to a fault. Mainly:</p>
<ul>
<li>Ask the user to re-enter credentials (if it&#8217;s an authentication/permission issue)</li>
<li>Retry (immediately or after some time)</li>
<li>Report a problem and fail</li>
</ul>
<p>So make sure that your HTTP errors support this simple decision tree. Beyond that point, listing a panoply of application-specific error codes looks like an attempt to look &#8220;RESTful&#8221; by overdoing it. In most cases, application-specific error codes are too detailed for most automated processing and not detailed enough to help the developer understand and correct the issue. I am not against using them but what matters most is the payload data that comes along.</p>
<p>On that aspect, implementations generally fail in one of two extremes. Some of them tell you nothing. For example the payload is a string that just repeats what the documentation says about the error code. Others dump the kitchen sink on you and you get a full stack trace of where the error occurred in the server implementation. The former is justified as a security precaution. The latter as a way to help you debug. More likely, they both just reflect laziness.</p>
<p>In the ideal world, you&#8217;d get a detailed error payload telling you exactly which of the input parameters the application choked on and why. Not just vague words like &#8220;invalid&#8221;. Is parameter &#8220;foo&#8221; invalid for syntactical reasons? Is it invalid because inconsistent with another parameter value in the request? Is it invalid because it doesn&#8217;t match the state on the server side? Realistically, implementations often can&#8217;t spend too many CPU cycles analyzing errors and generating such detailed reports. That&#8217;s fine, but then they can include a link to a wiki a knowledge base where more details are available about the error, its common causes and the workarounds.</p>
<p>Your API should document all messages accurately and comprehensively. Faults are messages too.</p>


<p>Related posts:<ol><li><a href='http://stage.vambenepe.com/archives/936' rel='bookmark' title='Permanent Link: VMWare publishes (and submits) vCloud API'>VMWare publishes (and submits) vCloud API</a></li>
<li><a href='http://stage.vambenepe.com/archives/1538' rel='bookmark' title='Permanent Link: Introducing the Oracle Cloud API'>Introducing the Oracle Cloud API</a></li>
<li><a href='http://stage.vambenepe.com/archives/743' rel='bookmark' title='Permanent Link: Cloud API: what&#8217;s cooking between IBM and VMWare?'>Cloud API: what&#8217;s cooking between IBM and VMWare?</a></li>
<li><a href='http://stage.vambenepe.com/archives/943' rel='bookmark' title='Permanent Link: Separating model from protocol in Cloud APIs'>Separating model from protocol in Cloud APIs</a></li>
<li><a href='http://stage.vambenepe.com/archives/1284' rel='bookmark' title='Permanent Link: Waiting for events (in Cloud APIs)'>Waiting for events (in Cloud APIs)</a></li>
<li><a href='http://stage.vambenepe.com/archives/1108' rel='bookmark' title='Permanent Link: Review of Fujitsu&#8217;s IaaS Cloud API submission to DMTF'>Review of Fujitsu&#8217;s IaaS Cloud API submission to DMTF</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://stage.vambenepe.com/archives/1504/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Flavors of PaaS</title>
		<link>http://stage.vambenepe.com/archives/1453</link>
		<comments>http://stage.vambenepe.com/archives/1453#comments</comments>
		<pubDate>Fri, 30 Apr 2010 04:24:41 +0000</pubDate>
		<dc:creator>William (@vambenepe on Twitter)</dc:creator>
				<category><![CDATA[Application management]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Everything]]></category>
		<category><![CDATA[PaaS]]></category>
		<category><![CDATA[Utility computing]]></category>

		<guid isPermaLink="false">http://stage.vambenepe.com/?p=1453</guid>
		<description><![CDATA[How many flavors of PaaS do we need?

PaaS for business apps
PaaS for toy apps (simple form-based CRUD) and simple business front ends (e.g. restaurant web sites)
PaaS for games, mash-ups and social apps
PaaS for multimedia delivery and live streams
PaaS for high performance and scientific computing
PaaS for spamming, hacking and other illegal activities (Zombies as a Service)
Other?

BTW, [...]


Related posts:<ol><li><a href='http://stage.vambenepe.com/archives/1252' rel='bookmark' title='Permanent Link: Is Business Process Execution the killer app for PaaS?'>Is Business Process Execution the killer app for PaaS?</a></li>
<li><a href='http://stage.vambenepe.com/archives/1078' rel='bookmark' title='Permanent Link: Enumeration of PaaS container types'>Enumeration of PaaS container types</a></li>
<li><a href='http://stage.vambenepe.com/archives/1096' rel='bookmark' title='Permanent Link: Desirable technical characteristics of PaaS'>Desirable technical characteristics of PaaS</a></li>
<li><a href='http://stage.vambenepe.com/archives/1025' rel='bookmark' title='Permanent Link: Cloud platform patching conundrum: PaaS has it much worse than IaaS and SaaS'>Cloud platform patching conundrum: PaaS has it much worse than IaaS and SaaS</a></li>
<li><a href='http://stage.vambenepe.com/archives/1173' rel='bookmark' title='Permanent Link: PaaS as the path to MDA?'>PaaS as the path to MDA?</a></li>
<li><a href='http://stage.vambenepe.com/archives/166' rel='bookmark' title='Permanent Link: Guest on the Redmonk IT management podcast'>Guest on the Redmonk IT management podcast</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>How many flavors of PaaS do we need?</p>
<ul>
<li>PaaS for business apps</li>
<li>PaaS for toy apps (simple form-based CRUD) and simple business front ends (e.g. restaurant web sites)</li>
<li>PaaS for games, mash-ups and social apps</li>
<li>PaaS for multimedia delivery and live streams</li>
<li>PaaS for high performance and scientific computing</li>
<li>PaaS for spamming, hacking and other illegal activities (Zombies as a Service)</li>
<li>Other?</li>
</ul>
<p>BTW, doesn&#8217;t &#8220;flavors of PaaS&#8221; sound like the name of a perfume? At least when I say it with my French accent it does.</p>


<p>Related posts:<ol><li><a href='http://stage.vambenepe.com/archives/1252' rel='bookmark' title='Permanent Link: Is Business Process Execution the killer app for PaaS?'>Is Business Process Execution the killer app for PaaS?</a></li>
<li><a href='http://stage.vambenepe.com/archives/1078' rel='bookmark' title='Permanent Link: Enumeration of PaaS container types'>Enumeration of PaaS container types</a></li>
<li><a href='http://stage.vambenepe.com/archives/1096' rel='bookmark' title='Permanent Link: Desirable technical characteristics of PaaS'>Desirable technical characteristics of PaaS</a></li>
<li><a href='http://stage.vambenepe.com/archives/1025' rel='bookmark' title='Permanent Link: Cloud platform patching conundrum: PaaS has it much worse than IaaS and SaaS'>Cloud platform patching conundrum: PaaS has it much worse than IaaS and SaaS</a></li>
<li><a href='http://stage.vambenepe.com/archives/1173' rel='bookmark' title='Permanent Link: PaaS as the path to MDA?'>PaaS as the path to MDA?</a></li>
<li><a href='http://stage.vambenepe.com/archives/166' rel='bookmark' title='Permanent Link: Guest on the Redmonk IT management podcast'>Guest on the Redmonk IT management podcast</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://stage.vambenepe.com/archives/1453/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>PaaS portability challenges and the VMforce example</title>
		<link>http://stage.vambenepe.com/archives/1440</link>
		<comments>http://stage.vambenepe.com/archives/1440#comments</comments>
		<pubDate>Thu, 29 Apr 2010 06:19:49 +0000</pubDate>
		<dc:creator>William (@vambenepe on Twitter)</dc:creator>
				<category><![CDATA[Application management]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Everything]]></category>
		<category><![CDATA[IT Systems Management]]></category>
		<category><![CDATA[Manageability]]></category>
		<category><![CDATA[Management integration]]></category>
		<category><![CDATA[Middleware]]></category>
		<category><![CDATA[PaaS]]></category>
		<category><![CDATA[Portability]]></category>
		<category><![CDATA[Spring]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Utility computing]]></category>
		<category><![CDATA[VMforce]]></category>
		<category><![CDATA[VMware]]></category>

		<guid isPermaLink="false">http://stage.vambenepe.com/?p=1440</guid>
		<description><![CDATA[The VMforce announcement is a great step for SalesForce, in large part because it lets them address a recurring concern about the force.com PaaS offering: the lack of portability of Apex applications. Now they can be written using Java and Spring instead. A great illustration of how painful this issue was for SalesForce is to [...]


Related posts:<ol><li><a href='http://stage.vambenepe.com/archives/1432' rel='bookmark' title='Permanent Link: Analyzing the VMforce announcement'>Analyzing the VMforce announcement</a></li>
<li><a href='http://stage.vambenepe.com/archives/684' rel='bookmark' title='Permanent Link: Reality check on Cloud portability'>Reality check on Cloud portability</a></li>
<li><a href='http://stage.vambenepe.com/archives/1496' rel='bookmark' title='Permanent Link: From VMWare + SalesForce.com (VMForce) to VMWare + Google: VMWare&#8217;s PaaS milestones'>From VMWare + SalesForce.com (VMForce) to VMWare + Google: VMWare&#8217;s PaaS milestones</a></li>
<li><a href='http://stage.vambenepe.com/archives/1096' rel='bookmark' title='Permanent Link: Desirable technical characteristics of PaaS'>Desirable technical characteristics of PaaS</a></li>
<li><a href='http://stage.vambenepe.com/archives/906' rel='bookmark' title='Permanent Link: Thoughts on VMWare, SpringSource and PaaS'>Thoughts on VMWare, SpringSource and PaaS</a></li>
<li><a href='http://stage.vambenepe.com/archives/1252' rel='bookmark' title='Permanent Link: Is Business Process Execution the killer app for PaaS?'>Is Business Process Execution the killer app for PaaS?</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>The VMforce announcement is a great step for SalesForce, in large part because it lets them address a recurring concern about the force.com PaaS offering: the lack of portability of Apex applications. Now they can be written using Java and Spring instead. A great illustration of how painful this issue was for SalesForce is to see the contortions that Peter Coffee goes through <a href="http://cloudblog.salesforce.com/2010/04/vmforce-broadspectrum-choice-in-the-cloud.html">just to acknowledge it</a>: <em>&#8220;On the downside, a project might be delayed by debates—some in good faith, others driven by vendor FUD—over the perception of platform lock-in. Political barriers, far more than technical barriers, have likely delayed many organizations&#8217; return on the advantages of the cloud&#8221;</em>. The issue is not lock-in it&#8217;s the potential delays that may come from the perception of lock-in. Poetic.</p>
<p>Similarly, portability between clouds is also a big theme in <a href="http://blogs.vmware.com/console/2010/04/vmforce-and-vmwares-open-paas-strategy.html">Steve Herrod&#8217;s blog covering VMforce</a> as illustrated by the figure below. The message is that &#8220;write once run anywhere&#8221; is coming to the Cloud.</p>
<p><img class="aligncenter size-full wp-image-1445" title="vmforce-portability" src="http://stage.vambenepe.com/wp-content/uploads/vmforce-portability1.png" alt="" width="620" height="508" /></p>
<p>Because this is such a big part of the VMforce value proposition, both from the SalesForce and the VMWare/SpringSource side (as well as for PaaS in general), it&#8217;s worth looking at the portability aspect in more details. At least to the extent that we can do so based on this pre-announcement (VMforce is not open for developers yet). And while I am taking VMforce as an example, all the considerations below apply to any enterprise PaaS offering. VMforce just happens to be one of the brave pioneers, willing to take a first step into the jungle.</p>
<p>Beyond the use of Java as a programming language and Spring as a framework, the portability also comes from the supporting tools. This is something I did not cover in my <a href="http://stage.vambenepe.com/archives/1432">initial analysis of VMforce</a> but that Michael Cote covers well <a href="http://www.redmonk.com/cote/2010/04/28/vmforce/">on his blog</a> and Carl Brooks in his <a href="http://stage.vambenepe.com/archives/1432#comment-105698">comment</a>. Unlike the more general considerations in my previous post, these matters of tooling are hard to discuss until the tools are actually out. We can describe what they &#8220;could&#8221;, &#8220;should&#8221; and &#8220;would&#8221; do all day long, but in the end we need to look at the application in practice and see what, if anything, needs to change when I redirect my deployment target from one cloud to the other. As SalesForce&#8217;s Umit Yalcinalp <a href="http://stage.vambenepe.com/archives/1432#comment-105710">commented</a>, <em>&#8220;the details are going to be forthcoming in the coming months and it is too early to speculate&#8221;</em>.</p>
<p>So rather than speculating on what VMforce tooling will do, I&#8217;ll describe what portability questions any PaaS platform would have to address (or explicitly decline to address).</p>
<p><strong>Code portability</strong></p>
<p>That&#8217;s the easiest to address. Thanks to Java, the runtime portability problem for the core language is pretty much solved. Still, moving applications around require changes to way the application communicates with its infrastructure. Can your libraries and frameworks for data access and identity, for example, successfully encapsulate and hide the different kinds of data/identity stores behind them? Even when the stores are functionally equivalent (e.g. SQL, LDAP), they may have operational differences that matter for an enterprise application. Especially if the database is delivered (and paid for) as a service. I may well design my application differently depending on whether I am charged by the amount of data in the DB, by the number of requests to the DB, by the quantity of app-to-DB traffic or by the total processing time of my requests in the DB. Apparently force.com considers the number of &#8220;database objects&#8221; in its <a href="http://www.salesforce.com/platform/platform-edition/">pricing plans</a> and going over 200 pushes you from the &#8220;Enterprise&#8221; version to the more expensive &#8220;Unlimited&#8221; version. If I run against my local relational database I don&#8217;t think twice about having 201 &#8220;database objects&#8221;. But if I run in force.com and I otherwise can live within the limits of the &#8220;Enterprise&#8221; version I&#8217;d probably be tempted to slightly alter my data model to fit under 200 objects. The example is borderline silly, but the underlying truth is that not all differences in application infrastructure can be automatically encapsulated by libraries.</p>
<p>While code portability is a solvable problem for a reasonably large set of use cases, things get hairier for the more demanding applications. A large part of the PaaS value proposition is contingent on the willingness to give up some low-level optimizations. This, and harder portability in some cases, may just have to be part of the cost of running demanding applications in a PaaS environment. Or just keep these off PaaS for now. This is part of the <a href="http://stage.vambenepe.com/archives/1198">backward-compatible versus forward compatible Cloud dilemma</a>.</p>
<p><strong>Data portability</strong></p>
<p>I have covered data portability in the <a href="http://stage.vambenepe.com/archives/1432">previous entry</a>, in response to Steve Herrod&#8217;s comment that <em>“you should be able to extract the code from the cloud it currently runs in and move it, along with its data, to another cloud choice”</em>. Your data in the force.com database can already be moved somewhere else&#8230; as long as you&#8217;re willing to write code to get it and perform any needed transformation. In theory, any data that you can read is data that you can move (thus fulfilling Steve&#8217;s promise). The question is at what cost. Presumably Steve is referring to data migration tools that VMWare will build (or acquire) and make part of its cloud enablement platform. Another way in which VMWare is trying to assemble a more complete middleware portfolio (see <a href="http://www.oracle.com/technology/products/oracle-data-integrator/index.html">Oracle ODI</a> for an example of a complete data integration offering, which goes far beyond ETL).</p>
<p>There is a subtle difference between the intrinsic portability of Java (which will run in any JRE, modulo JDK version) and the extrinsic portability of data which can in theory be moved anywhere but each place you move it to may require a different process. A car and an oak armoire are both &#8220;portable&#8221;, but one is designed for moving while the other will only move if you bring a truck and two strong guys.</p>
<p><strong>Application service portability</strong></p>
<p>I covered this in my previous entry and Bob Warfield <a href="http://smoothspan.wordpress.com/2010/04/27/vmforce-salesforce-and-vmwares-cool-new-platform-as-a-service/">summarized</a> it as “take advantage of all those juicy services and it will be hard to back out of that platform, Java or no Java”. He is referring to all the platform services (search, reporting, mobile, integration, BPM, IdM, administration) that make a large part of the force.com value proposition. They won&#8217;t be waiting for you in your private cloud (though some may be remotely invocable, depending on how SalesForce wants to play its cards). Applications that depend on them will have to be changed, at least until we have standards interfaces for all these services (don&#8217;t hold your breath).</p>
<p><strong>Management portability</strong></p>
<p>Even if you can seamlessly migrate your application and your data from your internal servers to force.com, what do you think is going to happen to your management console, especially if it uses operating system agents? These agents are not coming along for the ride, that&#8217;s for sure. Are you going to tell your administrators that rather than having a centralized configuration/monitoring/event console they are going to have to look at cute &#8220;monitoring&#8221; web pages for each application? And all the transaction tracing, event correlation, configuration policy and end-user monitoring features they were relying on are unfortunate victims of the relentless march of progress? Good luck with that sale.</p>
<p>VMWare&#8217;s answer will probably be that they will eventually provide you with all the management capabilities that you need. And it&#8217;s a fair one, along the lines of the &#8220;Application-to-Disk Management&#8221; message at the <a href="http://www.oracle.com/oms/enterprisemanager11g/webcast-067871.html">recent launch of Oracle Enterprise Manager 11G</a>. With the difference that EM is not the only way to manage a top-to-bottom Oracle stack, just the one that we think is the best. BMC and HP aren&#8217;t locked out.</p>
<p>VMWare and SpringSource (+Hyperic) could indeed theoretically assemble a full-fledged management solution. But this doesn&#8217;t happen overnight, even with acquisitions as I know from experience both at HP Software and currently at Oracle. Integration (of management domains across the stack, of acquired application management products, of support data/services from oracle.com) is one of the main advances in <a href="http://www.oracle.com/oms/enterprisemanager11g/index.html">Enterprise Manager 11G</a> and it took work.</p>
<p>And even then, this leads to the next logical question. If you can move from cloud to cloud but you are forced to use VMWare development, deployment and management tools, haven&#8217;t you traded one lock-in problem for another?</p>
<p>Not to mention that your portability between clouds, if it depends on VMWare tools, is limited to VMWare-powered clouds (private or public). In effect, there are now three levels of portability:</p>
<ul>
<li>not portable (only runs on VMforce)</li>
<li>portable to any cloud (public or private) built using VMWare infrastructure</li>
<li>portable to any Java/Spring Cloud platform</li>
</ul>
<p>Is your application portable the way cash is portable, or the way a gift  card is portable (across stores of a retail chain)?</p>
<p>If this reminds you of the java portability debates of the early days of Enterprise Java that&#8217;s no surprise. Remember, <a href="http://stage.vambenepe.com/archives/1407">we&#8217;re replaying the tape</a>.</p>


<p>Related posts:<ol><li><a href='http://stage.vambenepe.com/archives/1432' rel='bookmark' title='Permanent Link: Analyzing the VMforce announcement'>Analyzing the VMforce announcement</a></li>
<li><a href='http://stage.vambenepe.com/archives/684' rel='bookmark' title='Permanent Link: Reality check on Cloud portability'>Reality check on Cloud portability</a></li>
<li><a href='http://stage.vambenepe.com/archives/1496' rel='bookmark' title='Permanent Link: From VMWare + SalesForce.com (VMForce) to VMWare + Google: VMWare&#8217;s PaaS milestones'>From VMWare + SalesForce.com (VMForce) to VMWare + Google: VMWare&#8217;s PaaS milestones</a></li>
<li><a href='http://stage.vambenepe.com/archives/1096' rel='bookmark' title='Permanent Link: Desirable technical characteristics of PaaS'>Desirable technical characteristics of PaaS</a></li>
<li><a href='http://stage.vambenepe.com/archives/906' rel='bookmark' title='Permanent Link: Thoughts on VMWare, SpringSource and PaaS'>Thoughts on VMWare, SpringSource and PaaS</a></li>
<li><a href='http://stage.vambenepe.com/archives/1252' rel='bookmark' title='Permanent Link: Is Business Process Execution the killer app for PaaS?'>Is Business Process Execution the killer app for PaaS?</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://stage.vambenepe.com/archives/1440/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Analyzing the VMforce announcement</title>
		<link>http://stage.vambenepe.com/archives/1432</link>
		<comments>http://stage.vambenepe.com/archives/1432#comments</comments>
		<pubDate>Wed, 28 Apr 2010 05:02:08 +0000</pubDate>
		<dc:creator>William (@vambenepe on Twitter)</dc:creator>
				<category><![CDATA[Application management]]></category>
		<category><![CDATA[BPM]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Everything]]></category>
		<category><![CDATA[Google App Engine]]></category>
		<category><![CDATA[Middleware]]></category>
		<category><![CDATA[PaaS]]></category>
		<category><![CDATA[Portability]]></category>
		<category><![CDATA[Spring]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[VMforce]]></category>
		<category><![CDATA[VMware]]></category>
		<category><![CDATA[Virtualization]]></category>

		<guid isPermaLink="false">http://stage.vambenepe.com/?p=1432</guid>
		<description><![CDATA[Let&#8217;s start with the disclosures: by most interpretations I work for a competitor to what Salesforce.com and VMWare are trying to do with VMforce. And all I know about VMforce is what I read in a few authoritative blogs by VMWare&#8217;s Steve Herrod, VMWare/SpringSource&#8217;s Rod Johnson and Salesforce&#8217;s Anshu Sharma. So no hard feeling if [...]


Related posts:<ol><li><a href='http://stage.vambenepe.com/archives/1440' rel='bookmark' title='Permanent Link: PaaS portability challenges and the VMforce example'>PaaS portability challenges and the VMforce example</a></li>
<li><a href='http://stage.vambenepe.com/archives/1496' rel='bookmark' title='Permanent Link: From VMWare + SalesForce.com (VMForce) to VMWare + Google: VMWare&#8217;s PaaS milestones'>From VMWare + SalesForce.com (VMForce) to VMWare + Google: VMWare&#8217;s PaaS milestones</a></li>
<li><a href='http://stage.vambenepe.com/archives/906' rel='bookmark' title='Permanent Link: Thoughts on VMWare, SpringSource and PaaS'>Thoughts on VMWare, SpringSource and PaaS</a></li>
<li><a href='http://stage.vambenepe.com/archives/1252' rel='bookmark' title='Permanent Link: Is Business Process Execution the killer app for PaaS?'>Is Business Process Execution the killer app for PaaS?</a></li>
<li><a href='http://stage.vambenepe.com/archives/976' rel='bookmark' title='Permanent Link: Look Ma, no hypervisor!'>Look Ma, no hypervisor!</a></li>
<li><a href='http://stage.vambenepe.com/archives/1198' rel='bookmark' title='Permanent Link: Backward-compatible vs. forward-compatible: a tale of two clouds'>Backward-compatible vs. forward-compatible: a tale of two clouds</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Let&#8217;s start with the disclosures: by most interpretations I work for a competitor to what Salesforce.com and VMWare are trying to do with VMforce. And all I know about VMforce is what I read in a few authoritative blogs by VMWare&#8217;s <a href="http://blogs.vmware.com/console/2010/04/vmforce-and-vmwares-open-paas-strategy.html">Steve Herrod</a>, VMWare/SpringSource&#8217;s <a href="http://blog.springsource.com/2010/04/27/vmforce-spring-cloud/">Rod Johnson</a> and Salesforce&#8217;s <a href="http://blog.sforce.com/sforce/2010/04/vmforce.html">Anshu Sharma</a>. So no hard feeling if you jump off right now.</p>
<p>Overall, I like what I see. Let me put it this way. I am now a lot more likely to write an application on force.com than I was last week. How could this not be a good thing for SalesForce, me and others like me?</p>
<p>On the other hand, this is also not the major announcement that the &#8220;VMforce is coming&#8221; drum-roll had tried to make us expect. If you fell for it, then I guess you can be disappointed. I didn&#8217;t and I&#8217;m not (Phil Wainewright fell for it and yet isn&#8217;t disappointed, asserting that &#8220;VMforce.com redefines the PaaS landscape&#8221; for reasons not entirely clear to me even after reading his <a href="http://blogs.zdnet.com/SAAS/?p=1071">article</a>).</p>
<p>The new thing is that force.com now supports an additional runtime, in addition to Apex. That new runtime uses the Java language, with the constraint that it is used via the Spring framework. Which is familiar territory to many developers. That&#8217;s it. That&#8217;s the VMforce announcement for all practical purposes from a user&#8217;s perspective. It&#8217;s a great step forward for force.com which was hampered by the non-standard nature of Apex, but it&#8217;s just a new runtime. All the other benefits that Anshu Sharma lists in his blog (search, reporting, mobile, integration, BPM, IdM, administration) are not new. They are the platform services that force.com offers to application writers, whether they use Apex or the new Java/Spring runtime.</p>
<p>It&#8217;s important to realize that there are two main parts to a full PaaS platform like force.com or Google App Engine. First there are application runtimes (Apex and now Java for force.com, Python and Java for GAE). They are language-dependent and you can have several of them to support different programming languages. Second are the platform services (reports, mobile, BPM, IdM etc for force.com as we saw above, mostly IdM for Google at this point) which are mostly language agnostic (beyond a library used to access them). I think of data storage (e.g. mySQL, force.com database, Google DataStore) as part of the runtime, but it&#8217;s on the edge of the grey zone. A third category is made of actual application services (e.g. the CRM web services out of SalesForce.com or the application services out of Google Apps) which I tend not to consider part of PaaS but again there are gray zones between application support services and application services. E.g. how domain-specific does your rule engine have to be before it moves from one category to the other?</p>
<p>As Umit Yalcinalp (who works for SalesForce) <a href="https://twitter.com/umityalcinalp/statuses/12964471267">told me on Twitter</a> <em>&#8220;regardless of the runtime the devs using the Force.com db will get the same platform benefits, chatter, workflow, analytics&#8221;</em>. What I called the platform services above. Which, really, is where most of the PaaS value lies anyway. A language runtime is just a starting point.</p>
<p>So where are VMWare and SpringSource in this picture? Well, from the point of view of the user nowhere, really. SalesForce could have built this platform themselves, using the Spring framework on top of Tomcat, WebLogic, JBoss&#8230; Itself running on any OS they want. With or without a hypervisor. These are all implementation details and are SalesForce&#8217;s problem, not ours as application developers.</p>
<p>It so happens that they have chosen to run this as a partnership with VMWare/SpringSource which makes a lot of sense from a portfolio/expertise perspective, of course. But this choice is not visible to the application developer making use of this platform. And it shouldn&#8217;t be. That&#8217;s the whole point of PaaS after all, that we don&#8217;t have to care.</p>
<p>But VMWare and SpringSource really want us to know that they are there, so Rod Johnson leads by lifting the curtain and explaining that:</p>
<p>&#8220;VMforce uses the Force.com physical infrastructure to run vSphere with a special customized vCloud layer that allows for seamless scaling and management. Above this layer VMforce runs SpringSource tc Server instances that provide the execution environment for the enterprise applications that run on VMforce.&#8221;</p>
<p>[Side note: notice what's missing? The operating system. It's there of course, most likely some Linux distribution but Rod glances over it, maybe because it's a missing link in VMWare's "we have all the pieces" story; unlike Oracle who can <a href="http://www.oracle.com/technology/tech/linux/index.html">provide one</a> or, even better, <a href="http://www.oracle.com/us/products/middleware/application-server/weblogic-suite-virtualization-067887.html">do without</a>.  Just saying...]</p>
<p>VMWare wants us to know they are under the covers because of course they have much larger aspirations than to be a provider to SalesForce. They want to use this as a proof point to sell their SpringSource+VMWare stack in other settings, such as private clouds and other public cloud providers (modulo whatever exclusivity period may be in their contract with SalesForce). And VMforce, if it works well when it launches, is a great validation for this strategy. It&#8217;s natural that they want people to know that they are behind the curtain and can be called on to replicate this elsewhere.</p>
<p>But let&#8217;s be clear about what part they can replicate. It&#8217;s the Java/Spring language runtime and its underlying infrastructure. Not the platform services that are part of the SalesForce platform. Not an IdM solution, not a rules engine, not a business process engine, etc. We can expect that they are hard at work trying to fill these gaps, as the RabbitMQ acquisition illustrates, but for now all this comes from force.com and isn&#8217;t directly replicable. Which means that applications that use them aren&#8217;t quite so portable.</p>
<p>In his post, Steve Herrod quickly moves past the VMforce announcement to focus on the SpringSource+VMWare infrastructure part, the one he hopes to see multiplied everywhere. The key promise, from the developers&#8217; perspective, is application portability. And while the use of Java+Spring definitely helps a lot in terms of code portability I see some promises in terms of data portability that will warrant scrutiny when VMforce actually rolls out: <em>&#8220;you should be able to extract the code from the cloud it currently runs in and move it, along with its data, to another cloud choice&#8221;</em>.</p>
<p>It sounds very nice, but the underlying issues are:</p>
<ul>
<li>Does the code change depending on whether I am talking to a local relational DB in my private cloud or whether I am on VMforce and using the force.com database?</li>
<li>If it doesn&#8217;t then the application is portable, but an extra service i still needed to actually move the data from one cloud to the other (can this be done in-flight? what downtime is needed?)</li>
<li>What about the other VMforce.com services (chatter, workflow, analytics&#8230;)? If I use them in my code can I keep using them once I migrate out of VMforce to a private cloud? Are they remotely invocable? Does the code change? And if I want to completely sever my links with SalesForce, can I find alternative implementations of these application platform services in my private cloud? Or from another public cloud provider? The answer to these is probably no, which means that you are only portable out of VMforce if you restrain yourself from using much of the value of the platform. It&#8217;s not even clear whether you can completely restrain yourself from using it, e.g. can you run on force.com without using their IdM system?</li>
</ul>
<p>All these are hard questions. I am not blaming anyone for not answering them today since no-one does. But we shouldn&#8217;t sweep them under the rug. I am sure VMWare is working on finding workable compromises but I doubt it will be as simple, clean and portable as Steve Herrod implies. It&#8217;s funny  how Steve and Anshu&#8217;s posts seem to reinforce and congratulate one another, until you realize that they are in large part talking about very different things. Anshu&#8217;s is almost entirely about the force.com application platform services (sprinkled with some weird Facebook envy), Steve&#8217;s is entirely about the application runtime and its infrastructure.</p>
<p>One thing that I am surprised not to see mentioned is the management aspect of the platform, especially considering the investment that SpringSource made in Hyperic. I can only assume that work is under way on this and that we&#8217;ll hear about it soon. One aspect of the management story that concerns me a bit is the lack of acknowledgment of the challenges of configuration management in a PaaS setting. Especially when I read Steve Herrod asserting that the VMWare/SpringSource PaaS platform is going to free us from the burden of <em>&#8220;handling code modifications that may be required as the middleware versions change&#8221;</em>. There seems to be a misconception that because the application administrators are not the ones doing the infrastructure updates they don&#8217;t need to worry about the impact of these updates on their application. Is Steve implying that the first release of the VMWare/SpringSource PaaS stack is going to be so perfect that the hypervisor, guest OS and app server will never have to be patched and versioned? If that&#8217;s not the case, then why are those patches suddenly less likely impact the application code? In fact the situation is even worse as the application administrator does not know which hypervisor/OS/middleware patches are being applied and when. They can&#8217;t test against the new version ahead of time for validation and they can&#8217;t make sure the change is scheduled during a non-critical period for their business. I wrote <a href="http://stage.vambenepe.com/archives/1025">an entire blog post</a> on this issue six months ago and it&#8217;s a little bit disheartening to see the issue flatly denied and ignored. Management is not just monitoring.</p>
<p>Here is another intriguing comment in Steve&#8217;s entry: &#8220;one of the key differentiators with EC2 based PaaS will be the efficiencies for the many-app model. Customers are frustrated with the need to buy a whole VM as the minimum service unit for their applications. Our PaaS will provide fine-grained resource separation&#8221;. I had to read it twice when I realized that the VMWare CTO was telling us that splitting a physical machine into VMs is not a good enough way to share its resources and that you really need middleware-level multi-tenancy. But who can disagree that a GAE-like architecture can support more low-traffic applications on the same server than anything based on VM-based sharing? Which (along with deep pockets) puts Google in position to offer free hosting for low-traffic applications, a great way to build adoption.</p>
<p>These are very early days in the history of PaaS. VMWare, like the rest of us, will need to tackle all these issues one by one. In the meantime, this is an interesting announcement and a noticeable milestone. Let&#8217;s just keep our eyes open on the incremental nature of progress and the long list of remaining issues.</p>
<p>[UPDATED 2010/4/29: See the follow-up post, <a href="http://stage.vambenepe.com/archives/1440">PaaS portability challenges and the VMforce example</a>.]</p>
<p>[UPDATED 2010/6/9: This entry points out how the OS level is a gap in VMWare's portfolio. They took a step in addressing this today, by <a href="http://www.mikedipetrillo.com/mikedvirtualization/2010/06/vmware-and-novell-team-up-for-suse-support.html">partnering with Novell</a> to offer SUSE support.]</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 418px; width: 1px; height: 1px; overflow: hidden;">
<h2 class="thumb clearfix">yalcinalp</h2>
</div>


<p>Related posts:<ol><li><a href='http://stage.vambenepe.com/archives/1440' rel='bookmark' title='Permanent Link: PaaS portability challenges and the VMforce example'>PaaS portability challenges and the VMforce example</a></li>
<li><a href='http://stage.vambenepe.com/archives/1496' rel='bookmark' title='Permanent Link: From VMWare + SalesForce.com (VMForce) to VMWare + Google: VMWare&#8217;s PaaS milestones'>From VMWare + SalesForce.com (VMForce) to VMWare + Google: VMWare&#8217;s PaaS milestones</a></li>
<li><a href='http://stage.vambenepe.com/archives/906' rel='bookmark' title='Permanent Link: Thoughts on VMWare, SpringSource and PaaS'>Thoughts on VMWare, SpringSource and PaaS</a></li>
<li><a href='http://stage.vambenepe.com/archives/1252' rel='bookmark' title='Permanent Link: Is Business Process Execution the killer app for PaaS?'>Is Business Process Execution the killer app for PaaS?</a></li>
<li><a href='http://stage.vambenepe.com/archives/976' rel='bookmark' title='Permanent Link: Look Ma, no hypervisor!'>Look Ma, no hypervisor!</a></li>
<li><a href='http://stage.vambenepe.com/archives/1198' rel='bookmark' title='Permanent Link: Backward-compatible vs. forward-compatible: a tale of two clouds'>Backward-compatible vs. forward-compatible: a tale of two clouds</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://stage.vambenepe.com/archives/1432/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>The battle of the Cloud Frameworks: Application Servers redux?</title>
		<link>http://stage.vambenepe.com/archives/1407</link>
		<comments>http://stage.vambenepe.com/archives/1407#comments</comments>
		<pubDate>Thu, 22 Apr 2010 03:58:26 +0000</pubDate>
		<dc:creator>William (@vambenepe on Twitter)</dc:creator>
				<category><![CDATA[Application management]]></category>
		<category><![CDATA[Automation]]></category>
		<category><![CDATA[Big picture]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Everything]]></category>
		<category><![CDATA[Management integration]]></category>
		<category><![CDATA[Middleware]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[Utility computing]]></category>

		<guid isPermaLink="false">http://stage.vambenepe.com/?p=1407</guid>
		<description><![CDATA[The battle of the Cloud Frameworks has started, and it will look a lot like the battle of the Application Servers which played out over the last decade and a half. Cloud Frameworks (which manage IT automation and runtime outsourcing) are to the Programmable Datacenter what Application Servers are to the individual IT server. In [...]


Related posts:<ol><li><a href='http://stage.vambenepe.com/archives/1216' rel='bookmark' title='Permanent Link: Generalizing the Cloud vs. SOA Governance debate'>Generalizing the Cloud vs. SOA Governance debate</a></li>
<li><a href='http://stage.vambenepe.com/archives/894' rel='bookmark' title='Permanent Link: REST in practice for IT and Cloud management (part 2: configuration management)'>REST in practice for IT and Cloud management (part 2: configuration management)</a></li>
<li><a href='http://stage.vambenepe.com/archives/186' rel='bookmark' title='Permanent Link: SpringSource Application Management Suite'>SpringSource Application Management Suite</a></li>
<li><a href='http://stage.vambenepe.com/archives/667' rel='bookmark' title='Permanent Link: Open Cloud Manifesto, circa 2004'>Open Cloud Manifesto, circa 2004</a></li>
<li><a href='http://stage.vambenepe.com/archives/1504' rel='bookmark' title='Permanent Link: Dear Cloud API, your fault line is showing'>Dear Cloud API, your fault line is showing</a></li>
<li><a href='http://stage.vambenepe.com/archives/1538' rel='bookmark' title='Permanent Link: Introducing the Oracle Cloud API'>Introducing the Oracle Cloud API</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>The battle of the Cloud Frameworks has started, and it will look a lot like the battle of the Application Servers which played out over the last decade and a half. Cloud Frameworks (which manage IT automation and runtime outsourcing) are to the <a href="http://stage.vambenepe.com/archives/565">Programmable Datacenter</a> what Application Servers are to the individual IT server. In the longer term, these battlefronts may merge, but for now we&#8217;ve been transported back in time, to the early days of Web programming. The underlying dynamic is the same. It starts with a disruptive IT event (part new technology, part new mindset). 15 years ago the disruptive event was the Web. Today it&#8217;s Cloud Computing.</p>
<p><strong>Stage 1</strong></p>
<p>It always starts with very simple use cases. For the Web, in the mid-nineties, the basic use case was &#8220;how do I return HTML that is generated by a script as opposed to a static file&#8221;. For Cloud Computing today, it is &#8220;how do I programmatically create, launch and stop servers as opposed to having to physically install them&#8221;.</p>
<p>In that sense, the IaaS APIs of today are the equivalent of the Common Gateway Interface (CGI) circa 1993/1994. Like the EC2 API and its brethren, CGI was not optimized, not polished, but it met the basic use cases and allowed many developers to write their first Web apps (which we just called &#8220;CGI scripts&#8221; at the time).</p>
<p><strong>Stage 2</strong></p>
<p>But the limitations became soon apparent. In the CGI case, it had to do with performance (the cost of the &#8220;one process per request&#8221; approach). Plus, the business potential was becoming clearer and attracted a different breed of contenders than just academic and research institutions. So we got NSAPI, ISAPI, FastCGI, Apache Modules, JServ, ZDAC&#8230;</p>
<p>We haven&#8217;t reached that stage for Cloud yet. That will be when the IaaS APIs start to support events, enumerations, queries, federated identity etc&#8230;</p>
<p><strong>Stage 3</strong></p>
<p>Stage 2 looked like the real deal, when we were in it, but little did we know that we were still just nibbling on the hors d&#8217;oeuvres. And it was short-lived. People quickly decided that they wanted more than a way to handle HTTP requests. If the Web was going to be central to most programs, then all aspects of programming had to fit well in the context of the Web. We didn&#8217;t want Web servers anymore, we wanted application servers (re-purposing a term that had been used for client-server). It needed more features, covering data access, encapsulation, UI frameworks, integration, sessions. It also needed to meet non-functional requirements: availability, scalability (hello clustering), management, identity&#8230;</p>
<p>That turned into the battle between the various Java application servers as well as between Java and Microsoft (with .Net coming along), along with other technology stacks. That&#8217;s where things got really interesting too, because we explored different ways to attack the problem. People could still program at the HTTP request level. They could use MVC framework, ColdFusion/ASP/JSP/PHP-style markup-driven applications, or portals and other higher-level modular authoring frameworks. They got access to adapters, message buses, process flows and other asynchronous mechanisms. It became clear that there was not just one way to write Web applications. And the discovery is still going on, as illustrated by the later emergence of Ruby on Rails and similar frameworks.</p>
<p><strong>Stage 4</strong></p>
<p>Stage 3 is not over for Web applications, but stage 4 is already there, as illustrated by the fact that some of the gurus of stage 3 have <a href="http://www.tbray.org/ongoing/When/201x/2010/03/15/Joining-Google">jumped</a> to stage 4. It&#8217;s when the Web is everywhere. Clients are everywhere and so are servers for that matter. The distinction blurs. We&#8217;re just starting to figure out the applications that will define this stage, and the frameworks that will best support them. The game is far from over.</p>
<p><strong>So what does it mean for Cloud Frameworks?</strong></p>
<p>If, like me, you think that the development of Cloud Frameworks will follow a path similar to that of Application Servers, then the quick retrospective above can be used as a (imperfect) crystal ball. I don&#8217;t pretend to be a Middleware historian or that these four stages are the most accurate representation, but I think they are a reasonable perspective. And they hold some lessons for Cloud Frameworks.</p>
<p><strong>It&#8217;s early</strong></p>
<p>We are at stage 1. I&#8217;ll admit that my decision to separate stages 1 and 2 is debatable and mainly serves to illustrate how early in the process we are with Cloud frameworks. Current IaaS APIs (and the toolkits that support them) are the equivalent of CGI (and the early httpd), something that&#8217;s still around (Google App Engine emulates CGI in its Python incarnation) but almost no-one programs to directly anymore. It&#8217;s raw, it&#8217;s clunky, it&#8217;s primitive. But it was a needed starting point that launched the whole field of Web development. Just like IaaS APIs like EC2 have launched the field Cloud Computing.</p>
<p>Cloud Frameworks will need to go through the equivalent of all the other stages. First, the IaaS APIs will get more optimized and capable (stage 2). Then, at stage 3, we will focus on higher-level, more productive abstraction layers (generally referred to as PaaS) at which point we should expect a thousand different approaches to bloom, and several of them to survive. I will not hazard a guess as to what stage 4 will look like (here is my guess for stage 3, in <a href="http://stage.vambenepe.com/archives/1078">two</a> <a href="http://stage.vambenepe.com/archives/1096">parts</a>).</p>
<p><strong>No need to rush standards</strong></p>
<p>One benefit of this retrospective is to highlight <a href="http://stage.vambenepe.com/archives/1344">the tragedy of Cloud standards</a> compared to Web development standards. Wouldn&#8217;t we be better off today if the development leads of AWS and a couple of other Cloud providers had been openly cooperating in a Cloud equivalent of the www-talk mailing list of yore? Out of it came a rough agreement on HTML and CGI that allowed developers to write basic Web applications in a reasonably portable way. If the same informal collaboration had taken place for IaaS APIs, we&#8217;d have a simple de-facto consensus that would support the low-hanging fruits of basic IaaS. It would allow Cloud developers to support the simplest use cases, and relieve the self-defeating pressure to standardize too early. Standards played a huge role in the development of Application Servers (especially of the Java kind), but that really took place as part of stage 3. In the absence of an equivalent to CGI in the Cloud world, we are at risk of rushing the standardization without the benefit of the experimentation and lessons that come in stage 3.</p>
<p>I am not trying to sugar-coat the history of Web standards. The HTML saga is nothing to be inspired by. But there was an original effort to build consensus that wasn&#8217;t even attempted with Cloud APIs. I like the staged process of a rough consensus that covers the basic use cases, followed by experimentation and proprietary specifications and later a more formal standardization effort. If we skip the rough consensus stage, as we did with Cloud, we end up rushing to do final step (to the tune of &#8220;customers demand Cloud standards&#8221;) even though all we need for now is an interoperable way to meet the basic use cases.</p>
<p><strong>Winners and losers</strong></p>
<p>Whoever you think of as the current leaders of the Application Server battle (hint: I work for one), they were not the obvious leaders of stages 1 and 2. So don&#8217;t be in too much of a hurry to crown the Cloud Framework kings. Those you think of today may turn out to be the Netscapes of that battle.</p>
<p><strong>New roles</strong></p>
<p>It&#8217;s not just new technology. The development of Cloud Frameworks will shape the roles of the people involved. We used to have designers who thought their job was done when they produced a picture or at best a FrameMaker or QuarkXPress document, which is what they were used to. We had &#8220;webmasters&#8221; who thought they were set for life with their new Apache skills, then quickly had to evolve or make way, a lesson for IaaS gurus of today. Under terms like <a href="http://stage.vambenepe.com/archives/1393">&#8220;DevOps&#8221;</a> new roles are created and existing roles are transformed. Nobody yet knows what will stick. But if I was an EC2 guru today I&#8217;d make sure to not get stuck providing just that. Don&#8217;t wait for other domains of Cloud expertise to be in higher demand than your current IaaS area, as by then you&#8217;ll be too late.</p>
<p><strong>It&#8217;s the stack</strong></p>
<p>There aren&#8217;t many companies out there making a living selling a stand-alone Web server. Even <a href="http://www.zeus.com/">Zeus</a>, who has a nice one, seems to be downplaying it on its site compared to its application delivery products. The combined pressure of commoditization (hello Apache) and of the demand for a full stack has made it pretty hard to sell just a Web server.</p>
<p>Similarly, it&#8217;s going to be hard to stay in business selling just portions of a Cloud Framework. For example, just provisioning, just monitoring, just IaaS-level features, etc. That&#8217;s well-understood and it&#8217;s fueling a lot of the acquisitions (e.g. VMWare&#8217;s <a href="http://blogs.vmware.com/console/2009/08/vmware-acquires-springsource.html">purchase of SpringSource</a> which in turn recently <a href="http://www.virtualization.info/2010/04/vmwarespringsource-acquires-rabbit.html">purchased RabbitMQ</a>) and partnerships (e.g. recently <a href="http://www.mspmentor.net/2010/04/09/eucalyptus-groundwork-partner-on-cloud-app-monitoring/">between Eucalyptus and GroundWork</a> though rarely do such &#8220;partnerships&#8221; rise to the level of integration of a real framework).</p>
<p>It&#8217;s not even clear what the right scope for a Cloud Framework is. What makes a full stack and what is beyond it? Is it just software to manage a private Cloud environment and/or deployments into public Clouds? Does the framework also include the actual public Cloud service? Does it include hardware in some sort of &#8220;private Cloud in a box&#8221;, of the kind that this recent <a href="http://www.thevarguy.com/2010/03/24/dell-backs-ubuntu-enterprise-cloud/">Dell/Ubuntu announcement</a> seems to be inching towards?</p>
<p><strong>Integration</strong></p>
<p>If indeed we can go by the history of Application Server to predict the future of Cloud Frameworks, then we&#8217;ll have a few stacks (with different levels of completeness, standardized or proprietary). This is what happened for Web development (the JEE stack, the .Net stack, a more loosely-defined alternative stack which is mostly open-source, niche stacks like the backend offered by Adobe for Flash apps, etc) and at some point the effort moved from focusing on standardizing the different application environment technology alternatives (e.g. J2EE) towards standardizing how the different platforms can interoperate (e.g. WS-*). I expect the same thing for Cloud Frameworks, especially as they grow out of stages 1 and 2 and embrace what we call today PaaS. At which point the two battlefields (Application Servers and Cloud Frameworks) will merge. And when this happens, I just can&#8217;t picture how one stack/framework will suffice for all. So we&#8217;ll have to define meaningful integration between them and make them work.</p>
<p>If you&#8217;re a spectator, grab plenty of popcorn. If you&#8217;re a soldier in this battle, get ready for a long campaign.</p>


<p>Related posts:<ol><li><a href='http://stage.vambenepe.com/archives/1216' rel='bookmark' title='Permanent Link: Generalizing the Cloud vs. SOA Governance debate'>Generalizing the Cloud vs. SOA Governance debate</a></li>
<li><a href='http://stage.vambenepe.com/archives/894' rel='bookmark' title='Permanent Link: REST in practice for IT and Cloud management (part 2: configuration management)'>REST in practice for IT and Cloud management (part 2: configuration management)</a></li>
<li><a href='http://stage.vambenepe.com/archives/186' rel='bookmark' title='Permanent Link: SpringSource Application Management Suite'>SpringSource Application Management Suite</a></li>
<li><a href='http://stage.vambenepe.com/archives/667' rel='bookmark' title='Permanent Link: Open Cloud Manifesto, circa 2004'>Open Cloud Manifesto, circa 2004</a></li>
<li><a href='http://stage.vambenepe.com/archives/1504' rel='bookmark' title='Permanent Link: Dear Cloud API, your fault line is showing'>Dear Cloud API, your fault line is showing</a></li>
<li><a href='http://stage.vambenepe.com/archives/1538' rel='bookmark' title='Permanent Link: Introducing the Oracle Cloud API'>Introducing the Oracle Cloud API</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://stage.vambenepe.com/archives/1407/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>A week of Oracle Middleware, Management and Cloud</title>
		<link>http://stage.vambenepe.com/archives/1400</link>
		<comments>http://stage.vambenepe.com/archives/1400#comments</comments>
		<pubDate>Tue, 20 Apr 2010 05:39:18 +0000</pubDate>
		<dc:creator>William (@vambenepe on Twitter)</dc:creator>
				<category><![CDATA[Application management]]></category>
		<category><![CDATA[Everything]]></category>
		<category><![CDATA[IT Systems Management]]></category>
		<category><![CDATA[Middleware]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Virtual appliance]]></category>
		<category><![CDATA[Virtualization]]></category>

		<guid isPermaLink="false">http://stage.vambenepe.com/?p=1400</guid>
		<description><![CDATA[Oracle has a busy week in store for people who are interested in application management. Today, the company announced:

Oracle Virtual Assembly Builder, to package and easily deploy virtualized composite applications. It&#8217;s an application-aware (via metadata) set of VM disk images. It comes with a graphical builder tool.
Oracle WebLogic Suite Virtualization Option (not the most Twitter-friendly [...]


Related posts:<ol><li><a href='http://stage.vambenepe.com/archives/1187' rel='bookmark' title='Permanent Link: Book on Middleware Management with Oracle Enterprise Manager'>Book on Middleware Management with Oracle Enterprise Manager</a></li>
<li><a href='http://stage.vambenepe.com/archives/337' rel='bookmark' title='Permanent Link: Running Oracle in Amazon&#8217;s cloud'>Running Oracle in Amazon&#8217;s cloud</a></li>
<li><a href='http://stage.vambenepe.com/archives/1538' rel='bookmark' title='Permanent Link: Introducing the Oracle Cloud API'>Introducing the Oracle Cloud API</a></li>
<li><a href='http://stage.vambenepe.com/archives/221' rel='bookmark' title='Permanent Link: Oracle/BEA Middleware go-forward plan'>Oracle/BEA Middleware go-forward plan</a></li>
<li><a href='http://stage.vambenepe.com/archives/235' rel='bookmark' title='Permanent Link: ITIL certification for Oracle IT Service Management Suite (Pink Elephant)'>ITIL certification for Oracle IT Service Management Suite (Pink Elephant)</a></li>
<li><a href='http://stage.vambenepe.com/archives/1247' rel='bookmark' title='Permanent Link: Oracle acquires Amberpoint'>Oracle acquires Amberpoint</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Oracle has a busy week in store for people who are interested in application management. Today, the company announced:</p>
<ul>
<li><a href="http://www.oracle.com/us/products/middleware/application-server/virtual-assembly-builder-067878.html">Oracle Virtual Assembly Builder</a>, to package and easily deploy virtualized composite applications. It&#8217;s an application-aware (via metadata) set of VM disk images. It comes with a graphical builder tool.</li>
<li><a href="http://us.lrd.yahoo.com/_ylt=AvfTM.6q644mcUfsHkSHQh6tcq9_;_ylu=X3oDMTE2NjA4ZW43BHBvcwMyBHNlYwNuZXdzYXJ0Ym9keQRzbGsDb3JhY2xld2VibG9n/SIG=13e6a35pm/**http%3A//www.oracle.com/us/products/middleware/application-server/weblogic-suite-virtualization-067887.html">Oracle WebLogic Suite Virtualization Option</a> (not the most Twitter-friendly name, so if you <a href="http://twitter.com/vambenepe">see me tweet</a> about &#8220;WebLogic Virtual&#8221; or &#8220;WLV&#8221; that&#8217;s what I mean), an optimized version of WebLogic Server which runs on JRockit Virtual Edition, itself on top of OVM. Notice what&#8217;s missing? The OS. If you think you&#8217;ll miss it, you may be suffering from <a href="http://en.wikipedia.org/wiki/Learned_helplessness">learned helplessness</a>. Seek help.</li>
</ul>
<p><a href="http://www.oracle.com/webapps/events/EventsDetail.jsp?p_eventId=110011&amp;src=6773871&amp;src=6773871&amp;Act=63">Later this week</a>, Oracle will announce Oracle Enterprise Manager 11g. I am not going to steal the thunder a couple of days before the announcement, but I can safely say that a large chunk of the new features relate to application management.</p>
<p>[UPDATED 2010/4/21: <a href="http://blogs.oracle.com/virtualization/2010/04/oracle_vm_and_jrockit_virtual.html">Adam</a> and <a href="http://blogs.oracle.com/applicationgrid/2010/04/oracle_makes_virtualized_java.html">Blake</a>'s blogs on the Virtual Assembly Builder and WebLogic Suite Virtualization Option announcements. And <a href="http://blogs.oracle.com/oem/2010/04/oracle_enterprise_manager_11g_1.html">Chung</a> on the upcoming EM release.]</p>


<p>Related posts:<ol><li><a href='http://stage.vambenepe.com/archives/1187' rel='bookmark' title='Permanent Link: Book on Middleware Management with Oracle Enterprise Manager'>Book on Middleware Management with Oracle Enterprise Manager</a></li>
<li><a href='http://stage.vambenepe.com/archives/337' rel='bookmark' title='Permanent Link: Running Oracle in Amazon&#8217;s cloud'>Running Oracle in Amazon&#8217;s cloud</a></li>
<li><a href='http://stage.vambenepe.com/archives/1538' rel='bookmark' title='Permanent Link: Introducing the Oracle Cloud API'>Introducing the Oracle Cloud API</a></li>
<li><a href='http://stage.vambenepe.com/archives/221' rel='bookmark' title='Permanent Link: Oracle/BEA Middleware go-forward plan'>Oracle/BEA Middleware go-forward plan</a></li>
<li><a href='http://stage.vambenepe.com/archives/235' rel='bookmark' title='Permanent Link: ITIL certification for Oracle IT Service Management Suite (Pink Elephant)'>ITIL certification for Oracle IT Service Management Suite (Pink Elephant)</a></li>
<li><a href='http://stage.vambenepe.com/archives/1247' rel='bookmark' title='Permanent Link: Oracle acquires Amberpoint'>Oracle acquires Amberpoint</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://stage.vambenepe.com/archives/1400/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Smoothing a discrete world</title>
		<link>http://stage.vambenepe.com/archives/1378</link>
		<comments>http://stage.vambenepe.com/archives/1378#comments</comments>
		<pubDate>Wed, 31 Mar 2010 04:44:59 +0000</pubDate>
		<dc:creator>William (@vambenepe on Twitter)</dc:creator>
				<category><![CDATA[Application management]]></category>
		<category><![CDATA[Automation]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Everything]]></category>
		<category><![CDATA[IT Systems Management]]></category>
		<category><![CDATA[Utility computing]]></category>

		<guid isPermaLink="false">http://stage.vambenepe.com/?p=1378</guid>
		<description><![CDATA[For the short term (until we sell one) there are three cars in my household. A manual transmission, an automatic and a CVT (continuous variable transmission). This makes me uniquely qualified to write about Cloud Computing.
That&#8217;s because Cloud Computing is yet another area in which the manual/automatic transmission analogy can be put to good use. [...]


Related posts:<ol><li><a href='http://stage.vambenepe.com/archives/612' rel='bookmark' title='Permanent Link: Exploring &#8220;IT management in a changing IT world&#8221;'>Exploring &#8220;IT management in a changing IT world&#8221;</a></li>
<li><a href='http://stage.vambenepe.com/archives/151' rel='bookmark' title='Permanent Link: IT management in a world of utility IT'>IT management in a world of utility IT</a></li>
<li><a href='http://stage.vambenepe.com/archives/1116' rel='bookmark' title='Permanent Link: Can your hypervisor radio for air support?'>Can your hypervisor radio for air support?</a></li>
<li><a href='http://stage.vambenepe.com/archives/1192' rel='bookmark' title='Permanent Link: Taxonomy of Cloud Computing Benefits'>Taxonomy of Cloud Computing Benefits</a></li>
<li><a href='http://stage.vambenepe.com/archives/1096' rel='bookmark' title='Permanent Link: Desirable technical characteristics of PaaS'>Desirable technical characteristics of PaaS</a></li>
<li><a href='http://stage.vambenepe.com/archives/1527' rel='bookmark' title='Permanent Link: CMDB in the Cloud: not your father&#8217;s CMDB'>CMDB in the Cloud: not your father&#8217;s CMDB</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>For the short term (until we sell one) there are three cars in my household. A manual transmission, an automatic and a CVT (continuous variable transmission). This makes me uniquely qualified to write about Cloud Computing.</p>
<p>That&#8217;s because Cloud Computing is yet another area in which the manual/automatic transmission analogy can be put to good use. We can even stretch it to a 4-layer analogy (now that&#8217;s elasticity):</p>
<p><strong>Manual transmission</strong></p>
<p>That&#8217;s traditional IT. Scaling up or down is done manually, by a skilled operator. It&#8217;s usually not rocket science but it takes practice to do it well. At least if you want it to be reliable, smooth and mostly unnoticed by the passengers.</p>
<p><strong>Manumatic transmission (a.k.a. Tiptronic)</strong></p>
<p>The driver still decides when to shift up or down, but only gives the command. The actual process of shifting is automated. This is how many Cloud-hosted applications work. The scale-up/down action is automated but, still contingent on being triggered by an administrator. Which is what most IaaS-deployed apps should probably aspire to at this point in time despite the glossy brochures about everything being entirely automated.</p>
<p><strong>Automatic transmission</strong></p>
<p>That&#8217;s when the scale up/down process is not just automated in its execution but also triggered automatically, based on some metrics (e.g. load, response time) and some policies. The scenario described in the aforementioned glossy brochures.</p>
<p><strong>Continuous variable transmission</strong></p>
<p>That&#8217;s when the notion of discrete gears goes away. You don&#8217;t think in terms of what gear you&#8217;re in but how much torque you want. On the IT side, you&#8217;re in PaaS territory. You don&#8217;t measure the number of servers, but rather a continuously variable application capacity metric. At least in theory (most PaaS implementations often <a href="http://googleappengine.blogspot.com/2009/12/request-performance-in-java.html">betray the underlying work</a>, e.g. via a spike in application response time when the app is not-so-transparently deployed to a new node).</p>
<p><strong>More?</strong></p>
<p>OK, that&#8217;s the analogy. There are many more of the same kind. Would you like to hear how hybrid Cloud deployments (private+public) are like hybrid cars (gas+electric)? How virtualization is like carpooling (including how you can also be inconvenienced by the BO of a co-hosted VM)? Do you want to know why painting flames on the side of your servers doesn&#8217;t make them go faster?</p>
<p>Driving and IT management have a lot in common, including bringing out the foul-mouth in us when things go wrong.</p>
<p>So, anyone wants to buy a manual VW Golf Turbo? Low mileage. Cloud-checked.</p>


<p>Related posts:<ol><li><a href='http://stage.vambenepe.com/archives/612' rel='bookmark' title='Permanent Link: Exploring &#8220;IT management in a changing IT world&#8221;'>Exploring &#8220;IT management in a changing IT world&#8221;</a></li>
<li><a href='http://stage.vambenepe.com/archives/151' rel='bookmark' title='Permanent Link: IT management in a world of utility IT'>IT management in a world of utility IT</a></li>
<li><a href='http://stage.vambenepe.com/archives/1116' rel='bookmark' title='Permanent Link: Can your hypervisor radio for air support?'>Can your hypervisor radio for air support?</a></li>
<li><a href='http://stage.vambenepe.com/archives/1192' rel='bookmark' title='Permanent Link: Taxonomy of Cloud Computing Benefits'>Taxonomy of Cloud Computing Benefits</a></li>
<li><a href='http://stage.vambenepe.com/archives/1096' rel='bookmark' title='Permanent Link: Desirable technical characteristics of PaaS'>Desirable technical characteristics of PaaS</a></li>
<li><a href='http://stage.vambenepe.com/archives/1527' rel='bookmark' title='Permanent Link: CMDB in the Cloud: not your father&#8217;s CMDB'>CMDB in the Cloud: not your father&#8217;s CMDB</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://stage.vambenepe.com/archives/1378/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>&#8220;Freeing SaaS from Cloud&#8221;: slides and notes from Cloud Connect keynote</title>
		<link>http://stage.vambenepe.com/archives/1355</link>
		<comments>http://stage.vambenepe.com/archives/1355#comments</comments>
		<pubDate>Fri, 19 Mar 2010 10:44:32 +0000</pubDate>
		<dc:creator>William (@vambenepe on Twitter)</dc:creator>
				<category><![CDATA[Application management]]></category>
		<category><![CDATA[Business process]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Conference]]></category>
		<category><![CDATA[Everything]]></category>
		<category><![CDATA[Governance]]></category>
		<category><![CDATA[Management integration]]></category>
		<category><![CDATA[SaaS]]></category>
		<category><![CDATA[Trade show]]></category>
		<category><![CDATA[Utility computing]]></category>

		<guid isPermaLink="false">http://stage.vambenepe.com/?p=1355</guid>
		<description><![CDATA[I got invited to give a short keynote presentation during the Cloud Connect conference this week at the Santa Clara Convention Center (thanks Shlomo and Alistair). Here are the slides (as PPT and PDF). They are visual support for my bad jokes rather than a medium for the actual message. So here is an annotated [...]


Related posts:<ol><li><a href='http://stage.vambenepe.com/archives/1025' rel='bookmark' title='Permanent Link: Cloud platform patching conundrum: PaaS has it much worse than IaaS and SaaS'>Cloud platform patching conundrum: PaaS has it much worse than IaaS and SaaS</a></li>
<li><a href='http://stage.vambenepe.com/archives/1344' rel='bookmark' title='Permanent Link: Standards Disconnect at Cloud Connect'>Standards Disconnect at Cloud Connect</a></li>
<li><a href='http://stage.vambenepe.com/archives/1237' rel='bookmark' title='Permanent Link: Everything you always wanted to know about SaaS but were afraid to ask'>Everything you always wanted to know about SaaS but were afraid to ask</a></li>
<li><a href='http://stage.vambenepe.com/archives/160' rel='bookmark' title='Permanent Link: David Linthicum on SaaS, enterprise architecture and management'>David Linthicum on SaaS, enterprise architecture and management</a></li>
<li><a href='http://stage.vambenepe.com/archives/216' rel='bookmark' title='Permanent Link: SaaS management: it&#8217;s MUWS and MOWS all over again'>SaaS management: it&#8217;s MUWS and MOWS all over again</a></li>
<li><a href='http://stage.vambenepe.com/archives/667' rel='bookmark' title='Permanent Link: Open Cloud Manifesto, circa 2004'>Open Cloud Manifesto, circa 2004</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>I got invited to give a short keynote presentation during the Cloud Connect conference this week at the Santa Clara Convention Center (thanks <a href="http://www.shlomoswidler.com/">Shlomo</a> and <a href="http://www.bitcurrent.com/">Alistair</a>). Here are the slides (as <a href="http://stage.vambenepe.com/wp-content/uploads/CloudConnect2010-vambenepe-SaaS.ppt">PPT</a> and <a href="http://stage.vambenepe.com/wp-content/uploads/CloudConnect2010-vambenepe-SaaS.pdf">PDF</a>). They are visual support for my bad jokes rather than a medium for the actual message. So here is an annotated version.</p>
<p style="text-align: center;"><a href="http://stage.vambenepe.com/wp-content/uploads/CloudConnect2010-vambenepe-SaaS-02.png"><img class="aligncenter size-full wp-image-1357" title="CloudConnect2010-vambenepe-SaaS-02" src="http://stage.vambenepe.com/wp-content/uploads/CloudConnect2010-vambenepe-SaaS-02.png" alt="" width="576" height="432" /></a></p>
<p>I used this first slide (a compilation of representations of the 3-layer Cloud stack) to poke some fun at this ubiquitous model of the Cloud architecture. Like all models, it&#8217;s neither true nor false. It&#8217;s just more or less useful to tackle a given task. While this 3-layer stack can be relevant in the context of discussing economic aspects of Cloud Computing (e.g. Opex vs. Capex in an on-demand world), it is useless and even misleading in the context of some more actionable topics for SaaS: chiefly, how you deliver such services, how you consume them and how you manage them.</p>
<p>In those contexts, you shouldn&#8217;t let yourself get too distracted by the &#8220;aaS&#8221; aspect of SaaS and focus on what it really is.</p>
<p style="text-align: center;"><a href="http://stage.vambenepe.com/wp-content/uploads/CloudConnect2010-vambenepe-SaaS-03.png"><img class="aligncenter size-full wp-image-1358" title="CloudConnect2010-vambenepe-SaaS-03" src="http://stage.vambenepe.com/wp-content/uploads/CloudConnect2010-vambenepe-SaaS-03.png" alt="" width="576" height="432" /></a></p>
<p>Which is&#8230; a web application (by which I include both HTML access for humans and programmatic access via APIs.). To illustrate this point, I summarized the content of <a href="http://stage.vambenepe.com/archives/1237">this blog entry</a>. No need to repeat it here. The bottom line is that any distinction between SaaS and POWA (Plain Old Web Applications) is at worst arbitrary and at best concerned with the business relationship between the provider and the consumer rather than  technical aspects of the application.</p>
<p>Which means that for most technical aspect of how SaaS is delivered, consumed and managed, what you should care about is that you are dealing with a Web application, not a Cloud service. To illustrate this, I put up the&#8230;</p>
<p style="text-align: center;"><a href="http://stage.vambenepe.com/wp-content/uploads/CloudConnect2010-vambenepe-SaaS-04.png"><img class="aligncenter size-full wp-image-1359" title="CloudConnect2010-vambenepe-SaaS-04" src="http://stage.vambenepe.com/wp-content/uploads/CloudConnect2010-vambenepe-SaaS-04.png" alt="" width="576" height="432" /></a></p>
<p>&#8230; guillotine slide. Which is probably the only thing people will remember from the presentation, based on the ample feedback I got about it. It probably didn&#8217;t hurt that I also made fun of my country of origin (you can never go wrong making fun of France), saying that the guillotine was our preferred way of solving any problem and also the last reliable piece of technology invented in France (no customer has ever come back to complain). Plus, enough people in the audience seemed to share my lassitude with the 3-layer Cloud stack to find its beheading cathartic.</p>
<p>Come to think about it, there are more similarities. The guillotine is to the axe what Cloud Computing is to traditional IT. So I may use it again in Cloud presentations.</p>
<p>Of course this beheading is a bit excessive. There are some aspects for which the IaaS/PaaS/SaaS continuum makes sense, e.g. around security and compliance. In areas related to multi-tenancy and the delegation of control to a third party, etc. To the extent that these concerns can be addressed consistently across the Cloud stack they should be.</p>
<p>But focusing on these &#8220;Cloud&#8221; aspects of SaaS is missing the forest for the tree.</p>
<p>A large part of the Cloud value proposition is increased flexibility. At the infrastructure level, being able to provision a server in minutes rather than days or weeks, being able to turn one off and instantly stop paying for it, are huge gains in flexibility. It doesn&#8217;t work quite that way at the application level. You rarely have 500 new employees joining overnight who need to have their email and CRM accounts provisioned. This is not to minimize the difficulties of deploying and scaling individual applications (any improvement is welcome on this). But those difficulties are not what is crippling the ability of IT to respond to business needs.</p>
<p>Rather, at the application level, the true measure of flexibility is the control you maintain on your business processes and their orchestration across applications. How empowered (or scared) you are to change them (either because you want to, e.g. entering a new business, or because you have to, e.g. a new law). How well your enterprise architecture has been defined and implemented. How much visibility you have into the transactions going through your business applications.</p>
<p>It&#8217;s about dealing with composite applications, whether or not its components are on-premise or &#8220;in the Cloud&#8221;. Even applications like Salesforce.com see a <a href="http://twitter.com/edwk/status/10206575123">large number of invocations</a> from their APIs rather than their HTML front-end. Which means that there are some business applications calling them (either other SaaS, custom applications or packaged applications with an integration to Salesforce). Which means that the actual business transactions go across a composite system and have to be managed as such, independently of the deployment model of each participating application.</p>
<p>[Side note: One joke that fell completely flat was that it was unlikely that the invocations of Salesforce  through the Web services APIs be the works of sales people telneting to port 80 and typing HTTP and SOAP headers. Maybe I spoke too quickly (as I often do), or the audience was less nerdy than I expected (though I recognized some high-ranking members of the nerd aristocracy). Or maybe they all got it but didn't laugh because I forgot to take encryption into account?]</p>
<p>At this point I launched into a very short summary of the benefits of SOA governance/management, real user experience monitoring, BTM and application-centric IT management in general. Which is very succinctly summarized on the slide by the &#8220;SOA&#8221; label on the receiving bucket. I would have needed another 10 minutes to do this subject justice. Maybe at Cloud Connect 2011? Alistair?</p>
<p style="text-align: center;"><a href="http://stage.vambenepe.com/wp-content/uploads/vambenepe-cloudconnect-keynote2.jpg"><img class="aligncenter size-full wp-image-1354" title="vambenepe-cloudconnect-keynote" src="http://stage.vambenepe.com/wp-content/uploads/vambenepe-cloudconnect-keynote2.jpg" alt="" width="576" height="369" /></a></p>
<p>This <a href="http://www.flickr.com/photos/adunne/4441722146/">picture</a> of me giving the presentation at Cloud Connect is the work of <a href="http://www.flickr.com/people/adunne/">Alex Dunne</a>.</p>
<p>The guillotine picture is the work of <a href="http://www.flickr.com/photos/rustyboxcars/">Rusty Boxcars</a> who  didn&#8217;t just take the photo but apparently built the model (yes it&#8217;s a  small-size model, look closely). <a href="http://www.flickr.com/photos/rustyboxcars/2610718075/">Here it is</a> in its original, unedited, glory. My edited version is available under  the same <a href="http://creativecommons.org/licenses/by-sa/2.0/deed.en">CC license</a> to anyone who wants to grab it.</p>


<p>Related posts:<ol><li><a href='http://stage.vambenepe.com/archives/1025' rel='bookmark' title='Permanent Link: Cloud platform patching conundrum: PaaS has it much worse than IaaS and SaaS'>Cloud platform patching conundrum: PaaS has it much worse than IaaS and SaaS</a></li>
<li><a href='http://stage.vambenepe.com/archives/1344' rel='bookmark' title='Permanent Link: Standards Disconnect at Cloud Connect'>Standards Disconnect at Cloud Connect</a></li>
<li><a href='http://stage.vambenepe.com/archives/1237' rel='bookmark' title='Permanent Link: Everything you always wanted to know about SaaS but were afraid to ask'>Everything you always wanted to know about SaaS but were afraid to ask</a></li>
<li><a href='http://stage.vambenepe.com/archives/160' rel='bookmark' title='Permanent Link: David Linthicum on SaaS, enterprise architecture and management'>David Linthicum on SaaS, enterprise architecture and management</a></li>
<li><a href='http://stage.vambenepe.com/archives/216' rel='bookmark' title='Permanent Link: SaaS management: it&#8217;s MUWS and MOWS all over again'>SaaS management: it&#8217;s MUWS and MOWS all over again</a></li>
<li><a href='http://stage.vambenepe.com/archives/667' rel='bookmark' title='Permanent Link: Open Cloud Manifesto, circa 2004'>Open Cloud Manifesto, circa 2004</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://stage.vambenepe.com/archives/1355/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Waiting for events (in Cloud APIs)</title>
		<link>http://stage.vambenepe.com/archives/1284</link>
		<comments>http://stage.vambenepe.com/archives/1284#comments</comments>
		<pubDate>Thu, 18 Feb 2010 07:26:59 +0000</pubDate>
		<dc:creator>William (@vambenepe on Twitter)</dc:creator>
				<category><![CDATA[Application management]]></category>
		<category><![CDATA[Automation]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Desired state]]></category>
		<category><![CDATA[Everything]]></category>
		<category><![CDATA[IT Systems Management]]></category>
		<category><![CDATA[Manageability]]></category>
		<category><![CDATA[Management integration]]></category>
		<category><![CDATA[Protocols]]></category>
		<category><![CDATA[Specs]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Utility computing]]></category>

		<guid isPermaLink="false">http://stage.vambenepe.com/?p=1284</guid>
		<description><![CDATA[Events/alerts/notifications have been a central concept in IT management at least since the first SNMP trap was emitted, and probably even long before that. And yet they are curiously absent from all the Cloud management APIs/protocols. If you think that&#8217;s because &#8220;THE CLOUD CHANGES EVERYTHING&#8221; then you may have to think again. Over the last [...]


Related posts:<ol><li><a href='http://stage.vambenepe.com/archives/943' rel='bookmark' title='Permanent Link: Separating model from protocol in Cloud APIs'>Separating model from protocol in Cloud APIs</a></li>
<li><a href='http://stage.vambenepe.com/archives/1007' rel='bookmark' title='Permanent Link: The future (2006 version), has arrived'>The future (2006 version), has arrived</a></li>
<li><a href='http://stage.vambenepe.com/archives/559' rel='bookmark' title='Permanent Link: Is notification wrapping getting a bum rap?'>Is notification wrapping getting a bum rap?</a></li>
<li><a href='http://stage.vambenepe.com/archives/863' rel='bookmark' title='Permanent Link: REST in practice for IT and Cloud management (part 1: Cloud APIs)'>REST in practice for IT and Cloud management (part 1: Cloud APIs)</a></li>
<li><a href='http://stage.vambenepe.com/archives/1504' rel='bookmark' title='Permanent Link: Dear Cloud API, your fault line is showing'>Dear Cloud API, your fault line is showing</a></li>
<li><a href='http://stage.vambenepe.com/archives/1161' rel='bookmark' title='Permanent Link: REST in practice for IT and Cloud management (part 3: wrap-up)'>REST in practice for IT and Cloud management (part 3: wrap-up)</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Events/alerts/notifications have been a central concept in IT management at least since the first SNMP trap was emitted, and probably even long before that. And yet they are curiously absent from all the Cloud management APIs/protocols. If you think that&#8217;s because &#8220;THE CLOUD CHANGES EVERYTHING&#8221; then you may have to think again. Over the last few days, two of the most experienced practitioners of Cloud computing pointed out that this omission is a real pain in the neck. RightScale&#8217;s Thorsten von Eicken was <a href="http://blog.rightscale.com/2010/02/13/top-cloud-api-sins/">first</a> to request <em>&#8220;an event based interface instead of a request-reply based interface&#8221;</em>, pointing out that <em>&#8220;we run a good number of machines that do nothing but chew up 100% cpu polling EC2 to detect changes&#8221;</em>. George Reese <a href="http://broadcast.oreilly.com/2010/02/towards-event-driven-cloud-apis.html">seconded</a> and started to sketch a solution. And while these blog posts gave the issue increased visibility recently, it has been a recurring topic on the AWS Forum and other similar discussion boards for quite some time. For example, in <a href="http://developer.amazonwebservices.com/connect/thread.jspa?messageID=49570">this thread</a> going back to 2006, an Amazon employee wrote that <em>&#8220;this is a feature we&#8217;ve discussed recently and we&#8217;re looking at options&#8221;</em> (incidentally, I see a post by Thorsten in that old thread). We&#8217;re still waiting.</p>
<p>Let&#8217;s look at what it would take to define such a feature.</p>
<p>I have some experience with events for IT management, having been involved in the <a href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsn">WS-Notification family of specification</a>s and having co-chaired the OASIS technical committee that standardized them. This post is not about foisting WS-Notification on Cloud APIs, but just about surfacing some of the questions that come up when you try to standardize such a mechanism. While the main use cases for WS-Notification came from IT (and Grid) management, it was supposed to be a generic mechanism. A Cloud-centric eventing protocol can be made simpler by focusing on fewer use cases (Cloud scenarios only). In addition, WS-Notification was marred by <a href="http://stage.vambenepe.com/archives/1261">the complexity-is-a-sign-of-greatness spirit of the time</a> . On this too, a Cloud eventing protocol could improve things by keeping <span style="text-decoration: line-through;">IBM at bay</span> simplicity in mind.</p>
<p><strong>Types of event</strong></p>
<p>When you pull the state of a resource to see if anything changed,  you don&#8217;t have to tell the provider what kind of change you are interested in. If, on the other hand, you want the provider to notify you, then they need to know what you care about. You may not want to be notified on every single change in the resource state. How do you describe the changes you care about? Is there an agreed-upon set of states for the resource and you are only notified on state transitions? Can you indicate the minimum severity level for an event to be emitted? Who determines the severity of an event? Or do you get to specify what fields in the resource state you want to watch? What about numeric values for which you may not want to be notified of every change but only when a threshold is crossed? Do you get to specify a query and get notified whenever the query result changes? In WS-Notification some of this is handled by <a href="http://docs.oasis-open.org/wsn/wsn-ws_topics-1.3-spec-os.pdf">WS-Topics</a> which I still like conceptually (I co-edited it) but is too complex for the task at hand.</p>
<p><strong>Event formats</strong></p>
<p>What format are the events serialized in? How is the even metadata captured (e.g. time stamp of observation, which may not be the same as the time at which the notification message was sent)? If the event payload is a representation of the new state of the resource, does it indicate what field changes (and what the old value was)? How do you keep event payloads consistent with the resource representation in the request/response interactions? If many events occur near the same time, can you group them in one notification message for better scalability?</p>
<p><strong>Subscription creation</strong></p>
<p>Presumably you need a subscription mechanism. Is the subscription set in stone when the resource is created? Or can you come later and subscribe? If subscription is an operation on the resource itself, how do you subscribe for events on something that doesn&#8217;t exist yet (e.g. &#8220;create a VM and notify me once it&#8217;s started&#8221;)? Do you get to set subscriptions on a per-resource-basis? Or is this a global setting for all the resources that you own? Can you have two different subscriptions on the same resource (e.g. a &#8220;critical events only&#8221; subscription that exist throughout the life of the resource, plus a &#8220;lots of events please&#8221; subscription that you keep for a few hours while troubleshooting)?</p>
<p><strong>Subscription management</strong></p>
<p>Do you get to come back and update/pause/delete a subscription? Do you get to change what filter the subscription carries? Or is it set in stone until the subscription expires? Can you change the delivery endpoint? What if events fail to be delivered? Does the provider cancel your subscription? After how many failures? Does it just pause it for a few hours? Keep trying?</p>
<p><strong>Subscription expiration</strong></p>
<p>Who sets the expiration period? The subscriber? Can the provider set a max duration? Do you get a warning message before the subscription expires? Can you renew a subscription or do you have to create a new one? Do you get a message telling you that it has expired? Where are these subscription-lifecycle messages sent? To the same endpoint as the regular messages? What if your subscription is being killed because your deliver endpoint is down, clearly it makes no sense to send the warning message to that same endpoint. Do you provide a separate &#8220;subscription management&#8221; endpoint (different from the event delivery endpoint) when you subscribe? Alternatively, does an email message get sent to the registered user who set the subscription?</p>
<p><strong>Delivery reliability</strong></p>
<p>How reliable do you want the notifications to be? Should the emitter retry until they&#8217;ve received a confirmation? How long do they keep messages that can&#8217;t be delivered? Some may have a very short shelf life while others are still useful weeks later. If you don&#8217;t have a reliable mechanism but you really &#8220;need to know about a lost server within a minute of it disappearing&#8221; (the example Georges gives) then in reality you may still have to poll just to make sure that an event wasn&#8217;t lost. If you haven&#8217;t received an event in a while, how can you test if the subscription is still working? Should subscriptions send a heartbeat message once a while?</p>
<p><strong>Delivery mechanism</strong></p>
<p>How do you deliver notifications? Do you keep HTTP connections open through tricks similar to how self-updating web pages work (e.g. COMET, long polling and soon WebSockets)? Or do you just provide a listener endpoint to which the notifier tries to connect (which, in the case of public cloud deployments, means you need to have a publicly-addressable listener, but hopefully not on the same Cloud infrastructure). Do you use XMPP? AMQP? Email? Can I have you hold my events and let me come pull them?</p>
<p><strong>Security</strong></p>
<p>Do you need to verify the origin of the events you receive? Or do you assume they may be forged and always initiate a connection to the provider to double-check? And on the other side, what are the security requirements for event delivery? If a user looses some of their privileges, do you have to go and cancel the still-active subscriptions that they created?</p>
<p><strong>Throttling</strong></p>
<p>Is there a maximum event rate? Do you get charged for the events the Cloud provider sends you? How do you make sure that someone doesn&#8217;t create a subscription pointing to the wrong endpoint (either erroneously or maliciously, e.g. DoS). Do you send a test message at registration asking the delivery endpoint to acknowledge that they indeed want to receive these notifications?</p>
<p><strong>Conclusion</strong></p>
<p>My goal is not to argue that we cannot have a simple yet good enough notification system or to scare anyone from attempting to define it. It&#8217;s just to show that it&#8217;s not as simple as it may seem at first blush. But there probably is a sweetspot and people like Thorsten and George are very well qualified to find it.</p>
<p>[UPDATED 2010/4/7: Amazon releases <a href="http://aws.typepad.com/aws/2010/04/introducing-the-amazon-simple-notification-service.html">AWS Simple notification Service</a>. Not just as an eventing feature for the Cloud API, as a generic notification service. Which can, of course, also carry Cloud management events. Though at this point you're on your own to publish them from your instances, it doesn't look like the AWS infrastructure can do it for you. Which means, for example, that you're not going to be able to publish an event for a sudden crash.]</p>


<p>Related posts:<ol><li><a href='http://stage.vambenepe.com/archives/943' rel='bookmark' title='Permanent Link: Separating model from protocol in Cloud APIs'>Separating model from protocol in Cloud APIs</a></li>
<li><a href='http://stage.vambenepe.com/archives/1007' rel='bookmark' title='Permanent Link: The future (2006 version), has arrived'>The future (2006 version), has arrived</a></li>
<li><a href='http://stage.vambenepe.com/archives/559' rel='bookmark' title='Permanent Link: Is notification wrapping getting a bum rap?'>Is notification wrapping getting a bum rap?</a></li>
<li><a href='http://stage.vambenepe.com/archives/863' rel='bookmark' title='Permanent Link: REST in practice for IT and Cloud management (part 1: Cloud APIs)'>REST in practice for IT and Cloud management (part 1: Cloud APIs)</a></li>
<li><a href='http://stage.vambenepe.com/archives/1504' rel='bookmark' title='Permanent Link: Dear Cloud API, your fault line is showing'>Dear Cloud API, your fault line is showing</a></li>
<li><a href='http://stage.vambenepe.com/archives/1161' rel='bookmark' title='Permanent Link: REST in practice for IT and Cloud management (part 3: wrap-up)'>REST in practice for IT and Cloud management (part 3: wrap-up)</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://stage.vambenepe.com/archives/1284/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Is Business Process Execution the killer app for PaaS?</title>
		<link>http://stage.vambenepe.com/archives/1252</link>
		<comments>http://stage.vambenepe.com/archives/1252#comments</comments>
		<pubDate>Wed, 10 Feb 2010 09:26:29 +0000</pubDate>
		<dc:creator>William (@vambenepe on Twitter)</dc:creator>
				<category><![CDATA[Application management]]></category>
		<category><![CDATA[BPEL]]></category>
		<category><![CDATA[BPM]]></category>
		<category><![CDATA[Business process]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Everything]]></category>
		<category><![CDATA[Google App Engine]]></category>
		<category><![CDATA[Middleware]]></category>
		<category><![CDATA[PaaS]]></category>
		<category><![CDATA[Portability]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Utility computing]]></category>

		<guid isPermaLink="false">http://stage.vambenepe.com/?p=1252</guid>
		<description><![CDATA[Have you noticed the slow build-up of business process engines available &#8220;as a service&#8221;? Force.com recently introduced a &#8220;Visual Process Manager&#8221;. Amazon is looking for product managers to help customers &#8220;securely compos[e] processes using capabilities from all parts of their organization as well as those outside their organization, including existing legacy applications, long-running activities, human [...]


Related posts:<ol><li><a href='http://stage.vambenepe.com/archives/1078' rel='bookmark' title='Permanent Link: Enumeration of PaaS container types'>Enumeration of PaaS container types</a></li>
<li><a href='http://stage.vambenepe.com/archives/1096' rel='bookmark' title='Permanent Link: Desirable technical characteristics of PaaS'>Desirable technical characteristics of PaaS</a></li>
<li><a href='http://stage.vambenepe.com/archives/1025' rel='bookmark' title='Permanent Link: Cloud platform patching conundrum: PaaS has it much worse than IaaS and SaaS'>Cloud platform patching conundrum: PaaS has it much worse than IaaS and SaaS</a></li>
<li><a href='http://stage.vambenepe.com/archives/142' rel='bookmark' title='Permanent Link: An interesting business process query language'>An interesting business process query language</a></li>
<li><a href='http://stage.vambenepe.com/archives/209' rel='bookmark' title='Permanent Link: Emulating a long-running process (and a scheduler) in Google App Engine'>Emulating a long-running process (and a scheduler) in Google App Engine</a></li>
<li><a href='http://stage.vambenepe.com/archives/1453' rel='bookmark' title='Permanent Link: Flavors of PaaS'>Flavors of PaaS</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Have you noticed the slow build-up of business process engines available &#8220;as a service&#8221;? Force.com recently introduced a <a href="http://www.salesforce.com/platform/process/">&#8220;Visual Process Manager&#8221;</a>. Amazon is <a href="https://us-amazon.icims.com/jobs/109825/job?in_iframe=1">looking for</a> product managers to help customers <em>&#8220;securely compos[e] processes using capabilities from all parts of their organization as well as those outside their organization, including existing legacy applications, long-running activities, human interactions, cloud services, or even complex processes provided by business partners&#8221;</em>. I&#8217;ve read somewhere (can&#8217;t find a link right now) that WSO2 was planning to make its <a href="http://wso2.com/products/business-process-server/">Business Process Server</a> available as a Cloud service. I haven&#8217;t tracked Azure very closely, but I expect <a href="http://www.microsoft.com/windowsazure/appfabric/">AppFabric</a> to soon support a BizTalk-like process engine. And I wouldn&#8217;t be surprised if VMWare decided to make an acquisition in the area of business process execution.</p>
<p>Attacking PaaS from the business process angle is counter-intuitive. Rather, isn&#8217;t the obvious low-hanging fruit for PaaS a simple synchronous HTTP request handler (e.g. a servlet or its Python, Ruby, etc equivalent)? Which is what Google App Engine (GAE) and Heroku mainly provide. GAE almost defined PaaS as a category in the same way that Amazon EC2 defined IaaS. The expectation that a CGI or servlet-like container naturally precedes a business process engine is also reinforced by the history of middleware stacks. Simple HTTP request-response is the first thing that gets defined (the first version of the servlet package was java.servlet.* since it even predates javax), the first thing that gets standardized (JSR 53: servlet 2.3 and JSP 1.2) and the first thing that gets widely commoditized (e.g. Apache Tomcat). Rather than a core part of the middleware stack, business process engines (BPEL and the like) are typically thought of as a more &#8220;advanced&#8221; or &#8220;enterprise&#8221; capability, one that come later, as part of the extended middleware stack.</p>
<p>But nothing says it has to be that way. If you think about it a bit longer, there are some reasons why business process execution might actually be a more logical beach head for PaaS  than simple HTTP request handlers.</p>
<p><strong>1) Small contract</strong></p>
<p>Architecturally, the contract between a business process engine and the deployed entities (process definitions) is much smaller than the contract of a GAE-style HTTP handler. Those GAE contracts include an entire programming language and lots of libraries. A BPEL container, on the other hand, has a simple contract. It&#8217;s documented in <a href="http://docs.oasis-open.org/wsbpel/2.0/OS/wsbpel-v2.0-OS.html">one specification</a> (plus a few dependencies) and offers basic activities like routing logic, message correlation, simple data manipulation, compensation handlers and service invocation. You may not think of BPEL as &#8220;simple&#8221; but would you rather implement a BPEL engine or a complete Python interpreter along with most of the core libraries? I thought so. That&#8217;s what I mean by a simpler (narrower) contract. And BPEL is just one example, I suspect some PaaS platforms will take a more bare-bone approach (e.g. no &#8220;scopes&#8221;).</p>
<p>Just like &#8220;good fences make good neighbors&#8221;, small contracts make good Cloud services. When your container only interprets a business process definition (typically an XML document), you don&#8217;t need to worry about intercepting/preventing all the nasty low-level APIs (e.g. unfettered network access, filesystem reads, OS calls&#8230;) that are not acceptable in a PaaS situation. But that is what Google had to do in the process of pairing down a general-purpose programming language to fit into the constraints of a PaaS container. There is no intrinsic reason why a synchronous HTTP request handler has to have access to image-manipulation libraries and a business process handler doesn&#8217;t. But the use cases tend to push you in that direction and the expectations have been set. As a result, a business process engine is architecturally a better candidate for being delivered as a Cloud service.</p>
<p><strong>2) Major differentiator over IaaS-based solutions</strong></p>
<p>Practically speaking, it is pretty easy today to get a (synchronous) Web app framework up and running &#8220;in the Cloud&#8221;. Provisioning a Django, PHP, RoR or Tomcat (plus the Java framework of your choice) stack on EC2 is a well-traveled path. Even auto-scaling these things is pretty well understood. I am the first one to scream that &#8220;here is an AMI of our server stack&#8221; is *not* the same as PaaS, but truth be told many people are happy enough with it. As a result, the benefit of going from a &#8220;web app on IaaS&#8221; situation to GAE-like situation is not perceived as very compelling. I suspect the realization may hit later, but for now people are happy to trade the simplified administration and extra scalability of PaaS for the ability to keep their current framework (MySQL and all) unchanged.</p>
<p>There is no fundamental reason why you can&#8217;t run a business process engine on top of an IaaS-provisioned infrastructure. It&#8217;s just that you are mostly on your own at this point. Even if you find an existing public AMI that meets your needs, I doubt you&#8217;ll find a well-tested way to manage, backup and auto-scale this system (marrying IaaS-level invocations with container-level and DB-level tasks). Or if you do it will probably cost you. In that &#8220;new frontier&#8221; context, a true PaaS alternative to the &#8220;build it on top of IaaS&#8221; approach is a lot more compelling than if all you need is yet another RoR-on-EC2 system.</p>
<p>When deciding whether to walk back to your hotel after dinner or take a cab, you don&#8217;t just consider the distance. How familiar you are with the neighborhood and how safe it appears are also important parameters.</p>
<p><strong>3) There is an existing market</strong></p>
<p>This may not be obvious to people who come to PaaS from a Web application framework perspective, but there is a large market for business process engines in enterprise integration scenarios. Whether it&#8217;s Oracle Fusion Middleware, Microsoft BizTalk, webMethods (now Software AG) or others, this is a very common and useful tool in the enterprise computing toolbox. If this is the market you are after (rather than creating Facebook apps or the next Twitter), then you have to address this need. Not to mention that business processes engines are often used for partner integration scenarios (which makes hosting in a public Cloud a natural choice).</p>
<p><strong>Conclusion</strong></p>
<p>In the end, both synchronous and asynchronous execution engines are useful, as are other core services like storage (here is my proposed <a href="http://stage.vambenepe.com/archives/1078">list of PaaS container types</a>). I just wanted to bring some attention to business process execution because I think PaaS is the context in which its profile will rise to higher prominence. I also anticipate that this rise will lead to some very interesting progress and innovation in the way these processes are defined, deployed and managed. We haven&#8217;t yet seen, in this area, the relentless evolutionary pressure that has shaped today&#8217;s synchronous Web application frameworks. Fun times ahead.</p>
<p>[UPDATED 2010/2/18: <a href="http://services.mwdadvisors.com/bpm/news/?p=106">More information</a> about Salesforce.com's Visual Process Manager.]</p>


<p>Related posts:<ol><li><a href='http://stage.vambenepe.com/archives/1078' rel='bookmark' title='Permanent Link: Enumeration of PaaS container types'>Enumeration of PaaS container types</a></li>
<li><a href='http://stage.vambenepe.com/archives/1096' rel='bookmark' title='Permanent Link: Desirable technical characteristics of PaaS'>Desirable technical characteristics of PaaS</a></li>
<li><a href='http://stage.vambenepe.com/archives/1025' rel='bookmark' title='Permanent Link: Cloud platform patching conundrum: PaaS has it much worse than IaaS and SaaS'>Cloud platform patching conundrum: PaaS has it much worse than IaaS and SaaS</a></li>
<li><a href='http://stage.vambenepe.com/archives/142' rel='bookmark' title='Permanent Link: An interesting business process query language'>An interesting business process query language</a></li>
<li><a href='http://stage.vambenepe.com/archives/209' rel='bookmark' title='Permanent Link: Emulating a long-running process (and a scheduler) in Google App Engine'>Emulating a long-running process (and a scheduler) in Google App Engine</a></li>
<li><a href='http://stage.vambenepe.com/archives/1453' rel='bookmark' title='Permanent Link: Flavors of PaaS'>Flavors of PaaS</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://stage.vambenepe.com/archives/1252/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Oracle acquires Amberpoint</title>
		<link>http://stage.vambenepe.com/archives/1247</link>
		<comments>http://stage.vambenepe.com/archives/1247#comments</comments>
		<pubDate>Mon, 08 Feb 2010 14:13:51 +0000</pubDate>
		<dc:creator>William (@vambenepe on Twitter)</dc:creator>
				<category><![CDATA[Application management]]></category>
		<category><![CDATA[Everything]]></category>
		<category><![CDATA[Governance]]></category>
		<category><![CDATA[IT Systems Management]]></category>
		<category><![CDATA[Manageability]]></category>
		<category><![CDATA[Management integration]]></category>
		<category><![CDATA[Middleware]]></category>
		<category><![CDATA[Web services]]></category>

		<guid isPermaLink="false">http://stage.vambenepe.com/?p=1247</guid>
		<description><![CDATA[Oracle just announced that it has purchased Amberpoint. If you have ever been interested in Web services management, then you surely know about Amberpoint. The company has long led the pack of best-of-breed vendors for Web services and SOA Management. My history with them goes back to the old days of the OASIS WSDM technical [...]


Related posts:<ol><li><a href='http://stage.vambenepe.com/archives/258' rel='bookmark' title='Permanent Link: Oracle acquires ClearApp for composite application management'>Oracle acquires ClearApp for composite application management</a></li>
<li><a href='http://stage.vambenepe.com/archives/537' rel='bookmark' title='Permanent Link: Oracle acquires mValent for application config management'>Oracle acquires mValent for application config management</a></li>
<li><a href='http://stage.vambenepe.com/archives/1187' rel='bookmark' title='Permanent Link: Book on Middleware Management with Oracle Enterprise Manager'>Book on Middleware Management with Oracle Enterprise Manager</a></li>
<li><a href='http://stage.vambenepe.com/archives/199' rel='bookmark' title='Permanent Link: Oracle Enterprise Manager in the news'>Oracle Enterprise Manager in the news</a></li>
<li><a href='http://stage.vambenepe.com/archives/183' rel='bookmark' title='Permanent Link: Oracle acquires e-TEST from Empirix'>Oracle acquires e-TEST from Empirix</a></li>
<li><a href='http://stage.vambenepe.com/archives/289' rel='bookmark' title='Permanent Link: SOA management: round-up of recent news'>SOA management: round-up of recent news</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Oracle just <a href="http://www.oracle.com/us/corporate/press/048842">announced</a> that it has purchased Amberpoint. If you have ever been interested in Web services management, then you surely know about Amberpoint. The company has long led the pack of best-of-breed vendors for Web services and SOA Management. My history with them goes back to the old days of the OASIS WSDM technical committee, where their engineers brought to the group a unique level of experience and practical-mindedness.</p>
<p>The <a href="http://www.oracle.com/amberpoint/index.html">official page</a> has more details. In short, Amberpoint is going to reinforce Oracle Enterprise Manager, especially in these areas:</p>
<ul>
<li>Business Transaction Management</li>
<li>SOA Management</li>
<li>Application Performance Management</li>
<li>SOA Governance (BTW, Oracle Enterprise Repository 11g was <a href="http://blogs.oracle.com/governance/2010/01/oracle_enterprise_repository_1_1.html">released</a> just over a week ago)</li>
</ul>
<p>I am looking forward to working with my new colleagues from Amberpoint.</p>


<p>Related posts:<ol><li><a href='http://stage.vambenepe.com/archives/258' rel='bookmark' title='Permanent Link: Oracle acquires ClearApp for composite application management'>Oracle acquires ClearApp for composite application management</a></li>
<li><a href='http://stage.vambenepe.com/archives/537' rel='bookmark' title='Permanent Link: Oracle acquires mValent for application config management'>Oracle acquires mValent for application config management</a></li>
<li><a href='http://stage.vambenepe.com/archives/1187' rel='bookmark' title='Permanent Link: Book on Middleware Management with Oracle Enterprise Manager'>Book on Middleware Management with Oracle Enterprise Manager</a></li>
<li><a href='http://stage.vambenepe.com/archives/199' rel='bookmark' title='Permanent Link: Oracle Enterprise Manager in the news'>Oracle Enterprise Manager in the news</a></li>
<li><a href='http://stage.vambenepe.com/archives/183' rel='bookmark' title='Permanent Link: Oracle acquires e-TEST from Empirix'>Oracle acquires e-TEST from Empirix</a></li>
<li><a href='http://stage.vambenepe.com/archives/289' rel='bookmark' title='Permanent Link: SOA management: round-up of recent news'>SOA management: round-up of recent news</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://stage.vambenepe.com/archives/1247/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Everything you always wanted to know about SaaS but were afraid to ask</title>
		<link>http://stage.vambenepe.com/archives/1237</link>
		<comments>http://stage.vambenepe.com/archives/1237#comments</comments>
		<pubDate>Tue, 02 Feb 2010 07:26:09 +0000</pubDate>
		<dc:creator>William (@vambenepe on Twitter)</dc:creator>
				<category><![CDATA[Application management]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Everything]]></category>
		<category><![CDATA[SaaS]]></category>
		<category><![CDATA[Utility computing]]></category>

		<guid isPermaLink="false">http://stage.vambenepe.com/?p=1237</guid>
		<description><![CDATA[What makes one Web applications &#8220;Software as a Service&#8221; (SaaS) and another a &#8220;plain old Web application&#8221; (POWA)? Or is there no such distinction?
Wouldn&#8217;t it be convenient if we had an answer that has some functional relevance? Here are the different axis on which I (unsuccessfully) tried to project Web applications to sort them between [...]


Related posts:<ol><li><a href='http://stage.vambenepe.com/archives/1355' rel='bookmark' title='Permanent Link: &#8220;Freeing SaaS from Cloud&#8221;: slides and notes from Cloud Connect keynote'>&#8220;Freeing SaaS from Cloud&#8221;: slides and notes from Cloud Connect keynote</a></li>
<li><a href='http://stage.vambenepe.com/archives/1025' rel='bookmark' title='Permanent Link: Cloud platform patching conundrum: PaaS has it much worse than IaaS and SaaS'>Cloud platform patching conundrum: PaaS has it much worse than IaaS and SaaS</a></li>
<li><a href='http://stage.vambenepe.com/archives/216' rel='bookmark' title='Permanent Link: SaaS management: it&#8217;s MUWS and MOWS all over again'>SaaS management: it&#8217;s MUWS and MOWS all over again</a></li>
<li><a href='http://stage.vambenepe.com/archives/160' rel='bookmark' title='Permanent Link: David Linthicum on SaaS, enterprise architecture and management'>David Linthicum on SaaS, enterprise architecture and management</a></li>
<li><a href='http://stage.vambenepe.com/archives/603' rel='bookmark' title='Permanent Link: Cloudman to the rescue?'>Cloudman to the rescue?</a></li>
<li><a href='http://stage.vambenepe.com/archives/1078' rel='bookmark' title='Permanent Link: Enumeration of PaaS container types'>Enumeration of PaaS container types</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>What makes one Web applications &#8220;Software as a Service&#8221; (SaaS) and another a &#8220;plain old Web application&#8221; (POWA)? Or is there no such distinction?</p>
<p>Wouldn&#8217;t it be convenient if we had an answer that has some functional relevance? Here are the different axis on which I (unsuccessfully) tried to project Web applications to sort them between SaaS and POWA:</p>
<p><strong>1) Amount of data</strong></p>
<p><em>Hypothesis</em>: If the Web application stores a lot of your data, it&#8217;s SaaS, otherwise it&#8217;s a POWA. For example, Webmails like GMail and Yahoo Mail have a lot. So do hosted CRM systems. They are all SaaS. Zillow and Expedia do not, so they are POWA.</p>
<p><strong>2) Criticality of data</strong></p>
<p><em>Hypothesis</em>: Flickr and YouTube may have many Gigabytes of your data, but it&#8217;s not critical data (and you most likely have a local copy), so they are POWA. An on-line password manager, or a federated identification service, stores little information about you but it&#8217;s important information so they are SaaS.</p>
<p><strong>3) Customization</strong></p>
<p><em>Hypothesis</em>: If you&#8217;ve invested time to customize the Web application (like Salesforce.com) then it&#8217;s SaaS. If, on the other hand, users all get pretty much the same interface, give or take some minor branding (e.g. YouTube or GMail), then it&#8217;s a POWA.</p>
<p><strong>4) Complexity</strong></p>
<p><em>Hypothesis</em>: If it takes many man-years to build it it&#8217;s SaaS, otherwise it&#8217;s a POWA. So Google Search is SaaS, but twitpics.com is a POWA.</p>
<p><strong>5) Organization mandate</strong></p>
<p><em>Hypothesis</em>: If all your employees use the same Web application for a given task, that&#8217;s SaaS. For example, some companies mandate that all travel reservations go through American Express or Carlson Wagonlit so they are SaaS. If your company lets you use Expedia or any travel site of your choice and you just expense the bill, then it&#8217;s a POWA.</p>
<p><strong>6) Administration</strong></p>
<p><em>Hypothesis</em>: If your company has its own administrator(s) to manage the use of the Web application by its employees, then it&#8217;s SaaS. Otherwise it&#8217;s a POWA. For example, Google Apps is SaaS, but Facebook is a POWA.</p>
<p><strong>7) Payment</strong></p>
<p><em>Hypothesis</em>: If you pay for using the Web application, its&#8217; SaaS. In that respect, LotusLive (and porn sites) are SaaS. Facebook and Twitter are POWA.</p>
<p><strong>8) SLA</strong></p>
<p><em>Hypothesis</em>: If you have guarantees of service, and they are backed by some compensation, then it&#8217;s SaaS. For example Aplicor and AWS S3 are SaaS, but (last I heard) SalesForce.com is not.</p>
<p><strong>9) Compliance</strong></p>
<p><em>Hypothesis</em>: If the Web application conforms to your compliance needs, then it&#8217;s SaaS. By this metric, pretty much nothing is SaaS if you have any serious compliance requirement, it&#8217;s all POWA.</p>
<p><strong>10) On-premise alternative</strong></p>
<p><em>Hypothesis</em>: If the Web application replaces something that you could do on-premise, then it&#8217;s SaaS. If it intrinsically involves a third-party provider, then it&#8217;s a POWA. Zoho (which replaces Office+Sharepoint) is SaaS, while Amazon (the store) and EBay are POWA. You couldn&#8217;t  run your own version of them, at least not as a replacement for the public versions (you could run an internal auction site, but that&#8217;s a different use case from what you use EBay for).</p>
<p><strong>11) On demand</strong></p>
<p><em>Hypothesis</em>: If you can initiate service via just a Web request it&#8217;s SaaS. If it requires you to interact with a human it&#8217;s a POWA. Or is it the other way around? Most silly little Web apps out there would fit the SaaS bill by this definition, while LotusLive-type deployments (or HP Cloud Assure) would not. So are we now saying that Cloud requires *more* friction?</p>
<p><strong>12) Scalable</strong></p>
<p><em>Hypothesis</em>: If you can quickly ramp up your usage (in terms of load per user and/or number of users) without having to warn the provider and without noticing performance degradations then it&#8217;s SaaS, otherwise it&#8217;s POWA. The Amazon storefront and GMail are SaaS, Twitter is a POWA.</p>
<p><strong>13) Pay per use</strong></p>
<p><em>Hypothesis</em>: If your usage of the Web application is metered and your bill is based on it then it&#8217;s SaaS. Otherwise it&#8217;s a POWA. iTunes is SaaS. GMail is a POWA.</p>
<p><strong>13) Primarily computational</strong></p>
<p><em>Hypothesis</em>: If the service provided is primarily computational (storage/processing of data) it&#8217;s SaaS, otherwise it&#8217;s a POWA. GMail and Salesforce are SaaS. A Web application for pizza delivery or travel reservation is a POWA. Banking services are SaaS (let&#8217;s chew on that one for a second).</p>
<p><strong>14) Programmatic usage</strong></p>
<p><em>Hypothesis</em>: If the web application is primarily used programmatically (e.g. SOA) it&#8217;s SaaS, if it&#8217;s primarily used by humans through the Web then it&#8217;s a POWA. There aren&#8217;t that many SaaS applications by that measure. Maybe some financial/trading/information services? Or AWS S3 (which has the amazing property of belonging to IaaS, PaaS and SaaS depending on who you ask). Or iTunes?</p>
<p><strong>15) Standard interface</strong></p>
<p><em>Hypothesis</em>: If there is a standard interface to the Web application, then it&#8217;s SaaS, otherwise it&#8217;s just a POWA. Webmails (at least those that support IMAP) are SaaS. Most other Web applications are POWA, by virtue of there being very few standard application-level interfaces (remember <a href="http://www.rosettanet.org/">RosettaNet</a>?).</p>
<p><strong>16) Gets the CIO on magazine covers</strong></p>
<p><em>Hypothesis</em>: If adoption of a Web application gets the CIO on the cover of trade magazines, then it&#8217;s SaaS. Otherwise it&#8217;s a POWA. The problem with this definition is that it&#8217;s a moving line. The first CIO to use external email or CRM probably landed on a few cover pages. Soon nothing short of putting your pacemaker firmware in the Cloud will.</p>
<p><strong>17) Open Source</strong></p>
<p><em>Hypothesis</em>: If the Web application is built using Open Source software it&#8217;s SaaS. Otherwise it&#8217;s a POWA. WordPress.com and the various Zimbra hosted providers are therefore SaaS but SalesForce.com is not. Yes, that&#8217;s a silly criteria to even consider. But someone was going to bring it up, so let&#8217;s kill it now.</p>
<p><strong>18) Enterprise usage</strong></p>
<p><em>Hypothesis</em>: Web applications used for business are SaaS. Those used by consumers are POWA. For example GMail (as part of Google Apps) is SaaS while the regular GMail is&#8230; a POWA.</p>
<p><strong>Bottom Line</strong></p>
<p>Which of these sorting criteria work for you? I don&#8217;t find any of them convincing. Many feel very artificial, as the example for the last one illustrates. Several (like the first three) seem to test how tied to the Web application you are (with the hypothesis that commitment means true SaaS while a one-night-stand is just casual SaaS, aka POWA). But this goes against the common notion that &#8220;Cloud&#8221; means more flexibility, not less.</p>
<p>I could list more question, but this list should suffice to illustrate the difficulty of establishing a Litmus test that separates SaaS from POWA. Even if we give up on a clear definition, I don&#8217;t even feel like I can say that &#8220;I know SaaS when I see it&#8221;. At least not in a way that I can expect most others to agree with.</p>
<p>Are there actually useful characteristics that am I forgetting to test against? Is it a carefully weighted combination of those above? In the end, is there a reasonable way to tell SaaS apart from POWA? If we can&#8217;t find an answer that people eventually agree on and that has functional relevance (by which I mean that there is a meaningful difference between how you consume/manage SaaS vs. POWA) then I&#8217;ll have to conclude that the term SaaS only exists for some of the following (bad) reasons:</p>
<ul>
<li>A two level-stack (IaaS and Paas) looks silly,</li>
<li>adding SaaS to IaaS and PaaS instantly inflates the size, adoption and relevance of the &#8220;Cloud&#8221; umbrella , by co-opting pre-existing and already-thriving businesses,</li>
<li>conversely, riding the coattail of the hot &#8220;Cloud&#8221; buzzword helps providers of such applications. SaaS sounds much better than the worn-out &#8220;ASP&#8221; appellation, especially with ASP.Net cheapening it.</li>
</ul>
<p><strong>After throwing stones, here is my proposal.</strong></p>
<p>There is a definition I would like to use to qualify which Web applications qualify for the SaaS appellation: it&#8217;s any Web application which satisfies all (or at least several) of the <a href="http://stage.vambenepe.com/archives/1192">layer 3 benefits in this &#8220;Taxonomy of Cloud Computing Benefits&#8221;</a>. The first test is to get authentication and authorization right. The second is to offer proper programmatic remote interfaces. Etc (there are 5, remember to scroll down to &#8220;layer 3&#8243; to find them).</p>
<p>But if we take that list as a definition, rather than just as an aspiration, then let&#8217;s face the truth: right now there isn&#8217;t a single SaaS offering in the market.</p>


<p>Related posts:<ol><li><a href='http://stage.vambenepe.com/archives/1355' rel='bookmark' title='Permanent Link: &#8220;Freeing SaaS from Cloud&#8221;: slides and notes from Cloud Connect keynote'>&#8220;Freeing SaaS from Cloud&#8221;: slides and notes from Cloud Connect keynote</a></li>
<li><a href='http://stage.vambenepe.com/archives/1025' rel='bookmark' title='Permanent Link: Cloud platform patching conundrum: PaaS has it much worse than IaaS and SaaS'>Cloud platform patching conundrum: PaaS has it much worse than IaaS and SaaS</a></li>
<li><a href='http://stage.vambenepe.com/archives/216' rel='bookmark' title='Permanent Link: SaaS management: it&#8217;s MUWS and MOWS all over again'>SaaS management: it&#8217;s MUWS and MOWS all over again</a></li>
<li><a href='http://stage.vambenepe.com/archives/160' rel='bookmark' title='Permanent Link: David Linthicum on SaaS, enterprise architecture and management'>David Linthicum on SaaS, enterprise architecture and management</a></li>
<li><a href='http://stage.vambenepe.com/archives/603' rel='bookmark' title='Permanent Link: Cloudman to the rescue?'>Cloudman to the rescue?</a></li>
<li><a href='http://stage.vambenepe.com/archives/1078' rel='bookmark' title='Permanent Link: Enumeration of PaaS container types'>Enumeration of PaaS container types</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://stage.vambenepe.com/archives/1237/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Generalizing the Cloud vs. SOA Governance debate</title>
		<link>http://stage.vambenepe.com/archives/1216</link>
		<comments>http://stage.vambenepe.com/archives/1216#comments</comments>
		<pubDate>Wed, 20 Jan 2010 09:20:22 +0000</pubDate>
		<dc:creator>William (@vambenepe on Twitter)</dc:creator>
				<category><![CDATA[Application management]]></category>
		<category><![CDATA[Automation]]></category>
		<category><![CDATA[CMDB]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Everything]]></category>
		<category><![CDATA[Governance]]></category>
		<category><![CDATA[IT Systems Management]]></category>
		<category><![CDATA[ITIL]]></category>
		<category><![CDATA[Management integration]]></category>
		<category><![CDATA[Middleware]]></category>
		<category><![CDATA[Modeling]]></category>
		<category><![CDATA[OSGi]]></category>
		<category><![CDATA[SCA]]></category>
		<category><![CDATA[Utility computing]]></category>
		<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[WS-Management]]></category>

		<guid isPermaLink="false">http://stage.vambenepe.com/?p=1216</guid>
		<description><![CDATA[There have been some interesting discussions recently about the relationship between Cloud management and SOA management/governance (run-time and design-time). My only regret is that they are a bit too focused on determining winners and loosers rather than defining what victory looks like (a bit like arguing whether the smartphone is the triumph of the phone [...]


Related posts:<ol><li><a href='http://stage.vambenepe.com/archives/1527' rel='bookmark' title='Permanent Link: CMDB in the Cloud: not your father&#8217;s CMDB'>CMDB in the Cloud: not your father&#8217;s CMDB</a></li>
<li><a href='http://stage.vambenepe.com/archives/523' rel='bookmark' title='Permanent Link: Cloud ontology: to boldly go where ITIL, Grid and SOA have gone before'>Cloud ontology: to boldly go where ITIL, Grid and SOA have gone before</a></li>
<li><a href='http://stage.vambenepe.com/archives/667' rel='bookmark' title='Permanent Link: Open Cloud Manifesto, circa 2004'>Open Cloud Manifesto, circa 2004</a></li>
<li><a href='http://stage.vambenepe.com/archives/1007' rel='bookmark' title='Permanent Link: The future (2006 version), has arrived'>The future (2006 version), has arrived</a></li>
<li><a href='http://stage.vambenepe.com/archives/884' rel='bookmark' title='Permanent Link: A small step for SCA, a giant leap for BSM'>A small step for SCA, a giant leap for BSM</a></li>
<li><a href='http://stage.vambenepe.com/archives/612' rel='bookmark' title='Permanent Link: Exploring &#8220;IT management in a changing IT world&#8221;'>Exploring &#8220;IT management in a changing IT world&#8221;</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>There have been <a href="http://www.infoworld.com/d/cloud-computing/cloud-computing-will-kill-these-3-technologies-196">some</a> <a href="http://kscottmorrison.com/2010/01/07/on-the-death-of-design-time-service-governance/">interesting</a> <a href="http://www.ebizq.net/blogs/ebizq_forum/2010/01/has-the-cloud-killed-design-time-governance.php">discussions</a> <a href="http://www.biske.com/blog/?p=744">recently</a> about the relationship between Cloud management and SOA management/governance (run-time and design-time). My only regret is that they are a bit too focused on determining winners and loosers rather than defining what victory looks like (a bit like arguing whether the smartphone is the triumph of the phone over the computer or of the computer over the phone instead of discussing what makes a good smartphone).</p>
<p>To define victory, we need to answer this seemingly simple question: in what ways is the relationship between a VM and its hypervisor different from the relationship between two communicating applications?</p>
<p>More generally, there are three broad categories of relationships between the &#8220;active&#8221; elements of an IT system (by &#8220;active&#8221; I am excluding configuration, organization, management and security artifacts, like patch, department, ticket and user, respectively, to concentrate instead on the elements that are on the invocation path at runtime). We need to understand if/how/why these categories differ in how we manage them:</p>
<ul>
<li><strong>Deployment relationships</strong>: a machine (or VM) in a physical host (or hypervisor), a JEE application in an application server, a business process in a process engine, etc&#8230;</li>
<li><strong>Infrastructure dependency relationships</strong> (other than containment): from an application to the DB that persists its data, from an application tier to web server that fronts it, from a batch job to the scheduler that launches it, etc&#8230;</li>
<li><strong>Application dependency relationships</strong>: from an application to a web service it invokes, from a mash-up to an Atom feed it pulls, from a portal to a remote portlet, etc&#8230;</li>
</ul>
<p>In the old days, the lines between these categories seemed pretty clear and we rarely even thought of them in the same terms. They were created and managed in different ways, by different people, at different times. Some were established as part of a process, others in a more ad-hoc way. Some took place by walking around with a CD, others via a console, others via a centralized repository. Some of these relationships were inventoried in spreadsheets, others on white boards, some in CMDBs, others just in code and in someone&#8217;s head. Some involved senior IT staff, others were up to developers and others were left to whoever was manning the controls when stuff broke.</p>
<p>It was a bit like the relationships you have with the taxi that takes you to the airport, the TSA agent who scans you and the pilot who flies you to your destination. You know they are all involved in your travel, but they are very distinct in how you experience and approach them.</p>
<p>It all changes with the Cloud (used as a short hand for virtualization, management automation, on-demand provisioning, 3rd-party hosting, metered usage, etc&#8230;). The advent of the hypervisor is the most obvious source of change: relationships that were mostly static become dynamic; also, where you used to manage just the parts (the host and the OS, often even mixed as one), you now manage not just the parts but the <em>relationship</em> between them (the deployment of a VM in a hypervisor). But it&#8217;s not just hypervisors. It&#8217;s frameworks, APIs, models, protocols, tools. Put them all together and you realize that:</p>
<ul>
<li>the IT resources involved in all three categories of relationships can all be thought of as services being consumed (an &#8220;X86+ethernet emulation&#8221; service exposed by the hypervisor, a &#8220;JEE-compatible platform&#8221; service exposed by the application server, an &#8220;RDB service&#8221; expose by the database, a Web services exposed via SOAP or XML/JSON over HTTP, etc&#8230;),</li>
<li>they can also be set up as services, by simply sending a request to the API of the service provider,</li>
<li>not only can they be set up as services, they are also invoked as such, via well-documented (and often standard) interfaces,</li>
<li>they can also all be managed in a similar service-centric way, via performance metrics, SLAs, policies, etc,</li>
<li>your orchestration code may have to deal with all three categories, (e.g. an application slowdown might be addressed either by modifying its application dependencies, reconfiguring its infrastructure or initiating a new deployment),</li>
<li>the relationships in all these categories now have the potential to cross organization boundaries and involve external providers, possibly with usage-based billing,</li>
<li>as a result of all this, your IT automation system really needs a simple, consistent, standard way to handle all these relationships. Automation works best when you&#8217;ve simplified and standardize the environment to which it is applied.</li>
</ul>
<p>If you&#8217;re a SOA person, your mental model for this is SOA++ and you pull out your SOA management and governance (config and runtime) tools. If you are in the WS-* obedience of SOA, you go back to WS-Management, try to see what it would take to slap a WSDL on a hypervisor and start dreaming of OVF over MTOM/XOP. If you&#8217;re into middleware modeling you might start to have visions of SCA models that extend all the way down to the hardware, or at least of getting SCA and OSGi to ally and conquer the world. If you&#8217;re a CMDB person, you may tell yourself that now is the time for the CMDB to do what you&#8217;ve been pretending it was doing all along and actually extend all the way into the application. Then you may have that &#8220;single source of truth&#8221; on which the automation code can reliably work. Or if you see the world through the &#8220;Cloud API&#8221; goggles, then this &#8220;consistent and standard&#8221; way to manage relationships at all three layers looks like what your Cloud API of choice will eventually do, as it grows from IaaS to PaaS and SaaS.</p>
<p>Your background may shape your reference model for this unified service-centric approach to IT management, but the bottom line is that we&#8217;d all like a nice, clear conceptual model to bridge and unify Cloud (provisioning and containment), application configuration and SOA relationships. A model in which we have services/containers with well-defined operational contracts (and on-demand provisioning interfaces). Consumers/components with well-defined requirements. APIs to connect the two, with predictable results (both in functional and non-functional terms). Policies and SLAs to fine-tune the quality of service. A management framework that monitors these policies and SLAs. A common security infrastructure that gets out of the way. A metering/billing framework that spans all these interactions. All this while keeping out of sight all the resource-specific work needed behind the scene, so that the automation code can look as Zen as a Japanese garden.</p>
<p>It doesn&#8217;t mean that there won&#8217;t be separations, roles, processes. We may still want to partition the IT management tasks, but we should first have a chance to rejigger what&#8217;s in each category. It might, for example, make sense to handle provider relationships in a consistent way whether they are &#8220;deployment relationships&#8221; (e.g. EC2 or your private IaaS Cloud) or &#8220;application dependency relationships&#8221; (e.g. SOA, internal or external). On the other hand, some of the relationships currently lumped in the &#8220;infrastructure dependency relationships&#8221; category because they are &#8220;config files stuff&#8221; may find different homes depending on whether they remain low-level and resource-specific or they are absorbed in a higher-level platform contract. Any fracture in the management of this overall IT infrastructure should be voluntary, based on legal, financial or human requirements. And not based on protocol, model, security and tool disconnect, on legacy approaches, on myopic metering, that we later rationalize as &#8220;the way we&#8217;d want things to be anyway because that&#8217;s what we are used to&#8221;.</p>
<p>In the application configuration management universe, there is a planetary collision scheduled between the hypervisor-centric view of the world (where virtual disk formats wrap themselves in OVF, then something like OVA to address, at least at launch time, application and infrastructure dependency relationships) and the application-model view of the world (SOA, SCA, Microsoft Oslo at least as it was initially defined, various application frameworks&#8230;). Microsoft Azure will have an answer, VMWare/Springsouce will have one, Oracle will too (though I can&#8217;t talk about it), Amazon might (especially as it keeps<a href="https://us-amazon.icims.com/jobs/109825/job?in_iframe=1"> adding to its PaaS portfolio</a>) or it might let its ecosystem sort it out, IBM probably has Rational, WebSphere and Tivoli distinguished engineers locked into a room, discussing and over-engineering it at this very minute, etc.</p>
<p>There is a lot at stake, and it would be nice if this was driven (industry-wide or at least within each of the contenders) by a clear understanding of what we are aiming for rather than a race to cobble together partial solutions based on existing control points and products (e.g. the hypervisor-centric party).</p>
<p>[UPDATED 2010/1/25: For an illustration of my statement that "if you’re a SOA person, your mental model for this is SOA++", see Joe McKendrick's <a href="http://www.ebizq.net/blogs/soainaction/2010/01/soas_seven_greatest_mysteries.php">"SOA's Seven Greatest Mysteries Unveiled"</a> (bullet #6: <em>"When you get right down to it, cloud is the acquisition or provisioning of reusable services that cross enterprise walls. (...)  They are service oriented architecture, and they rely on SOA-based principles to function."</em>)]</p>


<p>Related posts:<ol><li><a href='http://stage.vambenepe.com/archives/1527' rel='bookmark' title='Permanent Link: CMDB in the Cloud: not your father&#8217;s CMDB'>CMDB in the Cloud: not your father&#8217;s CMDB</a></li>
<li><a href='http://stage.vambenepe.com/archives/523' rel='bookmark' title='Permanent Link: Cloud ontology: to boldly go where ITIL, Grid and SOA have gone before'>Cloud ontology: to boldly go where ITIL, Grid and SOA have gone before</a></li>
<li><a href='http://stage.vambenepe.com/archives/667' rel='bookmark' title='Permanent Link: Open Cloud Manifesto, circa 2004'>Open Cloud Manifesto, circa 2004</a></li>
<li><a href='http://stage.vambenepe.com/archives/1007' rel='bookmark' title='Permanent Link: The future (2006 version), has arrived'>The future (2006 version), has arrived</a></li>
<li><a href='http://stage.vambenepe.com/archives/884' rel='bookmark' title='Permanent Link: A small step for SCA, a giant leap for BSM'>A small step for SCA, a giant leap for BSM</a></li>
<li><a href='http://stage.vambenepe.com/archives/612' rel='bookmark' title='Permanent Link: Exploring &#8220;IT management in a changing IT world&#8221;'>Exploring &#8220;IT management in a changing IT world&#8221;</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://stage.vambenepe.com/archives/1216/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 2.527 seconds -->
