Question

Application Platform vs Droplets

Hello.

I currently use the Application Platform to deploy my project. It is very convenient, intuitive and Docker ready. Still, I find the Application Platform to be limited in terms of networking infrastructure and security (e.i. I can’t add it to a VPN nor to a load balancer, or even use a database private network credentials within.)

I was wondering if I am probably using the wrong tool for deploying my application and should move instead to a droplet driven system. If so, is there a way to handle docker auto-deploys from a DO registry within a droplet? Perhaps, have a droplet behave more like an Application.

Thanks


Submit an answer


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!

Sign In or Sign Up to Answer

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.

Bobby Iliev
Site Moderator
Site Moderator badge
July 9, 2024

Hey,

Great question! We had a similar question for App Platform vs the Managed Kubernetes offering here:

https://www.digitalocean.com/community/questions/why-would-i-use-app-platform-vs-kubernetes-and-other-questions

But let’s go over the App Platform vs a Droplet as well:

App Platform

Pros:

  1. The App Platform is incredibly user-friendly, perfect for developers who want to focus on coding rather than managing infrastructure. It abstracts away much of the complexity of deploying applications, managing servers and maintaining servers.
  2. As you mentioned, it’s ready for Docker, allowing you to deploy containerized applications quickly.
  3. It automatically scales your applications based on demand, once you’ve configured your CPU thresholds.
  4. DigitalOcean takes care of underlying infrastructure management, updates, and security patches, letting you focus on development.

Cons:

  1. The App Platform has restrictions when it comes to advanced networking configurations. You can’t easily integrate it with VPNs or custom network setups.
  2. Integrations with load balancers or using private network credentials for databases are limited compared to Droplets. However, you could still use internal services as described here:

https://docs.digitalocean.com/products/app-platform/how-to/manage-internal-routing/

  1. There’s less flexibility in terms of configurations and custom setups.

Droplets

Pros:

  1. With Droplets, you essentially have complete control over your server environment as you would have root access.
  2. You can configure VPNs, load balancers, private networks, and other advanced networking setups to match your needs.
  3. You can set up the server to your specific needs, whether that’s optimizing performance, security, or application configurations.
  4. While it requires more setup, you can certainly run Docker containers on Droplets. You can automate Docker deployments using scripts and tools like Docker Compose or CI/CD pipelines like GitHub actions.

Cons:

  1. Managing Droplets involves handling updates, security patches, and potential downtime yourself.
  2. While you can scale with Droplets, it requires more manual intervention compared to the automatic scaling provided by the Application Platform:

https://docs.digitalocean.com/glossary/ha/

  1. For those not familiar with server management and Linux in general, the learning curve can be steep. Setting up environments, security, and managing performance can be challenging.

On the Docker auto-deploys on Droplets question, yes, you can automate Docker deployments on Droplets. Here’s a few basic suggestions:

  1. Set up a CI/CD pipeline using GitHub Actions, GitLab CI, Jenkins, or another tool. This can automate the process of building Docker images and pushing them to a DigitalOcean Container Registry:

https://www.digitalocean.com/community/tech-talks/deploying-to-digitalocean-with-github-actions

  1. Use Docker Compose for defining and running multi-container Docker applications. You can deploy updates to your application by pulling the latest images and restarting containers:

https://www.digitalocean.com/community/tutorials/how-to-install-docker-compose-on-ubuntu-18-04

  1. Write scripts to pull the latest Docker images from your registry and restart the services. Tools like Ansible can help manage these deployments across multiple Droplets:

https://www.digitalocean.com/community/tutorial-collections/how-to-install-and-configure-ansible

The tldr; here is:

If your current project’s needs are becoming too complex for the App Platform due to networking and security limitations, transitioning to Droplets might be the right next step. Droplets offer the flexibility and control required for more advanced configurations, though they come with additional management overhead.

Best of luck with your project and feel free to post new questions in case anything else pops up.

- Bobby

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Featured on Community

Get our biweekly newsletter

Sign up for Infrastructure as a Newsletter.

Hollie's Hub for Good

Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.

Become a contributor

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

Welcome to the developer cloud

DigitalOcean makes it simple to launch in the cloud and scale up as you grow — whether you're running one virtual machine or ten thousand.

Learn more
DigitalOcean Cloud Control Panel