AidStream System Migration

Sanil Manandhar
AidStream
Published in
3 min readAug 3, 2023

To make better changes, we migrated the AidStream system to the Kubernetes cluster and subscribed to digital ocean’s services.

Previously, AidStream’s system and database was hosted on AWS (Amazon Web Services) and though AWS was providing exemplary service to us, we felt that it was now time to move on to a different system.

Some major reasons for the migration of the system can be stated as:

  • Proper automation of deployment, scalability, and security
  • App stability and availability in the cloud environment with the help of nodes and clusters
  • Increased DevOps efficiency for microservices architecture
  • Better resource utilization
  • Exact point in time database recovery

For the migration of the system, we had to upgrade certain parts of the system. AidStream is now running on PHP8.1 which is a major upgrade from the previous version (PHP7.3).

The system has become even better in terms of power, speed, and functionalities.

Along with the PHP version upgrade, we also upgraded to the Laravel version 10 which is the latest version. The code base was updated and improved to support the latest versions.

With the upgrade of the PHP and Laravel versions, many of the packages used by the system also had to be updated and changed.

Major changes made throughout the system are:

  • Changes made to the HBL payment system as the latest version seemed to have made some of the old functionalities redundant
  • After upgrading the PHP version from 7.3 to 8.1, we started to add return types to each function, utilized the null safe operator (?->), and took advantage of the JIT (Just-In-Time) compiler
  • Upgrading the laravel package from 8.0 to 10.0 included a major update to the filesystem package, updating it from 1.* to 3
  • The Twitter package was also updated according to the latest changes

We also made some changes in accordance with the functionalities of the packages —

  • For the upload features of the system such as uploading pictures, XML, XLS, CSV files, we now had two options: either use persistent storage or update the system to use S3 for the files storage. Since we had already registered for the S3 Amazon Service for uploading our main organisation and activity files, we decided to utilize the existing S3 for all of our uploads
  • We also updated our log system. With every deployment of the system, the logs seemed to be cleared which was not desirable. We could have used the persistent storage feature here, but we decided to use Sentry for maintaining our logs as we would have easy access to all the logs and we could also integrate Sentry with Github/Gitlab to be able to view the errors and such on the version control system itself which would make it easier to create issues and solve them accordingly.

The migration process of the system had bit of a rocky start, but overall was a huge hit! We had to take a break here and there to fully understand the process and the best way of execution. The whole process was quite fun.

Being developers, the chance to work on something else apart from coding and implementing is always a fun task to take on. We (Bimal Wosti and I) had the opportunity to learn about DevOps and are grateful for the opportunity.

We believe that with the migration of the system to the new environment, users will have a better experience using AidStream. We are always looking into ways to improve and upgrade the system for making it more convenient, bug-free, and easy to use for the users, and with this migration, we hope that we have taken a step forward in meeting such goals.

--

--