I’ve resisted writing about this topic for the past two years because I didn’t think it really mattered. After all, who cares how we architect our application and hosting infrastructure?
As long as we deliver a competitive On Demand solution that:
- meets clients’ business requirements and service level agreements,
- enables our agility and,
- adheres to our internal cost targets
it shouldn’t be anyone’s business but our own.
At least that’s what I thought until a prospective client’s CIO made our architecture a part of his decision making process.
Since he brought it up, I guess I need to address it.
There are untold analyst reports, articles and blog posts on the topic of hosted software architectures. Depending on who you want to believe, some say that unless you’re running a true multitenant architecture, you’re not a true SaaS (software as a service) provider. And if you’re not a true SaaS provider…the logic goes…your support and upgrade processes will eventually kill you. You will be no better off than a classic ASP (application service provider) who had to support any number of individual customers, each with their own versions of your software and with their own unique customizations. You simply couldn’t afford to hire all the development and support staff required to run that kind of business.
As an aside, it used to be that if these support costs didn’t kill you, you would end up blowing your hardware budget as your clients’ need for storage and processing power grew. But thanks to virtualization technology, Moore’s Law and PaaS (platform as a service)…otherwise known as “cloud” … providers like Amazon and Salesforce.com, no one is touting that doomsday scenario anymore.
Back to our multitenant discussion.
We don’t have a multitenant architecture. If that disqualifies me from the SaaS club, then so be it.
What we do have is an elegant and scalable solution based on six key elements:
- A well designed application that anticipates (based on 13 years of experience) the types of customizations that individual clients may need…and we have to accommodate.
- A robust regression testing capability fueled by a growing suite of test scenarios which are integral to our Ruby on Rails development environment.
- A sophisticated version control system that honors the fact that we can have many branches that grow off of the main trunk of our base application.
- Extensive use of virtualization technologies so that individual client applications can be put into (and restored from) escrow in support of our client’s business continuity plans. (let’s see the mutitenant zealots deal with that one :-))
- Highly automated deployments using Capistrano. A single code or database change in a multitenant environment instantly ripples across to all clients. Our ability to automatically propagate changes across all clients gives us “multitenant-like” deployment responsiveness.
- Swiss like (thank you Adrian!) precision and discipline in our methods and procedures.
What our architecture and infrastructure allow us to do is:
- Provision new clients within hours. – Considering that it takes our clients 3-9 months to decide to deploy our service, we may not be within the “self-provisioning” industry benchmark, but we don’t have to be. Besides, setting up redundant production websites, a QA website and integrating all of them via a VPN (virtual private network) to our client’s SAP infrastructure in a couple of hours is nothing to be embarrassed by.
- Provide unlimited storage, processing power and bandwidth. – We kind of cheat a little here because we don’t store any of our client’s business data (SAP does that), we don’t crunch any numbers (SAP does that), and none of our clients place Superbowl ads :-). Regardless, we’re infinitely scalable.
- Support customizations – Our clients never hear “no” from us. They may hear “do you really want to do that?” from a business perspective. But there is nothing about our technical architecture that prevents customizations. Each of our clients have funded anywhere from 30-80 individual customizations that help them tailor their customer’s web experiences to their unique requirements.
- Release new features quarterly. Which is proving to be way faster than our client’s can absorb, so we allow new release features to lay “dormant” until they’re ready to exercise them…if they care to.
- Anticipate and provide real time customer support. – It’s almost spooky how much we monitor, analyze and can act upon.
In the end, whether you’re SaaS, Multitenant, ASP, Cloud, or any other buzzword du jour, a few things are certain. Those terms matter most to the vendors and analysts and the business results matter most to the consumers of those services.
We may not be multitenant in architecture, but ask any one of our tenants and they’ll surely tell you that they love our accommodations!