Virtuaaliset kehitysympäristöt ylläpitoprojektissa
Nupponen, Jussi (2016)
Nupponen, Jussi
2016
Tietotekniikan koulutusohjelma
Tieto- ja sähkötekniikan tiedekunta - Faculty of Computing and Electrical Engineering
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2016-06-08
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tty-201605254085
https://urn.fi/URN:NBN:fi:tty-201605254085
Tiivistelmä
Ohjelmiston ylläpidolla tarkoitetaan ohjelmistokehitysprojektin tilaajalle tarjottavaa, ohjelmistokehitysprojektin tavoitteiden saavuttamispisteen jälkeen tarjottavaa ylläpitopalvelua, joka jatkuu ohjelmiston elinkaaren loppuun saakka. Yhä suurempi osa ohjelmistopalveluista tuotetaan siten, että palvelua suoritetaan pilvi-infrastruktuurintarjoajan virtuaalipalvelimilla. Uudet teknologiat mahdollistavat vastaavien virtuaalipalvelimien automatisoidun pystyttämisen myös kehitysympäristön tarpeisiin.
Ohjelmistojen ylläpitoon liittyy muuhun ohjelmistokehitykseen verrattuna lisähaasteita. Ylläpitoprojekteissa henkilöstö saattaa vaihtua useasti ja käytössä olevat vanhat teknologiat eivät ole ylläpitäjille tuttuja. Ylläpitoprojekti voi olla ongelmia etenkin kehitysympäristön pystytyksen kanssa, sillä kehitysympäristö pystytetään kehittäjän omalle koneelle eikä se ole olemassa oleva resurssi kuten tuotantoympäristö. Mikäli kehitysympäristön pystytystä ei ole automatisoitu tai dokumentoitu kattavasti voi ympäristön pystytys olla hidasta.
Tässä diplomityössä ratkaistaan mainittuja ongelmia rakentamalla asiakkaan verkkopalvelun tuotantoympäristöä vastaava virtualisoitu kehitysympäristö sekä sen ylläpitoon tarvittavat automaatioskriptit. Virtuaalinen kehitysympäristö rakennetaan käyttäen Vagrant-teknologiaa, jolla virtuaalikoneiden rakentaminen ja varustaminen voidaan automatisoida. Vagrant-teknologialla kuvataan tuotantoympäristöä vastaava virtuaalipalvelin, joka voidaan käynnistää ylläpitäjän omalle koneelle.
Virtuaalinen kehitysympäristö helpotti uuden työntekijän lisäämistä ylläpitoprojektiin. Ylläpidettävän järjestelmän dokumenataatio parani, kun dokumentaatio siirtyi korkeammalle abstraktiotasolle yksityiskohtaisten ohjeiden muuttuessa ohjelmakoodiksi. Virtuaalisen kehitysympäristön rakennusprojektin aikana löydettiin syitä dokumentomattomille muutoksille ja ympäristöjen väliset eroavuudet vähenivät, mikä helpotti ylläpitotyötä. Software maintenance is service that is offered after active software developing project ends. Software maintenance continues until the system under maintenance is moved off from production. Many of current software services are built on cloud infrastructure. New virtualization technologies allow developers to set up similar virtual servers on their own computers.
Software maintenance has additional challenges compared to software development project. The software under maintenance might use technologies that have not been actively used for many years and for that reason are unknown to maintenance developers. Maintenance staff changes from time to time and new developers must set up their development environment. Insufficient documentation or lack of automation may render setting up development environment a cumbersome task.
In this thesis these challenges in software maintenance are solved by building virtual development environment. The virtual development environment will be automatically provisioned with configuration management tools. Vagrant technology will be used to build virtualized development environment that matches production environment as closely as possible and can run on developer's machine.
New maintenance developers were able to begin working on maintenance tasks quicker because of virtual development environment. Documentation was improved since many technical details transformed into code in the configuration management tools. Also undocumented changes were investigated and resolved. Both development and production environments were provisioned with the same configuration management tools and scripts which made maintenance of each environment easier.
Ohjelmistojen ylläpitoon liittyy muuhun ohjelmistokehitykseen verrattuna lisähaasteita. Ylläpitoprojekteissa henkilöstö saattaa vaihtua useasti ja käytössä olevat vanhat teknologiat eivät ole ylläpitäjille tuttuja. Ylläpitoprojekti voi olla ongelmia etenkin kehitysympäristön pystytyksen kanssa, sillä kehitysympäristö pystytetään kehittäjän omalle koneelle eikä se ole olemassa oleva resurssi kuten tuotantoympäristö. Mikäli kehitysympäristön pystytystä ei ole automatisoitu tai dokumentoitu kattavasti voi ympäristön pystytys olla hidasta.
Tässä diplomityössä ratkaistaan mainittuja ongelmia rakentamalla asiakkaan verkkopalvelun tuotantoympäristöä vastaava virtualisoitu kehitysympäristö sekä sen ylläpitoon tarvittavat automaatioskriptit. Virtuaalinen kehitysympäristö rakennetaan käyttäen Vagrant-teknologiaa, jolla virtuaalikoneiden rakentaminen ja varustaminen voidaan automatisoida. Vagrant-teknologialla kuvataan tuotantoympäristöä vastaava virtuaalipalvelin, joka voidaan käynnistää ylläpitäjän omalle koneelle.
Virtuaalinen kehitysympäristö helpotti uuden työntekijän lisäämistä ylläpitoprojektiin. Ylläpidettävän järjestelmän dokumenataatio parani, kun dokumentaatio siirtyi korkeammalle abstraktiotasolle yksityiskohtaisten ohjeiden muuttuessa ohjelmakoodiksi. Virtuaalisen kehitysympäristön rakennusprojektin aikana löydettiin syitä dokumentomattomille muutoksille ja ympäristöjen väliset eroavuudet vähenivät, mikä helpotti ylläpitotyötä.
Software maintenance has additional challenges compared to software development project. The software under maintenance might use technologies that have not been actively used for many years and for that reason are unknown to maintenance developers. Maintenance staff changes from time to time and new developers must set up their development environment. Insufficient documentation or lack of automation may render setting up development environment a cumbersome task.
In this thesis these challenges in software maintenance are solved by building virtual development environment. The virtual development environment will be automatically provisioned with configuration management tools. Vagrant technology will be used to build virtualized development environment that matches production environment as closely as possible and can run on developer's machine.
New maintenance developers were able to begin working on maintenance tasks quicker because of virtual development environment. Documentation was improved since many technical details transformed into code in the configuration management tools. Also undocumented changes were investigated and resolved. Both development and production environments were provisioned with the same configuration management tools and scripts which made maintenance of each environment easier.