Abstract
In the last decade, the software industry has been marked by a growing trend of software companies’ ability to deploy new software features fast and frequently in short release cycle times. The companies’ software release cycles have been shortened to hours and minutes rather than months. To enable the transformation towards short release cycle times, companies have adopted several different strategies, including the DevOps approach. DevOps in the software industry emerged to represent a professional movement emphasising the collaboration between software development and operations. In practice, DevOps affects the company culture, processes, products, associated technologies and organisational structures used in software development and operations processes. The multifaceted nature of DevOps makes the concept ambiguous and difficult for software companies to adopt as there are many different paths to its adoption.
The purpose of the thesis is to provide detailed description of the adoption and implementation of DevOps in software development comprehending the DevOps concept definition, and its practices, benefits and challenges. The research was performed by systematically reviewing the literature, multi-vocal documents and making qualitative inquiries among software practitioners; and based on that the consolidated body of knowledge of DevOps was constructed.
The key finding of the research is that the DevOps approach includes an automated software deployment mechanism focusing on the rapid and repeatable release of software changes and automated management of operational infrastructure. The adoption and implementation of DevOps practices are prominent in software companies that use cloud computing technology, while its adoption is challenging in the embedded system domain. DevOps is not a silver bullet; challenges pertaining to the management of infrastructures due to legacy technologies still persist. The key lesson learned in the adoption and implementation of DevOps is that the software operational infrastructure is no longer considered separate from the development of software features; and this is achieved by having software development and operations teams jointly working together. / Tiivistelmä
Viimeisen vuosikymmenen aikana ohjelmistoteollisuudessa on ollut kasvavana trendinä ohjelmistotalojen lisääntyvä kyky toimittaa ohjelmistomuutoksia nopeasti ja usein toistuvina päivityksinä. Yritysten ohjelmistotoimitus- ja päivitysjaksot ovat lyhentyneet kuukausista tunneiksi ja jopa minuuteiksi. Yritykset ovat ottaneet käyttöön useita erilaisia toimintatapoja kyetäkseen muuttamaan toimintaansa lyhyen aikavälin ohjelmistopäivityksiin kykeneväksi, joista yksi viimeisimmistä on DevOps (saumaton ohjelmiston kehittäminen ja käyttö). Ohjelmistotuotannossa DevOps syntyi ohjelmistoteollisuudessa ammattilaisten alkaessa painottaa ohjelmistojen kehittämisen ja käytön yhteistyön tärkeyttä. Käytännössä DevOpsilla on vaikutusta ohjelmisto-organisaation toimintakulttuuriin, prosesseihin, tuotteisiin, sekä teknologioihin ja organisaatiorakenteisiin, joita käytetään ohjelmistokehityksessä ja käyttöönottoprosessissa. DevOpsin käsitteen moniulotteisuudesta johtuen käsitteen sisältö jää usein epäselväksi ja samalla sen mukainen toiminta vaikeasti käyttöön otettavaksi ohjelmistoyrityksissä, koska toteutus on mahdollista tehdä monella eri tavalla.
Tämän väitöksen tarkoituksena on antaa selkeä kuvaus DevOpsista ja sen toteutuksesta ohjelmistokehityksessä niin, että sen käsite, ja käytännöt, sekä sen tarjoamat edut ja haasteet tulevat ymmärretyiksi. Tutkimuksessa suoritettiin systemaattinen kirjallisuuskatsaus tieteellisiin julkaisuihin ja muihin lähinnä käytännön kokemuksiin pohjautuviin lähteisiin, suoritettiin kvalitatiiviset kyselytutkimukset, joiden kohteena olivat ohjelmistoammattilaiset, sekä muodostettiin näiden pohjalta saumattoman ohjelmistokehityksen ja käytön yhtenäinen tietämyskanta.
Tutkimuksen keskeinen tulos on, että DevOps-lähestymistapa sisältää automaattisen ohjelmiston käyttöönottomekanismin, joka keskittyy nopeiden ja toistettavien ohjelmistomuutosten käyttöönottoon ja sitä tukevan operatiivisen infrastruktuurin hallintaan. DevOpsin omaksuminen ja käyttöönotto ovat näkyvästi esillä pilvipalvelinteknologiaa käyttävissä ohjelmistoyrityksissä, kun taas sen käyttöönotto on haastavaa sulautettujen järjestelmien alueella. DevOps ei ole mikään ’hopealuoti’, vaan sisältää erityisesti infrastruktuurien hallintaan liittyviä haasteita, jotka johtuvat edelleen käytössä olevista vanhoista tekniikoista. Keskeisin oppima DevOpsin omaksumisesta ja soveltamisesta käytäntöön on, että ohjelmistojen käyttöinfrastruktuuria ei enää tarkastella erillään ohjelmistojen kehittämisestä, vaan ne toimivat saumattomassa yhteistyössä keskenään.
Identifer | oai:union.ndltd.org:oulo.fi/oai:oulu.fi:isbn978-952-62-1711-6 |
Date | 17 November 2017 |
Creators | Lwakatare, L. E. (Lucy Ellen) |
Contributors | Kuvaja, P. (Pasi), Oivo, M. (Markku) |
Publisher | Oulun yliopisto |
Source Sets | University of Oulu |
Language | English |
Detected Language | Finnish |
Type | info:eu-repo/semantics/doctoralThesis, info:eu-repo/semantics/publishedVersion |
Format | application/pdf |
Rights | info:eu-repo/semantics/openAccess, © University of Oulu, 2017 |
Relation | info:eu-repo/semantics/altIdentifier/pissn/0355-3191, info:eu-repo/semantics/altIdentifier/eissn/1796-220X |
Page generated in 0.0027 seconds