Evaluation and Improvement of Application Deployment in Hybrid Edge Cloud Environment
Total Page:16
File Type:pdf, Size:1020Kb
Evaluation and Improvement of Application Deployment in Hybrid Edge Cloud Environment Using OpenStack, Kubernetes, and Spinnaker Khaled Jendi KTH ROYAL INSTITUTE OF TECHNOLOGY SCHOOL OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE This degree project is supported by: Examinor (KTH): Mihhail Matskin Supervisor (KTH): Ahmad Al-Shishtawy Supervisor (Ericsson, EST): Christopher Price https://wiki.nordix.org/display/RE/Edge+Cloud+project Table of Contents Abstract .......................................................................................................... 1 List of Code Snippet ...................................................................................... 7 List of Abbreviations ...................................................................................... 8 Chapter 1 ....................................................................................................... 9 1 Introduction ............................................................................................. 9 1.1.1 Openstack .......................................................................................... 9 1.1.2 Kubernetes ........................................................................................ 10 1.1.3 System Deployment & Spinnaker ................................................... 10 1.2 Problem ................................................................................................... 10 1.3 Purpose .................................................................................................... 11 1.4 Goal ......................................................................................................... 11 1.4.1 Benefits, Ethics and Sustainability ................................................... 11 1.5 Methodology / Methods ........................................................................ 12 1.6 Delimitations ............................................................................................ 13 1.7 Outline (Disposition) ............................................................................... 13 Chapter 2 ..................................................................................................... 15 2 Edge Cloud Computing Background ................................................ 15 2.1 Traditional and Early Deployment Methods ......................................... 15 2.2 Edge Cloud Computing ......................................................................... 16 2.2.1 Cloud Computing Service Models ................................................ 18 2.3 OpenStack .............................................................................................. 25 2.3.1 History ................................................................................................ 25 2.3.2 OpenStack Architecture ................................................................. 26 2.4 Visualization Principles ........................................................................... 31 2.4.1 Virtual Machines .............................................................................. 31 2.4.2 Containers ........................................................................................ 31 2.5 Kubernetes .............................................................................................. 33 2.5.1 Kubernetes Architecture & Components ..................................... 34 2.6 Spinnaker ................................................................................................ 38 2.6.1 Spinnaker Architecture & Components ........................................ 39 2.7 Related Work ........................................................................................... 41 Chapter 3 ..................................................................................................... 42 3 Methodologies and Deployment Approaches ................................. 42 3.1 Research Approaches ........................................................................... 42 3.1.1 Applied Approach .......................................................................... 42 3.1.2 Qualitative Approach ..................................................................... 42 3.1.3 Empirical & Analytical Approaches ............................................... 42 3.2 Research Process ................................................................................... 43 3.2.1 Solution Overview ............................................................................ 44 3.2.2 Adopted Research Process ............................................................ 46 3.3 Project Management Objectives ......................................................... 49 3.3.1 Project Methods ............................................................................... 50 i 3.3.2 Triple Constraint Theory ................................................................... 52 3.4 Testing & Evaluation ................................................................................ 53 3.4.1 Deployment Using VCS ................................................................... 53 3.4.2 Zero Downtime Testing .................................................................... 53 3.4.3 Google Lighthouse Testing ............................................................. 53 3.5 Deployment Automation Analysis ........................................................ 54 3.6 Project Resources ................................................................................... 54 4 Application Deployment in The Hybrid Cloud .................................. 55 4.1 Cloud Environment Deployment ........................................................... 55 4.1.1 OpenStack Deployment ................................................................. 55 4.1.2 Kubernetes Deployment ................................................................. 59 4.1.3 Spinnaker Deployment .................................................................... 65 4.1.3.1 Deploying Spinnaker Locally ........................................................................................ 65 4.1.3.2 Deploying Distributed Spinnaker ................................................................................ 68 4.2 Test Study (Case Study) .......................................................................... 73 4.2.1 Dockerfile .......................................................................................... 73 4.2.1.1 NodePort and LoadBalancer ......................................................................................... 74 4.2.2 Enabling Git Artifact Provider ......................................................... 76 4.2.3 CHATi Deployment Pipeline ............................................................ 79 Chapter 5 ..................................................................................................... 87 5 Results, Discussions and Conclusions ................................................. 87 5.1 Performance Testing Clusters ................................................................ 87 5.2 Performance Testing Results .................................................................. 87 5.2.1 Downtime During Deployments ..................................................... 88 5.2.2 CPU Usage ........................................................................................ 89 5.2.3 Memory usage ................................................................................. 89 5.2.4 Message Delivery and Request Interruption ................................. 90 5.2.5 Request Duration ............................................................................. 91 5.2.6 Zero Downtime (Distributed Spinnaker) ......................................... 92 Chapter 6 ..................................................................................................... 93 6 Discussions and Conclusions .............................................................. 93 6.1 Descussion and Analysis ........................................................................ 93 6.2 Future Work ............................................................................................. 93 Appendix A .................................................................................................. 95 Appendix B .................................................................................................. 96 Appendix C .................................................................................................. 98 References ................................................................................................. 102 ii iii Abstract Traditional mechanisms of deployment of deferent applications can be costly in terms of time and resources, especially when the application requires a specific environment to run upon and has a different kind of dependencies so to set up such an application, it would need an expert to find out all required dependencies. In addition, it is difficult to deploy applications with efficient usage of resources available in the distributed environment of the cloud. Deploying different projects on the same resources is a challenge. To solve this problem, we evaluated different deployment mechanisms using heterogeneous infrastructure-as-a-service (IaaS) called OpenStack and Microsoft Azure. we also used platform-as-a-service called Kubernetes. Finally, to automate and auto integrate deployments, we used Spinnaker as the continuous delivery framework. The goal of this thesis work is to evaluate and improve