Made In China

· 305 words · 2 minute read
Photo
Photo by Nuno Alberto on Unsplash
Migrating an existing Java IoT solution to the cloud

The customer was a manufacturer and distributor of IoT capable batteries. They cooperate with a chinese partner, which produces and assembles said batteries. Our chinese colleagues offered to build an IoT platform for the customer as well. However, because of the great chinese firewall, they were limited in which libraries to use and where to deploy the software. Hence, everything ran on a sole chinese server. The existing IoT solution received and stored data and visualized it in a basic frontend application. Our client wanted to approach big german customers and therefore the existing solution had to be migrated to a more secure and accessible environment.

Challenges 🔗

  • Understanding chinese code and libraries
  • Communication with chinese colleagues
  • Tight budget
  • Migration of a single server application to a managed service solution

Because of the restrictions inflicted on the chinese colleagues by their government, the all too familiar workflow of collaborating on code together via, for example, GitHub or similar, was out of the question. Also, they could not access any AWS services outside of China. Which resulted in them sending us zip files of updated code which we had to integrate into our code base. The written communication was good, but I had no chance understanding them in a voice or video chat meeting and some things unfortunately got lost in translation. Furthermore, the application to migrate was actually multiple applications and therefore required multiple managed services:

  • Backend
  • Frontend
  • Message Queue
  • Database
  • Blob Storage
  • FTP Server

Hence, it took us longer than expected to migrate the application. Eventually we finished the migration and the customer was able to execute an actual field test with hundreds of batteries for a big potential german customer.

My Contribution 🔗

  • Adapt code to cloud environment
  • Make application configurable
  • Contribute to terraform code
  • Dockerize application
  • Fix bugs
  • Test and present solution