Pienen pankin matka DevOpsiin Henri Heinonen & Joakim Sandström 28.04.2016
Hei, hauska tutustua! Tänään äänessä ovat Joakim Sandström Solution Architect Aktiassa vuodesta 2010 @sandstromj Henri Heinonen Team Leader - Application Platforms Aktiassa vuodesta 2006 @henksi Yhteisiä projekteja Verkkopankkiprojekti Peruspankkiprojekti DevOps-kulttuurin jalkauttaminen 2
3
4
Tietojärjestelmien sota Verkkopankki 2010-2012 5
Verkkopankkiprojektin toteutuksesta Uuden ja jännän äärellä Suurin Aktiassa tehty projekti siihen mennessä Java-devaajia ensimmäistä kertaa omille palkkalistoille Palveluarkkitehtuuri laajasti käyttöön Myös sisäisten sovellusten kehittämistä Ei yhteistä tekemisen kulttuuria - tekemisen siiloutuminen Yksi Aktia, monta IT:tä 6
Verkkopankin ympäristöstä Rautaa, hikeä ja kyyneliä Fyysisiä palvelimia kahdessa konesalissa + verkon aktiivilaitteet Ympäristön rakentaminen hidasta ja työlästä Sovellus ja sen vaatimat konfiguraatiot elävät omaa erillistä elämäänsä Asennusohjeet kehittyvät epäonnistuneiden käyttöönottojen ohjaamana Virheiden korjaaminen vaatii useamman ihmisen yhteistä ponnistusta Tuotantoympäristöön pääsy kiven alla Manuaaliset deploymentit ja toimenpiteet aina riskialttiita Osaavimmat kaverit eivät ole aina saatavilla 7
Palvelinten lukumäärä Vielä varsin maltillinen määrä palvelimia Integraatio Systeemitesti Tuotanto Linux 4 8 8 Solaris 0 2 2 Windows 0 0 0 Yhteensä 24 + kuormanjakokonfiguraatiot 18 kpl 8
Tietoturva-auditoinnit Juuri kun luulit kaiken olevan valmiina... Tietoturvatestaajat käyvät läpi järjestelmät, koodit ja konfiguraatiot Löydöksiä tulee, käsin korjaaminen hidasta Asioiden manuaalinen katselmointi syö tuhottomasti aikaa Otamme suuntaviivoja PCI-DSS stä mutta se ei ole auditointivaatimus 9
Horisontissa siintää uusi tapa toimia Asioita on voitava tehdä järkevämmin Versionhallinta, tikettienhallinta ja build-prosessit perustetaan Järjetön määrä manuaalista konfigurointia ja meilien vaihtoa Deploymentit tehdään käsin usean henkilön toimesta Eteneminen hidasta, virhealtista ja stressaavaa Asenna usein ja pieniä paloja!= true 1 0
Nopean kasvamisen ongelmat Tekemisen kulttuuri ei ehdi kasvaa mukana Kaikilla kiire hoitaa omat tiketit alta pois Kokonaisuutta ei ehditä arvioimaan Tekninen velka kasvaa huomaamatta Edes selkeitä toistuvia tehtäviä ei aina ehditä automatisoimaan 1 1
Miksi pankit eivät voisi toimia ketterämmin? Pinttyneitä käsityksiä ja sudenkuoppia Kankeat prosessit Ulkoistussopimukset Jäykkä organisaatio Vaikeat rajapinnat Ulkoistettu kehitys Tietoturva 1 2
1 3
Korporaation vastaisku Peruspankki 2013-1 4
Uusi suurempi taakka kannettavaksi Tekninen velka erääntyy maksettavaksi Aktia uudistaa peruspankkijärjestelmän ensimmäisenä Suomessa Verkkopankkiprojektista hyviä oppeja ja arkkitehtuuria Mutta ei juuri mitään konkreettista uudelleenkäytettävää Palvelinten, varusohjelmistojen ja konfiguraatioiden määrä räjähtää käsiin Liiketoiminnalla halu saada uusia tuotteita nopeammin markkinoille Aktia Bank chooses T24 to improve customer service and increase competitiveness http://www.temenos.com/en/news-and-events/news/20131/november/aktia-bank-chooses-t24/ 7.11.2013 1 5
Eikä siinä vielä kaikki Projektin scope on lukittu, mutta Verkkopankki uusiksi Sisäisiä sovelluksia uusiksi Lisää omia koodaajia ja kansainvälinen joukko konsultteja Ultramaraton vaatii uhrinsa! Fyysisiltä vammoilta ei vältytä. Kaizen-ajattelu - Miten voidaan tehdä paremmin? 16
Palvelinten lukumäärä Ei enää niin pientä puuhastelua Integraatio Systeemitesti Tuotanto Linux 8 28 38 Solaris 0 0 0 Windows 0 7 7 Yhteensä 88 + kuormanjakokonfiguraatiot ~40 kpl 17
Peruspankin ympäristöstä Rautaa, hikeä ja selkeitä tavoitteita Pääasiassa virtuaalipalvelimia Perusinfran rakentaminen hidasta ja todella monen ihmisen työ Rautamuurien lisäksi pavelinkohtaiset host-muurit Manuaalisessa ylläpitämisessä ei mitään järkeä Lokienhallinnan konfiguraatiot levitettävä kaikille palvelimille Manuaalisessa ylläpitämisessä ei mitään järkeä 1 8
IT-sankari kasvaa taakan mukana Voima on meissä vahvana Hostaajasta riippumattomat prosessit ja ratkaisut Päätös hyödyntää voimakkaasti virtualisointia Ajatus uudesta tavasta toimia siintää mielessä Puheissa automatisointi on uusi musta! Toistettavuus = luotettavuus 19
2 0
Nörtin paluu Jatkuva kehittyminen 2016-21
Mitä on DevOps? Yleisesti DevOps pohjana on kulttuuri, yhdessä tekeminen ja prosessien tehostamista ja automatisointia Onnnistuneen DevOpsin takana on prosessia tukevat ketterät työkalut eikä niin yksittäisen henkilön tai tiimin nimike Jos meillä on vanha tehoton tapa toimia ja me automatisoidaan se, saadaan automatisoitua tehottomuutta - Jyrki Kasvi 22
Mitä on DevOps - Kommunikointi? Liittyvät käsitteet ja Aktian toteutus Daily s HipChat JIRA Kollaboraatio Kommunikointi Muutoshallinta Dokumentointi Confluence 23
Mitä on DevOps - Työkalut? Liittyvät käsitteet ja Aktian toteutus Release Automation Powershell GPO Jenkins Tavoite on ettei tehdä mitään asennuksia tai konfigurointia käsin riippumatta käyttöjärjestelmästä tai komponentista Test Automation Ansible Puppet Satellite Jenkins Git - Toistettavuus Git 24
Mitä on DevOps - Organisaatio? Liittyvät käsitteet ja Aktian toteutus 25
DevOps perustaminen Baby steps.. Helpompi jos on uusi projekti Valitse pari tiimiä jotka jo ennestään tekevät hyvää työtä yhdessä Jakakaa työt, devaaja voi tehdä opsin töitä Ops voi opettaa paljon Devaajalle Käsitelkää infrastruktuuria kuin se olisi koodia Samat työkalut eivät välttämättä toimi kaikille arkkitehtuureille Jos ostat työkalun hanki myös (dedikoituja) resursseja (ylläpito, eteenpäin kouluttaminen) 26
DevOps pyörittäminen Älä unohda jatkuvaa parantamista Jakakaa success stories organisaation sisällä Pitäkää retrospektejä Vieraile muissa IT-yrityksissä Osallistu ulkopuolisiin kokoontumisiiin 27
Miten DevOps tehdään turvallisesti Uusien mahdollisuuksien mukana tulee uusia uhkia Työkalujen pääsynhallinta Työkalujen pitäminen ajan tasalla Muutosten seuranta ja 4- eyes Testauksen automatisointi Prosessien manuaalistepit 28
Esimerkki konfiguraationhallinnasta Host-palomuuri 29
Feature branch ja pull request 4-eyes 30
Ilmoitukset muutoksista Collaboraatiotyökalut hyötykäyttöön 31
Hälytysten integrointi Splunk + Jira 32
DevOps ja jatkuvuus Disaster Recovery ja laatu Vikatilanteista toipumisen pitäisi onnistua ilman nitroja Käyttis, sovelluspalvelin, konfiguraatiot ja sovellus automaattisesti Jatkossa myös infran aktiivilaitteiden konfiguraatiot (LB, muurit) Laatu Aina tasaista, ei riipu tekijän mielialasta ja verensokerista Toistettavuus Yllätyksiä ei pitäisi tulla (ei konfigurointeja prosessin ohi) DR-testaamisen pitäisi olla arkipäiväistä Varmistus (backup) on valmis vasta kun palautus (restore) on testattu onnistuneesti 33
Tietoturvan normaaliprosessi Osana päivittäistä elämää Automatisoidut jatkuvat tietoturvaskannaukset Kyberturvallisuuskumppanin kehittämä työkalu Skannaa kaikki verkkosegmentit sisältä päin Testaa myös ulkoverkkoon näkyvät palvelut Tarkempi PEN-testaus ja manuaalinen läpikäynti Isompien projektien yhteydessä Mikäli infrassa tai sovelluksissa suuria muutoksia Läpikäy käyttikset, varusohjelmistot, palomuuriavaukset yms. Linux-palvelinten automaattinen järjestelmänhallinta Käy palvelimia läpi säännöllisesti Raportoi löydökset Ehdottaa tarvittaessa korjaukset 34
Tietoturvan normaaliprosessi Reaaliaikainen tilannekuva Scanners DevTools Monit. Splunk Apps Network OS 35
DevOps ja tietoturvapoikkeamat Järjestelmien ajan tasalla pitäminen ja reagointi Monitorointi ja tilannekuvan päivitys Läpinäkyvyys korjausten etenemiselle Patchien hallinta ja julkaisu Reaktiiviset toimenpiteet 36
DevOps ja tietoturvapoikkeamat Erot vanhan ja uuden tavan välillä Vanha tapa Uusi tapa Koordinointi Raskas Kevyt Laajuuden selvitys Manuaalinen Automatisoitu Korjauksen status PP selvittää Ajan tasalla Korjaavat toimet Manuaalinen, sovittava Prosessi olemassa Kustannukset Suuret Pienet 37
DevOps ja tietoturvapoikkeamat Tilannekuvan muuttaminen Uusi poikkeama ei todennäköisesti vielä missään seurannassa Data voi jo olla olemassa > näkymien muutos Tilannekuvan muuttaminen tapahtuman mukaisesti Monitorointiskriptien levittäminen Uusi dashboard / hälytys lokienhallintajärjestelmästä 38
DevOps on yhdistelmä työkaluja, yhteistyötä ja halua kehittää tekemisen tapaa 39
Kysymyksiä, olkaa hyvä! Q&A 40