806 karma · joined November 2, 2010
Previous work: cohesion.dev, fission.io, filesystems at VMware.
Generally: interested in the systems of change in software and people.
Specifically: working on Dev AI at Stripe.
contact@soam.dev; no sales pitches please but I'm always interested in grabbing a coffee and talking about developer tools, infrastructure, or startups!
And then, comparing that to the flu and saying this isn't much worse, we're now well into the "this video is a potentially a public health hazard" territory.
https://github.com/DP-3T/documents
paper: https://github.com/DP-3T/documents/blob/master/DP3T%20White%...
data protection aspects: https://github.com/DP-3T/documents/blob/master/DP3T%20-%20Da...
Here's an overview comparing that approach to some others (such as Singapore's tracetogether): https://github.com/vteague/contactTracing
It's really really hard to create a contribution system that works well when there is a large set of users, a large set of contributors, _and_ a tricky design space. It's tempting to become authoritarian, especially when the design space is complex and you've thought about it longer than anyone else. Inclusion is a shit ton of work, and a lot of it feels non-technical and boring to most people.
It's tempting to throw away compatibility and ask users to just deal with it. No project is perfect at this, but infrastructure stuff has a much higher bar for this than most other projects. That makes everything else that much harder.
Most tech culture undervalues management a lot, especially in open source. But open source should be valuing it more, because the problems are so much harder than in a small co-located one-company team -- communication is lower bandwidth and higher stakes, there's no way to manage other people's schedules, there's differing goals and incentives, and on and on.
I'd use it, except there seems to be a total lack of context. If I add this button to my (web based) single-page app, I want to know what exactly the user was doing when they clicked it.
Giving the user just a text box and hoping that they'll include all context unprompted is a bit too optimistic IMHO. Maybe your JS thing could accept a context argument, and you can show that context in some way along with the complaint.
People used to write cron jobs to keep their functions warm, which besides being ugly didn't even work well -- you could at best keep one instance warm with infrequent pinging, i.e. a provisioned concurrency of 1. So this feature addresses that use case in a much more systematic way.
There's some precedent for features like this -- provisioned IOPS and reserved instances come to mind. In both those cases you tradeoff elasticity and get some predictability in return (performance in one case, cost in another).
There really is no substitute for talking 1-1 to potential customers.
Good luck :)
The techcrunch article is a bit more informative -- https://techcrunch.com/2019/11/04/lemonade-gets-a-nastygram-...
Platform9 makes cloud-hosted management systems for open source software (such as Kubernetes and Openstack) on customer infrastructure.
We're also making Fission, a serverless framework for Kubernetes: http://fission.io.
We're hiring across several positions: Software Engineering in various teams including Kubernetes, Openstack, and Fission; Software Engineers in Devops; Developer Advocates; and Technical Program Managers.
Find more at: https://platform9.com/careers
$ fission function create --name hello --env python --code hello.py --url /hello
2. We don't support Java yet, but we'd like to. The JVM would already be running by the time there's a request, so there won't be a JVM startup in the request path.
3. Dev workflows: Lots to do on that front. A big part of our roadmap is improving the dev workflow, better versioning support, CI/CD.
For running locally, yes, the best way is to run a local Kubernetes instance on your machine. minikube makes it very easy to do that, see the instructions in the README: https://github.com/fission/fission#setup-kubernetes
Feature-wise, fission router is very simple right now. It's a service based on gorilla/mux. We had to write our own router because of cold-starts -- basically, the router needs to be able to talk to the pool manager and to get an instance when one doesn't exist, while holding on to the incoming request. (I'm not sure how much of this is possible to write as an nginx plugin.)
I don't have perf numbers just yet, but the router is stateless and you can just run more replicas when you reach its limit. It caches results from the rest of fission components, and most requests are on this fast path.
(We're also thinking about adding some existing feature-ful API proxy in front of the router, to get stuff like authentication, rate limiting, etc.)
We're working on a detailed comparison with Openwhisk, but basically -- we bet on Kubernetes as a good foundation to build this on, and it seems to be going well so far. It's true that we're at an earlier project maturity stage than Openwhisk is. In particular, we're actively working on integrating event sources and adding support for more languages.