In this lesson, you will become familiar with: virtualization, containers, docker, and cloud platforms.
Have you ever wondered how to operate multiple Operating Systems on your computer? Thanks to virtualization, we can do that!
Virtualization is a relatively new technology that allows creating a completely isolated machine from scratch, all in software. Its dictionary definition is creating a virtual instance of an operating system, server, storage device, etc. In the IT industry, virtualization is running a virtual instance of a computer as a layer abstracted from the actual hardware.
World-famous providers like Linux and other open-source cloud solutions define virtualization as a technology that lets you create IT services using resources traditionally bound to hardware. It allows you to use a physical machine’s full capacity by distributing its capabilities among many users or environments”.
Nowadays, companies are starting to prefer Docker. It s a tool that uses containers to make the creation, deployment, and running of applications a lot easier. It binds the application and its dependencies inside a container.
But what is the difference between Docker and virtual machines?
Docker is an example of virtualization, but with a few differences:
- Containers share the same system resources and don’t have separated resources.
- A Docker doesn’t have an OS inside.
- It allows running multiple workloads on the same OS.
For example, if you have a 1 GB container image and want to use more than one virtual machine, you need to have 1 Gb multiplied by the numbers of the VM you want. If you use Docker, you can share the 1 GB between all the Docker containers.
In most real-life cases, your applications will have external dependencies, such as databases, message queues, or other external services that your application communicates to. You will need a reliable and easy-to-use way of bringing these dependencies into your development environment. Docker has a good solution for this called Docker Composer. It’s a tool for defining and running multi-container applications. That, combined with a cloud platform, will be the perfect solution.
A cloud platform is the operating and hardware system in a remote internet-based data center. It allows software and hardware products to co-exist remotely and at scale.
Overall, Virtual Machines are the most effective way to reduce IT expenses while boosting efficiency and agility for all-size businesses. Docker allows applications to be packaged with all the dependencies inside, which simplifies the deployment process quite a bit, and you get to have full reproducible environments.
- Virtualization and Cloud
- Containers and Docker