Proposed: Dokku for V-Sekai URO Backend Services Hosting and Development

Metadata

  • Status: proposed
  • Deciders: V-Sekai
  • Tags: V-Sekai, Dokku, Backend, Hosting, Development

Context and Problem Statement

V-Sekai is exploring options to improve its backend services hosting and development. The goal is to find a system that can offer scalability, ease of deployment, and efficient resource management.

Proposed Solution

One potential solution could be Dokku, a Docker-powered mini-Heroku. Dokku provides a platform that could potentially meet our needs for building, deploying and managing applications effectively.

Implementation

If Dokku were chosen, the implementation would involve setting up a Dokku server, migrating existing services, and training the team on how to use Dokku for development and deployment.

# Install Dokku
wget https://raw.githubusercontent.com/dokku/dokku/v0.21.4/bootstrap.sh;
sudo DOKKU_TAG=v0.21.4 bash bootstrap.sh

Potential Benefits

  • Scalability: Dokku has features that could allow us to scale our applications based on demand.
  • Ease of Deployment: Dokku’s git-based deployment system might simplify the process of deploying new versions of our applications.
  • Resource Management: Dokku’s use of Docker containers could lead to more efficient use of system resources.

Potential Drawbacks

  • There might be a learning curve for the team members who are not familiar with Dokku or Docker.
  • Migration of existing services to a new platform could require significant time and resources.

Option Graveyard

Other options considered include traditional VM-based hosting and other PaaS solutions like Heroku or AWS Elastic Beanstalk. These options have their own sets of advantages and disadvantages that need to be weighed against those of Dokku.

If this enhancement will be used infrequently, can it be worked around with a few lines of script?

This depends on the specific requirements of our backend services. If the enhancement is fundamental to the hosting and development of our backend services, it may not be possible to work around it with a few lines of script.

Is there a reason why this should be core and done by us?

The choice of hosting and development environment is crucial for the efficiency and effectiveness of our operations. Whether Dokku or another solution is chosen, it will be important for us to maintain control over this aspect of our infrastructure.

References