28
Sovelluskehittäjät ja data - kehittäjäyhteisön mahdollistaminen Kalle Launiala, ProtonIT Oy The Ball – The Information Ecosystem [email protected] , +358 44 5575665

Datajalostamo-seminaari 5.6.2014: Sovelluskehittäjät ja data – kehittäjäyhteisön mahdollistaminen / Kalle Launiala, ProtonIT

Embed Size (px)

DESCRIPTION

Datajalostamo-seminaari 5.6.2014: Sovelluskehittäjät ja data – kehittäjäyhteisön mahdollistaminen / Kalle Launiala, ProtonIT http://datajalostamo.fi/2014/05/keskusteluseminaari/

Citation preview

Page 1: Datajalostamo-seminaari 5.6.2014: Sovelluskehittäjät ja data – kehittäjäyhteisön mahdollistaminen / Kalle Launiala, ProtonIT

Sovelluskehittäjät ja data -kehittäjäyhteisön mahdollistaminen

Kalle Launiala, ProtonIT Oy

The Ball – The Information Ecosystem

[email protected], +358 44 5575665

Page 2: Datajalostamo-seminaari 5.6.2014: Sovelluskehittäjät ja data – kehittäjäyhteisön mahdollistaminen / Kalle Launiala, ProtonIT

Esityksen rakenne

• Datan tarjoaminen käytettäväksi

• Sovelluskehityksen ”tekemisen rooli”• ... suhteessa datan jalostamiseen

• Datajalostamisen ja ”appsin” arkkitehtuurin yhdistäminen• Kuluttajan palveleminen, operointi, yksityinen data

• Pilvi-infran datan käsittelyn lyhyt matematiikka ja kustannukset• Oma konesali vs. Pilvi-infra

Erillinen sessio: ProtonIT Oy & Pallo-alusta ”yritysesittely”

Page 3: Datajalostamo-seminaari 5.6.2014: Sovelluskehittäjät ja data – kehittäjäyhteisön mahdollistaminen / Kalle Launiala, ProtonIT

Datan tarjoaminen käytettäväksiPäätermi: Resursointia = ihmis + konekapasiteettia

Page 4: Datajalostamo-seminaari 5.6.2014: Sovelluskehittäjät ja data – kehittäjäyhteisön mahdollistaminen / Kalle Launiala, ProtonIT

Agenda: Tuotetaan data saataville1. Tunnistetaan kiinnostava

raakadata

2. Tunnistetaan jalostus ja indeksointitarve

3. Resursoidaan (ihmis + laskentaresurssein) raakadatasta => datalähteitä

4. Resursoidaan datalähteiden tallennus

5. Resursoidaan datalähteiden palvelu ulospäin käyttäjille

6. Resursoidaan ”Miten käytät?” dokumentointi ja ylläpidetään se ajantasaisena

Raw Data Source A

Open Data Source X

Open Data Source Y

Open Data Source Z

Raw Data Source B

Data Refining, Processing,

Reformatting,Indexing...

How-To Documentationabout the usage;

Including SDK/API andData format usage, examples

Page 5: Datajalostamo-seminaari 5.6.2014: Sovelluskehittäjät ja data – kehittäjäyhteisön mahdollistaminen / Kalle Launiala, ProtonIT

Agenda: Tuotetaan data saataville1. Tunnistetaan kiinnostava

raakadata

2. Tunnistetaan jalostus ja indeksointitarve

3. Resursoidaan (ihmis + laskentaresurssein) raakadatasta => datalähteitä

4. Resursoidaan datalähteiden tallennus

5. Resursoidaan datalähteiden palvelu ulospäin käyttäjille

6. Resursoidaan ”Miten käytät?” dokumentointi ja ylläpidetään se ajantasaisena

Raw Data Source A

Open Data Source X

Open Data Source Y

Open Data Source Z

Raw Data Source B

Data Refining, Processing,

Reformatting,Indexing...

How-To Documentationabout the usage;

Including SDK/API andData format usage, examples

Page 6: Datajalostamo-seminaari 5.6.2014: Sovelluskehittäjät ja data – kehittäjäyhteisön mahdollistaminen / Kalle Launiala, ProtonIT

