Serverless computing on DC/OS with Galactic Fog
mesosphere.com
mesosphere.com
I'm sure there are upsides to adopting the same programming model with your own hardware or VMs, but the financial benefit of Lambda will not be there.
Trying to process 1000s of requests on AWS lambda could end up hitting the limits of lambda and cost you more.
I use lambda to process exif data in images as they are uploaded to S3. Which is awesome because it doesn't require services running on the web server and costs me nothing because it comes into the free tier of AWS lambda.
Indeed, if you host your own "lambda" implementation, you may or may not have cost improvements. In this case it may be just a matter of operational efficiency.
If you have a million 1ms transactions per second, you'll spend $500k/month, or $6m/year.
https://s3.amazonaws.com/lambda-tools/pricing-calculator.htm...
From the AWS Lambda pricing page:
Duration is calculated from the time your code begins
executing until it returns or otherwise terminates,
rounded up to the nearest 100ms
So it would really be closed to $1 million per month.That said, there are financial benefits on premise too. Short lived processes that need 1 CPU and 512Mb memory are ideal candidates for oversubscription. If you had a server where CPU utilization never peaked beyond 60% and 15Gb memory was free then you could fit 20 Lambda functions in this 'slack capacity' without resource contention. Driving up utilization when the cost of the server is sunk is effectively capacity for free.
Would you mind sharing a bit more details?
p.s. if you're in the Bay Area I wouldn't mind getting together over coffee/drinks for a deeper chat.
Couldn't someone write a virtualized VM that runs inside Lambda, thus providing zero (or Lambda-equivalent) startup costs for generic VMs? Then the VM would just be a function running inside Lambda, transforming incoming user data and then storing the result in a database, after which it would disappear.
Or maybe the OS just is the problem? One model of bypassing it is Lambda-like services, which would be the more centralized solution, while the more decentralized solution (of the two) would be bare metal/unikernels, which basically achieve the same thing: (close to) zero startup time/cost (~30 ms for a HaLVM unikernel).
This is how university supercomputers work currently. You don't get dedicated hosts; your project has a budget of CPU hours.
I'm new to Mesosphere, and right now, I'm figuring out a process for managing the cluster that would work well for a small but growing team. It would be nice to have a specification of what the cluster should look like, and how it has changed over time. For that, I'm thinking of having a "{company}-DC" git repository with a collection of Ansible playbooks that would set up the DCOS cluster, and then install, configure and set up scaling policies for the services and applications that we want to run. Is this how most people do it? Do you see problems with the general idea of keeping all of Mesosphere under configuration management? Where do secrets fit into this, where do you store them and how do you make them available to your applications?
Does this style of computing / engineering hinder open source adoption in languages? Eg, OS images pre-setup with some type of PHP-style provider, letting you run whatever language you want with low startup time to handle each request?
I'm sure much of this is way off the mark, so to explain it differently, i'd love to be able to work with a Rust framework tailored to this "serverless" model, and hosted on any generic box i want (or fleets of boxes, etc).
And of course, apologies for the ignorance i'm sure is visible :)