vincit teatime 2015.2 - aleksi häkli: saasiin pa(i)nostusta
TRANSCRIPT
SaaSiin pa(i)nostustaTeatime 2015
• Aiheena Software-as-a-Servicen yleiset hyödyt• Puhujana Aleksi Häkli, TTY, melkein-DI• Empiiristä kokemusta modernista (F)OSSista, web-
proggiksista ja palveluista• HTML5-projektit, CDN-palvelut• RESTful APIt, SOAlike servicet ym. Intternet-APIt• Palveluplättisten pystytys, ylläpito, paketointi• AWS-infrastruktuuri, WebScale™
Puhujasta ja aiheesta
• SaaS tarjoaa yleensä softapalveluja platformeina• Versiohallinta, buildit, testaus, jatkuvat palvelut, ...• GitHub vs. git, Travis vs. Jenkins, EBS vs. Apache
• Nopeuttaa setuppeja ja säästää aikaa sekä rahaa• Setuppaustyön deduplikointi• Helppous kehittäjille vs. sysadmin-taitovaatimukset• Hyvä käytettävyys selaimilla vs. SSH-avaimet ja CLI• Melko järkevät (HTTP) APIt ja kirjastot niiden käyttöön
Mitä ja miksi SaaS on?
Tyypillisiä ratkaisuja softatarpeisiin
• Git / SVN / Mercurial versiohallintaan• Tarvitsee usein erilliset palvelimet ja ylläpidon
• Jenkins / OBS buildipalveluita varten• Tarvitsee usein kymmeniä tunteja setuppausta ja paljon rautaa
• Apache / nginx boxit deploymentteja varten• Konffaus ja ylläpito työlästä mutatoituvissa setupeissa
• Selenium GRID E2E-testausta varten• Vaatii säännöllisiä vierailuja rautakauppaan
SaaS-vaihtoehtoja elämää helpottamaan
• GitHub versiohallintaan, katselmointeihin, projektin dokumentaatioon
• Travis buildeja ja yksikkötestejä varten• AWS ja Elastic Beanstalk palvelinympäristö(i)ksi• OpBeat monitorointiin ja virheentarkkailuun• Saucelabs integraatio- ja E2E-testaukseen• Vaihtoehtoja on paljon; osa loistavia, osa huonoja
GitHub - parempi kuin pelkkä Git?
• GitHub tarjoaa julkisia git-repoja web-käyttöliittymillä ja lisäpalveluilla• Pull requestit code reviewejä varten• Markdown-dokumentaatiot repositoryissa selattavina• Wikit projektidokumentaatiota varten• $projekti.github.io-sivut projektiesittelyjä varten• Monia integraatioita SaaS-palveluihin, paljon valmiita
git-hook-taikoja, hyvä dokumentaatio jne.
• Tarjoaa Helpon™ käyttöliittymän ja konffiformaatin stereotyyppisiin softabuildeihin
• Tarjoaa builder imageja erilaisille techeille• Node, Python, Java, C++, Ruby, ...
• Tarjoaa myös erilaisia deployment-vaihtoehtoja• Virallisesti tuettuina n. 30 deployment provideria• Epävirallisesti tuettuina vielä useampia
Travis - helpompia testejä ja buildeja
Travis - esimerkki yksikkötestien ajamisesta
• Hostausta servicenä erilaisille web-applikaatioille• NodeJS, Python, Java, Ruby, …• Apache / nginx valmiina virtuaalikoneissa• Konffataan polut ja env, saadaan takaisin URL• Tuettuna suoraan myös Amazon RDS, eli mm.
PostgreSQL, MySQL, Oracle, database-as-a-service• Helppo kytkeä Elasticachea, SESiä ym. AWS-infraa
Elastic Beanstalk
Elastic Beanstalk - esimerkki Travis deplasta
Oikeat hyödyt *aaSista
• Ei kertasitoutumista raudan ja softalisenssien ostoon - maksut usein pienissä erissä (tunti/kk)
• Aikaa ja miehiä* vapautuu ohjelmiston konffauksesta, ylläpidosta ja opiskelusta
• Keskittyminen tuotte(id)en tekoon ja myyntiin• Lähes kaikki lähteet väittävät SaaS-ratkaisujen
tuovan “competitive & price advantagea” (siistii)
* myös naisia vapautuu, mutta ikävä kyllä vain n. 3 kertaa harvemmin (lähde)
Oikeat haitat *aaSista
• Alustojen valinta on vaikeaa ja vaatii kokemusta• Alustat tykkäävät joskus naittaa devaajat itseensä• Devaajat eivät opi teknologioitaan niin syvällisesti• Joskus SaaS-alustoilla tai verkoilla downtimejä• Pitkäkestoisissa, raskaissa projekteissa hinnat
voivat olla suurempia kuin omassa ympäristössä• Luottokorttilaskujen perkaus ja kirjanpito
Milloin käyttää *aaSia?
• Projektin koko (aluksi) pieni (esim. < 100k€)• Ei 100% tarkkoja tuotantoympäristöjen speksejä• Halutaan helpottaa ylläpitoa ja ACL:ää projektissa• Halutaan koodi toimitukseen nopeammin
• CI / CD / E2E / user testing pipeline nopeutuu• Halutaan joustavaa kasvuvaraa ilman omiin
palvelimiin / saleihin / keskuksiin sitoutumista
Kysymyksiä?
KIITOS