Hajautettu verkkosivuarkkitehtuuri
Puputti, Matias (2024)
Puputti, Matias
2024
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2024052817049
https://urn.fi/URN:NBN:fi:amk-2024052817049
Tiivistelmä
Työn ensimmäisessä vaiheessa toteutettiin yksinkertainen verkkosivusto, jolla kävijät pystyivät lukemaan sivustolla olevaa tekstisisältöä. Sivusto toteutettiin aluksi perinteisemmällä yhtenäisellä arkkitehtuurilla, mutta hyödyntäen tekniikoita, jotka työn seuraavissa vaiheissa mahdollistivat lopputuloksena halutun hajautetun rakenteen.
Työn ensimmäisen vaiheen jälkeen siirryttiin hajauttamaan yhtenäinen verkkosivusto mikropalveluiden avulla hajautetuksi kokonaisuudeksi. Tämä vaihe sisälsi yksittäisten mikropalveluiden vastuualueiden määrittelyn sekä mikro palveluiden liikenteenohjaajana toimivan HAProxy-kuormantasaajan määrittelyn.
Työn toteuttamiseksi hyödynnettiin aiemmin tutuksi tullutta Linux Debian-jakelua, KVM-virtualisointimoottoria ja yhtenäistä verkkosivuarkkitehtuuria. Maltillisen kaksivaiheisen työjärjestyksen ansiosta saavutettiin lopputuloksena haluttu hajautettu arkkitehtuuri vaiheittaisella uusien tekniikoiden opettelulla, eikä työn toteuttaminen ollut ylitsepääsemätöntä.
Työ saatiin toteutettua sopivalla työkuormalla ja haluttuun lopputulokseen päästiin onnistuneesti. Työn aikana saatu kokemus uusista tekniikoista ja hajautetusta arkkitehtuurista antoi laajemman menetelmien tuntemuksen ja hyödyntämisvalmiuden. This thesis is about how to implement distributed website architecture. The project was completed in two steps. The first step was to determine the requirements for the website and implement them with a monolithic architecture. The monolithic architecture was implemented with techniques that allowed the decentralization of the monolith into the desired structure.
After the first step of the project, the decentralization of the monolith began. This phase started by determining the responsibility of individual microservices. After the responsibility of each microservice was determined, they were implemented. During this phase, the need for HAProxy load balancer to direct traffic was also discovered and implemented.
To complete this project, familiar technologies such as Linux Debian distribution, KVM virtualization engine and the monolithic architecture were leveraged. By using these well understood methodologies, the learning and implementation of distributed systems were more gradual and manageable.
The project was possible to complete with suitable workload and the desired structure was possible to achieve. The process allowed the familiarization of new technologies and the distributed architecture and the experience gained provided a broader understanding and readiness to use these technologies.
Työn ensimmäisen vaiheen jälkeen siirryttiin hajauttamaan yhtenäinen verkkosivusto mikropalveluiden avulla hajautetuksi kokonaisuudeksi. Tämä vaihe sisälsi yksittäisten mikropalveluiden vastuualueiden määrittelyn sekä mikro palveluiden liikenteenohjaajana toimivan HAProxy-kuormantasaajan määrittelyn.
Työn toteuttamiseksi hyödynnettiin aiemmin tutuksi tullutta Linux Debian-jakelua, KVM-virtualisointimoottoria ja yhtenäistä verkkosivuarkkitehtuuria. Maltillisen kaksivaiheisen työjärjestyksen ansiosta saavutettiin lopputuloksena haluttu hajautettu arkkitehtuuri vaiheittaisella uusien tekniikoiden opettelulla, eikä työn toteuttaminen ollut ylitsepääsemätöntä.
Työ saatiin toteutettua sopivalla työkuormalla ja haluttuun lopputulokseen päästiin onnistuneesti. Työn aikana saatu kokemus uusista tekniikoista ja hajautetusta arkkitehtuurista antoi laajemman menetelmien tuntemuksen ja hyödyntämisvalmiuden.
After the first step of the project, the decentralization of the monolith began. This phase started by determining the responsibility of individual microservices. After the responsibility of each microservice was determined, they were implemented. During this phase, the need for HAProxy load balancer to direct traffic was also discovered and implemented.
To complete this project, familiar technologies such as Linux Debian distribution, KVM virtualization engine and the monolithic architecture were leveraged. By using these well understood methodologies, the learning and implementation of distributed systems were more gradual and manageable.
The project was possible to complete with suitable workload and the desired structure was possible to achieve. The process allowed the familiarization of new technologies and the distributed architecture and the experience gained provided a broader understanding and readiness to use these technologies.