Heroku-style Alternative Co-Op

Hey all!

I’ve been doing some work with some folks where we deploy basic apps for small volunteer groups. We’ve been doing this using a service like Heroku for super small apps that aren’t used very heavily.

I was wondering if anyone knew of a co-op that does essentially the same as Heroku. Basically a PAAS that you can use to deploy small custom apps really quickly to. I know there’s open source things that run on Digital Ocean (like Nanobox, which was actually bought by digital ocean) w/ docker.

2 Likes

Hey Simon! Welcome!

I don’t know if anyone has rolled this out yet, but Outlandish in the UK did research a couple of years ago into all the big open source PAAS offers that might be useful to this conversation.

1 Like

Neat! I’ve been meaning to host a heroku clone called dokku for the civic tech community I’m part of in Toronto, Canada! (In a low-risk low-QoS way, to help people host small/cheap/quick)

And the co-op I’m part of has some infra folks, and we may be interested in similar PaaS hosting for small businesses (we’re dabbling with idea of hosting for local companies in medium future).

Quite unrelated, but the g0v.tw (First Year of g0v.tw – Dismantling our Government and Building It Anew) civic tech group in Taiwan has a member named ronnywang has a service called middle2 (GitHub - middle2tw/middle2) that he’s been running for the g0v community for a few years. I feel like he’d be eager to be in this sorta infra convo, and it would boost international solidarity. (Sorry, just mentioning value-aligned people, but I recognize it’s a biy tangential :wink:

1 Like

Haven’t seen any coop offering this kind of service so far unfortunately.

but Outlandish in the UK did research a couple of years ago into all the big open source PAAS offers that might be useful to this conversation.

They were checking out Redshit and perhaps Mesos and K8s? Those were for covering pretty huge scale use cases IIRC.

We’ve been doing this using a service like Heroku for super small apps that aren’t used very heavily.

Which one?

Not an answer and it’s not ideal but a good DIY solution I’ve seen is Dokku - The smallest PaaS implementation you've ever seen. Low-tech Docker based deployments with git push interfaces. You only need Nginx, Docker, SSH and Dokku on the server side.

2 Likes

It needed to be commerciallly viable so needed to be able to scale. So hence the big players were part of the assessment. As well as the use case we’d have here potentially: multi-tenant with walls between different tenants and resource balancing, for security apart from anything else.

I’d imagine now the Kubernetes eco-system is far further along and would seem a pretty natural choice given in ubiquity at this point.

Worth noting that OpenShift, the preferred technology in the end is effectively built on top of Kubernetes.

1 Like

Would Autonomic or someone else be up for spinning up Dokku as an MVP for this so @simon gets his use case satisfied? Would be cool.

1 Like

Redshit

:man_facepalming: :laughing:

@simon would it be useful to start talking about Autonomic providing such a service?

Feel free to DM me.

If Autonomic provided such a service, that was backwards compatiable with Heroku and was ready for some production use, we’d be up for using it.

1 Like

Ditto to what @alex said, though we’re largely volunteer org and I think our use case is even a bit more high-level than dokku. Currently we’re looking at 2-3 apps running on this kind of thing. The main thing that we need is really just easy access management for custom servers that doesn’t involve bandying around ssh keys or root passwords.

What organisation is this out of interest Simon?

Nice to hear from both of you on this. I’ve sent you a DM @simon to ask a few more questions. We’ve had a chat at Autonomic about this and it’s something we’d like to pursue. We’re going to try and chase some conversations and see what is possible.

If you could elaborate on that it would be great. What is your production setup on Heroku right now (as far as you care to speak to)? What kind of resources do you make use of? Caching, Databases, Monitoring, DNS and what tiers do you use, etc. Do you rely on the blue-green deploy of Heroku to avoid downtime or do you have two apps (dev/prod) and you push them out iteratively? This would be great to know more to try and narrow down what are your expectations.

1 Like

I’m doing research (but have no decision making power) for the Democratic Socialists of America. We’re looking for ways to roll out services to a bunch of our chapters at reasonable costs with a lot of ease of use and low-barrier access management. We’d probably be fine with some of the out-of-the-box stuff like collective.tech rolls out, but we do want a bit more flexibility as well.

2 Likes

Just to note an interesting advancement in the area of “buildpacks” (Heroku’s big innovation), they are becoming an open standard! See https://buildpacks.io for more. The nice thing is that now, you can install the pack CLI (reference implementation) and run pack build . in your git repository that you normally push to Heroku and it will build a Docker image of your project directly on your local.

At Autonomic, we’ve been working with Docker Swarm lately as a container orchestrator that is workable for small service providers (not Kubernetes but gives similar guarantees) and it definitely is looking possible to piece together the parts of a cooperative Heroku alternative from open tools but we’re in the usual position of not having the resources to push forward the effort.

The idea is still brewing though :fire:

2 Likes

This is good. Always felt that build packs were a really good idea, but felt over tied to Heroku and the local development story was never really very clear. This is a good move and can see widespread adoption. Might be inclined to try it on a future project.

It may be a bit irrational, but I’ve always felt Docker Swarm is not likely long for this world. Docker the company themselves have being moving towards Kubernetes over the last year or so. I’d not personally jump into using this because of this. But also recognise it is a far more simple tool. Kubernetes has the Google scale worries behind it, inappropriate to many if not most contexts.

Myself, @matt and @nick had the experience of working on a project tied to Docker Swarm at the outset but it’s limitations versus Kubernetes became apparent early on. Specifically in terms of sensing a cluster needed more resources and provisioning for that in a seamless way.

https://project-cola.eu/

I am not briefed on all this but I am sure they can jump in and give a take.

One of the background reasons for doing this project was for this sort of coop cloud led application. It was hoped some learnings might be gleaned on this, but difficult to say if they were!

2 Likes

Docker swarm is not dead! (yet) :: Aloïs Micard — Tech Blog

New features are still coming into Docker swarm! It looks like it will be supported going forward. That was really not clear for a long time but I think it is a much safer bet now. I’m moving towards the opinion that it should be the go-to orchestrator for small shops. It ain’t perfect but I’ve been impressed by it.

What is also worth noting here is that there are two other open standards emerging:

All which interact with Docker swarm and from my experimenting, I see a lot of potential to work on building on these open standards to re-use existing container packaging efforts of upstream free software project into “bundles” which can be installed on clusters with a single command (e.g using tools like https://porter.sh/).

Again, this is all good for small service providers IMHO. At Autonomic, we’ve been looking into this because we’re making use of Cloudron but they recently close-sourced their core and they use their own custom packaging format (less reusable, more lock-in).

1 Like