CI/CD-järjestelmä Azure DevOps -ympäristöllä
Ilvonen, Joonas (2019)
Ilvonen, Joonas
2019
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2019052712085
https://urn.fi/URN:NBN:fi:amk-2019052712085
Tiivistelmä
Opinnäytetyön tavoitteena oli suunnitella ja toteuttaa toimeksiantajalle DevOps-toimintamallin mahdollistava jatkuvan toimittamisen järjestelmä yrityksen tuotteiden pilvipäivitysjärjestelmän tueksi. Järjestelmän tulisi automatisoidusti koostaa ja asettaa tuotteiden uudet versiot julkaisuvalmiuteen pilvipäivitysjärjestelmään.
Työ alkoi selvittämällä ohjelmistotuotannon automatisointiin liittyviä työkaluja ja menetelmiä. Jotta järjestelmä pystyttäisiin rakentamaan, täytyi ensin ymmärtää, mitä järjestelmältä vaadittiin. Taustatutkimuksen jälkeen valittiin lukuisista automatisointijärjestelmistä se, joka kaikkein todennäköisimmin on yhteensopiva toimeksiantajan olemassa olevan infrastruktuurin kanssa. Päädyttiin Microsoftin tekemään Azure Pipelines -palveluun. Valinta tuntui loogiselta sen ollessa osa Azure-tuoteperhettä, jota toimeksiantaja käyttää pilvipalveluratkaisunaan.
Työn aikana toteutettiin testiympäristössä järjestelmä, joka automatisoidusti koostaa ja lähettää tuotteen toimeksiantajan pilvipäivitysjärjestelmään. Tämän perusteella pystyttiin todistamaan Azure Pipelines -palvelun toimivuus toimeksiantajan ympäristössä. Jatkokehitysideana olisi järjestelmän käyttöönotto tuotantoympäristöön kokonaisuudessaan ja toimeksiantajan muiden tuotteiden lisäys. The objective of this thesis was to design and implement a continuous delivery system based on DevOps operating model to support a cloud-based production update system. The system would be able to automate the compile and release process of software products into the commissioner’s update system.
The work began by researching software production automation related systems and methods. For the implementation of the system to be successful, requirements for it had to be understood. After the background research, an automation system was selected based on which of the options would be the most compatible with the commissioner’s environment. Azure Pipelines was chosen as a base of the system due to it being part of Azure product family which the commissioner relies upon with its cloud service solution.
As a result, the system was implemented in a sandbox environment, which builds and sends product updates to the update system. This proved that Azure Pipelines service could work well in the commissioner’s environment. For the future development the system could be integrated into production in its entirety, and the commissioner’s other products could be added.
Työ alkoi selvittämällä ohjelmistotuotannon automatisointiin liittyviä työkaluja ja menetelmiä. Jotta järjestelmä pystyttäisiin rakentamaan, täytyi ensin ymmärtää, mitä järjestelmältä vaadittiin. Taustatutkimuksen jälkeen valittiin lukuisista automatisointijärjestelmistä se, joka kaikkein todennäköisimmin on yhteensopiva toimeksiantajan olemassa olevan infrastruktuurin kanssa. Päädyttiin Microsoftin tekemään Azure Pipelines -palveluun. Valinta tuntui loogiselta sen ollessa osa Azure-tuoteperhettä, jota toimeksiantaja käyttää pilvipalveluratkaisunaan.
Työn aikana toteutettiin testiympäristössä järjestelmä, joka automatisoidusti koostaa ja lähettää tuotteen toimeksiantajan pilvipäivitysjärjestelmään. Tämän perusteella pystyttiin todistamaan Azure Pipelines -palvelun toimivuus toimeksiantajan ympäristössä. Jatkokehitysideana olisi järjestelmän käyttöönotto tuotantoympäristöön kokonaisuudessaan ja toimeksiantajan muiden tuotteiden lisäys.
The work began by researching software production automation related systems and methods. For the implementation of the system to be successful, requirements for it had to be understood. After the background research, an automation system was selected based on which of the options would be the most compatible with the commissioner’s environment. Azure Pipelines was chosen as a base of the system due to it being part of Azure product family which the commissioner relies upon with its cloud service solution.
As a result, the system was implemented in a sandbox environment, which builds and sends product updates to the update system. This proved that Azure Pipelines service could work well in the commissioner’s environment. For the future development the system could be integrated into production in its entirety, and the commissioner’s other products could be added.