Hacker News new | past | comments | ask | show | jobs | submit login
An open source GitHub-like platform as an alternative for AWS Lambda (github.com/1backend)
278 points by friendly_chap on Jan 16, 2018 | hide | past | favorite | 58 comments



There is also https://hook.io/ which is a similar open-source platform that's been running for three years and has over 142 million deployments.

I'm using this service everyday, also I created it.


Hi Marak!

Hats off to you. I remember when talking with Asim Aslam about him going and creating micro (https://github.com/micro), a microservices framework, I tried to advise him to go high level, as high level as possible and create a complete platform.

I used hook.io as the example of a project which is on the right path. He said the world is not ready for it. I said some day someone will make a tool like hook.io and promote it well and get incredibly popular.

Turns out we were both right. Seems like the world is ready for these kind of solutions now, and you were ahead of the curve with hook.io.


Greetings! Thank you for the kind words.

It's really good to see more developers getting into the space of writing open-source platforms for services. I believe there is room for much growth in this field. I'll take a deeper dive into 1backend and check out how it works.

hook.io has pretty much a zero dollar budget and maybe $150 spent on marketing. It's been slowly and steadily growing for the past years and I'm happy with it's progress. I'm currently working on building integrated hardware solutions with raspberry pi to offer an open-source local version of Amazon Echo or Google Assistant type devices.


> I'm currently working on building integrated hardware solutions with raspberry pi to offer an open-source local version of Amazon Echo or Google Assistant type devices.

Any info on the software side of your project? I've been looking for exactly that (FOSS programmable digital assistant totally under my control). Closest I've seen so far is Jasper[1] but it's still pretty raw.

[1]: http://jasperproject.github.io


The raspberry is running a local copy of the same software which powers the production hook.io site. Code is at: https://github.com/bigcompany/hook.io

I don't have any turn-key solutions available for setting up the software, but we are working on it.

I wish I could offer you more at this point. You can signup for updates on our site and we'll send an email when we have something ready.

I'd suggest hacking away on your own solution and post a write-up on what you ended up using. The hardest issue I've encountered so far is local voice detection. Still trying to figure out the best solution for that.


Thank you for having PHP as a microservice. I'm so annoyed that so many big providers overlook it. It baffles me that you would build out a service or sdk and not support the most ubiquitous (by far) language on the web.

The only thing I can think of is that many silicon valley types are in an echo chamber of the next biggest and greatest thing that they overlook it. Or they think that anyone creating projects in PHP must be beneath them.


I just tried logging in through github and I noticed that it still needs my email. When I try providing one, it shows me a "not found" message.


Hi guys!

One of the authors here! We hope you enjoy this much loved project we are building with our tiny team.

This is a love project of a team who failed at a startup. We decided to build something we love before getting back to our normal lives :)

I have worked in the faas/microservices space for years before but never wanted to build something like this (I thought it was too early to explain what we are doing).

Now with the advent of faas/serverless/lambda perhaps it's a bit easier.

Our focus is building something that enables service reusability and composability: no more writing the same login service multiple times.

We would also like to host other peoples low traffic services for free if we can (right now we can't because we are on a small server, fixing that).

Thanks


I wanted to thank you for Golang support which I was missing on AWS for long. Before commenting I just did a quick Google search 'AWS Golang support' and found this (not even 24 hours old):

https://aws.amazon.com/de/blogs/compute/announcing-go-suppor...

Sounds like this HN post is a day late ;-)

Nevertheless, your project looks like fun and open source solutions are always better than functional equivalent proprietary solutions.


