Aleksi Häkli from Vincit Oy gave a short reflective talk on SaaS.
SaaSiin pa(i)nostusta or Forcing the SaaS
Modernin ohjelmistoprojektin odotetaan olevan yksikkö- ja integraatiotestattu, koodikattavuuden kartoitettu, muutosten katselmoitu, ja koodin siirtyvän automaattisesti versiohallinnasta ajoon beta- ja tuotantoklustereille. Milloin? No versiohallintaan puskettaessa tietysti. Versiohallintalähtöistä, automoitua lähdekoodin ja tuotteenhallintaa GitHubista Traviksen syövereihin ja ajoon Amazonin Elastic Beanstalkiin. Tule kuulemaan hiljaista tietoa tämän vuosituhannen ohjelmistokehityksen perustyökaluista.
3. • 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
4. • 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?
5. 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
6. 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
7. 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.
8. • 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
10. • 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
12. 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)
13. 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
14. 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