Continous Integration with Backend customizations

System Information
  • Strapi Version: 3.5.4
  • Operating System: RancherOS
  • Database: PostgreSQL
  • Node Version: 12.18
  • NPM Version: latest
  • Yarn Version: I use NPM :smiley:

I have in project in which I need to host Strapi in the Cloud (AWS, regular EC2 instance)
My question is:
We want to make customizations to the backend, I’ve read that this is done by changing the local files.
What is the most supported way to continously integrate newer version? My plan was like I did with previous projects, making a Docker Container, hosting the new one and redirecting the traffic.
This does not seem to work so well with Strapi as the database would also be deleted, customizations etc. too.
Is the Plugin feature recommended for this usage? I could theoretically update the plugins without interfering with the Strapi instance at all.
(This would also reduce costs as I could reserve EC2 instances; buying a new one and then redirecting traffic to it would make my old EC2 instance useless.)

Thanks in advance!
Altay Akkus