Designing a Scalable Infrastructure for Continuous Integration and Continuous Delivery
dc.contributor | Aalto-yliopisto | fi |
dc.contributor | Aalto University | en |
dc.contributor.advisor | Rossi, Markku | |
dc.contributor.author | Saminathan, Kalaiarasan | |
dc.contributor.school | Perustieteiden korkeakoulu | fi |
dc.contributor.supervisor | Vuorimaa, Petri | |
dc.date.accessioned | 2019-06-23T15:10:56Z | |
dc.date.available | 2019-06-23T15:10:56Z | |
dc.date.issued | 2019-06-17 | |
dc.description.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. | en |
dc.format.extent | 61 | |
dc.identifier.uri | https://aaltodoc.aalto.fi/handle/123456789/38991 | |
dc.identifier.urn | URN:NBN:fi:aalto-201906234057 | |
dc.language.iso | en | en |
dc.programme | Master’s Programme in Computer, Communication and Information Sciences | fi |
dc.programme.major | Computer Science | fi |
dc.programme.mcode | SCI3042 | fi |
dc.subject.keyword | continuous integration | en |
dc.subject.keyword | continuous delivery | en |
dc.subject.keyword | containers | en |
dc.subject.keyword | container orchestration | en |
dc.subject.keyword | apache mesos | en |
dc.subject.keyword | kubernetes | en |
dc.title | Designing a Scalable Infrastructure for Continuous Integration and Continuous Delivery | en |
dc.type | G2 Pro gradu, diplomityö | fi |
dc.type.ontasot | Master's thesis | en |
dc.type.ontasot | Diplomityö | fi |
local.aalto.electroniconly | yes | |
local.aalto.openaccess | no |