In this project I was responsible for creating and configuring a set of servers to deploy the developed applications. To create a modular system where each part can work together and at the same time without dependencies, 4 servers were chosen, where each server has specific conditions to meet the needs of the applications. All applications within the servers are containerized using docker. With each application within a container, it becomes easier to create scalable and dynamic solutions. Using Docker, it is possible to migrate to other servers easily, it is possible to develop solutions using multiple technologies and create approval environments that are compatible with the production environment
These servers are fully dynamic, and this case was the best for me, but you can use more or just one server to deploy your system. The same goes for technologies, you can use the ones you prefer.
Access: Responsible for managing access to containers. This is the only server that has external access rules, all security rules and redirections for access to other applications are defined on it. For my applications, I use the NGNIX reverse proxy.
Application:This server contains all the applications that are accessed directly by NGNIX, on this server applications that have a user interface are deployed, for example, the web application.
Database: All databases are deployed on this server, I usually use PostgreSQL and MySQL. The applications on this server are responsible for maintaining the data for the operation of all applications. This is the most important server as all servers communicate with it to get and save data. It is possible to access all servers directly from NGNIX, in this case it is possible to access the database server in a graphical administration tool.
Processes: On this server are the tools responsible for data processing, such as machine learning process or data collection. This server requires more CPU and RAM resources when compared to others. With this server, all processes run in the background and there is no need to wait for the process to finish to continue using the system.
Ubuntu: Operational system.
Docker: Containerize applications.
Nginx: Proxy reverse.
Database: PostgreSQL and MySQL.
Don't hesitate to get in touch
It will be a pleasure to speak with you