#SolitaTech ONKO ORGANISAATIOSI KYPSÄ DEVOPSIIN? Antti Tirilä Nääsvillen Oliopäivät 2015
LUKUVERSIO Muutokset: kuvia pienennetty, tekstiä lisätty
PERINTEISEN TOIMINNAN SIILOT DIGITAALISEN PALVELUN KUOLINMARSSIN TEMPO Business DEV QA IT? Viikkoja Viikkoja, ellei kuukausia Toistot päiviä Feedback
KETTERÄT MENETELMÄT SIILOJEN KIMPPUUN Developers Product Owner QA specialists
2000-LUVUN MENETELMÄ, SCRUM, ANTOI LUVAN OLLA TOIMITTAMATTA. POTENTIAALI = EI MITÄÄN. Agile Manifesto: Developers Product Owner QA specialists Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Working software is the primary measure of progress.
ASENNUKSET SPRINTIN PÄÄTTEEKSI TYÖLÄITÄ, VÄÄRIN KÄYTETTYÄ AIKAA. TESTAUSAUTOMAATION PUUTTEET SALLIVAT RIKKOA VANHAA TOIMINNALLISUUTTA. TIIMIN ETENEMÄN SEURANTA MAHDOTONTA ( WORKING SOFTWARE UUPUI).
ILMIÖITÄ DEVOPSIN TAUSTALLA Ketterät projektimekanismit jättivät pulkan puolimäkeen Ops-väen (IT-osasto) kasvava kipuilu Vaikeuksia pysyä liiketoiminnan vaatimusten perässä yhä nopeammin muuttuvassa maailmassa Mikä on erottautumistekijä Web 2.0 aikakaudella? Aitojen pilvipalvelu-alustojen syntyminen Virtualisointiteknologiat kaikkien kukkarolle vuosituhannen vaihteen jälkeen AWS EC2 & S3 vuonna 2006 (esimerkkinä). Mahdollisuus manageroida infraa ohjelmallisesti.
AD 2009 John Allspaw @ Velocity 2009 10+ Deploys Per Day: Dev and Ops Cooperation at Flickr Patrick Debois -> DevOps Days 2009 Paikalla olleet ~50 ihmistä veivät ajatukset maailmalle DEVOPS-LIIKE: IT-OPEROINNIN TEHTÄVÄ MAHDOLLISTAJANA PITÄÄ NOSTAA UUDELLE TASOLLE.
Agile practices are a good start, but they are not sufficient. To really increase the rate of innovation, it s important to also invest in improving downstream release management... otherwise teams spend too much time delivering low-value software, because they are focused on emergency patches or system rollbacks due to deployment errors. Forrester Research 2012
OPS-IHMISET MUKAAN PALVELUNKEHITYSTIIMIIN -> TODELLINEN OHJELMISTOKEHITYKSEN SUPERTIIMI! KONKRETIA TÄRKEÄÄ! DEVOPS-KULTTUURI MANIFESTOITUU VAIN JATKUVAN TOIMITTAMISEN KYVYKKYYDELLÄ. Developers Product Owner QA specialists Operations
CONTINUOUS DEPLOYMENT PIPELINE Konkretisoi DevOps-kulttuurin, lunastaa Agilen lupaukset Tavoitteena siis päästä tilanteeseen, jossa kuka tahansa tiimistä voi viedä järjestelmäkokonaisuuden tuotantoon yhdellä napin painalluksella (ts. aina kun tarve) Ensin Kaikki työ näkyväksi. Piilotyötä ei saa olla missään muodossa. Prosessin (IT-tuotannon) pullonkaulat ratkaistaan koko ryhmän voimin heti kun ne havaitaan. Automatisoidaan kaikki toistuva, tylsä ja virhealtis manuaalityö. Automatisoidaan kaikki. Ymmärretään laadulle ja laadunvarmistukselle syntyvä paine. Tämä on hyvä asia.
Code Conf Version control Compilation and build Unit and integration tests Automatic deployment Acceptance tests Performance, Security etc Deployment to testing env Operational testing Deployment to demo env OK OK OK OK User acceptance testing Deployment to production env Production Create build candidate Promote build candidate Binaries Artifact repository
JATKUVAN TOIMITTAMISEN KÄYTÄNNÖT 1. Versionhallinta Kaikki projektin aikana muuttuva tieto viedään versionhallintaan (ohjelmakoodi, skriptit, dokumentaatio, konfiguraatiot jne) Ts. kaikki tarvittava ohjelmiston rakentamiseksi, ympäristöjen rakentamiseksi ja ohjelmiston viemiseksi ajoon Git, Subversion, Artifactory 2. Palvelinten ja infrastuktuurin / konfiguraation hallinta Ohjelmallinen hallinta tuo toistettavuuden ja eri ympäristöjen identtisen hallinnan. Kyse on paljon muustakin kuin paketinhallinnasta Versionhallinnan kautta tarkka näkyvyys muutoksiin ja muokkaajiin Ansible, Chef, Puppet, PowerShell Developers Product Owner QA specialists Operations
JATKUVAN TOIMITTAMISEN KÄYTÄNNÖT 3. Jatkuva integraatio (CI) Koodi integroidaan, ohjelmisto rakennetaan ja sitä vasten ajetaan autom. testit aina muutosten jälkeen Ensimmäinen palautepiste kehittäjälle Jenkins, Bamboo, Go 4. Automaattinen testaus Kattava, automatisoitu regressiotestaus toimii kehittäjien selkänojana ja vapauttaa koko tiimiltä aikaa keskittyä uuden tekemiseen Testejä voidaan ajaa eri vaiheissa asennusputkea JUnit, NUnit, QUnit, utplsql, Selenium, PhantomJS 5. Julkaisuehdokas ja autom. asennus Julkaisuehdokas täyttää autom. testauksen asettamat kriteerit Sama sovellus uuteen ympäristöön, ainoastaan konfig. eroja
JATKUVAN TOIMITTAMISEN KÄYTÄNNÖT 6. Asennuksen porrastettu ylennys Edellisen vaiheen mentyä läpi voi asennus seuraavaan vaiheeseen triggeröityä automaattisesti tai vaatia erill. komennon (oikeus rooleille) 7. Komponenttien ja kirjastojen hallinta Ohjelmiston build identtinen milloin tahansa, kenen tahansa toimesta Riippuvuudet versionhallinnassa tai erillisessä repositoryssä 8. Tietokantamuutosten hallinta Ohjelmistosta asennetaan aina uusi versio tyhjästä mutta tietokantaaeivoipoistaavaan muutokset migroidaan Muutostenperuutusvaikeaa mutta syytä valmistautua Flyway, DBMaintain, Liquibase
YHTEENVETO DevOps on hallussa.. mikäli organisaatiolla on kyky viedä liiketoimintakriittisestä ja liiketoiminnallista arvoa tuottavasta järjestelmästä uusi versio tuotantoon aina kun sille on tarve... kun tuotantoonvienti tapahtuu automatisoidusti, kontrolloidusti, laadukkaasti, ilmanerityisiä seremonioita... kun kehittäjät ja infra-osaajat yhdessä rakentavat tämän jatkuvan toimittamisen asennusputken, ja yhdessä ratkovat mahdolliset ongelmat ilman, että ristiin syytellään tilanteesta siilojen yli. Tarve aloittaa.. mikäli tuotantoonviennit ovat työläitä ja virhealttiita. simppelitkinpyynnöt makaavat pitkään IT:n/käyttöpalvelun työjonossa. kehitystiimeillä vaikeuksia näyttää projektin etenemää toimittamalla ehjää järjestelmää usein. Askel 1: Organisaatio tuo kehittäjiä (Devs) ja käyttöpalvelu-osaajia (Ops) työskentelemään yhdessä, rakentamaan jatkuvan toimittamisen kykyä. Askel 2: Ympäristöjen ohjelmallinen rakentaminen haltuun. Kaikki tuotettu materiaali versionhallintaan.
Tällaiselle tiimille voi vihdoin antaa kokonaisvastuun palvelun tuotannosta.
@SolitaOy #SolitaTech