Achieved Milestone
- 70% Decreased Time to Market
- 10x Increased Release Accuracy
- Better Release Bundle Tracking for Tenants
- Easy Rollouts and Rollbacks across Tenants
- Improved Visibility in Software Delivery across Multi-Tenants
- Streamlined Microservices Dependencies and Release Order
Multi-Tenant Software Distribution
Multi-tenant software distribution involves deploying applications across multiple customer environments while ensuring each tenant’s configurations and updates are tailored to their specific needs. This process can be complex and requires careful management of version control, security, and consistency across diverse environments. Efficient tools and automation are essential to streamline deployments, minimize manual effort, and ensure smooth updates and reliable service delivery for all tenants.
Multi-Tenant Software Distribution using Directed Acyclic Graph
A Directed Acyclic Graph (DAG) is a data structure used to represent a set of elements connected by directed edges, where the edges have a direction and there are no cycles, meaning no element can be revisited once traversed. Some of the key features of DAG are:
- Ensures a clear, linear flow with no loops or cyclic dependencies.
- Guarantees tasks are executed in the correct order, respecting dependency requirements.
Deploying software across multiple tenants is crucial yet complex, DAG served us well in managing dependencies and orchestrating releases. DAG ensures that there are no circular dependencies, allowing for a clear and structured execution flow for releases. Multiple deployments were made with a single click into the tenant's environment.
Although DAG was an optimized method that simplified the release process to a single click, the initial setup required significant effort and great attention to detail. This includes:
- Carefully and repeatedly selecting the correct image to be deployed, and manually selecting and ensuring the correct image for multiple microservices and for multiple tenants is very time-consuming and tedious.
- Monitoring the whole process was never easy, every time after implementing DAG, manually had to check the deployment status of all deployed services one by one and ensure everything was well and good.
- Keeping track of the deployments was another sub-task to it, each time a deployment was made, we had to maintain the version, whether it was a major or a minor patch, and this information had to be kept in a separate place with extra effort.
- The initial preparation time for DAG is considerable, making it challenging to deploy hotfixes/urgent releases quickly, so we had to deploy hotfixes/urgent releases manually.
Solution: Multi-Tenant Software Distribution using Devtron’s Release Management
Recently we had a chance to adopt and use one of the new features of Devtron named Software Distribution Hub (SDH), that is primarily designed to streamline the release for multiple tenants. As an organization that builds and delivers multi-tenant solutions, we face the challenge of deploying updates across multiple destinations efficiently. The Software Distribution Hub (SDH) has been made to effectively address the various issues we encountered while delivering our software to clients.
To understand and evaluate the whole transition from DAG to SDH one has to be familiar with the terminologies associated with SDH and it’s functioning, the following is a brief preview of all the prerequisites needed to understand the functionality of SDH.
What are Tenants and Installations?
Any organization that signs up to use your SaaS environments can be regarded as Tenants. A group or multiple environments are mapped to one installation where we need to deploy our software. One installation is equivalent to one deployment of your Software.
What is a Release Channel?
A release channel is a group of installations that can generally be used to segregate and deploy software to different installations (or environments as installations are mapped to the environment). A classic example of this could be, generally, there are 3 environments namely Dev, QA, and pre-prod, lets's map these to 3 different installations, after segregating all the installations of tenants into 3 different channels, we can deploy releases accordingly.
What is a Release Track?
A release track is a group of applications mapped to it, these are the applications that can be released from the release track. In simple words, it is a stack or group of services that sum off to your complete application.
How SDH helped us overcome the limitations of releasing through DAG
- Tenants, Installations, and Release Track combinedly three gave a clearer view enabling us to plan and perform releases onto tenants’ environments
- The deployment status of all the deployments triggered can be found in one place
- Version tracking for releases is now handled automatically through the Software Distribution Hub, with a simple UI that requires no additional effort. The enhanced UI offers a clearer overview of deployed versions, making it easier for teams to monitor updates and maintain consistency across multiple tenants.
- Predefined release tracks have streamlined our preparation for hotfixes and urgent releases, allowing us to act more swiftly than with DAG. This also ensures correct records are kept for all releases, whether major updates or minor patches.
A Comparative Analysis
Aspects | DAG | SDH |
---|---|---|
Image Selection | Manual selection of correct images for multiple microservices and tenants is time-consuming. | Image selection directly from CI pipeline simplifies deployment across multiple environments. |
Preparation Time | Significant initial preparation time hinders quick hotfix deployment. | Predefined release tracks enable faster preparation for hotfixes and urgent releases. |
Release Monitoring | Deployment status must be checked individually, making monitoring the release process tedious. | Deployment status for all triggered services can be viewed in one centralized location. |
Version Tracking | Keeping track of releases requires additional effort and separate records. | SDH ensures accurate records for all releases, including major and minor patches with no additional efforts. |
Client and Environment Segregation | Had to manually segregate each tenant and environment, complicating tailored releases. | SDH allows for clear segregation of clients and different environments, enabling tailored deployments. |
Now, let's take a quick demo of the flow within the Software Distribution Hub (SDH) to better understand how the deployment process works. This demonstration will walk through the key steps and features, providing an overview of how SDH streamlines and simplifies the deployment process for your multi-tenant environments.
Conclusion
Multi-tenant software distribution has been a problem for many organizations dealing with customer-end deployments. Devtron Platform, being a self-hosted solution for Kubernetes management, the team has been deploying the platform on the customer's infrastructure and it was very difficult to deploy and keep track of versioning, visibility across different tenants, and the software delivery process, the unique configurations of each customer stack and much more.
The team has been effectively solving these with DAG releases but it comes with its own set of problems which inspired us to build Software Distribution Hub for release management. It is specifically designed and crafted for multi-tenant distributions solving the native challenges.