It used to be that people first downloaded software onto a physical computer and then ran it. Now, with cloud computing, you no longer need to worry about awkward downloads. Instead, you can use all the same services online from anywhere and see updates in real-time.

Why businesses migrate their legacy applications to clouds?

  1. Probably the first main reason for moving to the cloud is access to virtually unlimited computing resources. Cloud elasticity and scalability are essential elements of cloud computing.
    • Cloud elasticity is the ability of a system to manage available resources based on current workload requirements dynamically.
    • Cloud Scalability is a scalable system infrastructure to meet growing workload demands while maintaining consistent performance appropriately.
  2. Moving from legacy Windows app to cloud computing lets you work anytime, anywhere with an internet connection. A cloud-based web service is accessible from any device.
  3. In the current pandemic situation, team members are forced to work from their home offices. Using the clouds, your teammates can open, edit and share documents anytime and from anywhere; they can do more together and do it better. Before the advent of the cloud-based workflow, employees had to send files back and forth as email attachments that a single user worked on simultaneously.
  4. A public cloud provider owns the hardware infrastructure and is responsible for managing and maintaining it, so you don't have to worry about maintenance. With a public cloud, you only need to focus directly on meeting your business goals.
  5. Cloud computing reduces high hardware costs. You pay only for the actual consumption of resources.

Virtual Machines vs. Containers.

Containers and virtual machines (VMs) are the two main approaches to deploying multiple isolated services in the cloud. So how are they different?

Virtual machine (VM).

Before the advent of containers, "virtual machine" was a technology used to optimize server capacity. Virtual machines (and hypervisors) emulate physical computer hardware with a complete operating system. It's as if you were running multiple computers with several different operating systems on the same physical server.

The hypervisor orchestrates and distributes available resources (processor, memory, storage, etc.) across multiple virtual machines as needed.

Containers.

The container shares the host OS kernel as well as binaries and libraries with other containers. Common OS components are read-only.

Containers are lightweight so that you can deploy multiple containers on a single server or virtual machine. You no longer need to dedicate an entire server to one application.

Advantages of Containers.

  1. The biggest advantage of containers (if we are talking about Docker) over virtual machine images is resource usage.
    • Containers are lightweight, so they are fast.
    • Containers consume fewer resources.
    • Docker containers typically start in seconds, which speeds up deployment.
    • Tearing down a Docker container is as easy as running the docker stop command and usually takes less than a second.
    On the other hand,
    • virtual machines take longer as they go through the entire process of booting the entire virtual operating system each time!
    • Each VM includes a separate operating system image, which adds overhead in memory and storage footprint.
  2. Scaling container instances is far faster and easier than deploying additional VMs.
  3. Data volumes can be shared and reused among multiple containers.

Conclusion.

If there is a requirement to run multiple copies of a single application, Docker is a better choice. The lightweight nature of containers makes them useful for increasing an infrastructure's density and utilization.

This is why we ourselves adopted this concept when migrating existing Windows-based DBConvert products to the cloud infrastructure.

In the next article, I will share some information and code for building Windows docker images.