Sovelluskehittäjän rooliMitäs ne oikeastaan tarvitsevatkaan?

Page 7: Datajalostamo-seminaari 5.6.2014: Sovelluskehittäjät ja data – kehittäjäyhteisön mahdollistaminen / Kalle Launiala, ProtonIT

Appsin kehitys: Koko tekeminen (vapaa järjestys)

Häkkäilystä => ajavaan appsiin/palveluun - konseptiin

1. Tunnistetaan käytettävät/tarvittavat datalähteet

2. Nykytapa/oma tapa: selvitetään (oman) teknologiapinon mahdollisuudet/rajoitteet

3. ”Opiskellaan” datalähteen käyttö omasta perspektiivistä (eli kohdat 1 & 2 kullekin lähteelle; SDK/API; formaatit)

4. Datan yhdistely: Indeksoidaan oman tarpeen mukaan – datan imuroidaan osittain omaan tietokantaan

5. Toteutetaan näkyvä ”Appsi”; web/mobiiliappsi – tai ylipäätään jotain näkyvää

Konseptista => loppukäyttäjän appsiksi

1. Yhdistetään avoin data käyttäjän yksityiseen dataan 1. esim. suosikit/kirjanmerkit

2. ... tai erittäin yksityiseen dataan: kalenteri, sijainti...

2. Tuotantoon?: Siistimistä häkkäyksestä tuotantotason appsiksi

3. Uudelleenkäyttö?: Laitetaan rakenteen talteen/pidetään GitHubissa itselle ja/tai yhteisölle

Open Data Source A

Open Data Source B

ApplicationCombined/Refined

Data

ApplicationUser Specific

Data

Web App Mobile App

Application Business Logic &Back-End Server

Page 8: Datajalostamo-seminaari 5.6.2014: Sovelluskehittäjät ja data – kehittäjäyhteisön mahdollistaminen / Kalle Launiala, ProtonIT

Appsin kehitys: Koko tekeminen (vapaa järjestys)

Häkkäilystä => ajavaan appsiin/palveluun - konseptiin

1. Tunnistetaan käytettävät/tarvittavat datalähteet

2. Nykytapa/oma tapa: selvitetään (oman) teknologiapinon mahdollisuudet/rajoitteet

3. ”Opiskellaan” datalähteen käyttö omasta perspektiivistä (eli kohdat 1 & 2 kullekin lähteelle; SDK/API; formaatit)

4. Datan yhdistely: Indeksoidaan oman tarpeen mukaan – datan imuroidaan osittain omaan tietokantaan

5. Toteutetaan näkyvä ”Appsi”; web/mobiiliappsi – tai ylipäätään jotain näkyvää

Konseptista => loppukäyttäjän appsiksi

1. Yhdistetään avoin data käyttäjän yksityiseen dataan 1. esim. suosikit/kirjanmerkit

2. ... tai erittäin yksityiseen dataan: kalenteri, sijainti...

2. Tuotantoon?: Siistimistä häkkäyksestä tuotantotason appsiksi

3. Uudelleenkäyttö?: Laitetaan rakenteen talteen/pidetään GitHubissa itselle ja/tai yhteisölle

Open Data Source A

Open Data Source B

ApplicationCombined/Refined

Data

ApplicationUser Specific

Data

Web App Mobile App

Application Business Logic &Back-End Server

Page 9: Datajalostamo-seminaari 5.6.2014: Sovelluskehittäjät ja data – kehittäjäyhteisön mahdollistaminen / Kalle Launiala, ProtonIT

Sovelluskehitys, operointi, liiketoimintaSovelluskehityksen arvo koko ketjun osana, operoinnin ja liiketoiminnan mahdollistamana...

Page 10: Datajalostamo-seminaari 5.6.2014: Sovelluskehittäjät ja data – kehittäjäyhteisön mahdollistaminen / Kalle Launiala, ProtonIT

Appsit omissa siiloissaan, operointia ei käytännössä ole...

Raw Data Source A

Open Data Source X

Open Data Source Y

Open Data Source Z

Raw Data Source B

Data Refining, Processing,

Reformatting,Indexing...

Raw Data Source A

Open Data Source X

Open Data Source Y

Open Data Source Z

