
BACK
An energy trading company with nearly 700 employees was struggling to evolve its core systems. Releasing new trading algorithms and features had become slow and risky. Manual processes, legacy virtual machines, and undocumented configuration changes limited the teams ability to innovate and respond to market demands.
Through a phased DevOps and platform modernisation initiative, the company transitioned to Git based workflows, containerised applications, Kubernetes on Azure, and automated GitOps driven deployments. The result was faster release cycles, safer rollbacks, parallel testing of new algorithms, and significantly improved onboarding for new engineers, all without disrupting ongoing trading operations.
The customer operates in the highly competitive energy trading sector, where speed, reliability, and control directly impact business outcomes. Over time, their technical foundation had become a bottleneck.
Releasing new algorithms and features required manual steps. Configuration changes were often undocumented and difficult to trace. Rolling back a failed change or testing new logic in parallel environments was complex and risky. As a result, teams moved cautiously, slowing innovation.
Onboarding new engineers was challenging. Understanding how systems worked depended heavily on tribal knowledge and outdated documentation. New hires needed significant time before they could contribute safely, increasing dependency on a small group of experienced operators.
The organisation needed a way to move faster without increasing operational risk. They required predictable deployments, clear version control, safe rollback mechanisms, and environments that allowed parallel testing, all while maintaining the reliability expected in energy trading systems.
The transformation was delivered in phases to help the teams gradually adopt DevOps practices while modernising their tooling.
All codebases were consolidated in a central Git system. Branching, pull requests, and code reviews became standard practice. This eliminated configuration drift, enabled proper change control, and provided a reliable history of all modifications.
Legacy applications were containerised, replacing manual VM setup with reproducible images. Build pipelines were introduced to ensure consistent, repeatable releases.
AKS became the foundation for running the modernised workloads. The adoption of Kubernetes allowed:
ArgoCD replaced manual deployments with a fully automated GitOps process. Cluster state is now derived from versioned manifests, ensuring predictability and traceability:
Environment variables and sensitive data were migrated out of Confluence and into a secure, auditable system using Azure Key Vault (or HashiCorp Vault, depending on the service). Access control, rotation, and encryption are now handled centrally.
A full monitoring stack was introduced, using Azure Monitor and Prometheus/Grafana dashboards. Alerts notify the operations team proactively, and logs are correlated centrally for faster debugging.
Confluence pages were cleaned up and replaced with developer onboarding materials that reflect the new system. Processes are now repeatable and no longer tied to tribal knowledge.
Legacy modernisation is as much a cultural shift as a technical one. Teams benefited most once Git became the single source of truth and deployments were automated. Replacing undocumented VM changes with versioned manifests dramatically reduced operational risk. Early investment in developer training and process alignment proved essential for long-term success.
The next steps include further refactoring of legacy services, implementing stronger CI practices such as automated testing, and extending observability with SLOs and tracing.