The needs of a modern customer doing online shopping have become totally different compared to the retail experience 5 years ago. According to the statistics, services that deliver better customer experiences obtain revenues between 4% and 8% above their market. Since the retail landscape is today more competitive than ever, offering a personalized unique retail experience is a business instrument allowing to capture the customer’s attention.Despite it, many retail top-level managers resist the digitalization process, thinking that the customer will not change for them as time will pass by. However, if you do not keep up with the trends, you become irrelevant and boring. In this article, we will tell you about the way to implement retail business digitalization by building a multi-tenant SaaS system based on our real experience and tackle all the tech and non-tech aspects, including technical insights from our Altamira experts – Alex Dykyi, a solution architect and Valeria Allianova – a senior project manager.
SaaS system as an efficient retail technology tool for your e-commerce business
SaaS is a cloud-based way to deliver services in retail. You can access the software via different types of web browsers.
Benefits of SaaS platforms for your business:
- Ability to upgrade with no effort. You can keep the existing setting each time the update will occur;
- Cloud provider is responsible for speed, performance, security, and upgrades;
- You get enough elasticity to scale up and down depending on the current requirements demanded by your business;
- High level of customization – you can provide an additional layer of architecture allowing customizations while still maintaining the same codebase.
Most SaaS platforms in the e-commerce and retail niche operate on multi-tenancy. It is cheaper, has more efficient resource usage, and better capacity, and requires fewer maintenance costs. E-commerce platforms built using multi-tenant architecture allow vendors to sell their goods via a unified platform turning the business into a more efficient process, without the need to build an online store from scratch.
Single Tenant SaaS platform vs Multi-Tenancy - which should I choose?
Let us deepen into the specificities of single-tenant and multi-tenant platforms and assess the value for business.
- limitless number of software instances;
- multiple owners create and manage their shops and they run on a single codebase;
- it is less expensive;
- tenants do not have to worry about updates and their hardware data;
- scalable architecture;
- instant configuration of services;
- regular deployments.
- one user;
- is more suitable for a customer that wants to have more control and flexibility in one’s environment and the ability to add specific requirements;
- it is more secure;
- hosting such a platform is too costly
- because of the individual instances of the program and related components, deployments occur more rarely and are complicated.
Key elements of the multi-tenant SaaS platform
A multi-tenant platform is a complex system that has its specificities, elements, technical nuances, etc.
Multi-tenant architecture in SaaS presents the cloud infrastructure software instances and supportive shared infrastructure that serves numerous customers – tenants. Their share the same resources and a single database, however, their data is separated from each other.
Multi-tenancy allows customizing particular parts of the app following individual needs. The multi-tenant architecture allows running the software on one server and serves multiple tenants with their configurations, data, user management, and other priorities.
Although multi-tenant SaaS platform shares the same users, displays and rules, and database schemes, they still can be customized by tenant business needs.
Unlock the value of a multi-tenant SaaS platform as powerful is trimmer for your business:
- Ensures that each client receives enough storage and computer power to handle one’s workloads;
- Easy maintenance and upgrading – new features and upgrades can be released to the central system or codebase, applying changes to all users;
- Building and hosting multi-tenant SaaS is much cheaper thanks to their scalable infrastructure;
- SaaS platforms are highly customizable, and enable third-party integration for every single tenant without the need to deploy on their infrastructure;
- Multi-tenancy allows building scaling strategies without infrastructure implications;
- Building a multi-tenant SaaS platform allows customizing the platform without coding since they are highly configurable.
SaaS Multi-Tenant Architecture - specificities to consider
As it was already mentioned, building a multitenant SaaS platform enables businesses to run one software instance of the app on one instance of the database and provide web acess to multiple customers. The data of each tenant is isolated and remains invisible to other tenants. In this SaaS space, multiple tenants typically share servers, security, heating, cooling, etc.
SaaS multi-tenant architecture, being scalable and resilient allows a single environment to serve multiple tenants. The underlying infrastructure is logically isolated and with fully centralized services.
While choosing a database for multi-tenant SaaS developers need to find a balance between the need for data isolation and quick scalability following the business needs. You also need to consider the number of tenants and policy management mechanisms for multiple customers.
It can be achieved while allocating separate databases for each single tenant. A single platform serves multiple cloud public cloud customers and allows businesses to operate on a very large scale.
- Data base per tenant: Each tenant gets a separate database where app tiers can be scaled either vertically or horizontally. However, they belong to the same resource groups which are divisible into elastic pools, which can be moved to achieve efficient resource management.
- Single multi-tenant database: Here belong multiple schemas with several tenant identifier columns, however, storage and compute resources are shared between all users decreasing the per-tenant expenses.
- Sharded multi-tenant databases: It allows the creation of multiple databases to store multi-tenant data centers. Then, you will be able to split shards into multiple worker nodes to split densely populated shards when the workload will grow. You can also put sharded database into the elastic pool to enhance management and scalability.
- Hybrid sharded multi-tenant databases: allows moving whole groups or tenants across sharded databases.
Tenant isolation is necessary to prevent other tenants from accessing others users’ content and is one of the most vital aspects of multi-tenant architecture. When you deal with different customers – tenants, it is essential to take care of security, privacy, and confidentiality.
To the best data isolation practices belong:
- Silo isolation creates strong boundaries for multiple customers.
- Another practice is pool isolation, allowing several users to share the same multi-tenant SaaS infrastructure. It also enables vendors to scale their resources in proportion to users-base and resource usage.
- Bridge model – it is a hybrid of silo isolation and pool partition with shared isolation structures.
- Tier-based isolation – it works as a bridge model, however, offers different subscription plans.
Tenant onboarding in multi-tenant SaaS system
Tenant onboarding, while approached properly, allows for a decrease in customer attrition or customer churn. It can be achieved by making your service more understandable to new tenants. To make the onboarding smooth you can provide users with appropriate documentation, tutorials, videos, customer service, and an intuitive interface.
The process could be completely automated by the implementation of an automated provisioning mechanism.
Analytics of multiple tenants system
One of the most important metrics for SaaS business is resource consumption. Based on it, you can measure which consumption models bring the most value. You should monitor number of active clients, infrastructure costs per tenant, memory and storage utilization indicators, user interaction activity, profits per tenant and tier.
Measuring these metrics allows to set optimal threshold for tenant consumption if they regularly exceed limits.
Centralized tenant configuration
With the improvement of your SaaS platform you need to change the way you satisfy tenants needs by implementing centralized tenant configuration. Availability of various tenant policies will allow to adopt the available platform features, performance, limitations and SLAs according to particular customers needs and customize tenant personas.
It is a document as well as an instrument allowing you to measure the degree to which your service meets the client’s expectations. Exist some best practices allow you to adapt your SLA with SaaS.
- Service tiering. It is necessary for users who want to receive some extra services and pay for advanced functionality. SLA allows you to determine your product value.
- Framework. It helps you to define multi-tenant SaaS customer needs necessary to measure the value of your product. You can use a dashboard to track tenants’ performance against SLA objectives. It will give you an understanding of which features should be added or improved in your multi-tenant SaaS to increase the quality of your service.
- Business impact. Since various multi-tenant SaaS users consume different amounts of resources, some of them may exceed the limits which result in revenue loss. Tracking the tenants’ traffic will allow you to monitor the situation and balance cost and operational efficiency.
- Reporting. The reporting tool will help the management teams to analyze multi-tenancy data and make informed decisions.
Altamira approach to building multitenant SaaS for retail: Tips and Challenges
Altamira team has recently been working on an interesting and complex project for the e-commerce and retail industry. We received a request from the owner of a business for buying goods through different users’ accounts on eBay, BestBuy, Amazon, Walmart, etc.
The client was selling electronics and wanted to develop an analog of the existing software adding new features, improving the design, performance, and responsiveness, and digitalizing the process of bulk purchases of electronics and other goods from websites.
Primarily, he wanted to replace the ready-made multi-tenant SaaS he used since it increased the fees and included many unnecessary features, which he paid for. He wanted to build his own user-friendly custom SaaS platform on a multi-tenant architecture, which will fully support his business objectives and needs.
After the discovery stage, we planned the technologies which will be used, however, while taking the decision, the customer mentioned his plan to monetize the multi-tenancy app in the future to be able to use it as a SaaS platform, which required a change of an app tech stack, increase the budget of the project and demanded more complex multi-tenant architecture with advanced admin panel.
We were also discussing whether this SaaS tenant using multi-tenant-environment will have their domain names or will simply be subdomains. It was important to solve all these nuances during the planning stage to choose the best-suiting tech stack.
After we received the full understanding of the client’s vision of the project, there was a need to choose a programming language, which will fully cover the idea of a multi-tenant application technically. Among the options able to cover the tech specificities there were Node.Js and PHP Laravel.
Since Laravel had more benefits for a current project, covering all functional and non-functional requirements, and was the best rational option to build an app on multi-tenant SaaS architecture in terms of budgeting, it was chosen as a programming language.
The main challenges we faced while building a SaaS environment for multiple customers
The multi-tenancy project was quite challenging, due to the variety of nuances of multi-tenant SaaS architecture that should be taken into account. The architect validated that all the technologies chosen can provide the necessary result and correspond to all functional and non-functional requirements.
Multi-tenancy service scaling was also important to be able to sustain all the possible corner cases. We created the new multi-tenant SaaS architecture scheme, discussed all the desired key integrations, and discussed all the key factors which will influence the success of the project and were provided by our customer.
Administration of the service
It is important to primarily build the central SaaS system and then distribute it among several tenants. After that we started to work on an admin panel allowing us to configure this complex system, adapting it to the needs of each tenant.
To be able to overcome other counterparts on the market, a client should offer more advanced features, which will be useful for his customers’ business and a complex admin panel was needed. However, it was also important to take into account the time limits, since we wanted to launch the platform and generate income, while parallel improving the multi-tenancy software.
We decided to manually launch the analog system for the customer tenant without the admin panel. We launched the same product on the tenant’s domain, deployed the code, configured the system, and offered the paid account to a tenant with the necessary integrations. In case, the tenant will deny paying, we would simply deactivate the existing environment. Thus, the client is currently selling the product, while we are working on the admin panel and further improvements.
Our priority was to stay flexible for a client and provide the ability to support main business processes while designing a new multi-tenant architecture platform, and moving business there.
The choice of architecture and dealing with data
While dealing with such a project you are bound to some limitations. Moreover, you need to consider the following difficulties of a multi-tenant architecture and fully cover customer expectations. Alexandr Dykyi – Altamira expert from the Solution department has shared some technical aspects and challenges the team faced during the development process and told how they managed to efficiently overcome those with the help of modern practices.
A team needed to build the architecture that will handle lots of users, be stable, and scalable, and handle the current business needs of each customer separately.
The system was planned to be a multi-tenant SaaS architecture – the same code but from a maintaining perspective, each environment will be separate for every single tenant. For that reason, we faced the serious challenge – of building a complex multi-tenancy architecture with isolated databases for each tenant while preserving a high level of privacy and system scalability.
To achieve the required level of scaling, it was necessary to configure auto-scaling from the database level. You need to scale all layers of architecture – back, front, and most important – multi-tenant database level. You cannot lose your data or allows one tenant’s data and configurations to be accessed by other tenants.
Dealing with the tenant’s data was also challenging. Every single tenant has its requirements, due to compliance requirements in the country, thus we needed to take into consideration the data retention policy.
It is a SaaS solution for e-commerce and retail with an implemented inventory management system. The uniqueness of this app is that it consists of different databases, each with its individual architectural environment, which is individually built, configured, and maintained, taking into account the needs and other requirements of each tenant-customer.
Usually, there is one database, and here it is a SaaS platform with separate environments and databases.
The specific requirement of the client was to make it possible to access specific data (like for instance transaction details, etc. ) when we need to. However, for every single customer exist different data security regulations – for instance, 5, 7, or 3 years, during which it is allowed to save users’ data every year, access to data, taking into account specificities of regulation for each client.
And it was quite challenging since you need to configure it in the code, design, implement, and support complex maintenance for each database and environment.
The key factor for our client was the price of the project. Since, while turning to us for software development services, he was still using the other SaaS software which he also had to pay for, while simultaneously covering the expenses of the current project. Thus, budgeting was among our priorities for us, and we looked for efficient ways to optimize customer expenses while supplying the highest quality of service.
And we decided to use our expertise in AWS. We have built an automated system, which allows quick and easy deployment. When tenant users number will increase, this system will allow to quickly launch a service and configure it appropriately. When the environment does not need any manipulations, we simply freeze it till the release time.
Before release, we wanted to validate whether the system functions appropriately taking into account the complexity of the database. As a rule, regression testing is done in a live environment, however, in this case, we offered to launch the platform under an unnamed domain and conduct regression testing, thus cutting the budget considerably as well as the time of testing.
AWS cloud deployment
We deployed the application under AWS, taking the decision based on the benefits it offers. It provides increased agility, allowing for quicker release of new features. Another factor – is a high level of security and the possibility for move your data to AWS without the need to expose your data to a public network. Serverless architecture enabled us to achieve scalability, which is among our priorities for us.
We managed to build a secure, cost-efficient multi-tenant system at all layers of a stack.
We implemented the AWS secure storing service – AWS Secrets Manager. It served as a secure and scalable service to manage secrets used to access resources in the AWS cloud.
Apart from the benefits offered by choosing such type of platform for your business it imposes also some risks, including security threats. It is impossible to predict how tenants will perform and whether they will be impacted by providers’ resource constraints or other tenants’ activities.
We have implemented the best practices to ensure the Multitenant architecture is secure. Our app is built following Security Compliance – PCI DSS. We ensured everything complies with government regulations for each customer, company policies, and industry standards.
Encryption policies and access control allowed to separate cloud deployments from each other and effectively isolate customer databases from each other.
Using a multitenant SaaS platform as an instrument for business digitalization is one of the best options available on the market nowadays. It is cost-efficient, secure, and offers great business scaling opportunities.
However to build a multitenant SaaS platform you need to take into account the specificities of architecture, number of users, partition model, onboarding process, configuration management tools, and SLA.
Relevant tech stack and detailed product roadmap also matter. The approach of the software development partner and availability of the needed expertise allows to build of solutions that satisfy the individual business needs of a customer, allow to optimize expenses, and choose the best suiting solutions for the particular project.