Raw Data Source B

Data Refining, Processing,

Reformatting,Indexing...

Raw Data Source A

Open Data Source X

Open Data Source Y

Open Data Source Z

Raw Data Source B

Data Refining, Processing,

Reformatting,Indexing...

Raw Data Source A

Open Data Source X

Open Data Source Y

Open Data Source Z

Raw Data Source B

Data Refining, Processing,

Reformatting,Indexing...

Open Data Source A

Open Data Source B

ApplicationCombined/Refined

Data

ApplicationUser Specific

Data

Web App Mobile App

Application Business Logic &Back-End Server

Open Data Source A

Open Data Source B

ApplicationCombined/Refined

Data

ApplicationUser Specific

Data

Web App Mobile App

Application Business Logic &Back-End Server

Open Data Source A

Open Data Source B

ApplicationCombined/Refined

Data

ApplicationUser Specific

Data

Web App Mobile App

Application Business Logic &Back-End Server

Page 11: Datajalostamo-seminaari 5.6.2014: Sovelluskehittäjät ja data – kehittäjäyhteisön mahdollistaminen / Kalle Launiala, ProtonIT

Sovellustason yhdistettävät rakenteet

Datalähteiden käyttö

• Tiedostetaan, että kaikki pyrkivät tekemään samanlaista

• Kaikki joko tekevät samaa, tai pyrkivät siihen

• Yhteisön luontainen perusta

Yksityisen datan käyttötarve

• Vaatii hallittua (auditoitua) arkkitehtuuria

• Ei ole tiedostettu, että ongelma on yhteinen

• Kaikkien pitäisi tehdä samaa

Open Data Source A

Open Data Source B

ApplicationCombined/Refined

Data

ApplicationUser Specific

Data

Web App Mobile App

Application Business Logic &Back-End Server

Combination ofSource A & Source B

ApplicationCombined/Refined

Data

ApplicationUser Specific

Data

Web App Mobile App

Application Business Logic &Back-End Server

Page 12: Datajalostamo-seminaari 5.6.2014: Sovelluskehittäjät ja data – kehittäjäyhteisön mahdollistaminen / Kalle Launiala, ProtonIT

Hyödyt: Yksittäiselle kehittäjälle

• Yhteisö-yhtenäiset rajapintarakenteet datalähteestä riippumatta

• Raakadatan jalostus on myös kehittäjien tekemää

• Resursointisäästö, kun yhteisö voi jakaa jalostustuotokset lähteinä

• Yhtenäistetty, läpinäkyvä ja luotettava yksityisen tiedon käsittely

Raw Data Source(s)

Open Data Source(s)

Data Refining, Processing,

Reformatting,Indexing...

How-To Documentationabout the usage;

Including SDK/API andData format usage, examples

ApplicationPublic, Structured

Open Data

ApplicationUser SpecificPrivate Data

Application Business Logic &Back-End Server

Web App Mobile App

Page 13: Datajalostamo-seminaari 5.6.2014: Sovelluskehittäjät ja data – kehittäjäyhteisön mahdollistaminen / Kalle Launiala, ProtonIT

Sovelluskehitys ja operointi tukevat toisiaan => liiketoimintaa!

Raw Data Source(s)

Open Data Source(s)

Data Refining, Processing,

Reformatting,Indexing...

ApplicationStructuredOpen Data

ApplicationUser SpecificPrivate Data

Application Business Logic &Back-End Servers

Web App sMobile App s

Raw Data Source(s)

Raw Data Source(s)

Raw Data Source(s)

Raw Data Source(s)

Raw Data Source(s)

Open Data Source(s)

Open Data Source(s)

Open Data Source(s)

ApplicationStructuredOpen Data

ApplicationStructuredOpen Data

ApplicationStructuredOpen Data

ApplicationUser SpecificPrivate Data

ApplicationUser SpecificPrivate Data

ApplicationUser SpecificPrivate Data

The End User

Page 14: Datajalostamo-seminaari 5.6.2014: Sovelluskehittäjät ja data – kehittäjäyhteisön mahdollistaminen / Kalle Launiala, ProtonIT

(Pilvi-)infra & kustannusRaakoja numeroita ja fyysisen maailman realismia...

