Header
Technology enablers for SaaS – Sharding
August 08, 2008  

Moving to a Software-as-a-Service model isn’t easy, as we highlighted last week. Quite a few design and engineering considerations must be taken into account. Of course, a minimalist approach can be taken while building a SaaS product and that can work very well. For example, Tomcat, MySQL, XML, Struts 2.0, POJO and JSP are all it takes to build a SaaS application/product using Java technology.

However, there are additional techniques and tool-kits that can be made use of when SaaS-enabling a product. While these techniques and tools have not been developed specifically for SaaS and have been around for quite a while, they can come in handy when building enterprise-class SaaS products.

Some of the useful technology concepts to keep in mind, when engineering SaaS applications, are SOA (Service-Oriented Architecture), Web Services, Sharding, SODA (Service Oriented Data Architecture) and AOP (Aspect Oriented Programming).

Today, we’ll elaborate on Sharding, which is basically Entity partitioning. From a SaaS viewpoint, sharding can allow you to have parts of the data stored in different databases, spread across multiple servers. For example, user ids 1-100,000 live on one instance while the next 100,000 is stored in another instance. Tenants A and C can be stored on one server, while data for Tenant B is on another server.

Though sharding is regarded as partitioning, it is not just that. It is more than that. One can also split tables among different and smaller databases on different servers. Though sharding is not perfect, it offers high availability and faster queries of data. This also ensures more bandwidth, which is very essential for SaaS products, as the number of users at any point of time will be huge.

We will continue to highlight the different technologies and tools that can be made use of to develop SaaS products in the coming weeks.

Related links

Shard – A Database Design

Scale Cheaply - Sharding


Sharding: Different from Partitioning and Federation?

Sharding the Hibernate Way

Database Sharding Helps High-Traffic Sites

UPCOMING Webinar
How do you optimize Software Test Automation Costs?

When it comes to automated testing, everyone throws around hot buzzwords like “data-driven”, “data flows”, and “error handling”. Do these buzzwords allow you to produce automation that is efficient, maintainable and usable? Above all, what does it take to optimize the costs involved in achieving efficient, maintainable and usable automation?

Key Take-Away from this Webinar:

* How to achieve significant savings in your automation initiatives?
* How to increase test coverage with less employee overhead?
* How does an architected framework for automation development increase efficiency?
* How do you improve the usability of automation architecture?

Date: August 21,2008.

Time:2 PM ET/11AM PT

Presented by: Aspire Systems and AutomatedQA   

http://producteering.org | Sponsored by Aspire Systems