Shwapno
A large retail chain in Bangladesh. We run DevOps for its online store on AWS.
The facts
The result
31 ms at p95Order service response, 95th percentile
Order service. p50 is 2.6 ms and p99 is 160 ms.
Order service latency
The challenge
- Releases took weeks or months, because deployments were mostly manual.
- Merge conflicts, with no clear branching strategy.
- Changes behaved differently in development, staging and production.
- A store that must stay up at peak and keep the order path fast.
- Links to an ERP, search and a bank payment service had to keep working.
What we did
- Set up a Git branching model: feature, develop, stage and production.
- Built CodeBuild pipelines that run build, lint, unit tests and SonarQube checks on every merge.
- Gave development, staging and production their own Amazon EKS clusters.
- Managed the network, clusters, autoscaling and CloudFront with Terraform.
- Added Prometheus, Jaeger and Grafana, with Microsoft Teams alerts.
- Added AWS WAF, least-privilege IAM, VPC segmentation and encryption, and we keep operating it.
How it was built
- Source and build
- GitHub
- AWS CodeBuild
- SonarQube
- Run
- Amazon EKS: development, staging, production
- Next.js and Angular front ends
- Data and messaging
- MongoDB Atlas
- Redis
- RabbitMQ
- Infrastructure as code
- Terraform
- Amazon CloudFront
- Auto scaling policies
- See
- Prometheus
- Jaeger
- Grafana
- Microsoft Teams alerts
- Protect
- AWS WAF
- IAM least privilege
- VPC segmentation
- Encryption at rest and in transit
- Quarterly secrets rotation
What came of it
- Deploy timeDeploying one service takes under 1 minute.
- Database failoverRecovery takes 5 to 10 minutes.
- Database uptimeBetween 99.90% and 99.96%. A measured result, not a service commitment.
- Change failuresBelow 7% of deployments.