The tool I was hosting was a relatively small NodeJS application which utilized the Spotify API - it was meant to be very low maintenance, but still required intervention (to renew certificates, restart the Node app when it crashed, etc). It was also using old NodeJS frameworks that were either deprecated or very outdated.
I made the decision to migrate the service to Google Cloud Run, and change the underlying database from MySQL to RavenDB, for performance and ease-of-use reasons. The move was relatively easy - the only challenge was around migrating from old libraries I was using to perform REST requests, and of course adjusting from a password authentication system to client certificates
I chose to migrate to RavenDB for their advanced dashboard, which allows you to monitor databases, queries, and cluster node performance. Working with RavenDB has been a much smoother and user-friendly experience compared to MySQL.
Hosting the application in Cloud Run, rather than on a dedicated Linux VM, meant that costs were drastically reduced (from £10/month for an AWS EC2 micro instance to £0 for Cloud Run). The serverless architecture means you're only paying when a request is made to the URL - for a small service such as mine, this was a life saver.
Best of all? I get advanced monitoring statistics from Google Cloud, showing me exactly how many requests I get per day, how much memory/CPU is used, and how many container instances are active to serve traffic.
When an error occurs, Cloud Trace keeps track of the exception, the line it occurred on, and how many times the error has been seen.
I knew this migration would lead to a low-maintenance solution that I was hoping for, but I didn't realize how low maintenance it would truly be - I haven't needed to even look at the service since it was migrated, aside from checking I allocated enough cores/memory to the containers.