3 ms·
Others have discussed how docker uses a layered approach, and how two containers that share a base system will share most of the filesystem and memory. The rea
by eatmyshorts 9y ago
Others have discussed how docker uses a layered approach, and how two containers that share a base system will share most of the filesystem and memory.
The real power of containers comes with container orchestration (i.e. Kubernetes, Mesosphere, and OpenShift). By leveraging containers, container orchestration systems can provide high availability, scalability, and zero-downtime rollouts and rollbacks, among many other things. These things were hard before containers & container orchestration. By allowing containers to be moved between nodes in a cluster, one generally achieve higher hardware utilization than with VMs alone (which is in itself a big improvement upon software on bare-metal hardware). All of this also leads to easier/better continuous deployment, as well. This, in turn, leads to easier testing, and greatly simplifies provisioning of hardware for new projects.
So, the benefits are:
- Cheaper than VMs (through better hardware utilization)
- More reliable, through HA load balancers
- More scalable, through scalability load balancers
- Better testing, through CI/CD enabled by containers
- Faster application delivery by simplifying provisioning
- peterwwillis 9y agoExcept: - Nobody ever used VMs the way containers are - A HA load balancer is not a container-specific concept - There is no such thing as a 'scalability load balancer' - You don't need a container to do CI/CD - It's not faster, it's slower, and it's not simpler, it's more complex
- _seemethere 9y agoHow is it slower to use containers than traditional machines? Provisioning for a container is basically just downloading an image and running it. Sounds like you haven't really used containers at all.
- eatmyshorts 9y ago- Nobody ever used VMs the way containers are? Many people are using VMs to get better utilization of hardware by running multiple distinct apps on the same hardware. Containers do this, too. Container orchestration makes it really easy, allowing for even better hardware utilization than with VMs. You say that "nobody ever used VMs the way container are", yet I've got multiple clients that deployed to Kubernetes in large part because of this very point. - I never said an HA load balancer is a container-specific concept. I said that "these things were hard before containers". I stand by that statement. Containers and container orchestration make HA proxies really, really simple. - A scalability load balancer is a load balancer in front of a service that monitors load and scales up, or down, the number of instances behind that load balancer. Again, container orchestration makes this really easy. - No you don't need a container to do CI/CD. But containers make it much, much easier. - It is faster. I can provision an entire cluster of machines in about 5 minutes on AWS or GKE. If I have an existing cluster to publish to, it's even easier--it's one line in my continuous integration config file. Container orchestration has a learning curve (I'm assuming this is why you say "it's more complex"?), but it is tremendously easier and faster to provision hardware for a project with containers and container orchestration when compared to provision actual hardware, or even provisioning VMs.
- hueving 9y agoSounds like a lot of this is confusing containers with an API to control instances in general. Most of this is already achievable with the APIs offered by EC2, azure, VMware, openstack, etc.
- geggam 9y agoThis and the fact docker in AWS creates several layers of NAT