Tietokantojen merkitys sovelluskehityksessä

Tietokantojen merkitys sovelluskehityksessä
Pasi Parkkonen
COO, Senior Consultant
www.advance.fi
”Tietokanta? Ei sillä ole merkitystä,
sehän on vaan persistent storage...”
- Hibernate koodaaja
Advance IT Solutions Oy
www.advance.fi
Pasi Parkkonen, ketterä tietokantajätkä
• Ruuvari kourassa 80-luvulla
• C64, Amiga, Atari, Spectrum, MSX2+, PC tietokoneiden kasausta
• Yliopisto-opintoja ja intti 90-luvulla
• Kehittäjätausta
• 680x0 assembler, skriptaus, monia ohjelmointikieliä, html 1994-, cgi-bin 1995-
• Sekalaisia tietokantakokeiluja 80-luvun lopulta alkaen
• Paradox, Superbase, Ingres...
• Ensimmäinen tietokantapohjainen tuotantojärjestelmä 1992
• Vesikunnan talojohtokortisto, Superbase 4, tuotantokäytössä melko pitkään
• Paljon Oraclea 1995 eteenpäin
• Kouluttajana Oracle Universityssä 1999 -
• Relaatiokantojen sekakäyttöä
• Oracle, SQL Server, MySQL, DB2, PostgreSQL...
• Vahvemmat aineet: pilveä, big dataa ja noSQL välineitä
• Azure, Amazon Oracle, Redshift, Handlersocket, Hadoop, MongoDB, TokuMX...
Advance IT Solutions Oy
www.advance.fi
Esityksen kulku
• Alustus (done)
• Miksi tarvitaan tietokantoja?
• Tietokantojen jatkuva väärinkäyttö sovelluskehityksessä
• Tietokannat sovelluskehityksen jarruna tai vauhdittajana
• Muuttuva ympäristö & vaatimukset
• Itse järjestelmät, välineet, käyttötapa, ostotapa, nopeus
•
•
•
•
Järjestelmien tietoturva
DEV, Test & QA ympäristöjen hallinta
Mitä opimme?
Kysymykset, ehkä myös vastaukset
Advance IT Solutions Oy
www.advance.fi
Miksi tarvitaan tietokantoja?
Advance IT Solutions Oy
www.advance.fi
Linkitetty lista toteuttaa tiedon tallennustarpeet
 Tietojen tallentaminen & säilyttäminen
 Tietojen hakeminen
 Tietojen muuttaminen
 Tietty jäykkyys, pakko mennä aina vain eteenpäin (.next)
 Edelliseen listan itemiin ei voi hypätä
Item1
Advance IT Solutions Oy
www.advance.fi
Item2
Item3
Evoluutio: se voi olla jopa kaksisuuntainen (!)
 Tietojen tallentaminen & säilyttäminen
 Tietojen hakeminen
 Tietojen muuttaminen
 Edelliseen itemiin pääsee hyppäämään suoraan! (.prev, .next)
Item1
Advance IT Solutions Oy
www.advance.fi
Item2
Item3
Tietokannat tarjoavat tukun ominaisuuksia
•
•
•
•
•
•
•
•
•
•
Datan tulee sijaita jossain
Monimutkaiset käsittelyvaatimukset
Nopeus
Eheys
Yhtäaikainen käyttö
Isot datamäärät
Jatkuvuusvaatimukset
Lukitukset, yhteiskäyttö
Backupit
Palautukset
... Kaupan päälle JTO!
Advance IT Solutions Oy
www.advance.fi
JTO
Jonkun Toisen Ongelma
Advance IT Solutions Oy
www.advance.fi
Nopea kurkistus historiaan
Noin 20 vuotta sitten tehtyä webbikehitystä
Advance IT Solutions Oy
www.advance.fi
Web arkkitehtuuri mallia 1995
www-sivut
CGI-BIN
Perl
”Videoplayer”
Marjalan asuntomessut 1995
• Selainpohjainen tietokilpailu
• Kysely näytti videon, jonka
jälkeen esitettiin kysymys
• Useampi yhtäaikainen käyttäjä
www-sivut
www-sivut
Vastaukset tekstitiedostoon
Lukkotiedosto yhteiskäyttöä varten
”Tietokanta”
Advance IT Solutions Oy
www.advance.fi
NCSA Mosaic
Advance IT Solutions Oy
www.advance.fi
Tilanne vuonna 2014
Kuinka rakentaisit
vastaavan
Web järjestelmän
tänään?
Tuskinpa samalla
tavalla...
Advance IT Solutions Oy
www.advance.fi
Audience participation required
[WARNING] YOU need to be active during this session!
Advance IT Solutions Oy
www.advance.fi
Relaatiokantojen
käyttäjät?
Advance IT Solutions Oy
www.advance.fi
Muun tyyppisten
kantojen käyttäjät?
NoSQL
Hadoop
MongoDB
TokuMX
Neo4j
Key – Value
Wide column
Document
Graph
Advance IT Solutions Oy
www.advance.fi
Lähde: http://www.networkworld.com/article/2839141/cloud-computing/nosql-takes-the-database-market-by-storm.html
Advance IT Solutions Oy
www.advance.fi
Tietokantojen väärinkäyttö
rangaistavaksi
Advance IT Solutions Oy
www.advance.fi
Advance IT Solutions Oy
www.advance.fi
Tietokantojen ominaisuuksien hyödyntäminen
• tietokannoista löytyy ominaisuuksia, joita harva osaa hyödyntää
• näillä ominaisuuksilla voi oikeasti ratkaista monia ongelmia
• esim. tietotyypit
• tietotyypit vaikkapa laina-aikojen käsittelyyn ”3 vuotta, 6kk, 7 päivää”
• Kaikki kuviteltavissa olevat aikavyöhykekäsittelyt muunnoksineen (lokaali / globaali)
• funktiot ja proseduurit
• Karkausvuosi
• Tilastolliset funktiot datalle
• oikea käyttötapa
• mitä tehdä tietokannassa, mitä sovelluskoodissa?
• milloin on hyvä suorittaa koodia tietokannassa?
• mitä tietoa kannattaa siirtää sovelluskerrokselle? Milloin se ei kannata?
• arkkitehtuurivalinnat
• oikeiden välineiden valinta tärkeää hyvän lopputuloksen varmistamiseksi
Advance IT Solutions Oy
www.advance.fi
Tietokannat sovelluskehityksessä
• välttämättömiä
• järjestelmien data sijaitsee ~aina tietokannassa
• poikkeuksia tähän voivat olla dokumenttijärjestelmät (ei välttämättä)
• muita poikkeuksia?
• mahdollistajia
• tarjoavat monenlaisia kyvykkyyksiä
• sovelluskehittäjä voi ottaa niitä käyttöön tai keksiä pyörää uudelleen vuodesta toiseen
• mahdollisuus pärjätä myös suurten datamäärien kanssa (teratavut, petatavut)
• erilaisia eläimiä
• tietokantojen kanssa pärjääminen on oma taiteenlajinsa
Advance IT Solutions Oy
www.advance.fi
”Number one bottleneck in
application development is
supplying development and QA
environments”
- Gene Kim, author on The Phoenix Project
Advance IT Solutions Oy
www.advance.fi
Q: Kuinka generoitte testidataa?
Tuotannosta tietyllä syklillä?
Kantadumppi, import testiin?
Kehittäjä vai DBA tekee?
Advance IT Solutions Oy
www.advance.fi
Testidatan hallinnan automatisointi
Advance IT Solutions Oy
www.advance.fi
Testidatan hallinta
Datan suojaaminen ulkopuolisilta
Testidatan generoinnin automatisointi
Advance IT Solutions Oy
www.advance.fi
Case: järjestelmän tiukat
lokitusvaatimukset
Muutoshistoria:
• kuka muutti dataa?
• milloin?
• vanhan tiedon tallentaminen
• turvallisuustoimiala
Advance IT Solutions Oy
www.advance.fi
Case: järjestelmän tiukat lokitusvaatimukset
• järjestelmässä käytössä sovellustason lokitus (jopa 15 triggeriä per insert)
• jokainen triggerikutsu aiheuttaa 2 context switchiä
 vakavaa hitautta (jopa 30 kpl context switchejä)
 estää tekemästä operaatiota ns. bulk operaationa
Pilotoimme tietokannan enterprise version change trackingin & lokituksen.
Tulos: 1000 kertainen nopeutus insertoinnissa, kun
tietokannan ominaisuudet kytkettiin päälle.
Aina edes tietokantatason lokitus ei riitä täyttämään, esim. compliance
vaatimuksia => miten voidaan osoittaa, ettei lokeja ole muunneltu?
Advance IT Solutions Oy
www.advance.fi
Tietoturva
...ja datan
kanssa
eläminen
Advance IT Solutions Oy
www.advance.fi
Tietomurtoja tehdään jatkuvasti
Sensitiividatan suojaaminen
tärkeää
Suojaamisen täytyy
tapahtua tietokantatasolla
2015 lakimuutos
henkilötietojen
hukkaamisen
kriminalisoinnista
Advance IT Solutions Oy
www.advance.fi
Livedemo
Tällaisessa maailmassa elämme
Advance IT Solutions Oy
www.advance.fi
Muuttuva ympäristö &
vaatimukset
Tietoturvavaatimukset
Advance IT Solutions Oy
www.advance.fi
Tiukat tietoturvavaatimukset
• jos vaatimukset ovat hyvin tiukat, voi olla että
esim. järjestelmän sovelluspalvelintasolle
rakennettu lokitus ei riitä
• serveriltä pääsee suoraan kiinni dataan
• lokeja pääsee muokkaamaan
• rootit käsissä voi muuttaa kaikkea
• compliance kysymykset
• kuka vahtii adminia?
• kuinka voidaan osoittaa, ettei datoja ole viety?
• kuka on hakenut tietoja viimeisen vuoden aikana?
Advance IT Solutions Oy
www.advance.fi
Ajattele out-of-the-box
Ratkaisu voi olla 100% valmis, se vain otetaan käyttöön
Esim. valmis tietokannan ulkopuolinen tietoturvajärjestelmä ratkaisemaan
compliance, raportointi, sisäisen tarkastuksen, asiakkaiden tms. vaatimuksia
Advance IT Solutions Oy
www.advance.fi
Advance IT Solutions Oy
www.advance.fi
Advance IT Solutions Oy
www.advance.fi
Advance IT Solutions Oy
www.advance.fi
Advance IT Solutions Oy
www.advance.fi
Yhteenveto
Oikea aseistus tärkeää
Advance IT Solutions Oy
www.advance.fi
Oikea aseistus tehtävään
• Eventual consistency ei kuullosta hyvältä pankin tuotantojärjestelmässä
• Sosiaalisen median saitilla, kuten Facebookissa se on taas ihan ok
• 10 Exadataa jokaiseen maahan ei kuulosta parhaalta infralta Facebookille
• Sopiva sharding ratkaisu, automaattinen datan replikointi jne taas kuulostaa hyvältä
• Globaalin yrityksen uudelle intralle pilvi voi olla erittäin hyvä ratkaisu
Yhteistä:
• koskaan ei ole ollut niin paljon erilaisia vaihtoehtoja
• isotkaan datamäärät eivät ole enää ongelma
• osa NoSQL (Not Only SQL) – ratkaisuista on jo täysin tuotantokypsiä
Advance IT Solutions Oy
www.advance.fi
Esityksen pointit
• tarvitaan myös ketteriä tietokantajätkiä
• kantaosaamisella tehostusta, tehoa ja laatua työn jälkeen
• otetaan käyttöön jo olemassaolevat ominaisuudet
• ketterällä DBA:lla erilainen temppuvalikoima hihassa kuin ketterällä kehittäjällä
• arkkitehtuurilla on todellakin merkitystä
• if <liian syvällä koodissa> then <astu 2 askelta taaksepäin>
• pohdi ratkaisetko asiaa kestävästi ja riittävän hyvin
• ”good enough” on toki ketterää 
• tietoturvan tärkeys korostunut ja korostuu jatkossakin
• EU krimininalisoimassa henkilödatan hukkaamisen
• asiat pitää ratkaista oikealla tavalla, esim. Compliance vaatimusten täyttäminen
• testidatan hukkaaminen voi olla tapa hukata henkilödataa
Advance IT Solutions Oy
www.advance.fi
Advance IT Solutions Oy
www.advance.fi
Q&A
Sana on vapaa
Advance IT Solutions Oy
www.advance.fi
We are Advance. This is what we do.
Where?
Database Security
Disaster
Recovery
sites
In a nutshell:








DBA CONSULTANTS
DATABASE SUPPORT
DATABASE SECURITY
LICENSES
ENTERPRISE IT
OFF-SITE BACKUP
HIGH AVAILABILITY
DISASTER RECOVERY
Advance IT Solutions Oy
www.advance.fi
Etäpalvelin
(DR)
High
Availability
Off-site
backup
Database
Support
Hitsaajankatu 20
00810 Helsinki
Contact:
Sales Manager:
Matias Löfman
+358 40 5709 066
matias.lofman@advance.fi
COO:
Pasi Parkkonen
+358 40 5905 307
pasi.parkkonen@advance.fi
CEO:
Timo Peltonen
+358 40 7227 017
timo.peltonen@advance.fi
Tietokantapalvelumme
Tietokantojen ylläpitopalvelu
Advance IT Solutions Oy
www.advance.fi
Tietokantojen tietoturva
DB ajoympäristöjen parantaminen