The problem
Running one financial software platform was harder than it needed to be. Domains and certificates sat with third-party IT partners, so simple changes waited on them. Security and logging needed work, the database wasn't ready for content in several languages, and releases involved too many manual steps.
What changed
All of this was done inside the company's own AWS account:
| Area | Change | Why it helped |
|---|---|---|
| Domains and certificates | Moved to Route 53 and AWS Certificate Manager | The company controls both |
| Security and caching | New CloudFront distribution with AWS WAF | Better protection for the platform |
| Logging | Server, PHP, Django and application logs sent to CloudWatch | Developers can troubleshoot without waiting for DevOps |
| Database | Converted to UTF-8, with new indexes including multi-column ones | Multi-language content, faster queries and no duplicate rows |
| Releases | CI/CD on Bitbucket deploys every commit to test servers | New features reach testing sooner |
| Code quality | Pre-commit hooks on the Django and React code | Errors are caught before review |
| Developer setup | Docker environments and an automatic installer | New developers get started much quicker |
The result
The company no longer depended on outside partners to change its own infrastructure. The platform was better protected, queries were faster, new features reached testing sooner and bringing on a new developer was much quicker.
Where to start
You don't have to do everything at once. A sensible order is:
- Ownership. Make sure domains, certificates and cloud accounts belong to your company.
- Protection. Put a firewall and caching in front of the platform.
- Visibility. Collect logs in one place, so problems can be investigated quickly.
- Releases. Automate deployments to test first, then look at live.
- Developer experience. Make it quick for someone new to get a working setup.
Each step makes the next one easier, and each one is useful even if you stop there.
This article draws on work by Syed Quadri, SMART5's director, while working at another organisation. It wasn't a SMART5 client project, so the organisation isn't named.