Chellages

The site was non-functioning, serving an error 503 on specific end points.

Performance issue was observed during the load testing.

Requirement of allocating the resources dynamically.

The application required high performing solution for the database.

Written 20+ customized plugins in Shell scripting and powershell scripting to monitor server and applications.

Invoices of purchase was not being generated.

Aim

1

Initial requirement was resolving the 503 error and get the website live.

2

Achieving the high availability while maintaining the performance and cost effectiveness.

Solution

  • 01

    01

    Installed the required PHP modules which resolved the errors on the website and the errors related to invoice generation.

  • 02

    02

    Moved the instances behind a load balancer for ensuring evenly distribution of the requests among the different instances.

  • 03

    03

    Database was migrated from hosted MySQL to Amazon RDS thus ensuring high availability and better performance.

  • 04

    04

    Moved the static contents to be served from S3 in order to reduce the number of requests and resulting load on the instances.

  • 05

    05

    Adding a read replica for an RDS instance for off loading the read operations from the primary instance. By implementing the read replica, higher performance from the RDS was achieved.

  • 06

    06

    Configured the CDN to minimise the latency and reducing bandwidth cost.

  • 06

    06

    Storing the content into Amazon EFS (provisioned IOPs) which is a high performance network file storage service by AWS for maintaining data integrity.

  • 06

    06

    Setting up cloudwatch alarms with SNS for monitoring performance metrics and send the notifications via Emails and SMS. This way it was ensured that any incident was handled without any delay.

Summary

The application was migrated from having a standard monolithic architecture to a high available, elastic and high performing architecture which was capable of scale in and scale out the resources according to its requirement. Thus the optimum performance and cost-optimization was achieved.