Friday, October 26, 2007

Virtualization vs. multi-tenant architecture

For software developers, SaaS is typically associated with "multi-tenant architecture", which many believe is a prerequisite for a SaaS application.

Traditionally, there would be only one instance of an application running on a server, and this instance would only serve one customer a.k.a. tenant. In the SaaS world, giving each tenant a dedicated server is a huge waste of resources and service providers want to put as many customers on the same server as possible. However, many applications (on Windows – most applications), by design, cannot have multiple instances on the same server.

To solve this problem, software developers came up with "multi-tenant architecture". The application is redesigned in such a way that a single physical copy of an application provides multiple "virtual" instances – each tenant gets an instance. Compared to several independent instances, using the same physical instance allows extensive sharing of data and metadata between instances/tenants

Multi-tenant design is considered to be more efficient than multi-instancing, but in reality, as always, your mileage will vary. And to make the estimation process easier, I'd like to shed some light – from the ISV's point of view – on the "dark side" of the multi-tenant approach:

  • Cost of transition – There are no good recipes for converting a traditional single-tenant application to multi-tenant design. Empirical data shows that typically the process takes 12+ months and requires resources of nearly the entire development organization. The existing feature development is essentially frozen.
  • Ongoing costs – Current generation of software – development tools, middleware, management tools – do not natively support multi-tenant paradigm. For traditional applications, mundane development tasks were taken care of by frameworks and tools, and mundane management tasks were taken care of by management solutions. None of this software natively supports multi-tenant paradigm, so an ISV will have to develop a lot of plumbing-ware from scratch.
  • Skills mismatch – The ISV must deliver complex services outside their area of expertise – hosting, SLA enforcement, monitoring, data protection, security, etc. The expertise associated with running a large-scale datacenter is not something that can be acquired overnight.
  • Limited customization – It's very hard to efficiently implement per-tenant database schema customization in a single database, and it's not possible to use standard DBMS tools – like built-in indexing. Plus, the multi-tenant application cannot use script-based customization of the internal logic – what if a buggy script loops infinitely?

    SmoothSpan Bob Warfield and Unreasonable Men argued that customization capabilities are often excessive and there is little harm in removing much of that flexibility. For newly written applications, it might even be true. But if an ISV has a customer base to migrate to SaaS model, telling customers that their solutions will be broken because some of the customizations don't work anymore is hardly an option.

  • Weak isolation – Because all tenants run inside the same application instance, one tenant can bring down everyone else on the same machine – due to a security breach, memory leak, "infinite loop" bug – you name it. It is technically possible to build some resource management capabilities into the application itself, but the existing development tools – languages, frameworks – do not support safe multi-tenancy and hence don't provide resource management capabilities.
  • Inflexible service levels – Finally, lack of resource management means that you cannot provide and hence monetize service level guarantees.

Virtualization – The silver-coated bullet

There is no silver bullet, but in this case, there is a silver-coated one.
Virtualization technology provides a solution to all the problems mentioned – put the application in a virtual environment and ship it – in unchanged state – to the service provider's datacenter. If the front-end is not web-based, use a VPN. This topic has already been discussed by Bob Warfield and Phil Wainewright who cites a real success story. Hardware virtualization, with single-digit real-life consolidation ratio, will probably not be good enough. But a light-weight server virtualization technology that can host 100+ instances on a single server - Virtuozzo – provides very cost-effective solution. Even if you are very determined to pursue multi-tenancy, Virtuozzo will buy you enough time to make the transition smooth and successful. However, in the majority of cases, further transition will not even be necessary because the Virtuozzo-based solution works well for most customers.

Shameless plug – check out my SaaS blog.

5 comments:

Anonymous said...

wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
World of Warcraft Gold
rolex replica
World of Warcraft Gold
rolex
beijing hotel
beijing hotel
china tour
china tour
great wall
great wall
beijing travel
beijing travel
beijing
beijing
窃听器
窃听器
手机窃听器
手机窃听器

翻译公司
机票
性病
尖锐湿疣
搬家公司
搬家公司
中高年 転職
転職
派遣会社
アルバイト 求人情報
人材派遣
パチンコ 攻略
ダイエット
合宿免許
おなら
フランス語
婚約指輪
競馬
ブライダル
競馬 予想
お見合い
商务网
保洁公司
塑钢门窗
ups电源
心脏病
试管婴儿
试管婴儿
捐卵
捐卵
rolex replica
婚庆
婚庆公司
北京婚庆
北京婚庆公司
代孕
试管婴儿


