V
V
Vadim2017-12-06 03:45:31
MySQL
Vadim, 2017-12-06 03:45:31

How to better organize (remote) backend development for Android Application, including Spring Boot, MySQL, servlet container?

Our young (semi-student) team is trying to create a backend application with a RESTful service for Android Frontend. Java/Spring application (Spring Boot... Tomcat?) with connection to local MySQL database server. The application will pass the information received from the database to the front end clients (Android application).
Could you advise what would be the correct way to organize the development and deployment (testing and production environment)?
There are two vds where we ourselves plan to create a test and production environment (including for studying). We do not want to use something ready-made like Google Cloud or Heroku. Would it be more correct to install JAVA JDK, Spring Boot and MySQL on our local machines, and commit to GitLab as a shared repository and version control? When the backend application is ready, it will be deployed to a remote server (also using git tools), where should we also install Java SDK, Spring Boot and Tomcat? And how do we do deploy MySQL from the local machine to vds? Do dump of database, copy to GitLab repo and from there to vds?
I understand that there are probably dozens of different ways (for example, with Docker), but I would like examples from life, advice. No optimization required at this time. The application is simple and is developed more to understand the essence of technology. We are even thinking of abandoning the IDE.

Answer the question

In order to leave comments, you need to log in

1 answer(s)
E
Eugene, 2017-12-06
@zolt85

First, you need to agree on the tools used, on the environment settings. I do not advise you to abandon the IDE, because. this will greatly reduce your productivity. Each developer must have a locally configured environment with a database, Tomcat, and more. Database changes are best communicated through migrations, using liquibase for example.
For a competent deployment, you can try pipelines in GitLab or Bitbucket. To work with Git, you also need to agree on everything. How are features developed? Make separate branches for each task? Who can push to master? Etc.
Be sure to review each other's code.
VPS for stage and production environments is the norm. Again, we need to agree on who will be responsible for setting up and maintaining these VPSs.
In general, software development by a team is not so much writing the code itself, but communication in the team.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question