1 research outputs found

    Datapohjainen skaalattavuus Kafka- ja mikropalvelujärjestelmässä

    Get PDF
    Kerätyn ja tuotetun datan määrä on kasvanut maailmassa jatkuvasti. Kerätty data on arvokasta ja tällöin sen käsittely on tärkeää. Lisääntyvän datamäärän käsittelyyn on erikoistunut massadatajärjestelmiä, joiden tavoitteena on käsitellä saapuva data mahdollisimman tehokkaasti ja skaalautuen kompensoimaan datamäärän kasvua. Skaalautuvaan massadatajärjestelmään pilvi on oivallinen ympäristö sen muokattavuuden sekä skaalautuvuuden vuoksi. Järjestelmän skaalautuminen on hyvä ottaa huomioon jo suunnitteluvaiheessa, sillä skaalautuva ympäristö ei takaa järjestelmän parempaa suorituskykyä. Vastaanotetun datamäärän kasvaessa massadatajärjestelmään voi ilmentyä pullonkauloja, joita ei järjestelmän suunnitteluvaiheessa havaittu. Skaalautuvuus voidaan kuvata skaalauskuution avulla, jonka eri akselit kuvaavat eri tapoja mahdollistaa skaalautuminen: toiminnallinen hajottaminen, horisontaalinen skaalaus eli rinnakkaistaminen sekä datapartitiointi. Mikropalveluarkkitehtuuri mahdollistaa luonnostaan näiden skaalaustapojen hyödyntämisen. Työn järjestelmä ei skaalaudu datamäärän lisääntyessä. Sen suorituskykyä rajoittaa huono datapartitiointi sekä datakäsittelyä rajoittavat vaatimukset. Tässä työssä esitellään nämä ongelmat, miten ne vaikuttavat järjestelmän suorituskykyyn sekä niiden ratkaisuvaihtoehtoja. Yksi näistä ratkaisuvaihtoehdoista kuvataan tarkemmin: mikropalvelu, joka jakaa saapuvan datan datakäsittelylle sallien tehokkaamman datapartitioinnin, järjestelmän paremman suorituskyvyn ja skaalautuvuuden.The amount of produced and collected data have grown continuously in the world. The collected data is valuable, and therefore, data processing is important. Systems which process enormous amounts of data are called Big Data -systems. They specialize in handling the data as efficiently as they can while scaling to compensate for the growth of the incoming data amount. Scalable application requires a modifiable and scalable environment. Cloud has these features, and it is proven to be the choice of many. Scalability of the entire system needs to be considered in the planning phase, since having a scalable environment does not necessarily mean increased throughput of the system. Large volumes of data can reveal bottlenecks in the system architecture if they are not carefully identified in the planning phase. Scalability can be described with the three different axes of a scale cube: functional decomposition, horizontal scaling, and data partitioning. Microservice architecture provides the means to easily utilize these methods of scaling. The target system of this thesis does not scale when data volumes are increased. Suboptimal data partitioning and data processing requirements are limiting the performance of the system. These issues, how they affect the performance of the system and solution alternatives are presented. One of these solutions is chosen: a microservice, which distributes the incoming traffic to the data processing services. This solution allows the use of improved data partitioning, improves the system’s performance and scalability
    corecore