Multi-level nested multi-tenancy in web software engineering
Main Author: | |
---|---|
Publication Date: | 2024 |
Format: | Master thesis |
Language: | eng |
Source: | Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) |
Download full: | http://hdl.handle.net/10400.26/54138 |
Summary: | An internship was done at a company that ran a suite of in-house built SaaS applications. Since many of the different applications needed the same features such as authentication, authorization, subscription, database management, etc., a single core macroservice was built to serve all the different applications and their different tenants from a single codebase (application). This greatly reduced time-to-market for new SaaS projects and enabled teams to focus more on business and domain features with an estimated 80% reduction in time spent on maintenance and development of the commonly shared modules. This greatly increased productivity among engineer teams and a subjective survey of 12 engineers of various ages and experience levels indicating high satisfaction levels and increase in productivity. The primary focus was to build a solution that provides data isolation for customers which is why a nested multi-level multitenant, multi-database architecture was used, providing a isolated databases, cache stores, queues and logs for each customer. A no-estimation mindset was used in a hybrid kanban-agile scrum methodology which helped achieve more accurate projections with regards to time to complete projects. Furthermore, asynchronous PHP was explored to boost performance were usable which resulted in 54% increase in number of requests that can be handled given the same resources for some endpoints that can make use of concurrency. The language and framework of choice was PHP Laravel and different ways of achieving multi-tenancy in it was discussed, weighed and some implemented. |
id |
RCAP_c35bf90cb0ce49df55c62d05c1f1b3fc |
---|---|
oai_identifier_str |
oai:comum.rcaap.pt:10400.26/54138 |
network_acronym_str |
RCAP |
network_name_str |
Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) |
repository_id_str |
https://opendoar.ac.uk/repository/7160 |
spelling |
Multi-level nested multi-tenancy in web software engineeringMulti-tenancySaaSServerBackendMulti-databaseMulti-clienIsolated databasesIsolated data storesAn internship was done at a company that ran a suite of in-house built SaaS applications. Since many of the different applications needed the same features such as authentication, authorization, subscription, database management, etc., a single core macroservice was built to serve all the different applications and their different tenants from a single codebase (application). This greatly reduced time-to-market for new SaaS projects and enabled teams to focus more on business and domain features with an estimated 80% reduction in time spent on maintenance and development of the commonly shared modules. This greatly increased productivity among engineer teams and a subjective survey of 12 engineers of various ages and experience levels indicating high satisfaction levels and increase in productivity. The primary focus was to build a solution that provides data isolation for customers which is why a nested multi-level multitenant, multi-database architecture was used, providing a isolated databases, cache stores, queues and logs for each customer. A no-estimation mindset was used in a hybrid kanban-agile scrum methodology which helped achieve more accurate projections with regards to time to complete projects. Furthermore, asynchronous PHP was explored to boost performance were usable which resulted in 54% increase in number of requests that can be handled given the same resources for some endpoints that can make use of concurrency. The language and framework of choice was PHP Laravel and different ways of achieving multi-tenancy in it was discussed, weighed and some implemented.Oliveira, Luís Miguel Lopes dePanda, Renato Eduardo SilvaAhmad, MasoodRepositório ComumFeda, Shoaib2025-02-01T12:20:45Z202420242024-01-01T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttp://hdl.handle.net/10400.26/54138urn:tid:203880722enginfo:eu-repo/semantics/openAccessreponame:Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)instname:FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologiainstacron:RCAAP2025-05-05T09:54:15Zoai:comum.rcaap.pt:10400.26/54138Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireinfo@rcaap.ptopendoar:https://opendoar.ac.uk/repository/71602025-05-29T06:58:44.782790Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) - FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologiafalse |
dc.title.none.fl_str_mv |
Multi-level nested multi-tenancy in web software engineering |
title |
Multi-level nested multi-tenancy in web software engineering |
spellingShingle |
Multi-level nested multi-tenancy in web software engineering Feda, Shoaib Multi-tenancy SaaS Server Backend Multi-database Multi-clien Isolated databases Isolated data stores |
title_short |
Multi-level nested multi-tenancy in web software engineering |
title_full |
Multi-level nested multi-tenancy in web software engineering |
title_fullStr |
Multi-level nested multi-tenancy in web software engineering |
title_full_unstemmed |
Multi-level nested multi-tenancy in web software engineering |
title_sort |
Multi-level nested multi-tenancy in web software engineering |
author |
Feda, Shoaib |
author_facet |
Feda, Shoaib |
author_role |
author |
dc.contributor.none.fl_str_mv |
Oliveira, Luís Miguel Lopes de Panda, Renato Eduardo Silva Ahmad, Masood Repositório Comum |
dc.contributor.author.fl_str_mv |
Feda, Shoaib |
dc.subject.por.fl_str_mv |
Multi-tenancy SaaS Server Backend Multi-database Multi-clien Isolated databases Isolated data stores |
topic |
Multi-tenancy SaaS Server Backend Multi-database Multi-clien Isolated databases Isolated data stores |
description |
An internship was done at a company that ran a suite of in-house built SaaS applications. Since many of the different applications needed the same features such as authentication, authorization, subscription, database management, etc., a single core macroservice was built to serve all the different applications and their different tenants from a single codebase (application). This greatly reduced time-to-market for new SaaS projects and enabled teams to focus more on business and domain features with an estimated 80% reduction in time spent on maintenance and development of the commonly shared modules. This greatly increased productivity among engineer teams and a subjective survey of 12 engineers of various ages and experience levels indicating high satisfaction levels and increase in productivity. The primary focus was to build a solution that provides data isolation for customers which is why a nested multi-level multitenant, multi-database architecture was used, providing a isolated databases, cache stores, queues and logs for each customer. A no-estimation mindset was used in a hybrid kanban-agile scrum methodology which helped achieve more accurate projections with regards to time to complete projects. Furthermore, asynchronous PHP was explored to boost performance were usable which resulted in 54% increase in number of requests that can be handled given the same resources for some endpoints that can make use of concurrency. The language and framework of choice was PHP Laravel and different ways of achieving multi-tenancy in it was discussed, weighed and some implemented. |
publishDate |
2024 |
dc.date.none.fl_str_mv |
2024 2024 2024-01-01T00:00:00Z 2025-02-01T12:20:45Z |
dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
dc.type.driver.fl_str_mv |
info:eu-repo/semantics/masterThesis |
format |
masterThesis |
status_str |
publishedVersion |
dc.identifier.uri.fl_str_mv |
http://hdl.handle.net/10400.26/54138 urn:tid:203880722 |
url |
http://hdl.handle.net/10400.26/54138 |
identifier_str_mv |
urn:tid:203880722 |
dc.language.iso.fl_str_mv |
eng |
language |
eng |
dc.rights.driver.fl_str_mv |
info:eu-repo/semantics/openAccess |
eu_rights_str_mv |
openAccess |
dc.format.none.fl_str_mv |
application/pdf |
dc.source.none.fl_str_mv |
reponame:Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) instname:FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia instacron:RCAAP |
instname_str |
FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia |
instacron_str |
RCAAP |
institution |
RCAAP |
reponame_str |
Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) |
collection |
Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) |
repository.name.fl_str_mv |
Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) - FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia |
repository.mail.fl_str_mv |
info@rcaap.pt |
_version_ |
1833602846452350976 |