Investigation of automated infrastructure creation in a multi-cloud environment (AWS, GCP)
Students Name: Hudyma Oleh Myronovych
Qualification Level: magister
Speciality: System Administration of Telecommunications Networks
Institute: Institute of Telecommunications, Radioelectronics and Electronic Engineering
Mode of Study: full
Academic Year: 2021-2022 н.р.
Language of Defence: ukrainian
Abstract: The master’s thesis presents research and development of a prototype of infrastructure management in a multi-cloud environment. This paper describes the best practices of infrastructure management, features of such a system, its advantages and disadvantages. Over the past few years, cloud computing has become increasingly popular with both developers and enthusiasts[1]. Modern cloud applications[2], which are developed specifically for the cloud, provide better performance and scalability, while being more cost-effective and fault-tolerant[3]. This is especially true of server-free programs[4]. Cloud applications are structurally different from traditional web applications: their complex and distributed nature means that their development is more complex[5]. Developers need not only to create a new application that uses some cloud API, but also to create an infrastructure for it. In essence, the way to create a program is twofold: it requires both writing code and deploying related infrastructure. Over the decade, innovations in cloud computing have led to a new understanding of computing that will be used as a utility. Most cloud service providers make the service better and more competitive for the end user. In addition to the number of services introduced by these providers, users are worried and unaware of the consequences of switching from one service to another. The internal architecture of the cloud makes it difficult for end users to understand. To overcome this problem, a new multi-cloud concept was introduced. In multi-cloud technology, we can use multiple clouds from different vendors without the complexity of the platform. Thus, multi-cloud is the use of stand-alone cloud platforms with a single interface that can prompt different administrative and implementation domains. One of the popular solutions to this problem is the approach of infrastructure as a code[6]. As part of this technique, the developer creates special definition files that declare the infrastructure along with the rest of the code and uses these files to deploy the program on the cloud platform. In this paper, we will explore a new approach to the declaration of multi-cloud infrastructure, which greatly facilitates the development of cloud applications and does not require the developer of expert knowledge of a particular cloud platform. This approach can also be used to manage infrastructure on multiple cloud platforms. The result is a prototype system that can manage multi-cloud infrastructure on AWS and GCP using Terraform and related providers. This prototype can be used for further improvement in order to create a full-fledged tool for cloud management without the need to identify components in each cloud environment. It is also worth noting that this work uses the interfaces of cloud providers with different APIs, which complicates the creation of the prototype and its further expansion. The first section considers the approach of infrastructure as code, analyzes its advantages and disadvantages. Good practices for creating such a system and the standard architecture of such systems are identified. The second section examines cloud infrastructure in general, as well as types of cross-cloud infrastructure. The importance, advantages and disadvantages of multi-cloud infrastructure are determined. AWS and GCP as cloud service providers are also considered. In the third section the technology of automation of creation of infrastructure as code - Terraform is investigated and analyzed. Describes the architecture, installation and use features for infrastructure changes. The fourth section describes in detail the implementation of a prototype system for infrastructure management in AWS and GCP. Each module, its purpose and implementation details are described. The results of the system operation are shown. The use of several services on different clouds is compared. The fifth section provides an economic analysis of the costs of operating the prototype system. The result is an expected estimate of infrastructure costs.