8 aspects that software architects must keep in mind when developing SaaS

The rapid growth of cloud computing has caused many ISVs to change their software delivery models. They are shifting from  on-premise deployments to the cloud and they are adopting the Software-as-a-Service model to achieve their business objectives.


With this in mind, what architecture shift should be done in those on-premise products to deliver them as SaaS offerings?

 

1. Multi-tenancy –To achieve cost effective deployments for a SaaS offering, most providers shift their architecture to be multi-tenant where a single product instance is used to serve multiple tenants. Often each tenant is allowed to customize the application to their own needs. Different versions of the application are even made available for different tenants – all provided in a single instance. This is in contrast with traditional software products where each customer is provided with its own copy of the product, isolating its customization or versioning to specific instances.

 

2. Scalability – One of the main drivers of SaaS isthe cost effectiveness achieved by reducing the cost of new tenant on-boarding and service delivery to almost zero. This poses a very high demand on the ability of a product to scale effectively as the number of users and the amount of data grows exponentially.

 

3. Elasticity –The product deployed on SaaS should be able (based on the application load) to scale its infrastructure up and down  dynamically by adding or removing machines from its deployment. Elasticity is usually achieved by virtualizing the hardware. Unfortunately,  this is not enough because the application itself should be refactored in a way that supports the dynamic deployment changes (i.e. by being able to move the services from one machine to another in a transparent way or switch off the services that are not used).

 

4. Continuous delivery – SaaS customers expect self-provisioning with frequent, transparent updates. They expect SaaS to be just like apps they have on their smart phone or tablet device where installation and updates of an application are completely transparent. Also, the competition between different ISV providers makes it mandatory to provide constantly new value to their customers. To achieve these goals, ISV providers must adopt a continuous delivery paradigm and be able to rapidly release small incremental changes compared to large releases of the traditional software.

 

5. High availability and fault and recovery – Cloud services are usually delivered using a “pay-per-use” model and any downtime of a product is directly translated to loss of revenues. All enterprise-ready products should support high availability and fault and recovery, but for products deployed in SaaS this becomes even more critical. This is because users are paying per-use and are not exposed to support, upgrades, patches, etc. to fix the problem. Low availability or bad performance of a product will simply cause users to switch to another service provider.

 

6. Optimization for specific hardware and deployment architectures – This is one of the advantages of SaaS deployments. Because SaaS  eliminates the need to support a wide range of environments and platforms, which could hardware, VMs, operating systems, application servers, databases including multiple versions of each at any given time. This helps drive innovation by saving a lot of resources because it is no longer required to develop and test each release or a new feature on multiple platforms.

 

7. Flexible licensing model – SaaS providers offer more flexible pricing models of “pay-per-use” based on usage during different time periods, the number of concurrent users, usage of certain sets of services, etc.  ISVs should refactor their products in a way that enables this kind of usage measuring and tracing.

 

8. Security –This is one of the main concerns for consumers that move their applications to cloud. The concern is justified. Because of the multi-tenancy architecture, the data of many customers is managed on a single product instance. Many consumers prefer to manage their sensitive data on-premise. In addition, some countries have regulations requiring that sensitive data be kept within their country. SaaS providers should supply secure ways to connect to the data that is stored on-premise and protected by the corporate firewall. This also includes providing integration with the identity services of the organization.

 

While the growth of SaaS is rapid, the core market for most large ISVs remains traditional, on-premise deployments. As a result, many ISVs choose to provide a mixed delivery model to sustain both the cloud and on-premise market.

 

In addition, to provide smooth migration for existing customers, there is a need for new types of integrations between the services provided in the cloud and existing deployments on-premise.

 

The article was written by Olga Kogan

 

Leave a Comment

We encourage you to share your comments on this post. Comments are moderated and will be reviewed
and posted as promptly as possible during regular business hours

To ensure your comment is published, be sure to follow the Community Guidelines.

Be sure to enter a unique name. You can't reuse a name that's already in use.
Be sure to enter a unique email address. You can't reuse an email address that's already in use.
Type the characters you see in the picture above.Type the words you hear.
Search
About the Author


Follow Us
The opinions expressed above are the personal opinions of the authors, not of HP. By using this site, you accept the Terms of Use and Rules of Participation