Skip to content

Pilvipalvelujen palvelinteknologiat

Posted in Pilvisovellusten tuotanto

Tällä kertaa Pilvisovellusten Tuotanto -verkkokoulutuksessa käsiteltiin web-palveluiden toteutusvaihtoja ja tietoturvaa.

Pilvialustat

Amazon (AWS)

Amazon AWS on pilvialusta, joka tarjoaa laskentehoa, tiedontallennuspalveluja ja sisällön toimituspalveluja. Asiakas maksaa vain käytöstä, joten pilvipalveluiden käyttö on todella kustannustehokasta. Sama pätee myös muihin pilvipalveluihin.

https://aws.amazon.com/getting-started/

Heroku

Heroku on kenties selkeämpi ja käyttäjäystävällisempi kuin Amazon AWS. Herokun palvelut toimivat Amazon-pilvessä. Ohessa lisää Herokusta.

Muita pilvipalveluja

Web-palvelun toteutustapoja

Perinteinen tapa

Perinteisessä tavassa html-sivu muodostetaan palvelimen päässä mahdollisimman valmiiksi. Selain vain näyttää sivun. Sivulla voi olla jotain interaktivisuutta, joka toteutetaan JavaScriptillä.

PHP-sovellus & SQL DB

  • Selain: html
  • Web server (apache)
  • Zend framework
  • PHP engine
  • Linux/cloud
  • SQL DB

Python-sovellus & SQL DB

  • Selain: html
  • Web server (apache)
  • Django framework
  • Python engine
  • Linux/cloud
  • SQL DB

Java-sovellus & SQL DB

  • Selain: html
  • Java application/cloud server
  • Tomcat, GlassFish, WebSphere
  • Java VM
  • SQL DB

REST-palvelut

Tässä tavassa HTML5-sovellus muodostaa html-sivun vasta selaimessa. Palvelin välittää vain datan sovellukselle, joko muokkaa sen tarpeelliseen muotoon.

Node.js-sovellus & NoSQL DB

  • Selain: HTML5-sovellus: JSON/XML
  • Express framework / Mean.io
  • Node engine
  • OS/Cloud
  • NoSQL DB (MongoDB)

PHP-sovellus & SQL DB

  • Selain: HTML5-sovellus: JSON/XML
  • SLIM framework
  • PHP engine
  • Linux/cloud
  • SQL DB

Java-sovellus & SQL DB

  • HTML5-sovellus: JSON/XML
  • Java application/cloud server
  • Tomcat, GlassFish, WebSphere
  • Java VM

REST API-käsitteitä ja -esimerkkejä

Tietokannat

SQL

Structured Query Language (SQL), on IBM:n kehittämä standardoitu kyselykieli, jolla relaatiotietokantaan voi tehdä erilaisia hakuja, muutoksia ja lisäyksiä.

Hyvät puolet

Relaatiokannat ovat parhaimmillaan, kun käsitellään pieniä transaktioita tai suoritetaan harvoin tapahtuvia suuria eräajoja.

Huonot puolet

Relaatiotietokannat soveltuvat huonosti suurten dokumenttimäärien käsittelyyn ja pilvilaskennan käyttöön. SQL-tietokannat eivät ole kovin tehokkaita, jos tietokantaan tarvitsee tehdä paljon muutoksia tihein väliajoin.

Esimerkkejä

NOSQL

Hyvät puolet

Not-only-SQL (NoSQL) pystyy suoriutumaan hyvinkin suurista määristä samanaikaisista luku-ja kirjoitusoperaatioista. Lisäksi useat NoSQL-toteutukset tukevat tietokantojen hajauttamista. Täten se soveltuu hyvin big datan käsittelyyn ja pilvilaskentaan.

NoSQL-tietokannalla ei ole kiinteää skemaa, joten siihen voi tallettaa minkämuotoista dataa tahansa. Tämä tekee myös tietokannan ylläpidosta tehokkaampaa.

Esimerkkejä

MUUTA

Tietokannat pitää valita käyttötarpeen mukaan. Erilaisia tietokantoja voidaan myös yhdistää siten että esimerkiksi MongoDB:tä käytetään tiedon tallennukseen ja HBase:a (Hadoop) tiedon analysointiin.

Verkkosovellusten tietoturva

SSL

  • SSL = Secure Socket Layer
  • Epäsymmetriseen salaukseen (RSA-algoritmi) perustuva tapa toteuttaa turvallista tietoliikennettä
  • Julkinen avain (public key), yksityinen avain (private key), sertifikaatit
  • SSL-tekniikka käyttäviä protokollia
    • https – web-liikenteen suojaus
    • ssh – secure shell – suojattu pääteyhteys

HTTPS

  • Turvallinen web-tietoliikenne
  • Ei vaikuta suoraan sovellusten ohjelmointiin
  • Toteuttaa kaksi asiaa: tietoliikenteen salaus ja alkuperän varmentaminen
  • Web-palvelimelle voi luoda geneerisen avaimen ja sertifikaatin, jolloin tietoliikenne on salattu, mutta käyttäjä ei voi varmistua palveluntuottajan identiteetistä
  • Oheisella videolla lisää aiheesta

REST-palvelun tietoturva

CORS

  • Perussuojaus
  • Selain sallii AJAX-kutsuja vain sallituista osoitteista ladatulta sivulta

http-autentikointi

  • Basic Authentication
    • Yksinkertainen käyttätunnus ja salasana
    • Määritellään yleensä palvelimella
    • Ei tarvitse välttämättä ohjelmointia
    • Esim Apache: .htaccess-suojaus
  • Digest Authentication
    • Palvelupyynnön mukan tiivistemerkkijono (hash), jonka palvelin tarkistaa
    • Vaatii ohjelmointia

OAuth-autentikointi

Käyttäjän autentikointi ulkoisessa palvelussa esim. Facebook, LinkedIn. Lisätietoa: http://tutorials.jenkov.com/oauth2/overview.html

Sovellustunnus

  • Monet avoimen datan palvelut vaativat sovellustunnuksen sanomien mukana
  • Ei suojaa tai salaa mitään
  • Auttaa tilastoimaan ja valvomaan palvelujen käyttöä

Salasanojen turvallinen tallennus

  • md5-tiiviste on ok, mutta hsa256 on parempi
  • Salasanojen suolaus: lisää satunnainen merkkijono höysteeksi!
  • Suosituimmat tiivisteet saa selville esimerkiksi täältä: https://crackstation.net/

Viimeisimmät artikkelit

Kategoriat