With the Software-as-a-Service (SaaS) model, many software providers host applications in the cloud for their customers to access. They frequently leverage the use of Infrastructure-as-a-Service (IaaS) from such providers as Amazon Web Services (AWS), Google Compute Engine, Windows Azure, and Rackspace, or private cloud platforms such as CloudStack and OpenStack. Using IaaS resources to host SaaS products provides cost efficiency, decreases time to market, and can be a great way for previously packaged software to make a transition to SaaS using a single-tenant model.
Single- and Multi-Tenant SaaS
Companies can deliver SaaS solutions in two ways. Most pure-play SaaS providers take the multi-tenant approach, in which a single instance of an application provides all customers with secure access to data. These companies — think Salesforce.com and Microsoft Office 365 — face challenges with making sure their applications scale as they add more customers and users.
By contrast, many traditional, on-premise software providers take the single-tenant approach, in which each cloud instance of an application serves one single customer or department. In a single-tenant SaaS approach, organizations can segregate client environments from each other. Clients each get custom permissions and account access, as do developers and ops teams for their agile system development and management.
Using RightScale to Deliver Single-Tenant SaaS
RightScale customers with legacy applications or applications with stringent compliance requirements can deploy single-tenant "instances" of their applications to service their individual customers. The ability that RightScale provides to reproduce and automate whole environments makes this use case scalable, and we have a number of customers on newly "SaaSified" platforms who can attest to its advantages. One RightScale customer, Coupa, uses RightScale to meet compliance requirements of its customers using a single-tenant SaaS model.
For these businesses, each RightScale account represents a given customer, and each account is tied to a specific IaaS account with resources that are used specifically for that customer. Single-tenant SaaS companies use RightScale ServerTemplates™ to define the configuration of their SaaS application in a reliable, reproducible, and consistent manner. ServerTemplates can be shared across accounts and customized for each client.
RightScale accounts can be linked to represent a corporate entity that has individual users with different privileges in multiple accounts.
RightScale also permits SaaS companies to define permissions on each client account. A client with the proper permissions can access specific accounts, while administrators have complete visibility with governance controls, asset configuration, and cost tracking across client accounts. This practice enables businesses to quickly deploy non-cloud-architected on-premise applications to cloud infrastructure, while RightScale provides the automation tools and capabilities that allow organizations to manage each customer environment at scale.
You can see more detail — including diagrams — on applications built by several RightScale customers in the video of my session at the RightScale Compute conference.
RightScale Senior Product Manager Shivan Bindal talks about delivering SaaS using IaaS
A Multi-Tenant SaaS-Over-IaaS Case Study
One company that uses the SaaS-over-IaaS approach is The Resumator, which runs a SaaS platform for enabling its customers to collect resumes and manage the process of sourcing, screening, interviewing, and hiring job candidates. Chris Szymansky, director of engineering at The Resumator, joined me in my presentation at RightScale Compute. He gave a quick tour of several key features of his company's platform and its challenges, which we detailed in a previous blog post.
One of Szymansky's goals is to stay a step ahead of corporate growth. His team sets benchmarks and trigger points so they know when they need to scale. "You want to iterate on your architecture, not perfect it," Szymansky says. The company uses AWS EC2 and S3, along with such software as Varnish, Redis, and Apache Solr, in a standard three-tier architecture. Its staging environment is a direct replica of its production environment, and it also maintains other replicas that it deploys as needed.
RightScale is tied into The Resumator's development workflow. All software issues are reported and assigned in Jira. Szymansky's engineers pull tasks and write code fixes. They use Git for source control and release management, and when they commit fixes for each issue they tag them with release numbers. They then use a RightScript™ to check out tagged code to their test environment. After successful testing, they check out the tagged release to staging and, eventually, production.
One problem the company ran into involved document processing and rendering, which is a crucial job for a business that handles resumes. The company stored information in a MySQL database, used a cron job to send resumes to a third-party service to extract the text, then updated the database with that information. The process didn't scale, so Szymansky's team designed a queuing system using Redis that application developers could employ to process the resumes more efficiently. Getting Redis up and running under RightScale took just a matter of minutes using ServerTemplates and the efficiency that the RightScale automation engine provides. Ultimately The Resumator was able to handle its growth and improve end-user response time by approximately 25 percent without making drastic changes to its infrastructure.
For new applications, Szymansky encourages architectural refinements over time as any organization launches and runs cloud applications. He advises using tools to solve operational challenges such as setting up scalable infrastructure, implementing new technology stacks, and improving development workflows when releasing code and updating a cloud-based server farm.
The Benefits of SaaS Over IaaS
By leveraging IaaS with a cloud management platform such as RightScale, you can launch and manage your SaaS products with fewer up-front costs, deploy them faster, and reduce the cost of ownership compared to building on your own hardware.
RightScale can help you deploy and manage your SaaS applications by enabling you to get new instances up and running in minutes and reducing the effort involved in maintaining and updating them. To see how, request a demo.