Skip to main content

Traditional Deployment VS Virtualization VS Container




1. Traditional Deployment



History of running a software Traditional Deployment

  • Early on, organizations ran applications on physical servers.
  • Install or use an existing operating system.
  • Install the tools & dependencies needed by your software.
  • Run your application on it.

Problem with Traditional Deployment

  • Resource Isolation issue, there is no way to define resource boundaries for applications in a physical server.
  • Scaling issues for specific applications and long downtime.
  • Overutilization of resources for a specific app can crash the entire physical server.
  • It was expensive for organizations to maintain many physical servers.

Now to Overcome this problem, a virtual machine was introduced.

2. Virtual Machine

Virtual Machine

  • Virtualization allows you to run multiple VMs on a single physical server.
  • Each VM includes a full copy of an operating system, the application, necessary binaries, and libraries.
  • Virtualization allows more effortless adding and updating of applications that solve the scalability issue.
  • Virtualization allows better utilization of resources.
  • Virtualization isolates applications between VMs.

Virtual Machine is great but there are a few problems.

  • Operating system images are heavyweight, image size in GB.
  • Contain guest OS for each virtual machine.
  • It is a slow-to-boot-up process.
  • Application is not portable
  • Not scalable according to the requirement.
  • Spin up a virtual machine may take 1–2 minutes.

Docker container was introduced in 2013 to solve this problem.

3. Docker Containers



Docker Containers

  • The process of virtualizing the operating system produces containers.
  • A container is an abstraction at the OS layer that packages code and dependencies together.
  • Containers take up less space than VMs, boots quickly.
  • Containers use underlying hardware so no wastage of resources.
  • Containers are very lightweight and very fast and can spin up a few seconds or milliseconds.
  • Docker containers are process-isolated and don’t require a hardware hypervisor.
  • Containers are highly portable.
  • Containers are highly scalable with the help of orchestration platforms such as Kubernetes or Docker Swarm which helps to create and manage docker containers.

Comments

Popular posts from this blog

Deploy rancher to mange kubernetes cluster

Access to Rancher: https://165.232.159.139/dashboard/ user: admin pass: 12345678@A12345678@Ab Deployment Monitor rancher server 

Pattern: API Gateway / Backends for Frontends

Context Let’s imagine you are building an online store that uses the Microservice architecture pattern and that you are implementing the product details page. You need to develop multiple versions of the product details user interface: HTML5/JavaScript-based UI for desktop and mobile browsers - HTML is generated by a server-side web application Native Android and iPhone clients - these clients interact with the server via REST APIs In addition, the online store must expose product details via a REST API for use by 3rd party applications. A product details UI can display a lot of information about a product. For example, the Amazon.com details page for POJOs in Action displays: Basic information about the book such as title, author, price, etc. Your purchase history for the book Availability Buying options Other items that are frequently bought with this book Other items bought by customers who bought this book Customer reviews Sellers ranking … Since the online store uses the Microserv...

Async API documentation

Asyncapi:  https://www.asyncapi.com/ Async API documentation is used for documenting events in event-driven systems, like Kafka events. All of the event DTOs are stored in one place. It supports YAML and JSON formats. Source code : https://github.com/nguyenvanhuan243/asyncapi_studio Demo:   https://asyncapi-huancapital.onrender.com/ Async Json asyncapi : '2.6.0' info : title : Streetlights Kafka API version : '1.0.0' description : | The Smartylighting Streetlights API allows you to remotely manage the city lights. ### Check out its awesome features: * Turn a specific streetlight on/off 🌃 * Dim a specific streetlight 😎 * Receive real-time information about environmental lighting conditions 📈 license : name : Apache 2.0 url : https://www.apache.org/licenses/LICENSE-2.0 servers : test : url : test.mykafkacluster.org:8092 protocol : kafka-secure description : Test broker security : - saslScram : [] defaultConten...