5 ms·
I'm more interested in the OS they hosted their site on. Mirage, developed in OCaml for the cloud. The part that really interested me: "If a sudden spike in tr
by Apofis 12y ago
I'm more interested in the OS they hosted their site on.
Mirage, developed in OCaml for the cloud. The part that really interested me: "If a sudden spike in traffic occurs, the web-servers can be configured to create and deploy copies of themselves to service the demand. This auto-scaling happens so quickly that an incoming connection can trigger the creation of new server and the new server can then handle that request before it times out (which is on the order of milliseconds)."
http://openmirage.org/wiki/overview-of-mirage http://openmirage.org/wiki/overview-of-mirage
- amirmc 12y agoYup, this is work in progress. The first part of this is Jitsu, which is a DNS server that can spin up Unikernels on an incoming request. https://github.com/MagnusS/jitsu https://github.com/MagnusS/jitsu
- edwintorok 12y agoAre the DNS requests used only to scale up in anticipation of more traffic, or is a steady stream of DNS requests required to keep the instances running once they are started? I see that there is an expiration TTL, but what happens if there is a download in progress for longer than the VM expiration time? Also how well does this work with persistent HTTP connections (and TLS handshakes)? i.e. will the browser keep a persistent connection to the jitsu proxy and the actual requests might be served by different VMs?
- amirmc 12y agoWe're actually putting a paper together that uses Jitsu so you might find that answers most of your questions (the team is busy with eval at the moment). For the time-being, Jitsu [1] 'just' spawns a unikernel which serves requests, with no apparently latency for the requester. At some point, when the unikernel hasn't done anything for a while, it is culled (which is something of an implementation detail). In principle, we should be able to use this as part of a set of tools to create the hyper-elastic clouds mentioned upthread. [1] Just in Time Summoning of Unikernels
- deleted 12y ago[deleted]
- bjackman 12y agoYou can read the original paper about Mirage here: http://anil.recoil.org/papers/2013-asplos-mirage.pdf http://anil.recoil.org/papers/2013-asplos-mirage.pdf (it's a pretty easy read for something with an abstract). I love this idea so much. There's also OSv which targets the JVM instead of OCamL. It's an open source commercial enterprise. https://github.com/cloudius-systems/osv https://github.com/cloudius-systems/osv
- amirmc 12y agoI should also have mentioned that Mirage is a core component of the stack for distributed personal clouds. We need to have resilient, scalable infrastructure if we want to own a piece of the cloud for ourselves. http://nymote.org/blog/2013/introducing-nymote/ http://nymote.org/blog/2013/introducing-nymote/ and http://amirchaudhry.com/brewing-miso-to-serve-nymote/ http://amirchaudhry.com/brewing-miso-to-serve-nymote/
- ukigumo 12y agoI have a bit of a problem understanding why this would be a good thing to be honest. Capacity demand is handled by resource concurrency thresholds so why would spinning up a new OS (no matter how lightweight) be better than having non-blocking IO threads on a single kernel?
- mtrimpe 12y agoThere is no reason the spun up OS can't also have non-blocking IO threads. Mirage's philosophy is mainly about reducing attack surface and unnecessary overhead. That it makes the OS so small that you can boot it up in milliseconds is just an added benefit.
- ukigumo 12y agoOk, but that would only be true if I was going to spin up a new vm to join the load group / cluster but even then no one would do that unless behind a reverse proxy / waf load balancer so the attack vector angle is covered. I'm not saying MirageOS doesn't sound neat, I'm just not yet convinced it has a general purpose use case.
- copsarebastards 12y ago"General purpose use case" is an oxymoron.
- ukigumo 12y agoAre you sure? I'm usually very careful with my usage of figures of speech but I'm no language major so maybe I should clarify that I meant that I could see edge cases but not a general purpose one. Did this clarify my point or in any other way contribute to your undestanding?
- amirmc 12y agoMirageOS is useful for creating single-purpose appliances. That fits well with how the cloud is used today (where you typically end up with one service/app per VM anyway). The autoscaling piece is only one aspect and is only in the early stages, so you shouldn't dwell on it. The overview page and the ASPLOS paper (linked upthread) and the ACM article [1] will help explain the benefits and trade-offs of the unikernel approach. Other people have also started using unikernels so you can read about their experiences too [2]. [1] http://queue.acm.org/detail.cfm?id=2566628 http://queue.acm.org/detail.cfm?id=2566628 [2] http://amirchaudhry.com/unikernels-for-everyone/ http://amirchaudhry.com/unikernels-for-everyone/