Konttipohjainen järjestelmä sovellusinstanssien asiakaslähtöiseen provisiointiin
Juponaho, Roope (2025)
Juponaho, Roope
2025
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-2025110727290
https://urn.fi/URN:NBN:fi:amk-2025110727290
Tiivistelmä
Tässä opinnäytetyössä tutkittiin tilaajan tarpeisiin sopivaa olemassa olevien sovellusten hallinnointijärjestelmää kehittyneen valmistuksen kontekstissa. Opinnäytetyöprosessin aikana verrattiin erilaisia toteutusmahdollisuuksia sovellusten monistamiselle, dynaamiselle reititykselle ja skaalautuvalle etäyhteyksien tunnistautumiselle. Vertailut perustuivat olemassa oleviin johtopäätöksiin eri tekniikoiden kyvykkyyksistä ratkaista tarpeiden kaltaisia ongelmia, käytännöllisiin kokeisiin, sekä tekniikoiden opettelun tai käytön vaikeuden intuitiiviseen arviointiin.
Opinnäytetyön tuloksena luotiin verkkopohjainen sovellus, joka mahdollistaa olemassa olevien sovelluskonttien provisioinnin ja hallinnan yksinkertaisella verkkokäyttöliittymällä. Tuotteella käyttäjä pystyi luomaan sovellusinstansseja verkkolomakkeella, määrittämään sovellusten välisiä tiedonsiirtoyhteyksiä, sekä tarkastelemaan automaattisesti luotua tilannekuvanäkymää. Toteutettua järjestelmää pystyttiin käyttämään tilaajan tarpeisiin ilman käyttäjän kattavaa osaamista sovellusrakenteista tai sovellusinfrastruktuurista. Hallitut sovellukset pystyivät toteuttamaan etähallintayhteyksiä turvallisesti ja automaattisesti ilman, että sovellusrakenne monimutkaistui sovellusten lisääntyessä.
Opinnäytetyöprosessin aikana verrattiin Kubernetes- ja Docker Swarm työkaluja tarpeisiin räätälöityyn järjestelmään sovellusten hallintaa varten. Traefik- ja Nginx-välityspalvelimia verrattiin dynaamisen reitityksen toteuttamiseksi mukautuvaan sovellusrakenteeseen. Sovellusten tiedonsiirron suojaamiseksi opinnäytetyössä kokeiltiin avain- ja varmennetunnistautumista Secure Shell -protokollalla.
Toteutettu tarpeisiin räätälöity Docker-konttipohjainen hallintajärjestelmä todettiin päteväksi ratkaisuksi tilaajan vaatimuksiin. Django-verkkokehyksen todettiin mahdollistavan yksinkertainen ja selkeä verkkopohjainen käyttöliittymä sovellusten hallintaa varten. Olemassa olevien orkestrointityökalujen sijaan, yksinkertaiset työkalut, kuten Docker SDK for Python ja Bash todettiin käytännöllisemmiksi ratkaisuiksi sovelluskonttien ohjaamiseksi annetussa kontekstissa. Traefik-palvelimen vahvistettiin mahdollistavan vaadittu reititysrakenne luonnollisesti ja dynaamisesti. Opinnäytetyön lopuksi käsiteltiin tilaajan kontekstiin liitännäisiä jatkokehityskohteita, joilla alkuperäiset tavoitteet ja tulevaisuuden mahdolliset toiveet voidaan mahdollisesti toteuttaa tehokkaammin. This thesis explored the creation of a management system for existing software applications matching the needs and advanced manufacturing context of the client organization. During the thesis project, various solution possibilities for application replication, dynamic routing, and scaling remote connection authentication were compared. The comparisons were based on practical tests, existing conclusions about different technologies’ abilities to solve the given problems, and the intuitive analysis of the difficulty of adopting and using the said technologies.
As a result of the thesis, a web-based application was made to provision and manage existing application containers with a simple web interface. By using the product, a user was able to create application instances with a web form, define data transfer connections between instances, and observe an automatically created visual overview of the instance structure. The created system met the client’s needs while enabling use without extensive software architecture or infrastructure knowledge. The managed application instances were given the ability to form secure and automatic remote connections between each other without the complexity of the software structure increasing as more instances were created.
During the project, Kubernetes and Docker Swarm were compared against a system tailored to the client’s application management needs. The Traefik and Nginx proxy servers were compared for creating a dynamic routing solution for a changing application structure. Secure Shell key authentication and certificate authentication were compared as solutions for securing connections between application instances.
The created management system tailored specifically for the needs of the client was confirmed to be a competent solution to the given problems. The Django web framework was used successfully to create an intuitive and clear web-based interface for managing application instances. Simple tools such as Docker SDK for Python and Bash were found to be more practical for software container management than existing container orchestration tools in the given problem space. The Traefik proxy was confirmed to provide the required routing structure naturally and dynamically. Finally, future development of the system was considered in the client’s advanced manufacturing context to provide a base for improving the solutions to the original problems and satisfying possible future needs.
Opinnäytetyön tuloksena luotiin verkkopohjainen sovellus, joka mahdollistaa olemassa olevien sovelluskonttien provisioinnin ja hallinnan yksinkertaisella verkkokäyttöliittymällä. Tuotteella käyttäjä pystyi luomaan sovellusinstansseja verkkolomakkeella, määrittämään sovellusten välisiä tiedonsiirtoyhteyksiä, sekä tarkastelemaan automaattisesti luotua tilannekuvanäkymää. Toteutettua järjestelmää pystyttiin käyttämään tilaajan tarpeisiin ilman käyttäjän kattavaa osaamista sovellusrakenteista tai sovellusinfrastruktuurista. Hallitut sovellukset pystyivät toteuttamaan etähallintayhteyksiä turvallisesti ja automaattisesti ilman, että sovellusrakenne monimutkaistui sovellusten lisääntyessä.
Opinnäytetyöprosessin aikana verrattiin Kubernetes- ja Docker Swarm työkaluja tarpeisiin räätälöityyn järjestelmään sovellusten hallintaa varten. Traefik- ja Nginx-välityspalvelimia verrattiin dynaamisen reitityksen toteuttamiseksi mukautuvaan sovellusrakenteeseen. Sovellusten tiedonsiirron suojaamiseksi opinnäytetyössä kokeiltiin avain- ja varmennetunnistautumista Secure Shell -protokollalla.
Toteutettu tarpeisiin räätälöity Docker-konttipohjainen hallintajärjestelmä todettiin päteväksi ratkaisuksi tilaajan vaatimuksiin. Django-verkkokehyksen todettiin mahdollistavan yksinkertainen ja selkeä verkkopohjainen käyttöliittymä sovellusten hallintaa varten. Olemassa olevien orkestrointityökalujen sijaan, yksinkertaiset työkalut, kuten Docker SDK for Python ja Bash todettiin käytännöllisemmiksi ratkaisuiksi sovelluskonttien ohjaamiseksi annetussa kontekstissa. Traefik-palvelimen vahvistettiin mahdollistavan vaadittu reititysrakenne luonnollisesti ja dynaamisesti. Opinnäytetyön lopuksi käsiteltiin tilaajan kontekstiin liitännäisiä jatkokehityskohteita, joilla alkuperäiset tavoitteet ja tulevaisuuden mahdolliset toiveet voidaan mahdollisesti toteuttaa tehokkaammin.
As a result of the thesis, a web-based application was made to provision and manage existing application containers with a simple web interface. By using the product, a user was able to create application instances with a web form, define data transfer connections between instances, and observe an automatically created visual overview of the instance structure. The created system met the client’s needs while enabling use without extensive software architecture or infrastructure knowledge. The managed application instances were given the ability to form secure and automatic remote connections between each other without the complexity of the software structure increasing as more instances were created.
During the project, Kubernetes and Docker Swarm were compared against a system tailored to the client’s application management needs. The Traefik and Nginx proxy servers were compared for creating a dynamic routing solution for a changing application structure. Secure Shell key authentication and certificate authentication were compared as solutions for securing connections between application instances.
The created management system tailored specifically for the needs of the client was confirmed to be a competent solution to the given problems. The Django web framework was used successfully to create an intuitive and clear web-based interface for managing application instances. Simple tools such as Docker SDK for Python and Bash were found to be more practical for software container management than existing container orchestration tools in the given problem space. The Traefik proxy was confirmed to provide the required routing structure naturally and dynamically. Finally, future development of the system was considered in the client’s advanced manufacturing context to provide a base for improving the solutions to the original problems and satisfying possible future needs.
