Laskupiste päivitettiin nykyiseen arkkitehtuuriinsa 5.0 päivityksen yhteydessä. Tällöin Laskupiste jaettiin entistä pienenpiin loogisiin osakokonaisuuksiin, joista vain tarvittavat osat ajetaan sovelluspalvelimilta käsin ja loput tarjoillaan käyttäjälle hajautetun sisällönjakopalvelun (CDN) kautta.

Kaikki selaimen lataama staattinen HTML, CSS, Javascript sekä kuvasisältö jaetaan CDN:n kautta, joka mahdollistaa näiden nopean ja varman jakelun maailmanlaajuisesti. Käytit Laskupistettä sitten Suomessa tai ulkomailla, staattinen sisältö latautuu niin nopeasti kuin mahdollista riippuen ainoastaan käyttämäsi nettiliittymän nopeudesta. Laskupiste on toteutettu progressiivisena web sovelluksena (PWA) siten, että se tallentaa käyttämänsä tiedostot selaimen välimuistiin ja osaa päivittää ne automaattisesti, kun palvelusta on uusi versio julkaistu.

Laskupisteen taustajärjestelmä on toteutettu täysin tilattomana REST-palveluna, jonka avulla tarjoamme API-rajapinnan Pro-tason asiakkaidemme käyttöön. Sen päälle on rakennettu myös mobiilisovelluksemme sekä WooCommerce-lisäosa.

Tarjotaksemme erittäin turvallisen kirjautumisen, käytämme Auth0:n tarjoamaa sertifioitua, tietoturvallista ja monipuolista kirjautumispalvelua. Palveluumme voi kirjautua joko palvelua varten luodulla käyttäjätunnuksella ja salasanalla tai vaihtoehtoisesti ulkopuolisen kirjautumispalvelun kautta, kuten Gmail tai Microsoft. Mobiilisovelluksemme käyttää samaa kirjautumispalvelua ja sitä käytetään taustalla myös API-rajapinnan kanssa.

Laskupiste arkkitehtuuri
 

Yllä olevassa kuvassa on mallinnettu Laskupisteen arkkitehtuuri Amazonin AWS-ympäristössä. Kun selain tekee pyynnön Laskupisteeseen hakee se ensin osoitteen DNS-palvelusta. Tämän jälkeen pyyntö ohjataan Amazonin CloudFront (CDN) -palveluun, joka päättelee osoitteen perusteella, minne se pyynnön reitittää. CloudFront tuo myös turvaa palveluun salaamalla kaiken liikenteen selaimen ja Laskupisteen välillä sekä muun muassa torjumalla palvelunestohyökkäyksiä. Se myös nopeuttaa selaimen tekemiä pyyntöjä monin eri tavoin.

Lisätietoa CloudFront-palvelusta

CloudFront ohjaa kaikki staattiseen sisältöön viittaavat pyynnöt AWS S3-palveluun, joka tarjoaa 99,999999999%:n varmuuden datan säilyvyydelle sekä 99,99%:n varmuuden datan saatavuudelle. Säilyvyyden erittäin korkea prosentti tarkoittaa, että data ei häviä vaikka jotain täysin odottamatonta tapahtuisikin. Datan saatavuuden prosentti tarkoittaa sitä, että vuoden aikana, dataan pääsy saa olla estynyt alle tunnin.

Lisätietoa AWS S3-palvelusta

Jos selaimen tekemä pyyntö ei liity staattiseen sisältöön, se ohjataan Elastic Load Balancing -kuormantasaajalle, joka ohjaa sen vähiten kuormittuneelle sovelluspalvelimelle. Koska sovelluspalvelimet ovat täysin tilattomia, selaimen lähettämät yksittäiset pyynnöt päätyvät eri sovelluspalvelimille, nopeuttaen näin sivun latautumista.

Lisätietoa Elastic Load Balancing-palvelusta

Sovelluspalvelimet sekä tietokantapalvelimet (RDS) sijaitsevat eri AZ-ympäristöissä, jotka sijaitsevat fyysisesti erillään toisistaan. Tällöin jos toisessa AWS:n AZ-ympäristössä tapahtuisi jotain täysin poikkeavaa, esim. tulipalo tai laaja verkko-ongelma, on Laskupiste käytettävissä toisessa AZ-ympäristössä olevilta palvelimilta.

Sovelluspalvelimissa käytetään Amazonin automaattista skaalauspalvelua (Auto Scaling), joka käynnistää tarvittaessa uusia sovelluspalvelimia käyttöön mahdollisten ruuhkapiikkien aikana. Auto scaling -palvelu yhdessä kuormantasaajan kanssa mahdollistaa katkottomat asennukset, jolloin Laskupiste voidaan päivittää siten, että se on samalla normaalisti käytettävissä.

Lisätietoa AWS EC2-palvelusta
Lisätietoa AWS RDS-palvelusta