Tässä ovat tämän viikon AWS re:Invent 2016 -tapahtuman mielenkiintoisimmat julkistukset omasta näkökulmastani pilvikehittäjänä. Nämä ovat Amazon AWS -pilvipalvelun uusia ominaisuuksia, jotka julkaistiin marras-joulukuun 2016 taitteessa.
Lyhyenä yhteenvetona totean pari havaintoa. Ensinnäkin Lamba-tietojenkäsittely on uuden sukupolven pilvisovellusten keskiössä. Kehittäjät ovat oppineet kehittämään Lambda-funktioita, ja nyt sama malli viedään kaikkialle aina IoT-laitteita myöten. Lambda on "liima", jolla erilaiset järjestelmät kytketään toisiinsa pieniä JavaScript-funktioita käyttäen. On odotettavissa, että Lambda-funktioita nähdään osana yhä useampia pilvipalveluita.
Toisekseen Amazon on nyt alkanut vastata kysyntään korkean tason tekoälypalveluista. Tarjolla on puheen- ja kuvantunnistusta sekä luonnollisia käyttöliittymiä. Google, Microsoft ja IBM ovat aiemmin tarjonneet vastaavia palveluita. Tarjonnasta puuttuvat edelleen matalamman tason tekoälyalgoritmit, kuten neuroverkot ja syväoppiminen. Ilmeisesti niitä ei ole onnistuttu vielä standardoimaan riittävästi, vaan asiakkaiden odotetaan ite ajavan haluamiaan algoritmeja käytettävissä olevissa GPU- ja FPGA-pilvipalvelimissa.
Eräs huomiota herättävä puute Amazonin tarjonnassa ovat lohkoketjut. AWS:stä ei löydy oikeastaan minkäänlaista valmista ratkaisua lohkoketjujen ajamiseen pilvessä. Ei tosin löydy Googlestakaan. Microsoft ja IBM taas tarjoavat omia Ethereum- ja Hyperledger-palveluitaan, joilla pääsee ainakin helposti alkuun.
Seuraavassa tarkemmin ne kiinnostavimmat AWS-julkistukset.
Yleinen Internet- ja pilvikehitys
Lambda@Edge tarjoaa uuden mahdollisuuden ajaa keveitä Lambda-funktioita CloudFront-jakeluverkon reunalla. Tällainen funktio ajetaan jokaisen HTTP-hakupyynnön yhteydessä riippumatta siitä, tuleeko sisältö CloudFrontin välimuistista vai ei. Funktiot voivat tehdä muutoksia esimerkiksi HTTP-otsikoihin tai haettavaan URL-osoitteeseen, mutta ne eivät voi kutsua toisia pilvipalveluita. Niiden ajo saa kestää korkeintaan 50 millisekuntia ja muistia saa kuluttaa maksimissaan 128 megatavua. Lambda@Edge on vielä suljetussa preview-testauksessa eikä sen hinnoittelua ole julkaistu.
AWS Step Functions on tilakone, joka hallitsee laajempia työnkulkuja useita pieniä Lambda-funktioita yhdistellen. Työnkulku tarkoittaa "kaaviota", jossa yhden Lambda-funktiokutsun jälkeen esimerkiksi tarkastetaan sen palauttama tulos ja ajetaan tuloksen perusteella jokin toinen Lambda-funktio. Step Functioneilla voidaan ajaa useita Lambda-funktioita rinnakkain, hallita virhetilanteita, odottaa funktioiden ajon päättymistä ja niin edelleen. Hinnoittelu perustuu tilamuutoksiin: ilmaiseksi saa 4000 tilamuutosta kuukaudessa ja sen jälkeen ne maksavat $0.000025 per tilamuutos.
AWS X-Ray on apuväline hajautettujen sovellusten datavirtojen ja komponenttien suorituskyvyn tarkasteluun. X-Ray auttaa hahmottamaan minkälaisista viiveistä esimerkiksi yksittäinen asiakkaan tekemä HTTP-hakupyyntö muodostuu, kun dataa noudetaan ja kootaan yhteen eri AWS-palveluista. X-Ray on vielä preview-testauksessa, mutta siihen voi hakea web-lomakkeella pääsyä ilman erillisiä perusteluita tai hyväksyntää. Tällä hetkellä näyttää siltä, että X-Ray keskittyy perinteisten Node.js-, Java- ja .NET-palvelinten analysointiin. Se vaatii erillisen X-Ray Daemonin ajamista, joka kerää yksittäiset tapahtumat yhteen ja lähettää ne pilvipalveluun. Lienee odotettavissa, että X-Ray toimii ennen pitkää Lambdassa myös ilman erillistä daemonia, sekä integroituu suoraan muihin AWS-pilvipalveluihin.
AWS CodeBuild on Amazonin oma vastine Jenkinsille, Travisille ja muille vastaaville jatkuvan integraation ympäristöille. Se tarkoituksena on ajaa käyttäjän määrittelemiä build-ajoja Docker-alustan päällä. Valittavana on erilaisia ohjelmointiympäristöjä, joihin lukeutuvat Node.js, Ruby, Python, Go, Java sekä Android. CodeBuildin etuna on minuuttipohjainen hinnoittelu. Esimerkiksi yksi kymmenen minuutin small-tason ajo maksaa $0.05. Jos niitä tehdään keskimäärin yksi päivässä, hinnaksi muodostuu $1.50 kuukaudessa. Eräänä haittapuolena on Bitbucket-integraation puuttuminen. Toisaalta CodeBuildia voi käyttää AWS CodeCommit -Git-palvelun yhteydessä, joka on viidelle käyttäjälle ilmainen (sisältäen 50 gigatavua dataa ja rajoittamattoman määrän repositoryja). Tämän lisäksi CodeBuild toimii myös Amazon S3:n ja GitHubin kanssa.
AWS Shield suojaa CloudFront-jakeluverkkoa, ELB-kuormantasaajia sekä Route 53 -nimipalveluja DDoS-hyökkäyksiltä. Shield Standard on näkymätön ja ilmainen ominaisuus näissä palveluissa ja aina päällä. Shield Advanced puolestaan tarjoaa isompien sovellusten käyttöön lisää ominaisuuksia, kuten kustannustakuita ja raportointia hyökkäyksistä. Sitä voinee ajatella eräänlaisena vakuutuksena, jos huolena on riski DDoS-hyökkäysten aiheuttamista kustannuksista.
IoT-sovelluskehitys
AWS Greengrass vie hallittavat Lambda-funktiot ja AWS IoT:stä tutut MQTT-säännöstöt IoT-laitteisiin. Aiemmin näitä sääntöjä ja funktioita on voitu ajaa vain pilvessä, jolloin kaikki data on ollut ensin pakko siirtää Amazoniin käsittelyä varten. Greengrassin myötä IoT-laitteissa itsessään voidaan käsitellä ja suodattaa dataa. Laitteissa ajettavia funktioita ja sääntöjä hallitaan keskitetysti pilvestä käsin. Hinnoittelu perustuu aktiivisten laitteiden määrään. Yksi aktiivinen laite maksaa $0.16 kuukaudessa.
AWS Athena mahdollistaa SQL-kyselyjen kohdistamisen suoraan S3:een tallennettujen tiedostojen sisältöihin. Tämä on erityisen kätevää IoT-sovelluksissa, joissa kerätään paljon dataa esimerkiksi Kinesis Firehosea käyttäen ja halutaan tehdä vain muutamia kyselyjä ilman tietokannan pystyttämistä ja datan muuntamista sille sopivaan muotoon. Athena on hinnoiteltu käsiteltävän datamäärän mukaan $5/TB, jossa yksittäisen kyselyn minimikustannus on 10MB eli $0.0000477. Hintaa voidaan optimoida kompressoimalla tallennettu data.
Tekoäly
Amazon Rekognition tunnistaa kuvista erilaisia piirteitä, kuten kasvoja, ilmeitä, esineitä ja tiloja. Kasvotunnistusta voidaan käyttää samojen ihmisten etsimiseen useista eri kuvista. Miljoonan kuvan analysointi maksaa $1.00. Lisäksi pilveen voidaan varastoida myöhempää käyttöä varten kasvotunnistustietoja, joiden kuukausikustannus on $0.01 per tuhat kasvoa.
Amazon Polly on puhesyntetisaattori, joka osaa muuntaa tekstin puheeksi 24 eri kielellä ja 47 eri äänellä. Valitettavasti suomi ei ole toistaiseksi näiden joukossa, mutta englanninkieliset lauseet hoituvat helposti. Puhetta voi esikuunnella selaimessa tai ladata API-rajapintojen kautta joko mp3/ogg/pcm-tiedostoina tai reaaliaikaisina streameina. Puhe maksaa noin $0.01 per minuutti, perustuen tekstin pituuteen.
Amazon Lex on preview-vaiheessa oleva palvelu, joka on tarkoitettu vuorovaikutteisten chatbot- ja puhekäyttöliittymien rakentamiseen. Sen voi nähdä vaihtoehtona Facebookin Wit.ai-palvelulle, jolla niinikään rakennetaan käyttäjien ja bottien välisiä vuoropuheluita tekoälyä hyödyntäen. Lexin hinnoittelu perustuu puheen ja tekstin tunnistuspyyntöihin. Yksittäisen puheviestin tunnistus maksaa $0.004 ja tekstiviestin puolestaan $0.00075.