Cloud application platform - Virtualization vs Containerization : A comparison between application containers and virtual machines

Context. As the number of organizations using cloud application platforms to host their applications increases, the priority of distributing physical resources within those platforms is increasing simultaneously. The goal is to host a higher quantity of applications per physical server, while at the...

Full description

Bibliographic Details
Main Author: Vestman, Simon
Format: Others
Language:English
Published: Blekinge Tekniska Högskola, Institutionen för programvaruteknik 2017
Subjects:
CPU
RAM
Online Access:http://urn.kb.se/resolve?urn=urn:nbn:se:bth-14590
id ndltd-UPSALLA1-oai-DiVA.org-bth-14590
record_format oai_dc
spelling ndltd-UPSALLA1-oai-DiVA.org-bth-145902017-06-22T05:34:59ZCloud application platform - Virtualization vs Containerization : A comparison between application containers and virtual machinesengVestman, SimonBlekinge Tekniska Högskola, Institutionen för programvaruteknik2017OpenstackDockerSimon VestmanMalvacomMalvacom ABApplication containervirtual machineperformancescalabilitycomparisonuser isolationabstractionresource allocationcontainerizationvirtualizationcloud application platformplatform as a serviceCPURAMefficiencyrequest handlingComputer SystemsDatorsystemContext. As the number of organizations using cloud application platforms to host their applications increases, the priority of distributing physical resources within those platforms is increasing simultaneously. The goal is to host a higher quantity of applications per physical server, while at the same time retain a satisfying rate of performance combined with certain scalability. The modern needs of customers occasionally also imply an assurance of certain privacy for their applications. Objectives. In this study two types of instances for hosting applications in cloud application platforms, virtual machines and application containers, are comparatively analyzed. This investigation has the goal to expose advantages and disadvantages between the instances in order to determine which is more appropriate for being used in cloud application platforms, in terms of performance, scalability and user isolation. Methods. The comparison is done on a server running Linux Ubuntu 16.04. The virtual machine is created using Devstack, a development environment of Openstack, while the application container is hosted by Docker. Each instance is running an apache web server for handling HTTP requests. The comparison is done by using different benchmark tools for different key usage scenarios and simultaneously observing the resource usage in respective instance. Results. The results are produced by investigating the user isolation and resource occupation of respective instance, by examining the file system, active process handling and resource allocation after creation. Benchmark tools are executed locally on respective instance, for a performance comparison of the usage of physical resources. The amount of CPU operations executed within a given time is measured in order determine the processor performance, while the speed of read and write operations to the main memory is measured in order to determine the RAM performance. A file is also transmitted between host server and application in order to compare the network performance between respective instance, by examining the transfer speed of the file. Lastly a set of benchmark tools are executed on the host server to measure the HTTP server request handling performance and scalability of each instance. The amount of requests handled per second is observed, but also the resource usage for the request handling at an increasing rate of served requests and clients. Conclusions. The virtual machine is a better choice for applications where privacy is a higher priority, due to the complete isolation and abstraction from the rest of the physical server. Virtual machines perform better in handling a higher quantity of requests per second, while application containers is faster in transferring files through network. The container requires a significantly lower amount of resources than the virtual machine in order to run and execute tasks, such as responding to HTTP requests. When it comes to scalability the prefered type of instance depends on the priority of key usage scenarios. Virtual machines have quicker response time for HTTP requests but application containers occupy less physical resources, which makes it logically possible to run a higher quantity of containers than virtual machines simultaneously on the same physical server. Student thesisinfo:eu-repo/semantics/bachelorThesistexthttp://urn.kb.se/resolve?urn=urn:nbn:se:bth-14590application/pdfinfo:eu-repo/semantics/openAccess
collection NDLTD
language English
format Others
sources NDLTD
topic Openstack
Docker
Simon Vestman
Malvacom
Malvacom AB
Application container
virtual machine
performance
scalability
comparison
user isolation
abstraction
resource allocation
containerization
virtualization
cloud application platform
platform as a service
CPU
RAM
efficiency
request handling
Computer Systems
Datorsystem
spellingShingle Openstack
Docker
Simon Vestman
Malvacom
Malvacom AB
Application container
virtual machine
performance
scalability
comparison
user isolation
abstraction
resource allocation
containerization
virtualization
cloud application platform
platform as a service
CPU
RAM
efficiency
request handling
Computer Systems
Datorsystem
Vestman, Simon
Cloud application platform - Virtualization vs Containerization : A comparison between application containers and virtual machines
description Context. As the number of organizations using cloud application platforms to host their applications increases, the priority of distributing physical resources within those platforms is increasing simultaneously. The goal is to host a higher quantity of applications per physical server, while at the same time retain a satisfying rate of performance combined with certain scalability. The modern needs of customers occasionally also imply an assurance of certain privacy for their applications. Objectives. In this study two types of instances for hosting applications in cloud application platforms, virtual machines and application containers, are comparatively analyzed. This investigation has the goal to expose advantages and disadvantages between the instances in order to determine which is more appropriate for being used in cloud application platforms, in terms of performance, scalability and user isolation. Methods. The comparison is done on a server running Linux Ubuntu 16.04. The virtual machine is created using Devstack, a development environment of Openstack, while the application container is hosted by Docker. Each instance is running an apache web server for handling HTTP requests. The comparison is done by using different benchmark tools for different key usage scenarios and simultaneously observing the resource usage in respective instance. Results. The results are produced by investigating the user isolation and resource occupation of respective instance, by examining the file system, active process handling and resource allocation after creation. Benchmark tools are executed locally on respective instance, for a performance comparison of the usage of physical resources. The amount of CPU operations executed within a given time is measured in order determine the processor performance, while the speed of read and write operations to the main memory is measured in order to determine the RAM performance. A file is also transmitted between host server and application in order to compare the network performance between respective instance, by examining the transfer speed of the file. Lastly a set of benchmark tools are executed on the host server to measure the HTTP server request handling performance and scalability of each instance. The amount of requests handled per second is observed, but also the resource usage for the request handling at an increasing rate of served requests and clients. Conclusions. The virtual machine is a better choice for applications where privacy is a higher priority, due to the complete isolation and abstraction from the rest of the physical server. Virtual machines perform better in handling a higher quantity of requests per second, while application containers is faster in transferring files through network. The container requires a significantly lower amount of resources than the virtual machine in order to run and execute tasks, such as responding to HTTP requests. When it comes to scalability the prefered type of instance depends on the priority of key usage scenarios. Virtual machines have quicker response time for HTTP requests but application containers occupy less physical resources, which makes it logically possible to run a higher quantity of containers than virtual machines simultaneously on the same physical server.
author Vestman, Simon
author_facet Vestman, Simon
author_sort Vestman, Simon
title Cloud application platform - Virtualization vs Containerization : A comparison between application containers and virtual machines
title_short Cloud application platform - Virtualization vs Containerization : A comparison between application containers and virtual machines
title_full Cloud application platform - Virtualization vs Containerization : A comparison between application containers and virtual machines
title_fullStr Cloud application platform - Virtualization vs Containerization : A comparison between application containers and virtual machines
title_full_unstemmed Cloud application platform - Virtualization vs Containerization : A comparison between application containers and virtual machines
title_sort cloud application platform - virtualization vs containerization : a comparison between application containers and virtual machines
publisher Blekinge Tekniska Högskola, Institutionen för programvaruteknik
publishDate 2017
url http://urn.kb.se/resolve?urn=urn:nbn:se:bth-14590
work_keys_str_mv AT vestmansimon cloudapplicationplatformvirtualizationvscontainerizationacomparisonbetweenapplicationcontainersandvirtualmachines
_version_ 1718461969261920256