Page 15: Datajalostamo-seminaari 5.6.2014: Sovelluskehittäjät ja data – kehittäjäyhteisön mahdollistaminen / Kalle Launiala, ProtonIT

Tallennuksen & siirron kustannus – Microsoft Azuren listahinnoista

• Prosessointi: 0,056€/tunti (1,7 GB muistilla)• 42€/kk

• Storage / per TB / kk• Blob storage:

• 19 €/TB (Locally redundant) , 37 €/TB (GEO)

• File share: • 62 €/TB (Locally redundant), 78 €/TB (GEO)

• Transfer (datacenteristä ulos)• 93 €/TB• Sisään 0€, sisäinen liikenne 0€

Page 16: Datajalostamo-seminaari 5.6.2014: Sovelluskehittäjät ja data – kehittäjäyhteisön mahdollistaminen / Kalle Launiala, ProtonIT

Skenaarioissa tarkoittaa Azuressa...

• 1 TB datan tallentaminen eli avaaminen = 444€/vuosi• 10 GB datan avaaminen = 4,3€/vuosi• Pilvi-storageen, joka skaalautuu 60MB/s PER-OBJEKTI• Yhteisö pääsee kiinni (myös) suoraan raakadataan

• Datan ”push” tarjoilu eteenpäin (laskennassa 20MB/s per siirtoon osallistuva CPU)• Samassa konesalissa 0,82€/TB• Konesalin ulkopuolelle 93,82€/TB

Page 17: Datajalostamo-seminaari 5.6.2014: Sovelluskehittäjät ja data – kehittäjäyhteisön mahdollistaminen / Kalle Launiala, ProtonIT

Azure vs. ”Oma konesali”

• ”Omasta konesalista”• Teratavun palvelu 10 Gbit kaistaa pitkin = 1024 sekuntia = 17min• Kannattaako laskea ”per teratavu” skaalassa..?• ... Ja levyjärjestelmänkin pitäisi kyetä 1GB/s vauhtiin...

• 10 kilotavun JSON-siirto, 10k käyttäjälle = 100MB• Aikayksikkö? Datahaussa 10 kt on aika pientä appsin ajon aikana...• 20 KB, 50k käyttäjää = 10x = 1GB• Piikeissä ”per sekuntiskaala” jos käyttö yhtaikaista, esim. TV-shown

promoappsi...

• Millaisten tahojen liiketoimintaa eri mittakaavat ovat?• Sovelluskehittäjät ovat jo siellä pilvessä, ominkin luottokortein...

Page 18: Datajalostamo-seminaari 5.6.2014: Sovelluskehittäjät ja data – kehittäjäyhteisön mahdollistaminen / Kalle Launiala, ProtonIT

Pilvi-pilvi infran reality-check

• Motiivi appsitason hallintaan tulee myös mobiilista

• LTE lupaukset 50Mbps per käyttäjä• ... Tukiaseman maksimi on mittakaavaa 150Mbps

• Tukiasemien väliset etäisyydet lasketaan kilometreissä

• Jos halutaan palvella enemmän, kuin ”3” käyttäjää...

• Sovellusten arkkitehtuurin liityttävä infraan• Operointi, laskutus kaistan/datan käytön mukaan...

Page 19: Datajalostamo-seminaari 5.6.2014: Sovelluskehittäjät ja data – kehittäjäyhteisön mahdollistaminen / Kalle Launiala, ProtonIT

Datajalostamo -realismiaMicrosoft Azure, CloudStreet, Pallo... + palveluiden rakentajat

Page 20: Datajalostamo-seminaari 5.6.2014: Sovelluskehittäjät ja data – kehittäjäyhteisön mahdollistaminen / Kalle Launiala, ProtonIT

Kalle Launiala / ProtonITThe Ball – The Information Ecosystem

... Eli kehittäjä-BIO, ne kriittiset rattaat koko hommassa...

Page 21: Datajalostamo-seminaari 5.6.2014: Sovelluskehittäjät ja data – kehittäjäyhteisön mahdollistaminen / Kalle Launiala, ProtonIT

Mikroyritys-yhteistyön-pohja:Kalle Launiala BIO

• 1995- TKK/Tietotekniikka