Haha! It was that announcement which gave me the idea to post this now in the first place. Thanks, and we agree about the proprietary bit - hopefully we as a community will have the tools to handle raw machines easily and conveniently (I think that's the biggest selling point of GC & AWS), because the amount of money wasted on GC and AWS is just insane.


.


You don't have to delete your comment, it's nothing to be ashamed of. The angular versioning situation is really not that simple.

And you are right, the ReadMe likely should say Angular 5 and not Angular 2.


For some reason I am getting downvoted quite heavily for it so I thought deleting it might stop that. But apparently now it is just getting more downvotes. Oh well.


Why do you care?


I don't know about you but I do feel really bad when I get downvoted, especially when I don't understand why and have no way to find out.


I wouldn't worry so much about it. This is an opinionated group, and having a different opinion is sometimes not taken well, but it is good to challenge the status quo, and good to not be part of groupthink. If you stand by what you said, take your downvotes with pride.

On the other hand, claiming something that isn't true, or being flippant or not contributing to the conversation will also result in downvotes. And those are probably a good guide of how to adjust your communication style to work better within the group.

I have no idea what your original comment was, so I don't know which of those scenarios is the case here.


If the points and resultant behavior shaping really get you down, check out this stupid simple Chrome extension: https://github.com/fapjacks/antihnbs

All visible point totals become 1, and all shades of grey become black.


Isn't there a maximum of 4 downvotes?


Human beings are hardwired to feel an aversion to social rejection. Downvotes are anonymous social rejection at scale without the standard feedback loop that allows people to recover and save face.


I agree, however the fear of downvotes (however irrational that fear may or may not be in an online forum) does cause me to stop and think of how many different ways a comment can be perceived. The result is that if a comment contains anything negative, I'll reword it as much as possible so that it can be expressed without causing a feeling of negativity in the reader. Which, by the way, has made me a better communicator overall, and has really helped out in my career.

Edit: I'd also like to see a voting system where people get rewarded for upvoting, and have to make a sacrifice to downvote. For example, if you upvote a comment that others also upvote, you get positive karma, and negative votes can cost you karma.


Isn’t the quality of a platform with upvoting and downvoting predicated on the assumption people care? If the upvote/downvote signal doesn’t matter, then there’s no incentive to produce quality content that (hopefully) gets upvoted, and there’s no point to having those voting buttons anyway.


I don't agree. The project is indicating which major version of Angular it uses. The reasoning in the post you linked doesn't really apply.


Stuff like this is really useful, although does miss some of the key benefits of Lambda-like services... the connection between billing and usage on a per-function basis, the ability to monetise your functions, the ability to scale genuinely on demand rather than with the lead time required to spin up new containers or VMs.


Some of that is coming, but right now it's only 3 of us who are building this. It also doesn't aim to be a carbon copy of anything - we have a bunch of ideas we would like to explore ourselves (we think it's better for the community this way).


Good stuff in GP list... plus I'm looking for rate limiting to curb abuse (in your service offering).


Good point about the billing. In our case FAAS is not offered by the cloud provider (yet), but we are stuck with them. They want us to spin up a server for every service. We started doing micro-services, but it’s just so much overhead compared to serverless. I rather deploy something like this, even without 1-1 mapping in regards to billing.


Also checkout Fission (https://github.com/fission/fission). A Kubernetes based FaaS platform in which you can define functions in any language and link them together using a DSL.


Also OpenWhisk, Kubeless, Fn, OpenFaaS, Riff (I work on this) and probably a dozen others by now that I've forgotten.


Thanks for mentioning OpenFaaS - the Kubernetes-native frameworks provide a deep integration with existing deployments and ecosystem.


Is there a list of hosted FaaS offerings somewhere?



Everyone here should check out https://github.com/apex/up... No exaggeration: it's the serverless platform we've all been dreaming of.

Also, it is VERY easy to migrate to for many projects, and has great language support... and it's developed by TJ Holowaychuk.



Shame it doesn't support Python nor PostgreSQL


It's coming as it's rather easy to add support for running Python apps. However, we don't have the python know how to implement automatic Python client generation for services.


Checkout SanFran - Lambda like serverless functions platform for Kubernetes https://github.com/dosco/sanfran

The main focus of its design was fast function startup time and horizontal scaling.

Fast function startup is done with a combination of pool of warm containers and instant container recycling.

As for horizontal scaling functions can themselves scale horizontally in high QPS situations and for large deployments every micro-service that makes up SanFran can itself be scaled horizontally.

Currently working on using machine learning to predictions to manage warm container pools.


For anyone looking to try this out I would recommend Google Kubernetes cluster (choose the cheap preemptive vm machine type) and you can have a 5 node Kubernetes cluster running for less than 10 bucks a month. Google's new pricing means they don't charge for Kubernetes just for the instances. SanFran can be installed with a single Helm command.

helm install https://raw.githubusercontent.com/dosco/sanfran/master/helm-...


eh... why should I need a "serverless functions platform for Kubernetes" especially since I actually need servers for kubernetes. and I can probably do most stuff way easier than having a framework on top of another deployment/app scheduling framework.


A serverless functions platform like SanFran can be deployed on your existing Kubernetes cluster. It will sit besides all your existing apps on there using resources only when needed. You can have many more services (functions) running / deployed than the size of your cluster.

It can be a way for anyone within the organization to deploy a function they need. For example marketing needs a quick endpoint to handle Mailchimp registrations or for Stripe payments. The function will not take up resources on the cluster until its needed. Functions will run in a isolated, devops free environment.

Technically you're not running on top of another framework, your javascript function is just running in a NodeJS instance thats managed there are no extra layers. Your NodeJS instance is running on Kubernetes but then why do I need Kubernetes is an entirely different discussion.


There are several of these for kubernetes already, kubeless, fission, openwhisk. Seems like instead of starting yet another one of these projects contributing might be a better way to go.


So what do you think of the posted project?


From taking a quick look its a great project for trusted environments and smaller use cases. I'm unclear from the documentation how I would scale this for anything more than a single machine without heavy devops overhead and when anyone across the org. runs their own functions where isolation etc is pretty important.


Great for people stuck with some ancient hosting provider or on prem solution. Not say great for cost as literally the first you need to run this is serverless solution is...a server! Still super nice job.


I'm cringing so hard at the idea of a tech guy somewhere explaining to his boss that "we can't go serverless because we don't have enough servers for that". You know that conversation is happening in an office somewhere.

Godspeed, poor engineer.


Everyone knows that serverless is a misnomer :). Cost wise I think you gain a lot of control by using something like this - as you can install it on premise, or any hosting provider, or your own colocated servers.


Serverless for your engineers, serverfull for your ops people.


What does "GitHub-like" mean?


It means we want to build a similarly accessible platform for microservices/faas as what github did with git repos. We use them as basis of comparison because we have a lot of respect for their product/ideas and we are inspired by them a lot (well sometimes we just simply steal ideas from them, haha).

I guess we are trying to convey the idea that it's a complete product from user management to charging - you could install it for your company or launch a web hosting company with it.


Interesting launch. Last month for Producthunt hackathon I was planning to create something similar by using openfaas, but did not(just like many other ideas/side projects we all have here :-)). One questions that bothered me a lot was how to define pricing for such product?

Would you be able to throw some light on how you/your team came up with the sustainable plan and pricing you have?


Hi Sharma!

The basic idea in terms of pricing was low cost and low maintenance for low traffic things: when someone is not running anything substantial even 10 quid a month feels like a waste.

And then when you start to have multiple side projects, you might need multiple servers (or set up more complex things like port forwarding based on domain etc)

So that's how it came about. But we are sure it's not sustainable entirely yet! We would just like to provide low cost and low hassle hosting. Let's see how it goes.


You should also check out https://webtask.io by the Auth0 people.

They have an in browser code editor that's fantastic.


Webtask is a solid and well designed product. Kudos to Tomasz Janczuk and his team at Auth0.

The only thing I don't like about Webtask is that it's not an open-source project, so there is no way for me to run their backend on my own hardware ( like a raspberry pi ).


FWIW: I tried to register and couldn't. The red error box appeared in bottom right corner, but was blank so I don't know what failed. Nothing crazy in my submission that I can see. Even when inspecting error box, no indication of why it failed was apparent.

Maybe it's because you're on the frontpage and getting lots of requests?


It's very likely because of the HN hug! We will have a look and fix it, sorry.

Good news is perhaps on your own machine it will run flawlessly :)))


I am currently looking for something along the lines of a distributed CPU - or Amazon Lambda, but enabling me to run sets of interdependent computation steps "in the cloud". Also - supporting redundancy and replication (so that a running program would never crash if one of the servers it was running on has crashed).

Any ideas?


I've used Google App Engine + Cloud TaskQueues to build pretty solid pipelines.


Have you looked into AWS Batch ?


Fantastic to see open source alternatives. At a previous job, I was repeatedly frustrated using AWS lambda's extremely closed-source environment.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: