Makro logo

Makro

Makro is Southeast Asia’s largest cash & carry (worth $9bn). With over 30 years of experience in serving B2B customers in Thailand.

Learners India app screens

Makro is Southeast Asia’s largest cash & carry (worth $9bn). With over 30 years of experience in serving B2B customers in Thailand, they arrived in India aiming to meet the ever-evolving needs of their members by offering them a one-stop-shop for a wide range of products.

Customer challenge

Their existing order management system (OMS) ran on a very niche technology, IBM Sterling. Using this solution meant that operators required a significant amount of time to come up to speed on how to use it. Any necessary changes were very slow and required significant coordination with the third-party vendor.

An OMS is critical for order fulfilment (Picking, Packing, Shipping and Delivery) by the store operations team. It occupies the central place for the entire order management workflow for Makro and receives these orders from various channels.

  1. Expensive legacy system – was difficult to scale.
  2. Limited monitoring on the existing solution – meant delays in troubleshooting production issues.
  3. Manual deployment and testing – causing delays and downtime.
  4. Legacy security posture of the application.
  5. Difficult to make changes – resulting in delays adapting to market changes.

Finding the right solution

architect

We assessed Makro’s current solution, release cycle and business goals through workshops with the development team. Our solution needed to allow them to make changes more easily and more frequently. It was also key to follow modern industry best practices in deployment and automation – with minimal manual intervention.

Here’s what we did

  1. Worked with their team to create an OMS system from the ground up, following a microservices architecture on AWS.
  2. Created automated infrastructure provisioning defined as code.
  3. Streamlined the development workflow (previously a bottleneck) by building an automated CI CD pipeline using Builder Code Platform (Gitlab on AWS).
  4. Introduced Automated Validation and smoke testing into the pipeline to ensure quality of the code.
  5. Handled deployment failures through automated rollback.
  6. Created the environment with Terraform, Ansible and deployments orchestrated through GitLab and Capistrano.
  7. Provided monitoring with AWS CloudWatch.
  8. Secured with a combination of AWS Config and AWS CloudTrail.
  9. Did an in-place rolling deployment – to be able to release with no downtime.
  10. Leveraged AWS Oracle RDS to provide a resilient and scalable database layer.

Platform improvements

  1. Created a stack written in Angular and Ruby on Rails.
  2. Built a reliable and scalable solution around EC2 and AutoScaling groups. (We used multiple availability zones for databases and instances.)
  3. Used AWS ElastiCache to improve performance.
  4. Protected the public facing front-end from common attacks (such as SQL injection or cross-site scripting) with AWS WAF (Web Application Firewall).
  5. Applied OS patches and updates with Ansible (handled application patches through the standard release process).
  6. Ensured the configuration remains consistent and is always auditable with AWS Config.
  7. Set up monitoring with AWS CloudWatch alerts, delivered through AWS SNS.
  8. Monitored site availability with uptime.com.
  9. Performed detailed application instrumentation using Prometheus and Grafana.

Solution architecture


Deployment

image



  1. Developers work on features and fixes on branches.
  2. On pushing an update to a branch, tests are run automatically.
  3. Once the engineer is satisfied their work is ready to be deployed, they create a Merge Request (MR).
  4. This MR is reviewed by another engineer, who gives feedback or accepts the change.
  5. Accepted changes are merged into master, tests are run again and a version number is created.
  6. Now the release is automatically deployed to a staging environment.
  7. Additional testing happens (may also include user acceptance testing).
  8. When it’s ready to go live, the version is flagged for a production release.
  9. This final step triggers the deployment of the release into production.

Builder Code Platform

The code repositories and automation orchestration are hosted on our centrally managed platform powered by AWS and GitLab [link to public article with details].

Each client has their dedicated namespace with groups allowing only their developers access to their code and deployment systems.


image

Tools used

AWS

  • CloudTrail
  • AWS Config
  • CloudWatch
  • SNS
  • AWS WAF
  • EC2 + Autoscaling
  • ALB
  • RDS
  • ElastiCache

Third-party

  • GitLab
  • Ansible
  • Terraform
  • Capistrano

Results

We successfully replaced Makro’s legacy order management systems on IBM Sterling with a cost effective, reliable platform running on AWS.

  • Since deployment by Builder.ai went live in Nov 2019, Makro’s OMS has processed approx 1.5 million orders.
  • The daily average is ~3000 orders.
  • Used by 120+ Makro stores to process orders.
  • 5 releases a month (previously 1 release every 2 months).
  • Enhanced monitoring.
  • Improved Security posture with WAF, CloudTrail and Config.
  • Migrated from an inflexible, proprietary system to an easily deployable, agile system.

About the partner

At Builder.ai, we make building and running software as easy as ordering pizza.

Share this case study:
Facebook
Twitter
LinkedIn

Related case studies

Dubai Refreshments

Dubai Refreshments is automating its paper-based processes.

Replacing manual processes and empowering employees to focus on what they do best: provide excellent customer service. Supporting Dubai Refreshment’s rapid growth by providing a platform that scales with them.

Siam Makro

How we saved Makro 98.3% on order management software costs

Asia’s largest cash and carry needed software that could scale with their rapid growth, so we built them something that allowed them to onboard new customers without technical hiccups.

Moodit

How we helped Moodit’s users “crowdsource” positivity

With our help, Dr Hassan Yasin created a mental health app designed to help children and adolescents express their worries and improve their social connectedness.

Got questions?

Head to our FAQ page for in-depth answers

Read FAQs