Case Study: Internal Tools Enhancement
Executive Summary
Modernized the company's internal tooling suite by migrating from a vulnerable legacy ASP.NET/Windows environment to a secure, containerized Django/Python architecture. Implemented deterministic CI/CD workflows and redesigned the frontend to dramatically improve user navigation and internal operational efficiency.
Tech Stack
Challenges
Technical Debt
Existing tool site was built with legacy asp.NET and iis on a legacy Windows Server. Many secrets were stored in plain-text and data was sent insecurely as URL query parameters or within a packet over HTTP.
Decoupled a Monolithic Server
The legacy Windows server tightly coupled the tool site with assorted Cron jobs, standalone scripts, and local databases. Successfully untangled these mixed concerns into a clean, modular architecture during the migration.
Architecture & Execution
Asynchronous Processing
Architected a centralized hub using Celery & Redis to manage high-volume, asynchronous task processing, ensuring real-time provisioning updates without impacting front-end stability. Also uses built-in retry logic for stable operations.
Scheduled Tasks
Utilized Celery Beat to replace legacy Cron to schedule tasks enabling more accessible maintenance on tasks.
Run-Time Security
Deployed on supported Debian-based VM servers. Secrets management via the Bitwarden API and UUIDs saved as environment variables. All new operations performed within the Django ORM framework.
Pro-Active Security
GitHub Actions CI/CD uses Trivy and dependency scanning so CVEs can be easily corrected and monitored. A suite of fast & safe unit tests run on CI/CD before merges are allowed into main.
Deterministic Deployments
Used a modern CI/CD, containerization workflow with GitHub Actions to rebuild containers on deployment and allow easy rollbacks in case of breakage. This was a major upgrade from the existing Git repo pull and systemd restart strategy.
Observability & Monitoring
Integrated Prometheus and Grafana Alloy to establish comprehensive metrics and centralized logging eliminating the operational blind spots present in the legacy system.
The Business Impact
Utilized Sphinx and GitHub Actions to generate and maintain (on-demand or upon releases) robust internal documentation, ensuring the new architecture is easily maintainable and accelerating onboarding for the engineering team.
Quickly responded to evolving needs within the company and implemented features such as external notifications for outages and report automation which saves on labor costs.