puffinrocks / puffin

lightweight webapp catalog based on containers, with user interface à la mobile app store
GNU Affero General Public License v3.0
89 stars 20 forks source link

Why this project is not getting more popular? #25

Open MathiasRenner opened 5 years ago

MathiasRenner commented 5 years ago

Is there any reason why this project is not very active, even if technology-wise it looks very promising? Adding apps with a simple docker-compose file, able to use with or without puffin is just great!

Are there maybe competing projects?

loomchild commented 5 years ago

Hi,

Good question, thanks for asking.

I think you might partially guess the answer from the time it took me (or others) to respond. In the last months project doesn't get enough love and I don't have enough time and energy to develop a community around it. So in the end not many applications are present in the catalog (even though it's relatively easy to add them) and the ones already present are not regularly updated.

There are also serious Puffin's limitations coming from the weakness of container technology itself. The services are not perfectly isolated, so it's not really secure to run a public Puffin service. There are some ways to mitigate the risk (long time ago I read about clear containers for example, there's more recent Google's gVisor, etc.), but they are still relatively experimental AFAIK. We can also encapsulate containers in VMs to secure them, but this way we lose all the benefits since I can run 100s of containers on a single machine thanks to optimal / shared memory pool utilization which is lost in VMs. I also looked a bit into unikernels, but I haven't done any real development in this area.

As for alternatives, there's popularity of Kubernetes as opposed to Docker Compose and there's Monocular based on Helm with it's Charts as equivalent of Puffin. I tried to use it a couple of times, but I always gave up due to complexity. Never spent any meaningful time learning Kubernetes, probably that's why. I also considered redeveloping Puffin on top of Kubernetes myself, but currently I don't see a reason for that. My goals are very different - I don't want the applications to scale to enormous sizes, I want to be able to host as many independent services on the same server.

Another alternative technology is Serverless. The main issue with it is that it cannot persist the state so you have to rely on an external database/datastore. Another problem is that big majority of such technologies is proprietary (so vendor lock-in). I believe free / open source software world can somehow benefit from Serveless and I was even considering to use it in Puffin, but didn't develop the idea yet.

So I (and I guess a bunch of people) still use Puffin to manage a personal server and occasionally add an app to the catalog. But unfortunately not much in terms of development, catalog additions or updates is really happening.

I also since I took professional interest in front-end SPA / PWA development and started using no-backed solutions such as Firebase or Paste (or even reading about stuff like Solid). This way there's no need to worry about hosting application back-end, and the whole issue of decentralizing services becomes simpler.

Please feel free to share any thoughts about the above.