Implementing modern DevOps development environment for training : Case: N4SJAMK
Pekki, Juho (2017)
Pekki, Juho
Jyväskylän ammattikorkeakoulu
2017
Creative Commons Attribution-NonCommercial-ShareAlike 1.0 Suomi
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2017060612631
https://urn.fi/URN:NBN:fi:amk-2017060612631
Tiivistelmä
Opinnäytetyön toimeksiantajana toimi N4S@JAMK-projekti, joka oli osa DIMECC:n Need for Speed -ohjelmaa (N4S). Need for Speed -tutkimusohjelman tarkoituksena oli löytää työkaluja ja työskentelymalleja, jotka auttaisivat yrityksiä sopeutumaan muuttuvaan ympäristöön ja reagoimaan asiakkaiden kehittyviin tarpeisiin. Opinnäytetyön tarkoituksena oli tutustua viimeisimpiin teknologioihin ja kehittää moderni DevOps-kehitysympäristö harjoituskäyttöön, joka sisältäisi N4S@JAMK:n aikaisemman tuotoksen Contriboardin.
Kehitysympäristö toteutettiin pilvipalveluiden ja konttiteknologian avulla. Kehitysympäristö sisältää automatisoidun jatkuvan julkaisun ketjun, johon kuuluu toiminnallisia testejä ja suorituskykytestejä sekä tuotteen monitorointi.
Kehitysympäristöön kuuluvat seuraavat palvelut: Contriboard, joka toimii tuotteena, GitLab versionhallintaan ja konttien levykuvien varastointiin, GitLab-CI konttien levykuvien luomiseen, Rancher konttien orkesterointiin, Jenkins-automaatiopalvelin konttien käynnistykseen Rancherin API:n avulla, Locust suorituskykytestaukseen, Robot Framework toiminnaaliseen testaukseen, Grafana tuotteen monitorointiin.
Lopputuloksena oli toimiva kehitysympäristö, joka testattiin AWS- ja DigitalOcean-pilvipalveluissa sekä JAMK:n sisäisessä verkossa. Kaikki palvelut pyörivät konteissa lukuun ottamatta GitLabia ja GitLab-CI:tä. Itse kontitettuja palveluita ovat Jenkins-sovelluspino, Locust, Robot Framework ja InfluxDB. Tulevaisuuden parannuksia ovat dynaamisten IP-osoitteiden ja palvelimien käyttäminen, Jarmon dataformaatin muuttaminen JSON:sta joksikin toiseksi. Dokumentaatio julkaistiin yhtenä JAMK:n tuotoksena Need for Speed -ohjelmalle.
Kehitysympäristö toteutettiin pilvipalveluiden ja konttiteknologian avulla. Kehitysympäristö sisältää automatisoidun jatkuvan julkaisun ketjun, johon kuuluu toiminnallisia testejä ja suorituskykytestejä sekä tuotteen monitorointi.
Kehitysympäristöön kuuluvat seuraavat palvelut: Contriboard, joka toimii tuotteena, GitLab versionhallintaan ja konttien levykuvien varastointiin, GitLab-CI konttien levykuvien luomiseen, Rancher konttien orkesterointiin, Jenkins-automaatiopalvelin konttien käynnistykseen Rancherin API:n avulla, Locust suorituskykytestaukseen, Robot Framework toiminnaaliseen testaukseen, Grafana tuotteen monitorointiin.
Lopputuloksena oli toimiva kehitysympäristö, joka testattiin AWS- ja DigitalOcean-pilvipalveluissa sekä JAMK:n sisäisessä verkossa. Kaikki palvelut pyörivät konteissa lukuun ottamatta GitLabia ja GitLab-CI:tä. Itse kontitettuja palveluita ovat Jenkins-sovelluspino, Locust, Robot Framework ja InfluxDB. Tulevaisuuden parannuksia ovat dynaamisten IP-osoitteiden ja palvelimien käyttäminen, Jarmon dataformaatin muuttaminen JSON:sta joksikin toiseksi. Dokumentaatio julkaistiin yhtenä JAMK:n tuotoksena Need for Speed -ohjelmalle.