Blog

Mitä Cloud Native tarkoittaa?

MAR 6, 2018

Modernien järjestelmien rakentaminen

Martin Mosegaard Amdisen

Martin is a former employee of Praqma (acquired by Eficode in 2019).

Kuka tahansa Dilbert-johtaja voi piirtää valkotaululle pilven ja sanoa: ”Tuolla ohjelmistomme pyörii!” Mitä Cloud Native siis tarkalleen ottaen on, ja miksi siitä pitäisi välittää?

Cloud Nativelle on vaikea löytää yhtä tiivistä määritelmää. Sanat ”Cloud Native” voivat viitata pilveen suunniteltuun ohjelmistoon. Olet ehkä kuullut termistä Cloud Native Computing Foundationin yhteydessä. Sen peruskirjassa Cloud Native kuvataan uudeksi laskennan paradigmaksi, joka on optimoitu skaalautuviin moderneihin hajautettuihin järjestelmäympäristöihin. Se on avoimen lähdekoodin ja toimittajariippumaton lähestymistapa, jonka tarkoitus on auttaa rakentamaan kestäviä järjestelmiä: konttipaketoituja, dynaamisesti orkestroituja ja hallittuja sekä mikropalveluarkkitehtuuriin perustuvia ohjelmistoja.

Jos ohjelmistoja tekevät kehittäjät, keitä ovat Cloud Native -kehittäjät? Cloud Native -kehittäjät vastaavat sovelluksen koko elinkaaresta. Sovelluskoodin kirjoittamisen lisäksi he huolehtivat esimerkiksi käyttöönotosta, orkestroinnista ja monitoroinnista. Tämä on DevOps parhaimmillaan!

Tämä kuulostaa paljon full-stack-kehittäjältä tai 12-factor app -periaatteiden tuntemukselta. Näistä kahdestatoista periaatteesta on vaikea olla eri mieltä. Silti törmäämme yhä ohjelmistoihin, jotka eivät yksinkertaisesti ole riittävän vankkoja siirryttäessä kehityksestä tuotantoon.

Cloud Native Computing Foundation (CNCF) pyrkii parantamaan tilannetta tarjoamalla työkalukokonaisuuden, joka tukee koko elinkaarta.

Eivätkö kontit ratkaisseet kaiken?

Dockerista on tullut tuttu muotisana, sillä ohjelmistojen paketoimisesta ja ajamisesta konteissa on paljon hyötyä. Esimerkiksi infrastruktuuri koodina, käyttöönoton siirrettävyys ja toistettavat ympäristöt.

Pelkkä kontteihin siirtyminen ei kuitenkaan tarkoita, että voisit unohtaa operoinnin. Kuten Kris Buytaert totesi CoDe Conf 2017 -tapahtumassa, sinun on edelleen huolehdittava muun muassa monitoroinnista, lokituksesta, skaalauksesta ja monista muista operatiivisista asioista.

Cloud Native on konteissa ajettaville ohjelmistoille tarkoitettu työkaluekosysteemi. Cloud Native Computing Foundation kokoaa teknologioita teknisen ohjauskomitean kokeneiden asiantuntijoiden avulla.

Sopiiko Cloud Native minulle?

Kyllä! Ajatus oman ohjelmistoympäristön hallinnasta on varmasti kiinnostava kaikille. Cloud Native keskittyy konttiteknologioihin, mutta sen ei pitäisi pidätellä sinua.

Olet ehkä jo alkanut paketoida ohjelmistoasi kontti-imagoihin. Jos esimerkiksi aloitit ottamalla käyttöön pilvessä Docker Composen avulla, Kubernetes-orkestrointiin siirtymisestä voi olla hyötyä. Jos taas tarvitset todella monitorointia, Prometheus on rakennettu kontit huomioiden.

Vaikka kontit lähtivät liikkeelle Linuxista, Microsoft kehittää aluetta eteenpäin. Jos ohjelmistosi toimii Windowsissa, tutustu Windows-konttien dokumentaatioon ja Praqman aloitusoppaaseen.

Ehkä ohjelmistosi ei ole vielä valmis kontteihin. Aloita silloin CI-ympäristöstäsi: esimerkiksi Jenkins masterista, Artifactory-palvelimesta tai Chef-palvelimesta. Saat kokemusta uudenlaisesta toimintamallista niin, että vaikutus kohdistuu vain rajattuun käyttäjäjoukkoon.

Yhdistä tähän järjestelmiesi määrittely koodina, kuten Jenkins masterin konfigurointi, niin hallitset CI-palvelimiasi kuin ammattilainen! Käytätkö Atlassiania? Siirrä Atlassian-kokonaisuutesi Kubernetesin päälle, niin päivitykset ja skaalaus sujuvat vaivattomasti.

Mikropalveluiden käyttöön ottaminen voi olla sinulle hyvä valinta – tai sitten ei. Usein ihmiset eivät aloita kirjoittamalla mikropalveluita. Itse asiassa Martin Fowler puoltaa ajatusta ”mikropalvelulisästä”, ja tämä on täysin järkevää. Arkkitehtuurityylin oppimiseen liittyy lisätyötä, joka ei ole järkevää yksinkertaisissa järjestelmissä.

Cloud Native auttaa keskittymään siihen, miten ohjelmisto rakennetaan ja otetaan käyttöön, ei siihen, missä se toimii. Se tukee DevOps-työtapoja, kuten ympäristömäärittelyjen jakamista kehittäjien ja operointitiimien välillä sekä jatkuvaa kokeilua.

Kasvava yhteisö

Kuten monien avointen lähdekoodien ratkaisujen kohdalla, Cloud Native tarjoaa mahdollisuuden hyötyä kasvavasta yhteisöstä. Cloud Native Computing Foundation toimii teknologioiden tukena ja lähtöpisteenä. Lisäksi viime vuoden aikana on syntynyt monia Cloud Native -meetup-ryhmiä. Järjestämme ylpeinä Cloud Native -tapaamisia Kööpenhaminassa, Oslossa, Aarhusissa ja Göteborgissa. Järjestämme myös yhden päivän työpajan Cloud Native Oslossa. Lisäksi saatavilla on aiheeseen liittyviä Slack-ryhmiä, kuten Kubernetes Slack ja Danish Cloud Native Slack.

Miksi et liittyisi joukkoomme?

  • Cloud

Subscribe to our newsletter