Unbaked Digital Ocean Apps Platform
How the dream of one-click deploy fell apart.
Last updated on 17 June 2022. Created on 15 January 2021.
I think that it comes a time in any developer's life when she or he wishes something quite simple:
- after you think, plan, develop and test, push one button and have everything deployed and live.
To a certain extent, this can be true. Even this small blog holds this true. One
git push and automagically, the live version is updated.
So, when I recently had a small project to create and deploy, I took this opportunity to use the app platform from Digital Ocean.
The first version worked great, just as promised. After the initial setup, everything was set. Again, one
git push was usually enough to have everything deployed.
Happy developer right? Not quite there yet.
Well, here's the thing. The project grew a little, and I found myself having to use a database. Redis in this case.
Locally it was quite straightforward. I was already using docker for my main server. I added another service for Redis, set it up and done.
Then, do the same thing on the app platform. There was the components tab, and there I could add another one. Created a new managed db instance (15$ p/m), got the credential, popped them in, and it worked.
Great. So what's the problem? The issue was that we needed tight security and access.
By default, when you create a new Redis database in Digital Ocean, you receive 4 things: a username, a password, the hostname and a port. The instance is publicly available.
If you are not familiar with Digital Ocean, their Droplets and databases and such can be added to a VPC (an internal private network interface). So you can have them communicate freely between them.
But the new app in the app platform wasn't in any VPC. And couldn't join one.
Then, in Digital Ocean, you can restrict public access. Sounds awesome, let's do this!
Well, you can only select Droplets, Kubernetes clusters or a specific IP address.
The Digital Ocean App is or has none of those things.
Well ain't that a disappointment? Yes, yes it was. It felt that the app platform is unbaked.
I hope that this will get resolved in the near future.