Automating License Management for 7,000 Users with a Scalable Cloud-Based Solution
The Challenge
A large enterprise client managing product licenses for 7,000 users was dealing with an inefficient, manual system that relied on Excel and a single individual for tracking. Each license cost $1,000, and the company was losing money due to:
- Delayed processing of license requests, affecting employee productivity.
- Licenses remaining tied to former employees, wasting resources.
- Licenses not properly reallocated when users changed devices.
The client sought a solution to automate license management, reclaim unused licenses, and streamline operational efficiency while minimizing risks associated with poor software practices and security vulnerabilities.
The Solution
The project was rolled out in three key phases, each addressing growing operational, technical, and security challenges over the years.
Version 1 (2015-2018): Automating License Management Using SharePoint, File Logging, FxCop, and Manual Deployments
In the initial phase, a custom software solution replaced the Excel-based manual process. SharePoint lists were used to store license requests, active licenses, and audit data. Key integrations in Version 1 included:
- Active Directory for user role-based assignments.
- Email notifications for request approvals or rejections.
- License auditing to track usage and reallocation.
Logging was handled via file-based logs, which soon became inefficient due to the increasing number of requests and growing audit data.
From a deployment perspective, the releases were managed manually using Visual Studio, resulting in slower release cycles and an increased risk of deployment errors. FxCop, a code analysis tool for .NET applications, was used to ensure code quality and compliance with coding standards. However, the static analysis provided by FxCop was limited in scope and required further automation and integration to handle the growing complexity of the solution.
Version 2 (2019-2021): Scaling with Snowflake, Code Analyzers, Automated CI/CD Pipelines, and ServiceNow Integration
To handle the growing complexity of the system, the team migrated from SharePoint to Snowflake for better data storage and query capabilities. Logging was also moved to Snowflake, though managing the high volume of logs was still a challenge.
Key improvements in Version 2 included:
- Snowflake migration: Enhanced data storage, faster queries, and greater scalability for handling the growing number of license requests and audits.
- ServiceNow integration: Streamlined service request workflows and improved tracking of license requests and resolutions.
- Automated CI/CD Pipelines: The team adopted Azure DevOps for continuous integration (CI) and continuous deployment (CD). This automation ensured faster, more consistent deployments with less manual intervention and fewer errors.
- Code Analyzers: The team moved from FxCop to .NET Code Analyzers as part of the automated CI process in Azure DevOps. This upgrade provided deeper integration into the development workflow, offering real-time code analysis during the build process, which improved overall code quality and adherence to best practices.
Version 3 (2022-2024): Migrating to AWS Cloud, Veracode for Advanced Security, and Fine-Tuned Deployment Control with Octopus Deploy
In the final phase, the application was fully migrated to the cloud, hosted on AWS, to ensure scalability and flexibility. The application, built on C# and ASP.NET, was migrated to Linux containers, requiring the team to replace several Windows-specific libraries with Linux-compatible libraries.
With security and risk management becoming a top priority, the team introduced Veracode in Version 3. Veracode provided an advanced level of application security and risk management, scanning for vulnerabilities and offering continuous protection against emerging threats.
Key upgrades in Version 3 included:
- Cloud migration to AWS: Migrating to the cloud improved scalability, reduced maintenance overhead, and enhanced system reliability.
- Octopus Deploy for refined release management: The team switched to Octopus Deploy, which offered greater control over the deployment process, enabling fine-grained control over what was deployed in Development, Integration, and Production environments.
- Veracode for Security: The introduction of Veracode took application security to the next level, providing advanced scanning for vulnerabilities and helping the team identify and mitigate security risks before they could affect production.
- DataDog for Monitoring: The introduction of DataDog for real-time monitoring and log management improved the team’s ability to diagnose and solve issues quickly. This allowed for faster troubleshooting and more efficient performance tracking.
The Results
The evolution of the license management solution resulted in significant operational and security improvements:
- Cost savings: Automatic deactivation of unused licenses saved the company 15-20% of its license costs, resulting in substantial financial savings.
- Improved response times: The automation of license requests and deactivations reduced processing times from days to minutes, significantly improving employee productivity.
- Faster, safer deployments: Moving from manual deployments in Version 1 to automated CI/CD pipelines in Azure DevOps and controlled deployments using Octopus Deploy in Version 3 reduced errors and allowed for more reliable, timely updates.
- Enhanced security: The integration of Veracode for code security scans ensured that the application was protected from vulnerabilities, significantly reducing the risk of security breaches.
- Proactive issue resolution: With DataDog in place, the team could monitor system health in real-time, allowing them to proactively identify and resolve issues before they impacted users.
Challenges and Solutions
- Manual Deployments to Automated CI/CD Pipelines: In Version 1, deployments were manual and prone to error. The team addressed this in Version 2 by adopting Azure DevOps pipelines for automated CI/CD. This improved deployment consistency and reduced the risk of production issues.
- Code Quality and Security: The project started with FxCop for static code analysis in Version 1, but as the system grew in complexity, the team transitioned to Code Analyzers in Version 2 for deeper integration with their CI pipeline. In Version 3, security became paramount, and Veracode was introduced to provide advanced application security scanning, ensuring vulnerabilities were identified and resolved early in the development process.
- Migrating from Windows Servers to AWS: Transitioning the application from Windows servers to Linux containers on AWS required significant changes to the codebase. The team successfully replaced Windows-specific libraries with Linux-ready libraries, ensuring smooth functionality in the cloud environment.
- Log Management and Monitoring: Initially, logs were stored in files, which became increasingly difficult to manage. Migrating logs to Snowflake in Version 2 improved performance, but only when DataDog was introduced in Version 3 did the team achieve real-time monitoring and proactive issue resolution.
Conclusion
The client’s transformation from a manual, Excel-based license management process to an automated, cloud-hosted solution highlights the importance of adopting the right technologies to address growing business and security needs. By evolving through three key phases—starting with SharePoint and manual deployments from 2015 to 2018, scaling with Snowflake and automated pipelines from 2019 to 2021, and ultimately moving to cloud hosting, Veracode for security, and DataDog for real-time monitoring from 2022 to 2024—the client achieved significant cost savings, improved operational efficiency, and bolstered application security.
Technology Stack