Monday 6 January 2020

Using Microservices to improve Software performance

In this blog post we would like to provide a practical demonstration of the ways in which a microservices-based architecture can prepare a software product for a very large influx of new users.

About the Project and its Challenges

They own the startup company and actively use the advanced technologies developing digital products. Our client is a reputable person within their industry. The code was unreadable while the general product concept didn’t meet the client expectations and initial requirements.


Its performance was quite slow, which worried our client the most. However, when the client requested us for the development and testing services, the augmented reality product they were working on was the low quality due to the disparaging attitude of their previous IT provider to the product.

At the stage when the project came to us it included four main components:
  • The dashboard concept was simple and intuitive and was also realized with the help of separated Yii2 elements.
  • The project API was implemented with the help of Yii2, a popular PHP framework.
  • The application supports two major platforms, IOS and Android.
  • Dashboard and API of the project were united by a common database of PostgreSQL supported by the Amazon RDS.
Initially, we had only to finalize several backend units, therefore after the deep analyze of the system and the further plans of the client concerning the application scaling and improvement, our responsibilities were expended.

Results & Further Steps

After the precise exploring of the application capabilities, its current state, and the client requirements, we decided to apply the further steps for the app’s performance improvement. As expected, the current server configuration could not resist the projected loads.
  • The Amazon RDS will be replaced by the fastest one.
  • To develop the most optimal microservices architecture we decided to use the Golang programming language, as one of the most suitable languages for our purposes.
  • We decided to change the initial application architecture. The most loaded fragments of the application will be separated into microservices in exchange to the monolith architecture.
The above-mentioned actions were approved by our senior-level experts and the client. To ensure the stable result of our development and testing services. We also took into account the business objectives of our client and their further plans concerning the product optimizing and improving.

Solutions & Technologies

To optimize the testing processes we also used Jmeter — the load test functional behavior and measure performance QA tool. As QArea has its own fully-equipped testing lab, we involved our senior-level QA whose main goal was to develop the needed test scenarios to indicate the application performance and also to check the individual Dashboard elements.

To fully explore the application capabilities, we decided to apply performance testing, which would show how many users the current configuration can sustain.

SHARE THIS

Author:

Designveloper is the leading software development company in Ho Chi Minh City, Vietnam, founded in early 2013 with a team of professional and enthusiastic Web developers, Mobile developers, UI/UX designers and VOIP experts.

0 comments: