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
© Copyright 2024