Skip to main content
Login | Suomeksi | På svenska | In English

Browsing by Subject "DevOps"

Sort by: Order: Results:

  • Willman, Aleksi (2024)
    Agile software development and DevOps are both well studied methodologies in the field of computer science. Agile software development is an iterative development approach that focuses on collaboration, customer feedback and fast deliveries. DevOps on the other hand highlights the co-operation between the developers and IT operations personnel, in addition to describing how to continuously deploy working software with usage of tools and automation. Even though these two methodologies share similarities and DevOps as a concept can even be seen as a descendant of agile software development, the relationship between the two is not yet as explored as the effects of individual practices. In this thesis, a systematic literature review is conducted to examine the relationship between agile software development and DevOps. The aim was to find benefits and drawbacks of the combined implementation agile software development and DevOps in the field of software development, the key similarities and differences between the two and how the adoption of one methodology influences the implementation of the other. A systematic literature review was conducted to find information on how agile software development and DevOps are related and perform in combination. Results showed that agile software development and DevOps share a complex yet symbiotic relationship. The complementary role of each methodology enhances each other and in unison these methodologies address wider variety of aspects in software development lifecycle. This combination shows a wide array of promising benefits such as improvements in productivity, delivery speed and collaboration. It however presents challenges related to required culture shift and lack of knowledge, for example, that organizations need to be wary of and acknowledge.
  • Häppölä, Niko (2024)
    Introduction: EU medical device regulation (MDR) sets requirements for medical device software (MDSW) development. Following international standards, such as IEC 62304 and IEC 82304-1, is considered best practice to ensure compliance with regulation. At first glance, MDR and standards seem counter-intuitive to the DevOps approach. DevOps has been successful in regular software development, and it could improve MDSW development. In addition, standalone software is more prevalent as a medical device and as software does not need to be embedded into a physical device, the DevOps approach should be more feasible. Methods: In this thesis, a systematic approach of multivocal literature review was conducted. The goal is to find the state-of-the-art of DevOps in MDSW development, what DevOps techniques and practices are suggested by academic literature and industry experiences, and what the challenges and benefits of DevOps are in MDSW. 18 scientific articles and 10 sources of gray literature were analyzed. Results: The DevOps benefits of improved quality and faster release cycle can be achieved up to a certain point. Regulations prevent Continuous Deployment, but Continuous Integration (CI) and Continuous Delivery (CD) are possible. The most promising improvements can be made by automated documentation creation and bringing tasks of regulatory experts and developers closer together by streamlining the regulatory process. Existing DevOps tools can be extended to support compliance requirements. Third-party platforms and AI/ML solutions remain problematic due to regulations.
  • Sokkanen, Joel (2023)
    DevOps software development methodologies have steadily gained ground over the past 15 years. Properly implemented DevOps enables the software to be integrated and deployed at a rapid pace. The implementation of DevOps practices create pressure for software testing. In the world of fast-paced integrations and deployments, software testing must perform its quality assurance function quickly and efficiently. The goal of this thesis was to identify the most relevant DevOps software testing practices and their impact on software testing. Software testing in general is a widely studied topic. This thesis looks into the recent develop- ments of software testing in DevOps. The primary sources of this study consist of 15 academic papers, which were collected with the systematic literature review source collection methodolo- gies. The study combines both systematic literature review and rapid review methodologies. The DevOps software testing practices associated with high level of automation, continuous testing and DevOps culture adoption stood out in the results. These were followed by the practices highlighting the need for flexible and versatile test tooling and test infrastructures. DevOps adoption requires the team composition and responsibilities to be carefully planned. The selected testing practices should be carefully chosen. Software testing should be primarily organized in highly automated DevOps pipelines. Manual testing should be utilized to validate the results of the automatic tests. Continuous testing, multiple testing levels and versatile test tooling should be utilized. Integration and regression testing should be run on all code changes. Application monitoring and the collection of telemetry data should be utilized to improve the tests.
  • Räsänen, Toni (2020)
    Jatkuvan integraation ja julkaisun (CI/CD) käytänteet ovat tulleet osaksi ohjelmistojenkehitystä osin ketterien ohjelmistokehityskäytänteiden leviämisen myötä. Jatkuva integraatio ja julkaisu pyrkivät tuomaan läpinäkyvyyttä ja seurattavuutta ohjelmistojen kehitykseen. Ne mahdollistavat ohjelmistojen kehityksen pienissä paloissa ja tukevat uusien ominaisuuksien tai korjauksien mahdollisimman vaivatonta julkaisua ja integrointia olemassa olevaan sovellukseen. Koneoppimismallien yleistyessä ohjelmistoissa ohjelmistokehityksessä tarvitaan uusia käytänteitä tukemaan mallien kehityksen tuomia uusia työvaiheita. Koneoppimismallien kehityksessä oleellisessa osassa on opetukseen käytetty data ja mallien opettamistarpeen havainnointi. Useamman mallin hyödyntäminen ohjelmistossa monimutkaistaa ohjelmiston kehitystä ja mallien toiminnan havainnointia, esimerkiksi opetustarpeen päättelyä. Jäljitettävyyden ja toistettavuuden merkitys korostuu, kun mukana on koneoppimismalleja ja niiden mukanaan tuomia uusia työvaiheita. Tässä työssä tarkastellaan miten koneoppimismallien hyödyntäminen ohjelmistoissa vaikuttaa ohjelmistonkehityksen työnkulkuun. Pyritään selvittämään minkälaisia vaatimuksia koneoppimismallien mukaantulo asettaa jatkuvan integroinnin ja julkaisun käytänteille ja niitä tukeville CI/CD-järjestelmille. Lähemmin tarkastellaan asetelmaa, jossa kehitettävässä ohjelmistossa on kaksi koneoppimismallia. Pohditaan, miten useamman mallin keskinäinen toiminta sujuu ja minkälaisia vaikutuksia mallien vuorovaikutuksella on esimerkiksi mallien opettamiseen ja opetustarpeen päättelyyn.
  • Tuomala, Tero (2020)
    Tutkielmassa käydään yleisellä tasolla läpi DevOps- ja SRE (Site Reliability Engineering)-menetelmät ja tutkitaan miten niitä voidaan hyödyntää nykyaikaisessa ohjelmistokehityksessä erityisesti automatisoinnin ja mittaamisen osalta. Tutkielmassa käydään myös läpi erilaisia teknologioita, kuten kontit, virtuaalikoneet, serverless, Docker, konttien orkestrointi ja Kubernetes. Lisäksi tutkielmassa selvitetään infrastruktuuri koodina (engl. "Infrastructure as Code") lähestymistapaa infrastruktuurin automatisointiin ja GitOps-menetelmää toteuttaa jatkuvaa toimitusta (engl. "Continuous Deployment") pilvisovelluksille. Tutkielman aikana kehitettiin selvitettyjä menetelmiä ja teknologioita hyödyntäen Kubernetes-klusterin automatisoitu käyttöönotto Google Cloud Platform -alustan tarjoaman Google Kubernetes Enginen päälle. Tutkielmassa toteutettiin myös esimerkkiluontoinen web-palvelu, johon kuuluu asiakassovellus, REST-rajapinta, GraphQL-palvelin, Redis-välimuistipalvelu ja PostgreSQL-tietokanta. Web-palvelun kehittämistä varten toteutettiin paikallinen Kubernetes-kehitysympäristö. Tutkielmassa toteutettiin myös web-palvelun jatkuva toimitus Google Kubernetes Enginen päällä toimivaan Kubernetes-klusteriin käyttämällä GitOps-menetelmää. Lisäksi tutkielmassa toteutettiin web-palvelun REST-rajapintaa ja GraphQL-palvelinta varten luodut kuvitteelliset mittarit ja palvelutasotavoitteet. Tutkielman aikana toteutetuilla Kubernetes-klusterin automatisoidulla käyttöönotolla infrastruktuuri koodina menetelmällä ja esimerkkiluontoisen web-palvelun jatkuvalla toimituksella Kubernetes-klusteriin GitOps-menetelmää hyödyntämällä luotiin pohjaa työkaluille ja menetelmille, joita voisi tulevaisuudessa hyödyntää myös muillekin Kuberneteksessa toimiville sovelluksille.
  • Lärfors, Jacob (2020)
    DevOps is an ever growing trend in software development and it conveys a mindset that all things should be continuous. Interestingly, one of the common challenges with DevOps adoption is related to software architecture and this is in large due to the fact that architecture is not part of DevOps. This thesis looks at making software architecture a continuous practice and thus bring it into the DevOps space. A prototype solution, Architector, was implemented to solve this and the results indicate that it shows a viable approach to making software architecture a continuous practice. However, further work is necessary to expand the scope of continuous architecture and to fully validate this claim by applying Architector to a real world software development workflow.
  • Moroz, Anton (2022)
    Software development industry has been revolutionized through adoption of software develop- ment methods such as DevOps. While adopting DevOps can speed up development through collaborative culture between development and operations teams, speed-driven adoption can have an adverse impact on security aspects. DevSecOps is a concept that focuses on embed- ding security culture and activities into DevOps. Another contributing factor to the more agile development landscape is the widespread adoption of open source components. However, the risk of putting too much trust into the open source ecosystem has resulted in a whole new set of security issues that have not yet been adequately addressed by the industry. This thesis is commissioned by Neste Corporation. The company has set an initiative to in- corporate methods that enable better transparency, agility, and security into their software development projects. This thesis collects research data on secure software development prac- tices by combining findings of a literature review with a case study. The qualitative case study is done by interviewing eight stakeholders from four different software development teams. The literature review shows that securing software is very much an ongoing effort, especially in the open source ecosystem. Therefore, it might be not surprising that the results from the case study revealed multiple shortcomings on the subject matter despite obvious efforts from the participating teams. As a result, this thesis presents potential ideas for the case company to consider integrating into their software development projects in order to kickstart their secure software development journey.