Scalability in LAMP web applications

dc.contributorAalto-yliopistofi
dc.contributorAalto Universityen
dc.contributor.advisorLehdonvirta, Pyry
dc.contributor.authorKostia, Henri
dc.contributor.departmentInformaatio- ja luonnontieteiden tiedekuntafi
dc.contributor.schoolPerustieteiden korkeakoulufi
dc.contributor.schoolSchool of Scienceen
dc.contributor.supervisorVuorimaa, Petri
dc.date.accessioned2020-12-23T12:12:36Z
dc.date.available2020-12-23T12:12:36Z
dc.date.issued2010
dc.description.abstractThe study has researched the scalability in LAMP web applications. The objective of this study has been to examine how one can make LAMP web application more easily scalable and measure how well the application scales. In this context, LAMP means Linux operating system, Apache HTTP server, MySQL database and PHP programming language. Scalability can be defined as a system that can accommodate increased usage, increased dataset and be maintainable. Database is hard to scale in high volume web applications, which is a known problem. There's only one solution for this problem if relational databases are used: data sharding. Web application's scalability can be measured with load testing and server monitoring. The case study presents a web application, which has properties found in many social networking based web applications. Data sharding and caching are used in the case study. The web application has been installed in virtual machines. There have been one to four virtual machines used during the case study. The web application has been load tested with ApacheBench and Tsung softwares. The servers have been monitored with Munin software. The analyzation of the results of the load tests shows that the more virtual machines have been used, the better results are achieved. By using two virtual machines, database and web server, instead of one, web application's performance has improved 19%. Similarly, by using four virtual machines, two databases and two web servers, instead of one, web application's performance has improved 96%.en
dc.description.abstractTutkimuksen kohteena on ollut LAMP web-sovellusten skaalautuvuus. Työn tavoitteena on ollut selvittää kuinka LAMP web-sovelluksista voidaan luoda helpommin skaalautuvia sekä mitata näiden sovellusten skaalautuvuutta. LAMP tarkoittaa tässä yhteydessä Linux käyttöjärjestelmää, Apache HTTP palvelinta, MySQL tietokantaa sekä PHP ohjelmointikieltä. Skaalautuvuus voidaan määrittää seuraavasti: skaalautuva systeemi toimii kuorman ja datamäärän kasvaessa sekä on myös ylläpidettävissä. Tietokaiman skaalautuvuus suuren datavolyymin websovelluksissa on yleisesti tiedostettu ongelma. Tämän ongelman ratkaisemiseksi on oikeastaan vain yksi ratkaisu, jos halutaan käyttää relaatiotietokantoja: datan pirstaloiminen (data sharding). Web-sovelluksien skaalautuvuutta voidaan mitata kuormatestauksella ja palvelimien monitoroinnilla. Tapaustutkimuksessa on luotu web-sovellus, jonka ominaisuudet löytyvät monista sosiaaliseen verkostointiin perustuvista web-sovelluksista. Datan pirstaloimista ja välimuistia käytetään web-sovelluksessa. Web-sovellus on asennettu virtuaalikoneisiin. Virtuaalikoneita on ollut käytössä 1-4. Web-sovelluksen toimintoja on kuormatestattu ApacheBench- sekä Tsung- ohjelmistoilla. Palvelimia on monitoroitu Munin ohjelmistolla. Kuormatestauksen tuloksia on analysoitu ja huomattu, että käyttämällä web-sovelluksessa enemmän virtuaalikoneita päästään parempiin tuloksiin. Käyttämällä kahta virtuaalikonetta, tietokantaa ja web-palvelinta, web-sovelluksen tehokkuus on parantunut 19 % verrattuna yhteen virtuaalikoneeseen. Vastaavasti käyttämällä neljää virtuaalikonetta, kahta tietokantaa ja kahta web-palvelinta, web-sovelluksen tehokkuus on parantunut 96 % verrattuna yhteen virtuaalikoneeseen.fi
dc.format.extentvii + 65
dc.identifier.urihttps://aaltodoc.aalto.fi/handle/123456789/97857
dc.identifier.urnURN:NBN:fi:aalto-2020122356684
dc.language.isoenen
dc.programme.majorVuorovaikutteinen digitaalinen mediafi
dc.programme.mcodeT-111fi
dc.rights.accesslevelclosedAccess
dc.subject.keywordscalabilityen
dc.subject.keywordskaalautuvuusfi
dc.subject.keywordweb applicationen
dc.subject.keywordweb-sovellusfi
dc.subject.keyworddatabaseen
dc.subject.keywordtietokantafi
dc.subject.keywordLAMPen
dc.subject.keywordLAMPfi
dc.subject.keywordload testingen
dc.subject.keywordkuormatestausfi
dc.titleScalability in LAMP web applicationsen
dc.type.okmG2 Pro gradu, diplomityö
dc.type.ontasotMaster's thesisen
dc.type.ontasotPro gradu -tutkielmafi
dc.type.publicationmasterThesis
local.aalto.digiauthask
local.aalto.digifolderAalto_03605
local.aalto.idinssi39590
local.aalto.inssilocationP1 Ark Aalto
local.aalto.openaccessno

Files