|
Technology enablers for SaaS – Sharding |
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
 |
|