Implementing a Fault-tolerant and Highly Scalable Content Delivery System
Muhonen, Aki (2020)
Muhonen, Aki
2020
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-2020100721095
https://urn.fi/URN:NBN:fi:amk-2020100721095
Tiivistelmä
Kansaneläkelaitos (KELA) varmistaa suomalaisten sosiaaliturvan. KELA:lla on laaja IT-osasto, joka tuottaa palveluja kansalaisille internetissä käytettäväksi. KELA tarvitsi uutta palvelua, joka jakaa sisältöä sovelluksille.
Tavoitteena oli luoda ajan tasalla oleva vikasietoinen ja skaalautuva sisällönjakelupalvelu, joka jakaa staattista sisältöä sovelluksille, jotta sitä ei tarvitse tehdä manuaalisesti, ja oli valmis käyttöönottoon tuotannossa. Palvelu suunniteltiin vanhemman palvelun pohjalta, joka ei ollut valmis tuotantoon tai automatisoitu.
Palvelu sisälsi yhden taustapalvelimen, joka toimi sisällön tietokantana, kaksi edustapal-velinta sisällön jakeluun, jotka toimivat HTTP palvelimina ja kuormanjakajan. Palvelu automatisoitiin täysin SaltStackilla, koska SaltStack oli laajassa käytössä KELA:ssa, ja se oli helppokäyttöinen järjestelmänvalvojille ja sisällön käyttäjille.
Palvelu toimi niin kuin piti. Se toimitti sisällön taustapalvelimesta edustapalvelimiin, ja edustapalvelimilta sovellukselle. Palvelu oli myös vikasietoinen. Palvelun rakentaminen testattiin uudelleen, kun palvelimet olivat alhaalla ja tyhjennetty.
Toiminta tavaltaan palvelu oli yksinkertainen. Vaikein osuus oli automatisoida se käyttäen SaltStack:ia, ja palvelu oli onnistunut. Jatkokehityksen kannalta ei ollut paljon tekemistä tai ajateltavaa. Joitakin pieniä asioita, jotka eivät ole pakollisia palvelulle. Se on ajateltu alusta loppuun. Kansaneläkelaitos (KELA) ensures the social security of Finnish people. KELA has a vast IT-department which produces services for the citizens to use on the Internet. KELA was in need of a new service which shares content for applications.
The objective was to create up to date fault-tolerant and highly scalable content delivery system, which shares static content for applications, so it wouldn’t need to be done manually, and was ready to be implemented into production. The service was designed on the basis of an older service which was not ready for production or automatized.
The service included one backend server working as content database, two frontend servers for delivery of the content, working as HTTP servers and a load balancer. The service was fully automated using SaltStack, because SaltStack was widely used in KELA, and made easy to use for the administrators and content users.
The service worked as it was supposed to. It delivered the content from backend to frontends and from frontend to the application. Also, the service was fault-tolerant. It was tested to build the service again if the servers were taken down and emptied.
The service is a simple in the way it works. The hard part was automatizing it using Salt-Stack, and the service was a success. There was not much to do, or think for the further development. Some small things that are not mandatory for the service. It has been thought from start to finish.
Tavoitteena oli luoda ajan tasalla oleva vikasietoinen ja skaalautuva sisällönjakelupalvelu, joka jakaa staattista sisältöä sovelluksille, jotta sitä ei tarvitse tehdä manuaalisesti, ja oli valmis käyttöönottoon tuotannossa. Palvelu suunniteltiin vanhemman palvelun pohjalta, joka ei ollut valmis tuotantoon tai automatisoitu.
Palvelu sisälsi yhden taustapalvelimen, joka toimi sisällön tietokantana, kaksi edustapal-velinta sisällön jakeluun, jotka toimivat HTTP palvelimina ja kuormanjakajan. Palvelu automatisoitiin täysin SaltStackilla, koska SaltStack oli laajassa käytössä KELA:ssa, ja se oli helppokäyttöinen järjestelmänvalvojille ja sisällön käyttäjille.
Palvelu toimi niin kuin piti. Se toimitti sisällön taustapalvelimesta edustapalvelimiin, ja edustapalvelimilta sovellukselle. Palvelu oli myös vikasietoinen. Palvelun rakentaminen testattiin uudelleen, kun palvelimet olivat alhaalla ja tyhjennetty.
Toiminta tavaltaan palvelu oli yksinkertainen. Vaikein osuus oli automatisoida se käyttäen SaltStack:ia, ja palvelu oli onnistunut. Jatkokehityksen kannalta ei ollut paljon tekemistä tai ajateltavaa. Joitakin pieniä asioita, jotka eivät ole pakollisia palvelulle. Se on ajateltu alusta loppuun.
The objective was to create up to date fault-tolerant and highly scalable content delivery system, which shares static content for applications, so it wouldn’t need to be done manually, and was ready to be implemented into production. The service was designed on the basis of an older service which was not ready for production or automatized.
The service included one backend server working as content database, two frontend servers for delivery of the content, working as HTTP servers and a load balancer. The service was fully automated using SaltStack, because SaltStack was widely used in KELA, and made easy to use for the administrators and content users.
The service worked as it was supposed to. It delivered the content from backend to frontends and from frontend to the application. Also, the service was fault-tolerant. It was tested to build the service again if the servers were taken down and emptied.
The service is a simple in the way it works. The hard part was automatizing it using Salt-Stack, and the service was a success. There was not much to do, or think for the further development. Some small things that are not mandatory for the service. It has been thought from start to finish.