<?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>Blog about Cloud Computing, SaaS, and &#34;All Things&#34; as a Service</title>
	<atom:link href="http://www.cloudyoda.com/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.cloudyoda.com</link>
	<description></description>
	<lastBuildDate>Fri, 05 Oct 2012 05:52:53 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.2</generator>
		<item>
		<title>Cloud Application Architectures Peering through the Cloud of Multi-tenancy &#8211; Part II</title>
		<link>http://www.cloudyoda.com/?p=306&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=cloud-application-architectures-peering-through-the-cloud-of-multi-tenancy-part-ii</link>
		<comments>http://www.cloudyoda.com/?p=306#comments</comments>
		<pubDate>Fri, 28 Sep 2012 03:04:47 +0000</pubDate>
		<dc:creator>Raj Sethi and Gurpreet Singh</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[SaaS]]></category>
		<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Ekartha]]></category>
		<category><![CDATA[Gurpreet Singh]]></category>
		<category><![CDATA[meta architecture]]></category>
		<category><![CDATA[metadata]]></category>
		<category><![CDATA[multi-instance]]></category>
		<category><![CDATA[Multi-tenancy]]></category>
		<category><![CDATA[NoSQL]]></category>
		<category><![CDATA[Raj Sethi]]></category>
		<category><![CDATA[scalability]]></category>
		<category><![CDATA[single-instance]]></category>
		<category><![CDATA[Software as a Service]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Virtualization]]></category>

		<guid isPermaLink="false">http://www.cloudyoda.com/?p=306</guid>
		<description><![CDATA[As a continuation to </span><a href="http://www.cloudyoda.com/?p=241">part I</a><span style="color:  black;">, unfortunately written more than a year ago, in this post we detail architectural approaches for cloud applications. We have created two tables below - one describes the database architecture for cloud applications, and the other describes the application architecture. Note, that we are distinguishing between the database architecture and the application architecture. In our view this is important. We often read multi-tenancy articles that just talk about the database and make no mention of the application architecture. Also, the architectures we list are both multi-tenanted and non multi-tenanted (especially on the application side), and represent architectural approaches we have encountered in dealing with many cloud providers. Recently, we have begun to hear from some providers that virtualization and reduced server costs eliminate the need for multi-tenant architectures. In our view this is incorrect. Furthermore, our own internal cost models developed for clients clearly show the need for multi-tenancy. We will release these models publicly at a later date. We will also share specific implementation details for many of the architectures in future posts.]]></description>
			<content:encoded><![CDATA[<div class="WordSection1">
<table class="MsoNormalTable" style="border-collapse: collapse;" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="width: 463.5pt; padding: 0in 5.4pt 0in 5.4pt;" valign="top" width="618">
<p class="MsoNormal" style="margin-bottom: .0001pt; text-align: justify; line-height: normal;"><span style="color: black;">As a continuation to </span><a href="http://www.cloudyoda.com/?p=241">part I</a><span style="color:  black;">, unfortunately written more than a year ago, in this post we detail architectural approaches for cloud applications. We have created two tables below &#8211; one describes the database architecture for cloud applications, and the other describes the application architecture. Note, that we are distinguishing between the database architecture and the application architecture. In our view this is important. We often read multi-tenancy articles that just talk about the database and make no mention of the application architecture. Also, the architectures we list are both multi-tenanted and non multi-tenanted (especially on the application side), and represent architectural approaches we have encountered in dealing with many cloud providers. Recently, we have begun to hear from some providers that virtualization and reduced server costs eliminate the need for multi-tenant architectures. In our view this is incorrect. Furthermore, our own internal cost models developed for clients clearly show the need for multi-tenancy. We will release these models publicly at a later date. We will also share specific implementation details for many of the architectures in future posts. </span></p>
<p class="MsoNormal" style="margin-bottom: .0001pt; text-align: justify; line-height: normal;"><span style="color: black;"><br />
Let’s start by clarifying some jargon. This not a complete set, but should be helpful while going through the tables below:</span></p>
<p class="MsoListParagraph" style="margin-bottom: .0001pt; text-align: justify; text-indent: -.25in; line-height: normal ;">a.    <strong>Multi-tenancy</strong> – We already described this in <a href="http://www.cloudyoda.com/?p=241">part I</a>.  But it is important to emphasize that multi-tenanted cloud applications are single instance. In very large and scalable cloud applications where SOA is the preferred architecture, each service in the system/application will be built as single instance and multi-tenanted.</p>
<p class="MsoListParagraph" style="margin-bottom: .0001pt; text-align: justify; text-indent: -.25in; line-height: normal;"><em>b.</em><em><span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">     </span></em><strong>Configuration vs. Customization</strong> – It is generally believed that cloud applications are less customizable than standard on-site applications. They are considered configurable rather than customizable, a description we do not like. You will often see references to words like configuration and customization in marketing materials. In the context of cloud applications, we view configuration as changes made to the application by tenants that involve changing parameters/behavior, user interfaces, etc., <em>pre-determined by the application provider.</em>  On the other hand, by customization we mean features provided by cloud applications that allow tenants themselves to create new objects, write rules, code, new user-interfaces etc. A good example of this is Salesforce.com.<em> Providing customization features in a single instance multi-tenanted application is a challenging effort, and has a significant impact on the application architecture and the cost of developing a cloud application. </em>As cloud applications mature further, we anticipate more of them will offer customization facilities, which will in essence have the effect of creating domain specific <em>Platforms as a Service (PaaS) or Industry Clouds</em>.</p>
<p class="MsoListParagraph" style="margin-bottom: .0001pt; text-align: justify; text-indent: -.25in; line-height: normal;"><strong>c. &nbsp;&nbsp;</strong><strong>SQL vs. NoSQL</strong> <strong><em>– </em></strong><em>Architectural approaches we provide for the database below apply to relational (SQL) databases only</em>. In our view, both SQL and NoSQL technologies are essential to solve the spectrum of problem<span style="color: #1f497d;">s</span> associated with today’s cloud applications. If your application requires ACID then traditional RDBMS are the most optimal (cost &amp; maturity) solution. Sharding will be the predominant choice to address scalability. If ACID is not a requirement then NoSQL is a good option. NoSQL databases scale better because the consistency requirement is relaxed.<strong> </strong>For applications where ACID is not a requirement,<strong> </strong>NoSQL databases provide one other advantage.<em> They are schemaless; thus some major problems encountered in building RDBMS based multi-tenanted applications are eliminated. </em></p>
<p style = "line-height:normal">
<p class="MsoListParagraph" style="margin-bottom: .0001pt; text-align: justify; line-height: normal;">Even in cases where ACID is not required, RDBMS can be used if the application is not aiming for very high scale. In our view, most organizations still opt for RDBMS to address the majority of their data persistence needs. Among the many reasons for this preference are skill availability (development and operations), technology maturity, standard query language (SQL), and choice of tools to address operations, analytics, reporting, adhoc queries, etc.</p>
<p class="MsoListParagraph" style="margin-bottom: .0001pt; line-height: normal;">&nbsp;</p>
<p class="MsoListParagraph" style="margin-bottom: .0001pt; line-height: normal;"><strong><span style="font-size: 14.0pt; color: black;">Architectural approaches to implement databases (Relational) for Cloud Applications</span></strong></p>
<p class="MsoListParagraph" style="margin-bottom: .0001pt; line-height: normal;">
<p class="MsoListParagraph" style="margin-bottom: .0001pt; line-height: normal;">&nbsp;</p>
</td>
</tr>
</tbody>
</table>
<table class="MsoNormalTable" style="width: 383.4pt; margin-left: 65.85pt; background: #DBE5F1; border-collapse: collapse;" width="511" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: .1in;">
<td style="width: 45.9pt; border: solid windowtext 1.5pt; padding: 0in 5.4pt 0in 5.4pt; height: .1in;" valign="top" width="61">
<p class="Msoh2" style="line-height: 115%;" align="center"><strong>Type</strong></p>
</td>
<td style="width: 337.5pt; border: solid windowtext 1.5pt; border-left: none; padding: 0in 5.4pt 0in 5.4pt; height: .1in;" valign="top" width="450">
<p class="Msoh2" style="line-height: 115%;"><strong>Description</strong></p>
</td>
</tr>
<tr style="height: .1in;">
<td style="width: 45.9pt; border: solid windowtext 1.5pt; border-top: none; padding: 0in 5.4pt 0in 5.4pt; height: .1in;" valign="top" width="61">
<p class="Msoh2" style="text-align: center; line-height: 115%;" align="center"><strong>A</strong></p>
</td>
<td style="width: 337.5pt; border-top: none; border-left: none; border-bottom: solid windowtext 1.5pt; border-right: solid windowtext 1.5pt; padding: 0in 5.4pt 0in 5.4pt; height: .1in;" valign="top" width="450">
<p class="Msoh2" style="line-height: 115%;"><strong>Shared Tables Among Tenants</strong></p>
<p class="MsoNormal" style="margin-bottom: .0001pt; text-align: justify; line-height: normal;">This is the simplest multi-tenanted architecture. The data in each table is partitioned using a tenant-id property which allows for sharing of tables by tenants. For high levels of scaling the database is sharded.</p>
<p style = "line-height:normal">
<p class="Msoh3" style="line-height: 115%;"><strong>Advantages</strong></p>
<p class="Bullets" style="margin-bottom: .0001pt; line-height: normal;">i.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>Supports high number of tenants per database instance; thus lowering licensing, support, hardware infrastructure, and maintenance costs compared to type C, D &amp; E approaches given below. <em>Note: The number of tenants that can be consolidated on a single database is dependent on the type of application. For example, an email, ERP, or CRM application will vary in number of tenants per database.</em></p>
<p class="Bullets" style="margin-bottom: .0001pt; line-height: normal;">ii.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>Easier to develop, and lower development costs especially compared to Type B &#8211; another multi-tenant approach.</p>
<p class="Bullets" style="margin-bottom: .0001pt; line-height: normal;">iii.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>Application level maintenance issues like upgrades, bug fixes, etc. are comparatively easier to implement than Type C, D &amp; E. <em>Keep a note of the difference between application level and tenant level maintenance issues. See disadvantages below.</em></p>
<p style = "line-height:normal">
<p class="Msoh3" style="line-height: 115%;"><strong>Disadvantages</strong></p>
<p class="Bullets" style="margin-bottom: .0001pt; line-height: normal;">i.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>All tenants using the application will have the same schema. The schema is not extensible, so does not enable any tenant/customer customization.</p>
<p class="Bullets" style="margin-bottom: .0001pt; line-height: normal;">ii.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>Lower levels of isolation compared to Type C, D &amp; E.</p>
<p class="Bullets" style="margin-bottom: .0001pt; line-height: normal;">iii.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>Needs a query abstraction layer to prevent any data leakage among different tenants. <em>A good practice is to make sure that even your own developers do not see the tenant-id and can write queries without using the tenant-id</em>. Also, as the application grows, query optimization is necessary for maintaining performance.</p>
<p class="Bullets" style="margin-bottom: .0001pt; line-height: normal;"><span style="color: black;">iv.</span><span style="font-size: 7.0pt; font-family: 'Times New Roman','serif'; color: black;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>Tenant level maintenance operations like tenant backups, migration, restores etc. are difficult to implement. We want to emphasize that many operational issues for Cloud applications are best resolved at the the architecture/development level, and not just in operations.  <em>Note: Customers, especially larger ones may insist that these operational issues be part of the SLA.For more details on SLA’s for the cloud we recommend reading “<a href="http://www.cloud-council.org/04102012.htm">Practical Guide to Cloud SLA’s</a>” by the <a href="http://www.cloud-council.org/">Cloud Standards Customer Council</a>. As a disclosure, Gurpreet, one of the authors of this blog contributed to multiple sections of the guide.</em>  </p>
</td>
</tr>
<tr style="height: .1in;">
<td style="width: 45.9pt; border: solid windowtext 1.5pt; border-top: none; padding: 0in 5.4pt 0in 5.4pt; height: .1in;" valign="top" width="61">
<p class="Msoh2" style="text-align: center; line-height: 115%;" align="center"><strong>B</strong></p>
</td>
<td style="width: 337.5pt; border-top: none; border-left: none; border-bottom: solid windowtext 1.5pt; border-right: solid windowtext 1.5pt; padding: 0in 5.4pt 0in 5.4pt; height: .1in;" valign="top" width="450">
<p class="Msoh2" style="line-height: 115%;"><strong>Flexible Schema, Shared Tables</strong></p>
<p class="MsoNormal" style="text-align: justify;">As the name suggests, in this multi-tenanted architecture, schemas are flexible and customizable by tenants. Multiple techniques exist to implement this architecture. As an example, one technique is to partition the tenant data using tenant id, and provide extension tables for extending/changing the tenant schema. <em>Note that tenant schemas are logical schemas, and there is only one physical schema for all tenants.</em> The extension tables are also shared among the tenants. Multiple approaches for implementing extension tables include pivot tables, sparse tables etc., each with its own pros and cons. <em>As mentioned before, the number of tenants consolidated on a single database is dependent on the type of application. </em></p>
<p style = "line-height:normal">
<p class="Msoh3" style="line-height: 115%;"><strong>Advantages</strong></p>
<p class="Bullets" style="margin-bottom: .0001pt; line-height: normal;">i.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>Achieves high levels of consolidation of tenants on a single instance as well as enables customization capabilities at the tenant level.</p>
<p class="Bullets" style="margin-bottom: .0001pt; line-height: normal;">ii.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>Leads to lower licensing, hardware infrastructure and maintenance costs compared to types C, D &amp; E.</p>
<p class="Bullets" style="margin-bottom: .0001pt; line-height: normal;">iii.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>Application level maintenance issues like upgrades, bug fixes etc. are comparatively easier than Type C, D &amp; E.</p>
<p style = "line-height:normal">
<p class="Msoh3" style="line-height: 115%;"><strong>Disadvantages</strong></p>
<p class="Bullets" style="margin-bottom: .0001pt; line-height: normal;">i.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>Higher cost and complexity of development.</p>
<p class="Bullets" style="margin-bottom: .0001pt; line-height: normal;">ii.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>To simplify query writing, a query abstraction layer is necessary to hide the strategy used for schema extension. Furthermore, complex query and database optimization techniques are required to tune the database for performance.</p>
<p class="Bullets" style="margin-bottom: .0001pt; line-height: normal;">iii.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>A metadata driven architecture is needed in order to support simplified query writing, and a single code base that supports customization for tenants.</p>
<p class="Bullets" style="margin-bottom: .0001pt; line-height: normal;">iv.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>Tenant level maintenance operations &#8211; backup, restores etc. are difficult to implement.</p>
<p class="Bullets" style="margin-bottom: .0001pt; line-height: normal;">v.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>Lower levels of isolation compared  to Type C, D, E.</p>
</td>
</tr>
<tr style="height: .1in;">
<td style="width: 45.9pt; border: solid windowtext 1.5pt; border-top: none; padding: 0in 5.4pt 0in 5.4pt; height: .1in;" valign="top" width="61">
<p class="Msoh2" style="text-align: center; line-height: 115%;" align="center"><strong>C</strong></p>
</td>
<td style="width: 337.5pt; border-top: none; border-left: none; border-bottom: solid windowtext 1.5pt; border-right: solid windowtext 1.5pt; padding: 0in 5.4pt 0in 5.4pt; height: .1in;" valign="top" width="450">
<p class="Msoh2" style="line-height: 115%;"><strong>Multi-Schema, Private Tables</strong></p>
<p class="MsoNormal" style="margin-bottom: .0001pt; text-align: justify; line-height: normal;"><em><span style="color: black;">This is also multi-tenanted architecture.</span></em><span style="color: black;"> This architecture is easier to implement than type B above, and still allows customization at the tenant level. Data partitioning is achieved by creating separate physical schema for each tenant in a single database instance.</span></p>
<p style = "line-height:normal">
<p class="Msoh3" style="line-height: 115%;"><strong>Advantages</strong></p>
<p class="Bullets" style="margin-bottom: .0001pt; line-height: normal;">i.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>Provides one of the best isolation methods available, second only to a separate database instance(Type E).</p>
<p class="Bullets" style="margin-bottom: .0001pt; line-height: normal;">ii.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>Allows for data customization.</p>
<p class="Bullets" style="margin-bottom: .0001pt; line-height: normal;">iii.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>Tenant level maintenance operations like backup, restores etc. are easier to implement compared to A &amp; B.</p>
<p style = "line-height:normal">
<p class="Msoh3" style="line-height: 115%;"><strong>Disadvantages</strong></p>
<p class="Bullets" style="margin-bottom: .0001pt; line-height: normal;">i.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>In order to support tenant customization with a single code base, a metadata driven architecture is required. This can be complex to develop.</p>
<p class="Bullets" style="margin-bottom: .0001pt; line-height: normal;">ii.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>Tables grow linearly with tenants, which may lead to performance degradation and scalability issues.</p>
<p class="Bullets" style="margin-bottom: .0001pt; line-height: normal;">iii.<span style="font-size: 7.0pt;font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>In general, lower number of tenants per database instance compared to Type A &amp; B, thus higher costs per tenant.</p>
<p class="Bullets" style="margin-bottom: .0001pt; line-height: normal;">iv.<span style="font-size: 7.0pt;font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>Application level maintenance issues like upgrades, bug fixes, etc. are difficult due to multiple physical schemas.</p>
</td>
</tr>
<tr style="height: .1in;">
<td style="width: 45.9pt; border: solid windowtext 1.5pt; border-top: none; padding: 0in 5.4pt 0in 5.4pt; height: .1in;" valign="top" width="61">
<p class="Msoh2" style="text-align: center; line-height: 115%;" align="center"><strong>D</strong></p>
</td>
<td style="width: 337.5pt; border-top: none; border-left: none; border-bottom: solid windowtext 1.5pt; border-right: solid windowtext 1.5pt; padding: 0in 5.4pt 0in 5.4pt; height: .1in;" valign="top" width="450">
<p class="Msoh2" style="line-height: 115%;"><strong>Single Schema, Private Tables for Tenants</strong></p>
<p class="MsoNormal" style="margin-bottom: .0001pt; text-align: justify; line-height: normal;">This is another type of multi-tenanted architecture<strong>.</strong> This is a special case where each tenant has a small number of private tables, but all tenants share the same physical schema. This architecture can be used when applications have shared data between tenants, and the tenants also have some private data. The single shared schema reduces the database overhead, and the private tables keep the non-shared tenant data private.</p>
<p style = "line-height:normal">
<p class="Msoh3" style="line-height: 115%;"><strong>Advantages</strong></p>
<p class="Bullets" style="margin-bottom: .0001pt; line-height: normal;">i.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>Supports data customization for tenants because each tenant gets their own private tables.</p>
<p class="Bullets" style="margin-bottom: .0001pt; line-height: normal;">ii.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>Better isolation than Type A and B but worse than C</p>
<p style = "line-height:normal">
<p class="Msoh3" style="line-height: 115%;"><strong>Disadvantages</strong></p>
<p class="Bullets" style="margin-bottom: .0001pt; line-height: normal;">i.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>Application needs a metadata driven architecture in order to support a single code base for all tenants.</p>
<p class="Bullets" style="margin-bottom: .0001pt; line-height: normal;">ii.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>Tables grow linearly with tenants. Achieves lower levels of consolidation of tenants on a single instance of database compared to Type A &amp; B.</p>
<p class="Bullets" style="margin-bottom: .0001pt; line-height: normal;">iii.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>Tenant level maintenance operations like backup, restores etc. are difficult to implement.</p>
<p class="Bullets" style="margin-bottom: .0001pt; line-height: normal;">iv.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>Application level maintenance issues like upgrades, bug fixes, etc. are difficult due to tenant specific private tables.</p>
</td>
</tr>
<tr style="height: 215.25pt;">
<td style="width: 45.9pt; border: solid windowtext 1.5pt; border-top: none; padding: 0in 5.4pt 0in 5.4pt; height: 215.25pt;" valign="top" width="61">
<p class="Msoh2" style="text-align: center; line-height: 115%;" align="center"><strong>E</strong></p>
</td>
<td style="width: 337.5pt; border-top: none; border-left: none; border-bottom: solid windowtext 1.5pt; border-right: solid windowtext 1.5pt; padding: 0in 5.4pt 0in 5.4pt; height: 215.25pt;" valign="top" width="450">
<p class="Msoh2" style="line-height: 115%;"><strong>Multi-Instance</strong></p>
<p class="MsoNormal" style="text-align: justify;">Each tenant has a unique instance of the database. <em>This is not a multi-tenant solution.</em> The databases for each tenant can be on the same or different hardware. <em>In most cases this is not a practical solution for implementing cloud applications.</em></p>
<p style = "line-height:normal">
<p class="Msoh3" style="line-height: 115%;"><strong>Advantages</strong></p>
<p class="Bullets" style="margin-bottom: .0001pt; line-height: normal;">i.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>Complete isolation of the tenant data.</p>
<p class="Bullets" style="margin-bottom: .0001pt; line-height: normal;">ii.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>Supports full customization of tenant’s data.</p>
<p class="Bullets" style="margin-bottom: .0001pt; line-height: normal;">iii.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>Database instance can be fined tuned to tenant needs.</p>
<p class="Bullets" style="margin-bottom: .0001pt; line-height: normal;">iv.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>Tenant level maintenance operations like backup, restores etc. are very easy to implement.</p>
<p style = "line-height:normal">
<p class="Msoh3" style="line-height: 115%;"><strong>Disadvantages</strong></p>
<p class="Bullets" style="margin-bottom: .0001pt; line-height: normal;">i.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>Application will need a metadata driven architecture in order to support a single code base for all tenants.</p>
<p class="Bullets" style="margin-bottom: .0001pt; line-height: normal;">ii.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: black;">Higher OPEX costs.</span> Achieves the lowest level of consolidation of tenants on a single instance of database,<br />
hence the highest <span style="color: black;">licensing, hardware, infrastructure and operational costs.</span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><strong><span style="font-size: 8.0pt; line-height: 115%; color: black;"> </span></strong></p>
<p class="MsoNormal" style = "margin-left:55pt"><strong><span style="font-size: 16.0pt; line-height: 300%; color: black;">Architectural approaches for the Application Layer</span></strong></p>
<table class="MsoNormalTable" style="width: 381.75pt; margin-left: 65.85pt; background: #C6D9F1; border-collapse: collapse; border: none;" width="509" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="width: 40.7pt; border: solid windowtext 1.5pt; border-bottom: solid windowtext 1.0pt; padding: 0in 5.4pt 0in 5.4pt;" valign="top" width="54">
<p class="Msoh2" style="line-height: 115%;"><strong>Type</strong></p>
</td>
<td style="width: 341.05pt; border: solid windowtext 1.5pt; border-left: none; padding: 0in 5.4pt 0in 5.4pt;" valign="top" width="455">
<p class="Msoh2" style="line-height: 115%;"><strong>Description</strong></p>
</td>
</tr>
<tr>
<td style="width: 40.7pt; border-top: none; border-left: solid windowtext 1.5pt; border-bottom: solid windowtext 1.0pt; border-right: solid windowtext 1.5pt; padding: 0in 5.4pt 0in 5.4pt;" valign="top" width="54">
<p class="Msoh2" style="text-align: center; line-height: 115%;" align="center"><strong>A</strong></p>
</td>
<td style="width: 341.05pt; border-top: none; border-left: none; border-bottom: solid windowtext 1.5pt; border-right: solid windowtext 1.5pt; padding: 0in 5.4pt 0in 5.4pt;" valign="top" width="455">
<p class="Msoh2" style="line-height: 115%;"><strong>Single Instance (SI) Applications</strong></p>
<p class="MsoNormal" style="margin-bottom: .0001pt; text-align: justify; line-height: normal;">In a single instance application <em>all processes associated with the application are shared among the tenants. </em>These processes can be on a single machine or multiple machines in a network.</p>
<p style = "line-height:normal">
<p class="Msoh3" style="line-height: 115%;"><strong>Advantages</strong></p>
<p class="Bullets" style="margin-bottom: .0001pt; line-height: normal;">i.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>Best utilization of CPU and memory.</p>
<p class="Bullets" style="margin-bottom: .0001pt; line-height: normal;">ii.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>Cost per tenant is much lower than other architectures. This is especially true once application operations have been automated. You can automate with other architectures also, but single instance will be the lowest cost to operate per tenant.</p>
<p style = "line-height:normal">
<p class="Msoh3" style="line-height: 115%;"><strong>Disadvantages</strong></p>
<p class="Bullets" style="margin-bottom: .0001pt; line-height: normal;">i.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>More costly and complex to develop and optimize compared to multi-instance applications.</p>
<p class="Bullets" style="margin-bottom: .0001pt; line-height: normal;">ii.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>Difficult to build if application customization per tenant is a requirement. Providers will have to develop a meta-architecture to enable tenant customization.</p>
<p class="Bullets" style="margin-bottom: .0001pt; line-height: normal;">iii.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>Lowest level of isolation between tenants.</p>
</td>
</tr>
<tr>
<td style="width: 40.7pt; border: solid windowtext 1.5pt; border-top: none; padding: 0in 5.4pt 0in 5.4pt;" valign="top" width="54">
<p class"Msoh2" style="text-align: center; line-height: 115%;" align="center"><strong>B</strong></p>
</td>
<td style="width: 341.05pt; border-top: none; border-left: none; border-bottom: solid windowtext 1.5pt; border-right: solid windowtext 1.5pt; padding: 0in 5.4pt 0in 5.4pt;" valign="top" width="455">
<p class="Msoh2" style="line-height: 115%;"><strong>Multi-Instance without Hardware Virtualization</strong></p>
<p class="MsoNormal" style="text-align: justify;">Multi-instance without hardware virtualization is an architectural approach where a separate instance of the application is instantiated for each tenant on the same hardware without the use of virtualization. As a consequence, this leads to sharing of only the hardware and the OS, and not the rest of the software stack. <em>This is not a multi-tenanted architecture.</em></p>
<p style = "line-height:normal">
<p class="Msoh3" style="line-height: 115%;"><strong>Advantages</strong></p>
<p class="Bullets" style="margin-bottom: .0001pt; line-height: normal;">i.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>Better levels of utilization (CPU/memory) than type C below, but not as good as Single Instance (Type A).</p>
<p class="Bullets" style="margin-bottom: .0001pt; line-height: normal;">ii.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>Since every tenant has their own application instance (has isolation), customization can be done without a need for a meta-architecture. But providers will face increased cost and complexity if they do not use meta-architecture to enable tenant customization.</p>
<p style = "line-height:normal">
<p class="Msoh3" style="line-height: 115%;"><strong>Disadvantages</strong></p>
<p class="Bullets" style="margin-bottom: .0001pt; line-height: normal;">i.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>Higher OPEX Costs and possibly higher CAPEX costs.</p>
<p class="Bullets" style="margin-bottom: .0001pt; line-height: normal;">ii.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>Each tenant requires different configuration.</p>
<p class="Bullets" style="margin-bottom: .0001pt; line-height: normal;">iii.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>Since tenants are sharing the hardware &amp; OS only, tenants have lower levels of isolation but better than type A.</p>
</td>
</tr>
<tr>
<td style="width: 40.7pt; border: solid windowtext 1.5pt; border-top: none; padding: 0in 5.4pt 0in 5.4pt;" valign="top" width="54">
<p class="Msoh2" style="text-align: center; line-height: 115%;" align="center"><strong>C</strong></p>
</td>
<td style="width: 341.05pt; border-top: none; border-left: none; border-bottom: solid windowtext 1.5pt; border-right: solid windowtext 1.5pt; padding: 0in 5.4pt 0in 5.4pt;" valign="top" width="455">
<p class="Msoh2" style="line-height: 115%;"><strong>Multi-Instance using Hardware Virtualization</strong></p>
<p class="MsoNormal" style="margin-bottom: .0001pt; text-align: justify; line-height: normal;">In Multi-Instance Virtualized architecture the entire stack above the hardware is replicated using virtualization to support an individual tenant. Therefore each tenant has a separate OS and application instance and only the hardware is shared. <em>This is not a multi-tenanted architecture.</em></p>
<p style = "line-height:normal">
<p class="Msoh3" style="line-height: 115%;"><strong>Advantages</strong></p>
<p class="Bullets" style="margin-bottom: .0001pt; line-height: normal;">i.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>Better levels of isolation compared to A and B</p>
<p class="Bullets" style="margin-bottom: .0001pt; line-height: normal;">ii.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>Easier to manage and monitor compared to type B.</p>
<p class="Bullets" style="margin-bottom: .0001pt; line-height: normal;">iii.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>Simpler to develop the application.</p>
<p class="Bullets" style="margin-bottom: .0001pt; line-height: normal;">iv.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>Easy to customize by application developers.</p>
<p style = "line-height:normal">
<p class="Msoh3" style="line-height: 115%;"><strong>Disadvantages</strong></p>
<p class="Bullets" style="margin-bottom: .0001pt; line-height: normal;">i.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>Lower levels of CPU/memory utilization compared to A &amp; B.</p>
<p class="Bullets" style="margin-bottom: .0001pt; line-height: normal;">ii.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>More resources required to manage the application and the infrastructure, i.e. higher OPEX costs, and possibly higher CAPEX costs. Cost comparisons between Type B &amp; Type C are difficult to make, and will depend on the individual organization/application.</p>
<p class="Bullets" style="margin-bottom: .0001pt; line-height: normal;">iii.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>Requires additional software to manage the virtual machines.</p>
</td>
</tr>
</tbody>
</table>
<table class="MsoNormalTable" style="border-collapse: collapse;" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="width: 463.5pt; padding: 0in 5.4pt 0in 5.4pt;" valign="top" width="618">
<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal;"><strong>&nbsp;</strong></p>
<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal;"><strong><span style="font-size: 14.0pt;">Some Takeaways </span></strong></p>
<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal;"><strong>&nbsp;</strong></p>
<p class="MsoNormal" style="margin-bottom: .0001pt; text-align: justify; line-height: normal;">In our experience among the many business variables that affect cloud application architectures, market size(scale) and customization needs of the tenants play an important role. <span style="color: black;">As an example, if you are serving a large market (large number of tenants) where tenants have no customization needs, then from the tables above, <strong>type A</strong> architectures for both the database and the application is a good choice. If significant customization is needed by tenants, let us say for a Cloud ERP application, then the preferable architectural choice would be to develop or evolve towards type B on the database side while being single instance (Type A) on the application side. It may seem a little strange that we consider providing customization features to tenants as an important business variable. This is because there is a significant increase in development cost and complexity associated with providing tenant customization features in multi-tenanted cloud applications. Customers, especially larger enterprises are asking for more customization features, and needless to say these issues are important for providers to address.</span></p>
<p class="MsoNormal" style="margin-bottom: .0001pt; text-align: justify; line-height: normal;"><span style="color: black;"> </span></p>
<p class="MsoNormal" style="margin-bottom: .0001pt; text-align: justify; line-height: normal;"><span style="color: black;">On the other hand, if the market is small, providers can even choose a non multi-tenanted approach for their cloud application architecture. <strong>Type E for database, and Type B or C for application architectures</strong> from the tables above are good examples. The operational costs for these multi-instance solutions will be higher, but companies will save on development costs and reduce development risks. We do not recommend multi-instance approaches for cloud applications that will have a large numbers of tenants.</span></p>
<p class="MsoNormal" style="margin-bottom: .0001pt; text-align: justify; line-height: normal;"><span style="color: black;"><br />
The examples we provide are by no way complete, but they should provide a foundation for selecting your cloud application and database architectures.</span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><strong><em> </em></strong></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.cloudyoda.com/?feed=rss2&#038;p=306</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Peering through the Cloud of Multi-tenancy &#8211; Part I</title>
		<link>http://www.cloudyoda.com/?p=241&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=peering-through-the-cloud-of-multi-tenancy-part-i</link>
		<comments>http://www.cloudyoda.com/?p=241#comments</comments>
		<pubDate>Mon, 02 May 2011 16:32:10 +0000</pubDate>
		<dc:creator>Gurpreet Singh and Raj Sethi</dc:creator>
				<category><![CDATA[SaaS]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Ekartha]]></category>
		<category><![CDATA[Gurpreet]]></category>
		<category><![CDATA[Gurpreet Singh]]></category>
		<category><![CDATA[Multi-tenancy]]></category>
		<category><![CDATA[Raj Sethi]]></category>
		<category><![CDATA[Software as a Service]]></category>

		<guid isPermaLink="false">http://cloudyoda.com/?p=241</guid>
		<description><![CDATA[In our conversations with companies, whether it is building new SaaS products or engineering legacy products to SaaS the question of multi-tenancy always comes up. Multi-tenancy is still a significant source of confusion and uncertainty when developing SaaS applications. We have encountered clients that have wasted considerable resources developing multi-tenancy when it should not have [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">In our conversations with companies, whether it is building new SaaS products or engineering legacy products to SaaS the question of multi-tenancy always comes up. Multi-tenancy is still a significant source of confusion and uncertainty when developing SaaS applications. We have encountered clients that have wasted considerable resources developing multi-tenancy when it should not have been a business priority, and others that have chosen the wrong development path not understanding that multi-tenancy was critical for their business.  In this post we try to clear up many myths and confusions about multi-tenancy, and also provide a simple and practical classification of multi-tenant architectures that has helped us guide clients developing SaaS applications.<strong><em> </em></strong>In Part II of this post, we provide a model that can help companies decide whether to go multi-tenant or just develop a virtualized solution. Although, many consider a virtualized architecture to be pariah among SaaS, it is still a good option in many scenarios.</p>
<p style="text-align: center;"><a href="../wp-content/uploads/2011/05/iStock_000012050837XSmall.jpg"><img class="aligncenter" title="iStock_000012050837XSmall" src="../wp-content/uploads/2011/05/iStock_000012050837XSmall.jpg" alt="" width="347" height="346" /></a></p>
<p style="text-align: left;">Multi-tenancy is a much abused term, so let’s provide an overview before we go forward. Applied, specifically to SaaS, multi-tenancy is an architecture that enables a single instance of an application to be securely shared among multiple organizations, also called tenants. The users of the application are employees or partners of the tenant/organization purchasing SaaS. Data of each tenant is private or can be shared depending on the nature of the application.  A well designed multi-tenant architecture and operations automation are among the most critical elements in reducing operating costs for SaaS providers. The emphasis on well designed multi-tenancy is important. We do not wish to re-visit the <a href="http://smoothspan.wordpress.com/2008/06/20/degrees-of-multi-tenancy-degrees-of-green-crystals/" target="_blank">green crystals</a> debate, but a good multi-tenant architecture will facilitate automation in a host of areas, while poorly designed multi-tenancy can cause significant operational problems. <strong><em>Despite its benefits, and what many SaaS providers will tell you, multi-tenancy is usually never considered a driver for clients purchasing SaaS; its benefit should be viewed solely in helping the service provider reduce operations costs of a SaaS application &#8211; a very important driver for SaaS companies.</em></strong></p>
<p style="text-align: left;">In our experience, we have found it helpful to divide multi-tenancy into two types. The first type of multi-tenancy addresses only sharing of tenants on a single instance of the application, and does not provide for any meaningful customization of the application for each tenant.  <strong>We call this Compaction Driven Multi-Tenancy (CDM), and the goal of the architecture is simply to maximize sharing among tenants in order to reduce application delivery costs.</strong> The other type of multi-tenant architecture focuses not only sharing of the application instance among tenants, but also enables customization of the application at the tenant level.  A great example of this type of multi-tenancy is Salesforce.com<strong><em>.  We call this Compaction and Customization Driven Multi-Tenancy (CCDM).</em></strong> Just to clarify, by customization we mean features like changing the object model/database schema, workflows, user interfaces, business logic, and integration with external systems etc. for each tenant of the application. Also, these customizations are assumed to be done dynamically while the system is online.</p>
<p style="text-align: left;">Multi-tenant architectures that support customization (CCDM) are more complex and costly to develop than CDM architectures. The complexity in CCDM arises from the need to provide indirection points to support tenant specific code without changing the original code base, and the need to implement any tenant level persistence schema extensions from the original persistence schema<em>.<span style="text-decoration: underline;"> </span></em>These customizations can be accomplished in many ways, a meta-data driven architecture being a choice we prefer.  It is also important to understand that irrespective of multi-tenancy, all types of SaaS architectures have to address problems in the areas of Provisioning, Security, Scalability, Failover, Patch Management, Integration, Version Control etc. Solutions to these problems depend on a host of factors like SLA’s, application price, and other business practices, and become more complex to resolve due to the introduction of multi-tenancy. <strong><em>Thus, it is important for companies to carefully view business considerations before embarking on the development of multi-tenancy.</em></strong></p>
<p style="text-align: left;">Transitioning from a CDM to CCDM architecture is a considerable amount of work. We have seen successful evolution in the past, for example with Salesforce.com. Over the years they have increased the application customization capabilities with considerable success, and now offer many these features as a part their Force.com platform offering.</p>
<p style="text-align: left;">Although we have not addressed multi-instance virtualized architectures in detail, they do represent an option for SaaS providers in many cases.  Virtualized architectures are easier to develop, and multi-tenancy may not be an economically viable approach in many business cases. <strong><em> </em></strong>In part II of this post we address these issues, and provide a simple model that will help companies decide whether to invest in developing multi-tenancy or just choose a virtualized architecture for their SaaS applications.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cloudyoda.com/?feed=rss2&#038;p=241</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rise of Private Clouds… The missing reason!</title>
		<link>http://www.cloudyoda.com/?p=171&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=rise-of-private-clouds%25e2%2580%25a6-the-missing-reason</link>
		<comments>http://www.cloudyoda.com/?p=171#comments</comments>
		<pubDate>Thu, 10 Feb 2011 17:21:39 +0000</pubDate>
		<dc:creator>Gurpreet Singh and Raj Sethi</dc:creator>
				<category><![CDATA[SaaS]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Ekartha]]></category>
		<category><![CDATA[Gurpreet]]></category>
		<category><![CDATA[Gurpreet Singh]]></category>
		<category><![CDATA[Private Cloud]]></category>
		<category><![CDATA[Public Cloud]]></category>
		<category><![CDATA[Raj Sethi]]></category>
		<category><![CDATA[Software as a Service]]></category>

		<guid isPermaLink="false">http://cloudyoda.com/?p=171</guid>
		<description><![CDATA[The increased interest in private clouds and the ongoing debate has puzzled us. Predictably, there is a lot of noise from a wide spectrum: the public cloud fanatics who believe private clouds will be doomed any day now, to those who have an incessant fear of security and privacy at public clouds, and to those [...]]]></description>
			<content:encoded><![CDATA[<p>The increased interest in private clouds and the ongoing debate has puzzled us. Predictably, there is a lot of noise from a wide spectrum<strong>:</strong> the public cloud fanatics who believe private clouds will be doomed any day now, to those who have an incessant fear of security and privacy at public clouds, and to those who think hybrids are the way to go. So as public cloud enthusiasts, have we misjudged the value of private clouds, and the reasons for an increased interest in them?  Well, the answer may surprise you.</p>
<p>First let’s get a few issues out of the way: the arguments about the value of private versus public cloud are about large enterprises. The debate is resolved in favor of public clouds for SMB’s who simply cannot match the cost, reliability, and security of public clouds.</p>
<p>Security and privacy are primary concerns expressed by enterprises about the public cloud, an issue <a href="http://blogs.gartner.com/thomas_bittman/2010/04/21/polling-data-on-publicprivate-cloud-computing/"><strong>Gartner’s Tom Bitman</strong></a> confirms in his polls. These concerns revolve not just around infrastructure security, but are those of personnel and processes also. Other concerns like maturity and performance of the technology, compliance, and integration round up the top five. The <strong><a href="http://www.microsoft.com/presspass/presskits/cloud/docs/The-Economics-of-the-Cloud.pdf">Microsoft report</a></strong> on the cloud provides more details, but we urge people to read it with caution. <strong><em>Unfortunately, many of the debates, reports, and blogs fail to either purposefully or unintentionally discuss a key issue which has had a significant impact on public cloud adoption, and the rise of alternatives like private clouds.</em></strong></p>
<p>The public cloud induces a fear of an enormous change in the status quo of enterprise IT, and is critical to understanding the current interest in private clouds. <strong><em>To emphasize this point further, the biggest change in the enterprise due to adoption of public clouds affects the groups and  employees leading the adoption themselves (the IT and Data Center groups) – a situation rife with conflicts of interest between the enterprise and its technology workforce</em></strong>.  Needless to say, in any outsourcing scenario these concerns exist, but they are especially significant considering the nature of public clouds. <strong><em>This is because the economies of scale are so much in favor of public clouds, that once outsourced to them, data center functions will most likely never return back to the enterprise</em></strong>. That is not to say that private clouds will be completely eliminated.  Enterprises will always have some information and systems that need to be internal, but they will represent small workloads. Other domains like banking may never get comfortable with public clouds.</p>
<p>For the above reasons, the increased interest in private clouds will continue despite offering comparatively much lesser value. But in our view this will be temporary; public clouds simply represent too strong a value proposition, and will become<em> <strong>the dominant computing resource for enterprises over time</strong>.</em></p>
<p>Disruptive technologies have a long adoption curve, and many alternatives always arise – private clouds being one of those. It will be a long haul for public cloud adoption in the enterprise,  but we are confident that eventually the chasm will be crossed…..</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cloudyoda.com/?feed=rss2&#038;p=171</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>VMforce &#8211; A good idea, but we shall see……</title>
		<link>http://www.cloudyoda.com/?p=134&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=vmforce-a-good-idea-but-we-shall-see%25e2%2580%25a6%25e2%2580%25a6-3</link>
		<comments>http://www.cloudyoda.com/?p=134#comments</comments>
		<pubDate>Thu, 29 Apr 2010 03:18:19 +0000</pubDate>
		<dc:creator>Raj Sethi and Gurpreet Singh</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Ekartha]]></category>
		<category><![CDATA[Gurpreet]]></category>
		<category><![CDATA[SaaS]]></category>
		<category><![CDATA[Salesforce]]></category>
		<category><![CDATA[Software as a Service]]></category>
		<category><![CDATA[Virtualization]]></category>

		<guid isPermaLink="false">http://cloudyoda.com/?p=134</guid>
		<description><![CDATA[We finally had the chance to view the VMforce (Force.com + SpringSource) announcement by Salesforce and VMware. There is no doubt that this is a smart move by Salesforce.  It is also a tacit admission that their proprietary Force.com platform was not attractive to enterprise developers and ISV’s – thus the repackaging of Force.com by [...]]]></description>
			<content:encoded><![CDATA[<p>We finally had the chance to view the VMforce (Force.com + SpringSource) announcement by Salesforce and VMware. There is no doubt that this is a smart move by Salesforce.  It is also a tacit admission that their proprietary Force.com platform was not attractive to enterprise developers and ISV’s – thus the repackaging of Force.com by introducing SpringSource and Java.</p>
<p style="text-align: center;">
<p><a href="http://www.youtube.com/watch?v=LpO6whOCAmQ">http://www.youtube.com/watch?v=LpO6whOCAmQ</a></p>
</p>
<p>The differentiation of the VMforce platform compared to other PaaS (Platform as a Service) will come from the Force.com services. The Database service, Analytics, Chatter,Reporting, Identity Management, Mobile, is an impressive list of services that will accelerate application development. On top the infrastructure management is being done by Salesforce. But all that said, unlike <a href="http://blogs.zdnet.com/SAAS/?p=1071" target="_blank">Phil Wainewright</a>, we do not believe that VMforce changes the PaaS(Platform as a Service) landscape.</p>
<p>Salesforce is now in a better position to provide the illusion of openness. The emphasis here is on illusion. It seems the earlier attempt to make Apex look like Java did not do the trick. Spring and Java are open technologies, but Force.com is not. One area of concern we have is use of the Force.com database. It will impose constraints on the application’s storage model. It is also not clear how easy it will be to migrate from the Force.com database. VMforce still gives a lot of control to Salesforce, and ISV’s and enterprises would be wise to carefully understand the potential risks and conflicts of interest. <a href="http://www.interwest.com/software-as-a-service/on-demand/platform-as-a-service-paas-whats-not-to-like/">Bruce Cleveland</a> from InterWest Partners has an interesting post on this topic.</p>
<p>We have not forgotten VMware. They will also benefit from this experiment. A successful VMforce should open lots of opportunities for VMware in the enterprise and private clouds. All in all this is a good move by both companies. For users, the devil still lies in the details. Clearly, the two big issues will be pricing, and the restrictions imposed by the platform. We will wait and see………</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cloudyoda.com/?feed=rss2&#038;p=134</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why CloudYoda?</title>
		<link>http://www.cloudyoda.com/?p=126&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=why-cloudyoda</link>
		<comments>http://www.cloudyoda.com/?p=126#comments</comments>
		<pubDate>Mon, 26 Apr 2010 17:41:11 +0000</pubDate>
		<dc:creator>Gurpreet Singh and Raj Sethi</dc:creator>
				<category><![CDATA[SaaS]]></category>

		<guid isPermaLink="false">http://cloudyoda.com/?p=126</guid>
		<description><![CDATA[Victor Hugo famously quoted, “No one can stop an idea whose time has come”; we believe that is so with the Cloud. In many ways, the technology business is quite similar to the fashion industry – new words, new acronyms, and new technologies come and go quite rapidly. But, the Cloud is something different. The [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://cloudyoda.com/wp-content/uploads/2010/04/headinclouds.jpg"></a><a href="http://cloudyoda.com/wp-content/uploads/2010/04/headinclouds_sm.jpg"><img class="alignright size-full wp-image-139" title="headinclouds_sm" src="http://cloudyoda.com/wp-content/uploads/2010/04/headinclouds_sm.jpg" alt="" width="230" height="252" /></a>Victor Hugo famously quoted, “No one can stop an idea whose time has come”; we believe that is so with the Cloud. In many ways, the technology business is quite similar to the fashion industry – new words, new acronyms, and new technologies come and go quite rapidly. But, the Cloud is something different.</p>
<p>The Cloud is not just a technology fad, but a set of ideas envisioned by the early pioneers of the Internet which are now coming alive. It already has, and will further transform how companies and individuals access and use technology.  It is in this spirit that we plan to converse, listen and argue. So let’s start right away, keeping in mind the words of Master Yoda , “Always in motion is the future”.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cloudyoda.com/?feed=rss2&#038;p=126</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
