PaaS-kehitys Kuinka hallita Big Dataa? } Mistä löytää tarpeeksi } } } Pilvipalvelut (Cloud Services) } } } 2 Tallennuskapasiteettia? Laskentakapasiteettia? Tallennuspalvelu Laskentateho (Cloud Computing) Paljon muuta Big Data & Pilvipalvelut, Maija Marttila-Kontio Pilvipalvelu voi helpottaa elämää } Dynaamisesti skaalautuva (myös hinta J ”pay-per-use”) } } } Resurssit ovat virtuaalisia } } 3 Esim: ”Joka toinen viikko tarvitaan laskentatehoa 15x, muuten mennään pienemmillä tehoilla” Esim: Kaisan ylläpitämät nettisivut saa yht’äkkiä valtavan kävijäryöpyn. Lähteekö Kaisa pikaisesti ostamaan Gigantista uusia koneita vanhan serverin tueksi? Palvelun tilaajalla ei ole ”tiettyä konetta/koneita” palveluntarjoajan konesalissa, jotka olisivat yksinomaan hänen käytössään Palvelun tilaaja on ostanut nimenomaan palvelun, fyysisestä toteutuksesta vastaa palveluntarjoaja Big Data & Pilvipalvelut, Maija Marttila-Kontio Virallisia ominaispiirteitä Itsepalvelullisuus Resurssien yhteiskäyttö Pääsy eri päätelaitteilta Käytön mittaaminen ”pay-per-use” Nopea joustavuus 4 Big Data & Pilvipalvelut, Maija Marttila-Kontio Erilaisia palvelumuotoja: ”<…> as a Service” Infrastructure as a Service (Iaas) } } } AWS (EC2, S3), Tässä palvelussa pääset enemmän vaikuttamaan mm. serverin sisältöön, kirjastoihin, tuettuihin ohjelmointikieliin (PaaS:ssa olet palveluntarjoajan armoilla) Platform as a Service (Paas) (=”Computing platform”) } } } } Tietokanta, sovelluskehitysympäristö, webbiserveri, jne… Kehitä oma peli ja myy sitä verkon kautta (tai jaa ilmaiseksi ja kerää mainostuloja) Esim. Google AppEngine –Paas (ROVIO-Case) Software as a Service (SaaS) } } } } ”Softa pilvessä”: Sähköposti, pelit, virtuaalityöpöytä,… Vähän kuin täyden palvelun työsuhdeauto: tankki aina täynnä bensaa, aina siisti, aina toimiva, joku käyttää huollossa, aina uusin malli saatavilla, … Salesforce.com, Dropbox, GoogleDocs, … Plus monia muita } } } 5 Network as a Service Analytics as a Service Big Data & Pilvipalvelut, Maija Marttila-Kontio Pilvityypit Onko pilvi ollenkaan? Tietoturva? Julkinen (Public) Yksityinen (Private) Hybridi (Hybrid) 6 Big Data & Pilvipalvelut, Maija Marttila-Kontio Platform as a service Google App Engine Google App Engine } } } https://developers.google.com/appengine/ Platform as a Service (PaaS) Ketkä käyttää? } } } https://cloud.google.com/customers/ Mm. Rovio, Snapchat, Khan Academy… Tukee useita kieliä } } } } Python Java PHP Go GAE - tarkemmin Persistent storage with queries, sorting, and transactions. } Automatic scaling and load balancing. } Asynchronous task queues for performing work outside the scope of a request. } Scheduled tasks for triggering events at specified times or regular intervals. } Integration with other Google cloud services and APIs. } 1 GB of data storage and traffic for free } https://developers.google.com/appengine/docs/whatisgoogleappengine GAE - tietovarastoja } App Engine Datastore } } ’schemaless object datastore’. Ilmainen quota. Google Cloud SQL SQL-kanta. Taustalla toteutettu MySQL:llä. Maksullinen. Google Cloud Storage (GCS) } } } } NDB Datastore } } Isolle, tiedostotyyppiselle datalle. Uusi. Evoluutio datastoresta. https://docs.google.com/document/d/ 1AefylbadN456_Z7BZOpZEXDq8cR8LYu7QgI7bt5V0Iw/edit GAE – Palveluita/komponentteja } } } } } } } } } } App Identity Blobstore Capabilities Channel Google Cloud Endpoints Images Logs Mail MapReduce Memcache } } } } } } } } } Multitenancy OAuth Prospective Search Search Sockets Task Queues URL Fetch Users XMPP App Engine Launcher } Kehitysympäristö } } Windows, Mac, Linux Java, Python, PHP, Go Prosessi Local GAE / Cloud version: 2 … Deploy version: 1 … version: 2 … App Admin Käyttäjät Projektin rakenne - yksinkertainen } app.yaml } } index.yaml } } Sovelluksen asetukset Sovelluksen käyttämät indeksit main.py } Python-koodi Projektin rakenne - monipuolisempi } css } } CSS-tiedostot customtags Omia tageja Djangoa varten } } js } } templates } } JavaScript-tiedostot Kaikki html-tiedostot … app.yaml - asetukset main.py – Python-koodi Deploy Deploy (tuotantoonvienti) siirtää koko projektin kehitysympäristöstä GAE-palveluun } Versiointi } } } } Mikäli tuotannossa on jo saman numeroinen versio, kirjoitetaan sen päälle Mikäli uusi versio, luodaan se Indeksit } } Mikäli index.yaml-tiedostoon on generoitunut (tai lisätty) uusia indeksejä, niiden rakentaminen käynnistetään. Näihin indekseihin liittyvät haut eivät toimi ennen kuin indeksi on rakennettu (eli käytä versiointia) Versiointi } Viitataan GAE:n sisäiseen versiointiin, ei sovelluskoodin versionhallintaan } } Sovelluskoodin versionhallintaan voit käyttää mitä haluat (git, svn, ym.) app.yaml-tiedostossa on version-attribuutti version: 1 Versiointi tapahtuu muuttamalla sen arvoa } Deploy siirtää kylmästi koodin atribuutin osoittamalle versiolle } Web-kehykset: esim. Django Ei ole käytännöllistä kirjoittaa html-koodia sovelluskoodin sisällä } Eri ohjelmointikielille on lukuisia sovelluskehyksiä, niihin kannattaa tutustua ja valita mieluisa/soveltuva } Paljon trendejä… } Tällä kertaa käytämme Django:a } } } } Melko suosittu Python-framework Toki vaihtoehtoja löytyy ja myös kritiikkiä Ei sovellu kaikkiin tarkoituksiin Esim. UI (home.html) Users Django Controller (main.py) Datastore css (Bootstrap)
© Copyright 2024