I’m not very experienced with DevOps and I get frustrated very easily when things aren’t working. I wish Digital Ocean offered consulting services so I can just pay someone to set things up correctly…
Anyways, I’m hoping someone can provide guidance on what I should do with my infrastructure since I have multiple Apps running and multiple databases and multiple droplets and It’s frustrating to say the least.
I have a “Production” APP that has two servers (frontend,backend) and a managed DB cluster.
I have “Development” APP that is pretty much a duplicate of the production APP for my remote development team to access for testing.
2 Droplets that are running a chat engine (One for each of the Development and Production APP). Each Droplet runs it’s own Database
And now I’m in a situation where I need ElasticSearch engine for production and and development and DO only offers 1-click deployment for another APP. So that will be 2 more Apps. And none of theses can even communicate over VPS so it’s just getting bulky. Seems like I should get rid of the APPs and just manage everything myself but that’s beyond my experience and could take me weeks to get.
Does this setup sound normal enough or am I just digging myself into a hole by continuing to build more stuff onto this already bulky-looking infrastructure?
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.
Hey!
One option that you could consider here is to transfer over your dev environment to a single Droplet. That way you will cut your infrastructure costs for your dev environment, but still keep your production app running on the App Platform so you can take advantage of the scalability and the operational efficiency.
For your dev environment, you could use Docker to containerize your applications. Docker containers can run anywhere, making it easier to manage dependencies and reduce the number of servers you need.
So you will be able to have all of your services running on a single Droplet as Docker containers. You could even use Docker compose for easier management of all containers.
DigitalOcean offers 1-Click installation image for Docker:
Here is a simplified Docker compose file that packages all of your services together:
Overview:
frontend
directory to the container’s/app
directory. It also exposes port 3000 and installs dependencies before starting the application.backend
directory to the container’s/app
directory, and exposes port 5000. It sets environment variables for the database and ElasticSearch URLs and installs dependencies before starting the Flask application.devdb
, and mounts a Docker volume for persistent storage. It exposes port 5432.And for your production environment, you could keep things as they are as that way you can take advantage of all of the production-ready features that the App Platform offers along with the managed database.
Let me know if you have any questions!
- Bobby
Heya,
You can consider using*Kubernetes to orchestrate and manage your applications. Kubernetes allows you to manage both your development and production environments on the same platform, providing benefits such as:
DigitalOcean Kubernetes (DOKS) is a managed Kubernetes service. Deploy Kubernetes clusters with a fully managed control plane, high availability, autoscaling, and native integration with DigitalOcean Load Balancers and volumes. DOKS clusters are compatible with standard Kubernetes toolchains and the DigitalOcean API and CLI. It also offers integration with their other services, like Load Balancers, Block Storage, and more. It can be a strategic move to optimize and potentially reduce your infrastructure costs.
Hope that this helps!
Heya @happygrayangler,
Depending on how big is the App and it’s Database, it might be worth it moving your Databases to a Droplet and taking backups of the Droplet to prevent data loss.
Additionally, again depending on the Application and how heavy it is, it might be worth having one server for both frontend and backend to save cost and the time to manage all by them being in different places.
If however your App is quite big, the solution you’ve come up with is a standart one where it’s almost everywhere used liked that.