wow power leveling
powerleveling
powerleveling
power leveling
power leveling
wrath of the Lich King
wrath of the Lich King
wow powerleveling
wow powerleveling
wow power leveling
wow power leveling
powerleveling
powerleveling
power leveling
power leveling
wow powerleveling
wow powerleveling
wow power leveling
wow power leveling
powerleveling
powerleveling
power leveling
power leveling

Anonymous said...

wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
World of Warcraft Gold
rolex replica
World of Warcraft Gold
rolex
beijing hotel
beijing hotel
china tour
china tour
great wall
great wall
beijing travel
beijing travel
beijing
beijing
窃听器
窃听器
手机窃听器
手机窃听器

翻译公司
机票
性病
尖锐湿疣
搬家公司
搬家公司
中高年 転職
転職
派遣会社
アルバイト 求人情報
人材派遣
パチンコ 攻略
ダイエット
合宿免許
おなら
フランス語
婚約指輪
競馬
ブライダル
競馬 予想
お見合い
商务网
保洁公司
塑钢门窗
ups电源
心脏病
试管婴儿
试管婴儿
捐卵
捐卵
rolex replica
婚庆
婚庆公司
北京婚庆
北京婚庆公司
代孕
试管婴儿


wow power leveling
powerleveling
powerleveling
power leveling
power leveling
wrath of the Lich King
wrath of the Lich King
wow powerleveling
wow powerleveling
wow power leveling
wow power leveling
powerleveling
powerleveling
power leveling
power leveling
wow powerleveling
wow powerleveling
wow power leveling
wow power leveling
powerleveling
powerleveling
power leveling
power leveling

Anonymous said...

wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
World of Warcraft Gold
rolex replica
World of Warcraft Gold
rolex
beijing hotel
beijing hotel
china tour
china tour
great wall
great wall
beijing travel
beijing travel
beijing
beijing
窃听器
窃听器
手机窃听器
手机窃听器

翻译公司
机票
性病
尖锐湿疣
搬家公司
搬家公司
中高年 転職
転職
派遣会社
アルバイト 求人情報
人材派遣
パチンコ 攻略
ダイエット
合宿免許
おなら
フランス語
婚約指輪
競馬
ブライダル
競馬 予想
お見合い
商务网
保洁公司
塑钢门窗
ups电源
心脏病
试管婴儿
试管婴儿
捐卵
捐卵
rolex replica
婚庆
婚庆公司
北京婚庆
北京婚庆公司
代孕
试管婴儿


wow power leveling
powerleveling
powerleveling
power leveling
power leveling
wrath of the Lich King
wrath of the Lich King
wow powerleveling
wow powerleveling
wow power leveling
wow power leveling
powerleveling
powerleveling
power leveling
power leveling
wow powerleveling
wow powerleveling
wow power leveling
wow power leveling
powerleveling
powerleveling
power leveling
power leveling

Anonymous said...

wow power leveling
wow powerleveling
wow power leveling
wow gold
wow items
feelingame.com
wow tips
Most Valuable WOW Power Leveling Service
wow power leveling faq
cheap wow power leveling
wow power leveling
wow powerleveling
wow power lvl

PinkFloydYoshi said...

I am currently trialling the Virtuozzo 4.0 beta at home and I have to say, I've been a fan of OpenVZ for a while, but Virtuozzo is just simply amazing. The one thing that lets it down though where VMware are currently scoring points is the freely available VMware Server, and if free isn't a possibility, a home/personal use license. While I know OpenVZ is open it only allows Linux users the use through vzctl. This said, OpenVZ doesn't have anywhere the glorious functionality of Virtuozzo. As an IT professional I wouldn't mind paying $499 for both a 2 CPU Linux and Windows Virtuozzo license minus any support for project based and developmental purposes. You already restrict starter pack customers to not allowing the use of the license for hosting purposes, so you could possibly limit the use of a home-use license to strictly non-commercial practices or non-profit. I do currently host IRC and HTTPd servers using VMware Server 1.0.4 but it uses way too much in terms of resources and I could get more on there if I ran Virtuozzo.