Liikkuvan kaluston ohjelmiston hallinta DevOps-menetelmillä
Ruha, Matias (2021)
Ruha, Matias
2021
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-202103263892
https://urn.fi/URN:NBN:fi:amk-202103263892
Tiivistelmä
Toimeksiantaja Devecto Oy:n asiakas tarvitsi liikkuvan kaluston ohjelmiston hallinnan. Aiemmin ohjelmistot
ovat päivitetty USB-muistitikkujen avulla ja käytössä olevista ohjelmistoversioista on pidetty kirjaa
manuaalisesti. Uuden sukupolven liikkuva kone on kehityksessä ja niissä olevien ohjelmoitavien
logiikkaohjaimien ohjelmiston hallinta halutaan toteuttaa pilvipalveluun. Liikkuvaan kalustoon kuuluvat
koneet tulevat olemaan työmailla ympäri maailmaa. Haasteena oli se, että koneet saattavat olla verkossa
vain muutamina päivinä kuukaudessa.
Opinnäytetyön tavoitteena oli suunnitella ja kehittää asiakkaan vaatimukset täyttävä toteutus liikkuvan
kaluston ohjelmoitavien logiikkaohjaimien ohjelmiston hallintaan. Asiakas haluaa määritellä kullekin
koneelle käytettävän ohjelmistoversion ja automatisoida ohjelmiston päivittämisen sekä käytössä olevien
ohjelmistoversioiden kirjanpidon. Asiakas vaati DevOps-menetelmien hyödyntämistä.
Työn toteutus oli kolmivaiheinen. Vaiheet olivat suunnittelu, käytännön toteutus ja testaaminen.
Käytännön toteutus aloitettiin ottamalla jatkuvan integroinnin ja jatkuvan toimittamisen
ohjelmistokehityskäytäntöjä käyttöön ohjelmoitavan logiikkaohjaimen ohjelmiston kehityksessä.
Ohjelmistokehittäjät käyttivät git-versionhallintaa ja integroivat muutoksensa päähaaraan. Muutokset
laukaisevat CI/CD-putken, joka koostaa, testaa ja siirtää ohjelmiston pilvipalveluun. Pilvipalveluun
kehitettiin kaksi ohjelmointirajapintaa, joilla ohjelmistoversion kysely ja lataus pilvipalvelun ulkopuolelta
hoidetaan. Liikkuvassa koneessa on Linux-pohjainen mobiilitietokone, johonka on kehitetty sovellus, joka
käyttää ohjelmointirajapintoja. Sovellusta suoritetaan Docker-kontissa. Ladattu ohjelmistoversio siirretään
ohjelmoitavalle logiikkaohjaimelle FTP-palvelimen kautta, jota suoritetaan myös Docker-kontissa.
Työn tuloksena toimeksiantajan asiakas sai toimivan, tietoturvallisen ja heidän vaatimuksensa täyttävän
kokonaisuuden ohjelmoitavan logiikkaohjaimen ohjelmiston hallintaan. Pilvipalvelusta voidaan määritellä
kullekin liikkuvalle koneelle käytettävä ohjelmistoversio ja voidaan nähdä kunkin liikkuvan koneen käyttämä
ohjelmistoversio.
ovat päivitetty USB-muistitikkujen avulla ja käytössä olevista ohjelmistoversioista on pidetty kirjaa
manuaalisesti. Uuden sukupolven liikkuva kone on kehityksessä ja niissä olevien ohjelmoitavien
logiikkaohjaimien ohjelmiston hallinta halutaan toteuttaa pilvipalveluun. Liikkuvaan kalustoon kuuluvat
koneet tulevat olemaan työmailla ympäri maailmaa. Haasteena oli se, että koneet saattavat olla verkossa
vain muutamina päivinä kuukaudessa.
Opinnäytetyön tavoitteena oli suunnitella ja kehittää asiakkaan vaatimukset täyttävä toteutus liikkuvan
kaluston ohjelmoitavien logiikkaohjaimien ohjelmiston hallintaan. Asiakas haluaa määritellä kullekin
koneelle käytettävän ohjelmistoversion ja automatisoida ohjelmiston päivittämisen sekä käytössä olevien
ohjelmistoversioiden kirjanpidon. Asiakas vaati DevOps-menetelmien hyödyntämistä.
Työn toteutus oli kolmivaiheinen. Vaiheet olivat suunnittelu, käytännön toteutus ja testaaminen.
Käytännön toteutus aloitettiin ottamalla jatkuvan integroinnin ja jatkuvan toimittamisen
ohjelmistokehityskäytäntöjä käyttöön ohjelmoitavan logiikkaohjaimen ohjelmiston kehityksessä.
Ohjelmistokehittäjät käyttivät git-versionhallintaa ja integroivat muutoksensa päähaaraan. Muutokset
laukaisevat CI/CD-putken, joka koostaa, testaa ja siirtää ohjelmiston pilvipalveluun. Pilvipalveluun
kehitettiin kaksi ohjelmointirajapintaa, joilla ohjelmistoversion kysely ja lataus pilvipalvelun ulkopuolelta
hoidetaan. Liikkuvassa koneessa on Linux-pohjainen mobiilitietokone, johonka on kehitetty sovellus, joka
käyttää ohjelmointirajapintoja. Sovellusta suoritetaan Docker-kontissa. Ladattu ohjelmistoversio siirretään
ohjelmoitavalle logiikkaohjaimelle FTP-palvelimen kautta, jota suoritetaan myös Docker-kontissa.
Työn tuloksena toimeksiantajan asiakas sai toimivan, tietoturvallisen ja heidän vaatimuksensa täyttävän
kokonaisuuden ohjelmoitavan logiikkaohjaimen ohjelmiston hallintaan. Pilvipalvelusta voidaan määritellä
kullekin liikkuvalle koneelle käytettävä ohjelmistoversio ja voidaan nähdä kunkin liikkuvan koneen käyttämä
ohjelmistoversio.