• 1998- mukaan osakkaaksi Nolics Oy:hyn• Monialustakehitystä Win32/C++, OpenGL, Access,

Progress-tietokannat, Linux-yhteensopivuutta

• 2002-2005 Nolics.net ORM tuotteistus• Oma rooli paketin hiominen, kehittäjäesimerkit, usean

tietokannan tuki• Deep-rapid-dive .NET:iin alusta alkaen

• Epäilevä suhtautuminen ”välikoneisiin” alussa• ”Eikä tämä toimi edes Linuxilla”

Page 22: Datajalostamo-seminaari 5.6.2014: Sovelluskehittäjät ja data – kehittäjäyhteisön mahdollistaminen / Kalle Launiala, ProtonIT

Mikroyritys-yhteistyön-pohja:Kalle Launiala BIO

• 2005- ProtonIT Oy• Microsoftin viimeisimmät välineet, Gold-kumppaniksi• Mm. edelläkävijänä Suomessa .NET 3.0 (WPF) • Oman mikroyrityksen tuotteistusta• Nokian Visual Studio / Symbian työkaluissa mukana

• 2009-2012 Tietokarhu/VERO sovellusarkkitehti• Oma kehittäjätehostustaso jalkautettuna normitiimiin• ADM (abstraction design methodology) syntyi 2010

• 2010-2013 Citrus Solutions Oy & ProtonIT yhteistyö• ADM:n jalostamista liiketoiminnaksi• Pallo-alustan toteutus kevät 2012 – elokuu 2012

Page 23: Datajalostamo-seminaari 5.6.2014: Sovelluskehittäjät ja data – kehittäjäyhteisön mahdollistaminen / Kalle Launiala, ProtonIT

Pallon launcheja 2013-2014-

• 2013 TechDays – julkinen developer launch• HelloWorld, arkkitehdeille kohdennettuna

• 2013 syksy – italialaisen yliopiston gradu Pallosta

• Pilotointi koulujen kanssa ja yrityskentässä• CMS/julkaisu-alustana

• Jatkokehitystä Aalto-yliopiston kanssa

Page 24: Datajalostamo-seminaari 5.6.2014: Sovelluskehittäjät ja data – kehittäjäyhteisön mahdollistaminen / Kalle Launiala, ProtonIT

ADM & Pallo ovat siis - avoimia

• ADM pohjateknologiana, täysin avoin menetelmä• Pohjautuu XML:ään ja Visual Studion koodigenerointiin

• Avoimen lähdekoodin versio olemassa

• Pallo = ADM + semanttiset kirjastot ja hallinta• Pallo on looginen alusta, täysin avoin

• Pallosta on toteutus Azureen

• WP, Android, Raspberry-Pi clientit

• Kaikki avointa koodia...

Page 25: Datajalostamo-seminaari 5.6.2014: Sovelluskehittäjät ja data – kehittäjäyhteisön mahdollistaminen / Kalle Launiala, ProtonIT

Liiketoiminta-malli?”Konsultointi & koulutus” – ekosysteemikumppanien mahdollistaminen

Palloa ei voi omistaa, sitä voi vain hyödyntää – ja se tuottaa arvoa!

Page 26: Datajalostamo-seminaari 5.6.2014: Sovelluskehittäjät ja data – kehittäjäyhteisön mahdollistaminen / Kalle Launiala, ProtonIT

What to do next?There is something already happening...

Page 27: Datajalostamo-seminaari 5.6.2014: Sovelluskehittäjät ja data – kehittäjäyhteisön mahdollistaminen / Kalle Launiala, ProtonIT

”The Ball”Open Platform

• Designed for YOU OWN YOUR DATA• Enables information ecosystem

• Up and running with pilots• Businesses

• Schools

• Universities

• Developers / Hackers

• Open Source, for ANY use• Built in co-operation and open

collaboration• Anyone can run an instance

• In the cloud on Windows Azure• Massive scalability for whole

community-infrastructure

Page 28: Datajalostamo-seminaari 5.6.2014: Sovelluskehittäjät ja data – kehittäjäyhteisön mahdollistaminen / Kalle Launiala, ProtonIT

Identify YOUR role... And JOIN the community !