Virtualisointi Käytännön kokemuksia järjestelmien virtualisoinnista AKVA-seminaari 26.-28.9.2012 Asko Hentunen, Pivotal Consulting Oy
Agenda Sanastoa Virtualisointi mitä se tarkoittaa? Miksi virtualisointia tehdään? Edellytyksiä järjestelmien virtualisoinnin onnistumiselle Sudenkuoppia ja niiden välttäminen Muuta huomioitavaa
Sanastoa Tietojärjestelmä Käyttöliittymä Sovellustason logiikka Liiketoimintatason logiikka Yritystason logiikka Integrointialusta Sovellus Tietokanta, levypalvelut Käyttöjärjestelmä Palvelin Sovellusalusta IT-infrastruktuuri Tietoliikenne- ja lähiverkot Verkkoalusta Meta Groupin mukaan
Virtualisointi mitä se tarkoittaa? Virtalisoinniksi kutsutaan tekniikoita, joilla Pyritään eristämään käyttöjärjestelmä ja sovellus (palvelin)laitteistosta Pyritään jakamaan sovellusten tarvitsemaa alustan kapasiteettia useamman sovelluksen kesken Virtualisointia voidaan tehdä monella tasolla Palvelimissa (tässä: palvelinvirtualisointi) Työasemissa Virtuaalialusta voi olla asiakkaan yksiomaisessa käytössä (dedikoitu) tai yhteiskäytössä useamman asiakkaan kanssa (jaettu)
Virtualisointi mitä se tarkoittaa? Sovelluskartta, erillissovellukset eli siilot DB Levy Sovellus Sovellus Levy Liittymät Levy DB Levy Sovellus Sovellus Sovellus DB Sovellus DB Levy Levy Henkilöstö Talous Muut sovellukset
Virtualisointi mitä se tarkoittaa? Sovellukset virtuaalialustalla Liiketoimintasovellukset Tukisovellukset Työryhmäsovellukset Muut sovellukset Erillis- Sovellukset (siilot) Yhteinen IT-infrastruktuuri Virtuaalialusta Levy DB
Virtualisointi mitä se tarkoittaa? Palvelinvirtualisointi Palvelinvirtualisoinnissa Sovelluspalvelimen käyttöjärjestelmä eristetään laitteistosta virtuaalipalvelimeksi eli virtuaalikoneeksi Hypervisor-ohjelmistokerros eristää käyttöjärjestelmän laitteistosta Samalla laitteistolla voidaan ajaa useita virtuaalikoneita samanaikaisesti Sovellukset suoritetaan virtuaalikoneessa Tekniikkana esim. VMware (Windows- ja Linux-palvelinten virtualisointi) Microsoft Virtual Server ja Hyper-V (Windows-palvelinten virtualisointi) Citrix XenServer (Windows- ja Linux-palvelinten rinnakkaisvirtualisointi) Palvelinvirtualisointia tehdään laajasti keskuskone- ja Unixalustoilla Suomessa palvelinvirtualisointia ovat julkishallinnossa laajasti toteuttaneet esim. Puolustusvoimat (hallinnolliset järjestelmät) ja Valtiokonttori
Virtualisointi mitä se tarkoittaa? Tyypillinen (laaja) tietotekninen ympäristö Massatulostus Keskuskonekapasiteetti Unix/Linux/Windowspalvelinkapasiteetti (sovelluspalvelimet) Windows-palvelinkapasiteetti (infra-palvelimet) Tietoliikenneja lähiverkkokapasiteetti Tallennuskapasiteetti Hajautettu työasemaympäristö Henkilöresurssit (palvelutuotanto)
Miksi virtualisointia tehdään? Hyötyjä Hyötyinä mm. laitealustan tehokas käyttö, skaalautuvuus Jaetaan suoritin-, muisti-, levy- tai muuta kapasiteettia useiden sovellusten kesken Ei tarvitse varata kapasiteettia kullekin sovellukselle erikseen huipputarpeen mukaan Tyypillisesti yksittäinen sovellus käyttää 10-15% laitteiston kapasiteetista Voidaan lisätä tai vähentää kapasiteettia joustavasti ja nopeasti Esim. suoritin- tai muistikapasiteettia Myös kasvattaa virtuaalialustan kokoa lisäämällä palvelimia tai muistia Virtuaalipalvelinten lisäys ja poisto ovat helppoja ( naps ) Uusi tuotantoympäristö voidaan joustavasti siirtää tuotantoon Huom. Tarvitaan lisäksi tunnuksia, palomuuriavauksia, mahdollisesti etäyhteyksiä, ottamista kuormantasaukseen ja lokien keruuseen jne. Voidaan nopeasti luoda ja poistaa esim. testi- tai kehityspalvelimia tarpeen mukaan Esim. tuotantoympäristöä vastaava testiympäristö päivityksiä varten Tukee hyvin myös ns. ketterän kehittämisen tarpeita
Miksi virtualisointia tehdään? Hyötyjä lisää Hyötyinä lisäksi mm. toimintavarmuus, hallinnan tehokkuus Alustan laiterikot tai -päivitykset eivät näy sovelluksille Eivät ne näy kahdennetuissa järjestelmissä ilman virtualisointiakaan, mutta virtualisoituina hyöty tulee kaikille sovelluksille Virtuaalialustan laitteisto on monennettu (vikasietoisuus, kuormantasaus) Luotettava alusta antaa hyvää palvelutasoa kaikille alustalla toimiville sovelluksille Voidaan tinkiä yksittäisten sovellusten hallinnan (häiriönselvityksen) palvelutasoista Alustan palvelutasovaatimus on toki korkea Yhdenmukaisen alustan hallinta on tehokkaampaa ja halvempaa kuin useiden erillisten alustojen Säästää ympäristöä Sähkönkulutuksen, lämpökuorman ja tilan tarpeen pieneneminen
Edellytyksiä järjestelmien virtualisoinnin onnistumiselle Kustannussäästöjen toteutumisen edellytyksiä Virtualisointi yksinään ei johda suuriin kustannussäästöihin Muut mantrat Yhdistäminen (konsolidointi) Vakiointi ja optimointi Infran johtaminen Prosessit
Edellytyksiä järjestelmien virtualisoinnin onnistumiselle Kustannussäästöjen toteutumisen edellytyksiä Yhdistäminen (konsolidointi) Sovellukset tuodaan yhteiselle alustalle eli keskitetään Vakiointi ja optimointi Esim. sovellusten käyttämien tietokannan ja käyttöjärjestelmän versiot vakioidaan Optimoidaan esim. levyjen käyttö (Tier-ajattelu) Vakiointi ja optimointi koskee koko alustaa, sovelluskohtaisia poikkeamia ei sallita Infran johtaminen Yhteistä IT-infraa johdetaan aktiivisesti Mm. muutokset sovitaan yhteistyössä kaikkien käyttäjien kanssa Prosessit Jalkautetaan parhaita käytäntöjä, esim. ITIL
Edellytyksiä järjestelmien virtualisoinnin onnistumiselle Sovelluksiin liittyviä edellytyksiä Sovellukset rakennettu siististi Sovelluksen elinkaaren hallinta on kunnossa Tiedetään, miten sovellus toimii, mm. liittymät, eräajot Kuvattu menettelyt poikkeustilanteissa, valvonnan kohteet Sovellus ei käytä laitteisto- tai tietokantariippuvia toimintoja Sovelluksen käyttöoikeudet ovat kunnossa eikä sovellus vaadi erityisiä hallintatunnuksia Sovellusten tuki tuotantoympäristössä onnistuu ilman sovellustoimittajan osallistumista Sovellus ajan tasalla Mm. sovelluksen käyttämä tietokantaohjelmisto on ajan tasalla Dokumentaatio on ajan tasalla
Sudenkuoppia ja niiden välttäminen Kaikkia sovelluksia ei voi tai kannata virtualisoida Riippuu esim. sovelluksen elinkaaren vaiheesta Jotkut sovellukset ovat vanhoja ja ehkä tehty huonosti, virtualisointi vaatisi suuria sovellusmuutoksia Jotkut sovellukset ovat erittäin vaativia alustan suorituskyvylle, käyttävät maksimimäärän kapasiteettia koko ajan Virtuaalialustan suorituskyky voi olla ailahteleva tai heikentynyt Tyypillisesti n. 90% sovelluksista virtualisoituu Sovellustoimittaja otettava aikaisin mukaan selvittämään virtualisointia ja tekemään tarvittavia korjauksia Virtualisointia ei kannata tehdä ilman sovellustoimittajan osallistumista tai vastoin sen suositusta
Sudenkuoppia ja niiden välttäminen Virtuaalialusta suunniteltava ja toteutettava huolella Esim. virtuaalialusta ei saa edellyttää sekä suoritintehon että muistin samanaikaista ja suuruista lisäystä Sovellukset testattava perusteellisesti virtualisoinnin yhteydessä Sekä toiminnallisuus että suorituskyky, lisäksi mm. varmistusten palautus, varautuminen poikkeustilanteisiin Virtualisoinnille ja testauksille varattava riittävästi aikaa Virtualisointia ei laajassa ympäristössä kannata tehdä käyttöpalvelutoimittajaa vaihdettaessa Ensin joko vastuun siirto tai virtualisointi
Sudenkuoppia ja niiden välttäminen Virtuaalisen ympäristön hallinta muuttaa organisaation toimintaa ja vastuita Yhteistä IT-infraa johdettava joko keskitetysti tai yksiköiden rakentavassa yhteistyössä Yhteiselle IT-infralle nimettävä vastuuhenkilö Yhteistyötä tehtävä laajasti organisaation sisällä Organisaatio- tai sovelluskohtaisia poikkeamia vältettävä Yhteisen infran (virtuaalialusta, tietokantaklusteri, palomuurit, kuormantasaajat, SIEM, IDS/IPS) päivitykset sovittava yhdessä Parhaat käytännöt jalkautettava (viimeistään nyt) Esim. ITILin prosessit ja toimintatavat Yhteinen muutoshallinta jalkautettava, mm. CAB
Sudenkuoppia ja niiden välttäminen Sovellusten elinkaaren hallinta on välttämätöntä Sovellusten vaatimukset yhteiselle infralle tiedettävä etukäteen Yhteisen infran vaatimukset uusille tai muutettaville sovelluksille on huomioitava Muutokset yhteiseen infraan toteutettava koordinoituina projekteina Esim. tietokantaohjelmiston versiopäivitys
Muuta huomioitavaa Tietoturva suunniteltava huolellisesti Virtuaalialustaa koskevat samankaltaiset tietoturvauhat kuin fyysisiä alustoja Samalla alustalla on paljon sovelluksia, tietokantoja ja tietoa Suojaamaton virtuaalikone on vaarallinen koko alustalle Käyttöoikeuksien myöntämisen ja hallinnan tulee olla koordinoitua ja valvottua Tuotantoympäristöön pääsy tulisi rajoittaa vain pienelle joukolle järjestelmänhallinnan asiantuntijoita Toisaalta keskitetyn ympäristön tietoturva on mahdollista rakentaa kattavammaksi kuin erillisten siilojen Yhteiseen infraan voi olla taloudellista rakentaa kattava tietoturva päinvastoin kuin kaikille sovelluksille erikseen Esim. SIEM-lokitus, IDS/IPS, varmistusten otto ja säilytys Julkishallinnon täytettävä tietoturva-asetuksen vaatimukset
Muuta huomioitavaa Palvelusopimuksen teko yhteiselle alustalle vaatii kaikkien alustaa käyttävien osallistumista Yhteisen alustan palvelutasojen määritys Yksittäisten sovellusten palvelutasojen määritys Hinnoittelu ei suoraviivaista Yhteisen alustan kustannusten jyvitys sovelluksille? Kapasiteetin hinnoitteluun ei yleisesti sovittuja periaatteita Lisenssien hallinta tärkeää Yhteinen alusta voi vaatia uusien lisenssointimallien käyttöä Esim. tuotteiden lisenssointi voi perustua CPU-määrään
Kiitos! Kysymyksiä? Kommentteja?