Designing a Scalable Infrastructure for Continuous Integration and Continuous Delivery

No Thumbnail Available
Journal Title
Journal ISSN
Volume Title
Perustieteiden korkeakoulu | Master's thesis
Date
2019-06-17
Department
Major/Subject
Kalaiarasan Saminathan
Mcode
SCI3042
Degree programme
Master’s Programme in Computer, Communication and Information Sciences
Language
en
Pages
61
Series
Abstract
Continuous Integration(CI) has swiftly become an integral part of the software development process as it makes tedious and tiresome tasks effortless. It is a practice, which allows developers to amalgamate their code changes into a centrally managed code repository. Each source code integration is then verified by an automated test suite to ensure the functionality of the product and detect problems at an initial stage of software development. In the past, team of developers might work in isolation, while integrating their changes to the master was an arduous effort. These factors were hurdles to quick product delivery. In recent advancements in software development methodologies, such as Microservice Architecture, a particular way of designing software applications as independently deployable services, which reduced the barricades in development and integration of software modules. Modern development requires Continuous Integration/Continuous Delivery (CI/CD) and its emphasis on building and executing automated test suites on every change integrated to a central repository to ensure software development/test environment is up-to-date. It requires an infrastructure, which withstands frequent code changes. Software industries manage their in-house build machinery to tackle these issues, but it becomes a hurdle when the number of product developments increases by time. In our case, to manage our security products, we ended up adding more physical nodes every time whenever the need arised, but this adds additional difficulties to manage the physical slave nodes. As part of my thesis, I would design a scalable CI/CD infrastructure using OS level virtualization technologies (containers) orchestrate using kubernetes and Apache Mesos. The comparative results from the different orchestration frameworks would enable us to profile and decide a suitable orchestration frameworks for future demands.
Description
Supervisor
Vuorimaa, Petri
Thesis advisor
Rossi, Markku
Keywords
continuous integration, continuous delivery, containers, container orchestration, apache mesos, kubernetes
Other note
Citation