Experiences of using serverless microservices on video publishing platform
Huhtiniemi, Pauli (2019)
Diplomityö
Huhtiniemi, Pauli
2019
School of Engineering Science, Tietotekniikka
Kaikki oikeudet pidätetään.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi-fe2019052717299
https://urn.fi/URN:NBN:fi-fe2019052717299
Tiivistelmä
This thesis presents concepts of microservices and serverless computing. Subsequently, a video on demand service is used as a case study and various examples of serverless microservices are presented and experiences of building them are discussed. First goal is to study the literature and then discuss real life experiences of building serverless microservices and see if it frees time from infrastructure management to building business logic while saving money on hosting costs. Second goal is to gather information on suitable use cases for serverless approach as of today. Microservices are small, autonomous and independently deployable services that work together using message-based communication in a highly automated infrastructure. Serverless computing refers to concept of developing applications built with functions and backend as a service components whose usage is invoiced based on actual execution times. These applications are deployed to infrastructure fully managed by a cloud vendor and thus there's no need to manage servers by a cloud user. While considerable amount of effort is still needed for defining cloud resources with infrastructure as code process, serverless approach was found to be beneficial as it allowed teams to focus on business logic instead of challenges like capacity planning, auto-scaling and high-availability. Cost savings were discovered, but mostly because of more efficient development time was possible. Serverless is a good option for services where really low latency isn’t required and things like high-throughput and time-to-market are important. Tässä diplomityössä käsitellään mikropalveluiden ja serverless-arkkitehtuurin käsitteitä ja hyödynnetään videopalvelua käytännön esimerkkinä. Työssä esitellään esimerkkejä ja kokemuksia serverless-mikropalveluiden kehittämisestä. Tavoitteena on tutkia kirjallisuutta ja verrata sitä kokemuksiin serverless-mikropalveluiden kehittämisestä, jotta nähdään vapautuuko aikaa infrastruktuurin hallinnoinnista liiketoimintalogiikan kehittämiseen halvempien ylläpitokustannusten lisäksi. Toisena tavoitteena on selvittää serverless-arkkitehtuuriin soveltuvia käyttökohteita nykytiedon valossa. Mikropalvelut ovat pieniä, autonomisia ja itsenäisesti julkaistavia palveluita, jotka kommunikoivat keskenään automatisoidussa infrastruktuurissa. Serverless tarkoittaa palveluita, jotka koostuvat käytön mukaan laskutettavista funktioista ja backend as a service -palveluista. Palvelut julkaistaan palveluntarjoajan infrastruktuurissa, jossa asiakkaan ei tarvitse hallinnoida palvelimia. Vaikka edelleen tarvitaan työtä pilvipalveluiden resurssien ja infrastruktuurin konfiguroinnissa, serverless on hyödyllinen, sillä se mahdollistaa keskittymisen liiketoimintalogiikkaan kapasiteetin tarpeen ennakoimisen, automaattisen skaalautuvuuden ja korkean saatavuuden sijaan. Työssä havaittiin kustannussäästöjä, mutta lähinnä tehokkaamman ajankäytön vuoksi. Serverless on hyvä vaihtoehto palveluille, joissa huomattavan alhainen vasteaika ei ole vaatimus ja korkea läpisyöttö sekä nopea markkinoille pääsy ovat tärkeitä.