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
Accepted Answer

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

Hi Julio,

The choice between DigitalOcean’s Application Platform and Droplets depends on your specific needs, particularly regarding flexibility, control, and infrastructure management.

Application Platform is excellent for developers who want a simplified deployment process without managing the underlying infrastructure. It’s Docker-ready and great for straightforward applications. However, as you’ve noticed, it has limitations, particularly with networking capabilities like connecting to a VPN, load balancers, or using database private network credentials.

Droplets, on the other hand, are virtual private servers that give you much more control over your environment. With Droplets, you can set up a VPN, configure load balancers, and manage private networking. They are ideal if you need a more customizable environment and more robust security configurations.

To address your specific question: Yes, you can use Droplets for auto-deploying Docker containers. Here’s how you can set it up:

  1. Docker Installation: First, you’ll need to install Docker on your Droplet. DigitalOcean has a great guide for this, or you can use Docker’s official documentation.

  2. DigitalOcean Container Registry: Use the DigitalOcean Container Registry to store your Docker images. Set up your CI/CD pipeline to push Docker images to this registry.

  3. Auto-Deploy with Docker: You can write a script or use a tool like Docker Compose to pull the latest image from the registry and redeploy it whenever there is a new version. Tools like Watchtower can automate this process, watching your Docker registry and automatically updating your containers when a new image is available.

  4. Set Up Load Balancers and Networking: With Droplets, you can easily set up load balancers and configure your networking to use private IPs for secure communication between services and databases.

By using Droplets, you gain the flexibility and control you’re missing with the Application Platform. It does require more setup and management, but if your application needs that level of customization and security, it’s a great choice.

If you need a balance of simplicity and control, you might also consider using Kubernetes on DigitalOcean with Droplets for your containers, which offers a more managed experience than Droplets alone but with greater flexibility than the Application Platform.

Hope this helps!

Try DigitalOcean for free

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

Sign up

Become a contributor for community

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

DigitalOcean Documentation

Full documentation for every DigitalOcean product.

Resources for startups and SMBs

The Wave has everything you need to know about building a business, from raising funding to marketing your product.

Get our newsletter

Stay up to date by signing up for DigitalOcean’s Infrastructure as a Newsletter.

New accounts only. By submitting your email you agree to our Privacy Policy

The developer cloud

Scale up as you grow — whether you're running one virtual machine or ten thousand.

Get started for free

Sign up and get $200 in credit for your first 60 days with DigitalOcean.*

*This promotional offer applies to new accounts only.