Hyper.sh: Container-native Cloud
docs.google.comHyperApp: https://itunes.apple.com/app/apple-store/id1179750280?mt=8
Hyper.app: https://hyper.is/
hyperapp: https://github.com/hyperapp/hyperapp
Hyper.sh: https://docs.google.com/presentation/d/1nrfEcCITAofSDPFTIkiA...
Adding this to the list https://news.ycombinator.com/item?id=14634284
There are countless examples of overlaps in software naming. I'm sure this isn't even the word with the most duplicates.
Also, the .sh does make this particular example at least slightly distinctive.
Hyper.is is a Mac terminal. I used it for a time, and would always go to hyper.sh looking for docs or whatever.
Video is here: https://www.youtube.com/watch?v=JCldsRNuGkc&feature=youtu.be
I'm interested - what type of app can you run on 64mb of ram? What languages are suitable for building these types of microservices?
I'd just like to say how dispiriting I find this question considering I how envious of my friends $4k+ computer I was because it had 64mb of RAM and could play C&C Red Alert with absolutely no slowdown. Let that sink in...in the mid 90s, we comfortably fit a Windows GUI and a somewhat sophisticated game into 64mb of RAM and 20 years of "progress" later, we're asking what kind of special accommodations are necessary to handle HTTP requests with the same resources.
Note: It's an entirely reasonable question to ask, which makes it all the sadder.
My favorite comparison is the Apollo guidance computer's memory (though completely different comparison from your GUI and game description). But the AGC is absolutely fascinating.
> 16-bit wordlength, 2048 words RAM (magnetic core memory), 36,864 words ROM (core rope memory)
Source: https://en.wikipedia.org/wiki/Apollo_Guidance_Computer
The original PlayStation had only 2MB of RAM and 1MB of video memory. Still you could play games such as Metal Gear Solid on it :D
Thousands of HTTP requests per second. Not just "a handful".
A Node.js REST API can handle a significant volume of incoming requests with only 50mb-75mb of RAM. For reference here is a load test of handling around 75k-80k reqs/min using node.js containers deployed using Amazon ECS. Each node.js process is basically just doing CRUD operations, accepting incoming JSON, storing it in a database, fetching values back out of a database, and sending JSON back to clients. There is a bit of extra overhead from microservice HTTP fanout to other backend microservices, but the whole stack is very lightweight and 99% of requests are served in under 30ms.
As you can see this workload is only using about 6% of the available memory. For event loop driven systems like Node.js or Nginx, or Go the workload is almost always CPU bound not memory bound:
I’m pretty sure most languages, even interpreted, can run at least small programs in 64MB. If you want to minimize memory usage at all costs, I think you’d want a non-GC compiled language (C(++), Swift and Rust come to mind).
You can forget about Node.js, Python or Ruby for any meaningful app, like a web API. Erlang/Elixir is also iffy, I'm pretty sure. Java, last I check, had a default heap size of 64MB, and does badly on less.
I've written small Go programs that can consume around 15-20MB on low traffic. But they also have huge spikes in memory usage when you have concurrent requests hitting them.
It's rather common for managers to want simple, human-readable reports for information which is already exposed through a REST API.
Setting up a container with a cronjob that, once per day, executes a simple shell script which curls a REST endpoint, parses the relevant information, and sends an email out to a pre-defined mailing list or puts it to a slack channel... Yeah, that's pretty simple to pull off within that memory footprint.
Go is a good example - I have several services that consume ~20MB of RAM so no need for beefy boxes. Although that's why I also chose to use Kubernetes - extremely easy to pack a bunch of services.
I have a PHP based crawler scripts that range from 30 to 55 MB
nginx
https://www.hyper.sh/pricing.html
Cheapest single container with a publicly accessible IP (FIP) assuming a 1GB Docker image size.
S1 container: 1.03/month
FIP: $1/month
RootFS Container Volume (10GB@$0.1/GB/month): $1/month
Container Image (1GB@$0.1/GB/month): $0.1
Total monthly price: $3.13/monthI'm intrigued by network usage being "unlimited". Does this mean unlimited streaming of 10GB of video for a little over 3 USD/month?
They have per-second billing. Use it as serverless.
5 second boot time though. Better than a normal VM, but maybe not great for user facing serverless.
Yeah, batch job, cron are the better fit. I also think serverless != FaaS.
How is it better than a normal VM (or have I misunderstood)? You can get a full VPS with dedicated IP on OVH, Hetzner & co. for EUR 3.50/month.
Just pointing out that the 5 second boot time is better than a regular VPS. Which (combined with per second billing) makes this good for batch/cron oriented serverless functionality. But is too slow for "function as a service" type serverless where the end user is waiting for it to fire in a browser.
Boot time is better than a normal VM.
OVH servers you're lucky if you get it in 5 minutes, not 5 seconds.
AWS is more like 60 seconds
5 seconds boot + per-second billing is the killer feature.
So.. it's like AppEngine Flexible? A PaaS for Docker containers..
Having a hard time understanding what this brings to the table that Kubernetes doesn't?
Kubernetes is not a provider, hyper.sh is.
Why is heroku not addressed?