2

We are a small team of developer who are looking for the ideal working environment.

Our current setup: Everyone is developing locally on his machine. Code is managed/shared with git (bitbucket). We have a small mysql server in our local network where we all share the same database throughout the projects. If we want to share something with a client, we have a remote server where we move the code and database to.

Our preferred setup: Code stays where it is. But we would like to move the SQL databases into the cloud to a remote server which we can access locally.

What we've tried:

Amazon RDS (free tier) which uses the smallest instance. This was horribly slow. Question here is, does it get really fast for a bigger instance? Page loads can't take 5 seconds for only the database requests. What instance do we theoretically need in order to have a really good performance? Google SQL was honestly also too slow. I actually tested a bigger instance which was a lot better than Amazon but still not useful for our usecase.

  • Do you know any other services which provide such functionality? (MySQL remotely accessible)
  • Do you have any suggestions how we maybe can rethink our whole process of developing?
Andreas Daoutis
  • 1,195
  • 8
  • 16
  • *this was horribly slow* - now, what exactly was slow, your internet connection or the actual service? I would use local MySQL database on each of your machines which replicates to Amazon or some other hosting service (or even one of you can host the master MySQL). – N.B. Oct 10 '15 at 11:33
  • Using the sql server locally was slow. Doing queries, etc. Local databases do make sense if someone is working alone on one project, but for many of our projects it makes sense to directly share the databases even though they don't have the same code directly. – Andreas Daoutis Oct 10 '15 at 11:34
  • It could be I wasn't clear - you develop on local MySQL so you avoid connecting to a remote database (ping, net connection speed and such). However, all of your local MySQLs are synchronized with each other via replication. That way you still share the data in database, but you avoid the slowness. – N.B. Oct 10 '15 at 12:25
  • So, if I understand correctly I have a master on one of our machines all the other machines are replications? And the remote database can also be a replication of the master? We still need a remote database for sharing to the client... – Andreas Daoutis Oct 10 '15 at 13:13
  • No, all machines are masters, you always send/receive updates. It's [multimaster](https://en.wikipedia.org/wiki/Multi-master_replication) replication. That lets you develop locally, but you are always in sync with your fellow developers, and they are in sync with you. You can avoid having an online database, given the fact you can ensure you all have static IP addresses (or handle the IP change). – N.B. Oct 10 '15 at 13:26
  • Colocate your deployment and database. – techuser soma Oct 10 '15 at 15:58
  • Basically, your issue is version controlling the database for development and deployment. Have you seen [this question](http://stackoverflow.com/questions/115369/do-you-use-source-control-for-your-database-items) by any chance? – N.B. Oct 10 '15 at 16:54

0 Answers0