Earlier quoted context omitted.
Yes but there are a lot of ways that "the containers are linked together" could be implemented and some of them e.g. key value store require modifying application code quite a bit whereas e.g. DNS does not.
Wasn't there just an AWS announcement yesterday about the ability to register VPC-private DNS records in Route 53? It screamed "SkyDNS competitor" to me but I couldn't figure out what Amazon wanted such a thing for. Makes sense now.
AWS EC2 Container Service
81–90 of 90 posts
Re: AWS EC2 Container Service
#82"All problems in computer science can be solved by another level of indirection" - David Wheeler That's what "containers" are, of course. There's so much state in OS file namespaces that running any complex program requires "installation" first. That's such a mess that virtual machines were created to allow a custom OS environment for a program. Then that turned into a mess, with, for example, a large number of canne…
IMO, the problem is that your standard OS has way too much stuff running. A SaaS app running in production should be about the size of your binary, and the libraries it uses. Instead, we have X, smtp, terminals and a full filesystem running. home directories and uids make no sense in an app that uses no unix users except for the one you're forced to use. I'd really like to see a much smaller, simpler, non-posix OS fo…
The POSIX system interfaces (read, write, open, close, etc.) are OK. It's the Commands and Utilities that are the problem. Do you really need Bash available? How much of the 50,000,000 lines of Linux need to be inside your VM running your one web application? How much attack service is provided by the presence of all that stuff?
There's a project which has taken the C runtime library and made it run on a bare VM, so you don't need an OS instance at all. If you're just running one program, that makes a lot of sense.
Re: AWS EC2 Container Service
#83Earlier quoted context omitted.
I'm genuinely curious, although a bit naive WRT containers. Outside of an aesthetic preference (for being able to remove 80% unnecessary cruft), what is the advantage of containers? I was under the impression that VM overhead was marginal in terms of today's computing. I ask because I'm familiar with VMs, having worked with them extensively for a number of years. VMs work quite well for any application I've needed, s…
Just lighter weight. Ways that containers can be cool: You need to start 10 containers locally to dev your app. Spinning up a local 10 VMs kind of sucks. 10 containers can be pretty quick. (now if you really need 10 containers is another question, and some people clearly over split their architecture).
Re: AWS EC2 Container Service
#84Earlier quoted context omitted.
VM overhead isn't trivial. It still remains a pretty big factor in terms of cost bloat for CPU-bound stuff. Also, VMs take a godawful long time to start up; if you care about, say, responding to load within ten seconds, VMs aren't a great choice. They're fine for a lot of things, of course. I use them all the time. But I use containers for other things.
I recall several reliable testers confirming that the CPU overhead of virtualisation was negligible, somewhere around 2%. Unfortunately I could not quickly find those papers now, but I did find a old VMWare whitepaper[1] showing they had ~7% overheard 5+ years ago, which sounds about right considering what kind of advancements they would have made in half a decade. [1] http://www.vmware.com/pdf/hypervisor_performance…
I expect startup time and memory usage would be lower, but to my mind the advantages are mainly around flexibility... e.g. How long it takes to create or upload an image file. How long it takes to set up a minimal infrastructure with several components to it on a single EC2 instance. Decoupling the operating system patch cycle from the app deployment image generation cycle. etc.
Re: AWS EC2 Container Service
#85Earlier quoted context omitted.
VM overhead isn't trivial. It still remains a pretty big factor in terms of cost bloat for CPU-bound stuff. Also, VMs take a godawful long time to start up; if you care about, say, responding to load within ten seconds, VMs aren't a great choice. They're fine for a lot of things, of course. I use them all the time. But I use containers for other things.
I recall several reliable testers confirming that the CPU overhead of virtualisation was negligible, somewhere around 2%. Unfortunately I could not quickly find those papers now, but I did find a old VMWare whitepaper[1] showing they had ~7% overheard 5+ years ago, which sounds about right considering what kind of advancements they would have made in half a decade. [1] http://www.vmware.com/pdf/hypervisor_performance…
As an example i am running around 20 containerized servers on my Laptop in a 4GB VM which would typically be run on 20 distinct VMs on one or more hypervisors. It's not very fast but the density of servers you can put on your hardware is MUCH bigger.
Re: AWS EC2 Container Service
#86Earlier quoted context omitted.
VM overhead isn't trivial. It still remains a pretty big factor in terms of cost bloat for CPU-bound stuff. Also, VMs take a godawful long time to start up; if you care about, say, responding to load within ten seconds, VMs aren't a great choice. They're fine for a lot of things, of course. I use them all the time. But I use containers for other things.
"if you care about, say, responding to load within ten seconds, VMs aren't a great choice." That's actually exactly why I would use a VM..
The best I've managed was ninety seconds on my own hardware and three minutes (on average) in AWS.
Re: AWS EC2 Container Service
#87Re: AWS EC2 Container Service
#88Earlier quoted context omitted.
"if you care about, say, responding to load within ten seconds, VMs aren't a great choice." That's actually exactly why I would use a VM..
You can spin up, configure, and push into production an application in a new virtual machine in ten seconds? I'd like to see proof of that. The best I've managed was ninety seconds on my own hardware and three minutes (on average) in AWS.
I can't really think of a use case though where someone would need more capacity in sub 10 seconds. Maybe if you only intend to scale horizontally with a bunch of 500Mb instances and had little to no room to set an appropriate scaling threshold? What would be a couple examples? With the apps I've seen the past several years generally they have scaling thresholds at 'X' resource and 3 minutes is more than enough to provision extra capacity for their needs.
Re: AWS EC2 Container Service
#89Earlier quoted context omitted.
"if you care about, say, responding to load within ten seconds, VMs aren't a great choice." That's actually exactly why I would use a VM..
You can spin up, configure, and push into production an application in a new virtual machine in ten seconds? I'd like to see proof of that. The best I've managed was ninety seconds on my own hardware and three minutes (on average) in AWS.
Re: AWS EC2 Container Service
#90Earlier quoted context omitted.
IMO, the problem is that your standard OS has way too much stuff running. A SaaS app running in production should be about the size of your binary, and the libraries it uses. Instead, we have X, smtp, terminals and a full filesystem running. home directories and uids make no sense in an app that uses no unix users except for the one you're forced to use. I'd really like to see a much smaller, simpler, non-posix OS fo…
I haven't had a chance to play with it, but I ran across this project the other day: https://github.com/cloudius-systems/osv "OSv was designed from the ground up to execute a single application on top of a hypervisor... OSv... runs unmodified Linux applications (most of Linux's ABI is supported) and in particular can run an unmodified JVM, and applications built on top of one."
1: http://www.linux.com/news/enterprise/cloud-computing/751156-... 2: http://www.openmirage.org/