Cloudflare DNS -mikropalvelun hallinnointi käyttäen palvelimetonta infrastruktuuria
Honkanen, Veikka (2021)
Avaa tiedosto
Lataukset:
Honkanen, Veikka
2021
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-2021122190302
https://urn.fi/URN:NBN:fi:amk-2021122190302
Tiivistelmä
Toimeksiantajayritys Metatavu Oy haluaa toteuttaa hallintaliittymän, jonka
kautta pystyttäisiin hallinnoimaan useita eri mikropalveluita. Hallintaliittymän
keskipisteenä on tapahtumaväylä, jonka on tarkoitus välittää tiedot käyttäjältä
mikropalveluihin ja takaisin.
Tämän työn ensimmäisenä tavoitteena on selvittää Apache Kafka -tapahtuma-
väylän sekä jonkin toisen tapahtumaväylän konsepti ja toiminnallisuus sekä
suorittaa näiden vertailu. Työn toisena tavoitteena on ottaa selvää nimenomaisesti Cloudflare Workersista sekä AWS Lambdasta ja vertailla näiden ominaisuuksia ja hinnoittelua keskenään. Ensimmäisen selvityksen tavoitteena on
löytää ominaisuuksiltaan paras tapahtumaväylä hallintaliittymää varten ja toisen selvityksen tavoite on löytää parempi FaaS-infrastruktuuri pilvifunktion
käyttämiseksi hallintaliittymässä. Lopuksi työssä luonnostellaan teoreettinen
datan kulku tuotantokäytössä olevasta tapahtumaväylästä Cloudflaren palvelimelle saakka.
Hallinnointi itsessään käyttää eräänlaista palvelimetonta rakennetta. Työn
käytännön toteutuksen aiheena on suunnitella ja rakentaa valmiit Lambda- ja
Workers-pilvifunktiot Cloudflare DNS -mikropalvelun hallinnointia varten sekä
todistaa onnistunut datan kulku funktionaalisella testauksella.
Ensimmäisessä selvityksessä saatiin tulokseksi, että Kafka on hallintaliittymään soveltuvin vaihtoehto lokihistoriansa ja laajennettavuutensa takia. Paikallisessa testiajossa todettiin Kafkan sisältävän ominaisuuksia, joilla voitiin
säädellä mm. palvelinten määrää ja replikointia. Lokit välittyivät julkaisijalta tilaajalle suunnitellusti. Lisäksi saatiin selville, että Workers on Lambdaa nope-
ampi, kustannustehokkaampi ja kevyempi käyttää. Lambdan mahdollisuus piilottaa se AWS-verkon sisäpuolelle on kuitenkin tärkeä ominaisuus turvallisuuden kannalta, eikä Workersilla ole tarjota samankaltaista ominaisuutta, minkä
vuoksi voitiin todeta Lambdan soveltuvan paremmin hallintaliittymän käyttöön.
Työssä myös pohdittiin erilaisia vaihtoehtoisia tapoja käyttöönottaa tuleva hallintaliittymä tuotantoympäristöön. Näistä voitiin todeta parhaaksi vaihtoehdoksi
AWS-verkon sisälle piilotettu Kubernetes-klusteri. Klusteri ei ainoastaan ole
tämän hetken turvallisin ratkaisu, vaan sallii myös orkestroinnin hallintaliittymän monille eri palasille, joita aiotaan lisätä myöhemmin useita kappaleita. The commissioner company Metatavu Oy wanted to build a management system for managing several microservices. The middlemost part of the management system was going to be an event bus which was supposed to transfer
data from the user to the microservices and back.
The first aim of the work was to find out about the concept and functionality of
the Apache Kafka event bus and some other relevant event buses as well as
compare these with each other. The objective was to determine the best possible event bus for the management system. The second aim of the work was
to find information on Cloudflare Workers and AWS Lambda as well as to
compare their attributes and pricing. The objective here was to determine
which would be the better FaaS infrastructure for using the cloud function in
the management system. Finally, a draft of the theorical flow of the data from
the event bus to the Cloudflare server in production environment was being
made.
The management itself is using a serverless structure. The topic of the practical implementation of the work was to design and build complete Lambda and
Workers cloud functions for the management of the Cloudflare DNS microservice and to prove the successful flow of data by functional testing.
The result of the first objective was that Kafka was the most suitable option for
the management interface due to its log history and extensibility. The local test
run showed that Kafka contains properties that can be used to control number
of servers and replication, for example. The logs were transmitted from the
publisher to the subscriber as intended. The results from the second objective
showed that Workers was faster, more cost-effective, and lighter to use than
Lambda. However, Lambda’s ability to hide itself within the AWS network was
an important security feature whereas Workers did not provide any similar features. Therefore, it was found that Lambda was better suited for the management system.
The work also involved considering various ways of deploying the upcoming
management system into production, of which a Kubernetes cluster hidden
within the AWS network was found the best alternative. The cluster is not only
the safest solution currently, but also allows for an orchestrated management
for many different pieces that will extend the system in the future.
kautta pystyttäisiin hallinnoimaan useita eri mikropalveluita. Hallintaliittymän
keskipisteenä on tapahtumaväylä, jonka on tarkoitus välittää tiedot käyttäjältä
mikropalveluihin ja takaisin.
Tämän työn ensimmäisenä tavoitteena on selvittää Apache Kafka -tapahtuma-
väylän sekä jonkin toisen tapahtumaväylän konsepti ja toiminnallisuus sekä
suorittaa näiden vertailu. Työn toisena tavoitteena on ottaa selvää nimenomaisesti Cloudflare Workersista sekä AWS Lambdasta ja vertailla näiden ominaisuuksia ja hinnoittelua keskenään. Ensimmäisen selvityksen tavoitteena on
löytää ominaisuuksiltaan paras tapahtumaväylä hallintaliittymää varten ja toisen selvityksen tavoite on löytää parempi FaaS-infrastruktuuri pilvifunktion
käyttämiseksi hallintaliittymässä. Lopuksi työssä luonnostellaan teoreettinen
datan kulku tuotantokäytössä olevasta tapahtumaväylästä Cloudflaren palvelimelle saakka.
Hallinnointi itsessään käyttää eräänlaista palvelimetonta rakennetta. Työn
käytännön toteutuksen aiheena on suunnitella ja rakentaa valmiit Lambda- ja
Workers-pilvifunktiot Cloudflare DNS -mikropalvelun hallinnointia varten sekä
todistaa onnistunut datan kulku funktionaalisella testauksella.
Ensimmäisessä selvityksessä saatiin tulokseksi, että Kafka on hallintaliittymään soveltuvin vaihtoehto lokihistoriansa ja laajennettavuutensa takia. Paikallisessa testiajossa todettiin Kafkan sisältävän ominaisuuksia, joilla voitiin
säädellä mm. palvelinten määrää ja replikointia. Lokit välittyivät julkaisijalta tilaajalle suunnitellusti. Lisäksi saatiin selville, että Workers on Lambdaa nope-
ampi, kustannustehokkaampi ja kevyempi käyttää. Lambdan mahdollisuus piilottaa se AWS-verkon sisäpuolelle on kuitenkin tärkeä ominaisuus turvallisuuden kannalta, eikä Workersilla ole tarjota samankaltaista ominaisuutta, minkä
vuoksi voitiin todeta Lambdan soveltuvan paremmin hallintaliittymän käyttöön.
Työssä myös pohdittiin erilaisia vaihtoehtoisia tapoja käyttöönottaa tuleva hallintaliittymä tuotantoympäristöön. Näistä voitiin todeta parhaaksi vaihtoehdoksi
AWS-verkon sisälle piilotettu Kubernetes-klusteri. Klusteri ei ainoastaan ole
tämän hetken turvallisin ratkaisu, vaan sallii myös orkestroinnin hallintaliittymän monille eri palasille, joita aiotaan lisätä myöhemmin useita kappaleita.
data from the user to the microservices and back.
The first aim of the work was to find out about the concept and functionality of
the Apache Kafka event bus and some other relevant event buses as well as
compare these with each other. The objective was to determine the best possible event bus for the management system. The second aim of the work was
to find information on Cloudflare Workers and AWS Lambda as well as to
compare their attributes and pricing. The objective here was to determine
which would be the better FaaS infrastructure for using the cloud function in
the management system. Finally, a draft of the theorical flow of the data from
the event bus to the Cloudflare server in production environment was being
made.
The management itself is using a serverless structure. The topic of the practical implementation of the work was to design and build complete Lambda and
Workers cloud functions for the management of the Cloudflare DNS microservice and to prove the successful flow of data by functional testing.
The result of the first objective was that Kafka was the most suitable option for
the management interface due to its log history and extensibility. The local test
run showed that Kafka contains properties that can be used to control number
of servers and replication, for example. The logs were transmitted from the
publisher to the subscriber as intended. The results from the second objective
showed that Workers was faster, more cost-effective, and lighter to use than
Lambda. However, Lambda’s ability to hide itself within the AWS network was
an important security feature whereas Workers did not provide any similar features. Therefore, it was found that Lambda was better suited for the management system.
The work also involved considering various ways of deploying the upcoming
management system into production, of which a Kubernetes cluster hidden
within the AWS network was found the best alternative. The cluster is not only
the safest solution currently, but also allows for an orchestrated management
for many different pieces that will extend the system in the future.