Tutustu DevOps-matkaan
Muista, että tavoitteena on lyhentää syklin aikaa. Aloita julkaisuputkesta - tämä on usein suurin rajoitus. Kysy itseltäsi: Kuinka kauan yhden koodirivin tai kokoonpanon muutoksen käyttöönotto kestää? Tästä käyttöönottoajasta tulee lopulta jarru nopeudellesi ja kyvyllesi reagoida markkinoiden muutoksiin.
Esimerkki DevOps-toteutuksen etenemissuunnitelmasta
Vaihe 1: Perustaminen
- Luo versionhallinta Gitin avulla
- Toteuta CI/CD-perusputki
- Määritä valvonta ja hälytykset
Vaihe 2: Automaatio
- Automatisoi testaus useilla tasoilla
- Toteuta infrastruktuuri koodina
- Luo tietoturvatarkistus
Vaihe 3: Optimointi
- Hienosäädä käyttöönottostrategioita
- Ota käyttöön edistynyt valvonta
- Optimoi suorituskyky ja kustannukset
Vaihe 4: Kulttuuri ja mittakaava
- Laajenna käytäntöjä eri tiimeihin
- Perusta osaamiskeskuksia
- Paranna prosesseja jatkuvasti
DevOpsin ydinkäytännöt ja niiden vaikutus
Jatkuva integrointi
Ohjaa jatkuvaa koodin yhdistämistä ja testausta, mikä johtaa vikojen varhaiseen havaitsemiseen. Etuja ovat muun muassa seuraavat:
- Vähentyneet integrointiristiriidat: Yhdistämisongelmat havaitaan tunneissa, ei viikoissa
- Nopeampi palaute: Kehittäjät tietävät ongelmista muutamassa minuutissa koodin toimittamisesta
- Parempi koodin laatu: Automaattinen testaus havaitsee regressiot välittömästi
- Lisääntynyt luottamus: Tiimit voivat refaktoroida ja parantaa koodia turvallisesti
Käyttöönottovinkki: Aloita automaattisilla koontiversioilla jokaisessa toimituksessa ja lisää sitten vähitellen testaustasoja.
Jatkuva toimitus
Mahdollistaa ohjelmistoratkaisujen nopean käyttöönoton tuotanto- ja testausympäristöissä, mikä auttaa organisaatioita korjaamaan virheet nopeasti ja vastaamaan jatkuvasti muuttuviin liiketoimintavaatimuksiin.
Tärkeimmät edut:
- Pienempi käyttöönottoriski: Pienempien, toistuvien julkaisujen vianmääritys ja peruuttaminen on helpompaa
- Nopeampi markkinoilletuloaika: Ominaisuudet tavoittavat asiakkaat viikkoja tai kuukausia aikaisemmin
- Parempi luotettavuus: Automatisoidut käyttöönotot poistavat inhimilliset virheet
- Parempi asiakasreagointikyky: Nopea reagointi palautteeseen ja markkinoiden muutoksiin
Huomioon otettavat käyttöönottostrategiat:
- Sinivihreä: Käyttöönotto ilman seisokkeja ja välitön palautusmahdollisuus
- Canary: Asteittainen käyttöönotto käyttäjien osajoukolle riskien minimoimiseksi
- Ominaisuusliput: Ota koodi käyttöön paljastamatta ominaisuuksia, mikä mahdollistaa turvallisemmat julkaisut
Versionhallinnan erinomaisuus
Yleensä Git-pohjaisella arkistolla toteutettu versionhallinta antaa tiimeille ympäri maailmaa mahdollisuuden kommunikoida tehokkaasti päivittäisten kehitystoimien aikana ja integroida ohjelmistokehitystyökaluihin toimintojen, kuten käyttöönoton, seurantaan.
Edistyneet Git-käytännöt:
- Haarautumisstrategiat: GitHub Flow tai runkopohjainen kehitys
- Koodin tarkistusprosessit: Pull-pyynnöt, joissa on pakolliset hyväksynnät
- Toimituskäytännöt: Johdonmukaiset, merkitykselliset toimitusviestit
- Integrointikoukut: Automatisoidut testauksen ja käyttöönoton laukaisimet
Yrityksen näkökohdat:
- Arkiston organisointi ja käyttöoikeuksien hallinta
- Suurten tiedostojen käsittely (Git LFS)
- Vaatimustenmukaisuus- ja auditointivaatimukset
- Varmuuskopiointi ja katastrofipalautus
Ketterä suunnittelu ja Lean-projektinhallinta
Käytä ketterää suunnittelua ja lean-projektinhallintatekniikoita maksimoidaksesi arvon tuottamisen:
Sprintin suunnittelun parhaat käytännöt:
- Suunnittele ja eristä työ hallittaviin sprintteihin (1-4 viikkoa)
- Hallitse tiimin kapasiteettia ja auta tiimejä sopeutumaan nopeasti muuttuviin liiketoimintatarpeisiin
- Määrittele selkeät hyväksymiskriteerit ja valmiin määritelmä
- DevOps-määritelmä Done sisältää toimivan ohjelmiston, joka kerää telemetriaa suunniteltuja liiketoimintatavoitteita vastaan
Tärkeimmät ketterät artefaktit:
- Käyttäjätarinat: Käyttäjän näkökulmasta kuvatut ominaisuudet, joilla on selkeä arvo
- Eepos: Suuret ominaisuudet jaettuna hallittaviin tarinoihin
- Backlog: Priorisoitu luettelo ominaisuuksista ja teknisestä velasta
- Sprintin tavoitteet: Selkeät tavoitteet jokaiselle iteraatiolle
Lean-periaatteet:
- Hävikin poistaminen prosesseista ja luovutuksista
- Optimoi työnkulkuun, älä resurssien käyttöön
- Rakenna laatua alusta alkaen
- Toimita arvoa ajoissa ja usein
Kattava valvonta ja kirjaaminen
Valvo käynnissä olevia sovelluksia, mukaan lukien tuotantoympäristöt, sovellusten kuntoa ja asiakkaiden käyttöä varten. Tämä auttaa organisaatioita luomaan hypoteeseja ja vahvistamaan tai kumoamaan strategioita nopeasti. Monipuoliset tiedot tallennetaan eri kirjausmuotoihin.
Pinokomponenttien valvonta:
- Sovelluksen suorituskyvyn seuranta (APM): Seuraa vasteaikoja, virheitä ja suorituskykyä
- Infrastruktuurin valvonta: suoritin, muisti, levy, verkkomittarit
- Liiketoiminnan mittarit: Käyttäjien sitoutuminen, konversioprosentit, ominaisuuksien käyttö
- Tietoturvan valvonta: Uhkien havaitseminen ja vaatimustenmukaisuuden seuranta
Havainnoitavuuden parhaat käytännöt:
- Hajautetun jäljityksen toteuttaminen mikropalveluissa
- Käytä strukturoitua kirjaamista korrelaatiotunnusten kanssa
- Ennakoivien hälytysten määrittäminen minimaalisilla väärillä positiivisilla tuloksilla
- Luo koontinäyttöjä eri kohderyhmille (ops, kehittäjä, yritys)
Lokien hallintastrategia:
- Keskitetty kirjaaminen hakuominaisuuksilla
- Vaatimustenmukaisuusvaatimuksiin perustuvat säilytyskäytännöt
- Kustannusten optimointi lokitason hallinnan avulla
- Reaaliaikainen analyysi kriittisiin ongelmiin
- Julkiset ja hybridipilvet ovat tehneet mahdottomasta helpon. Pilvipalvelu on poistanut perinteiset pullonkaulat ja auttanut hyödykkeissä infrastruktuurin käytössä. Voit käyttää Infrastructure as a Service (IaaS) -palvelua olemassa olevien sovellusten tai PaaS(Platform as a Service) -sovelluksen nostamiseen ja siirtämiseen ennennäkemättömän tuottavuuden saamiseksi. Pilvipalvelu antaa sinulle palvelinkeskuksen ilman rajoituksia.
- Infrastructure as Code (IaC): Mahdollistaa ympäristöjen luomisen ja purkamisen automatisoinnin ja vahvistamisen suojatun ja vakaan sovellusten isännöintiympäristöjen tarjoamisen varmistamiseksi.
- Mikropalveluarkkitehtuurin avulla voit eristää liiketoiminnan käyttötapaukset pieniksi uudelleenkäytettäviin palveluihin, jotka viestivät liittymäsopimusten kautta. Tämä arkkitehtuuri mahdollistaa skaalattavuuden ja tehokkuuden.
- Säilöt ovat virtualisoinnin seuraava kehityskulku. Ne ovat paljon kevyempiä kuin näennäiskoneet, mahdollistavat paljon nopeamman nesteytyksen ja voivat helposti määrittää tiedostoja.
DevOps voi aluksi sattua - mutta vältä näitä antimalleja
Jos se sattuu, tee se useammin. Uusien käytäntöjen käyttöönotto kuntosalille menemisestä sattuu todennäköisesti ensin. Mitä enemmän käytät uusia tekniikoita, sitä helpommin niistä tulee.
Kuten kuntosalilla harjoittelu, jossa harjoittelet ensin suuria lihaksia ennen pieniä lihaksia, ota ensin käyttöön käytäntöjä, joilla on merkittävin vaikutus. Harjoittele ristiin kehittääksesi synergiaa käytäntöjen välillä.
Yleisiä DevOps-antimalleja, joita kannattaa välttää:
Työkalulähtöinen lähestymistapa: Älä aloita ostamalla työkaluja. Aloita ymmärtämällä nykyinen tilasi ja haluamasi tulokset.
Alkuräjähdyksen muutos: Vältä yrittämästä muuttaa kaikkea kerralla. Aloita pienestä ja laajenna vähitellen.
DevOps-tiimin siilo: Älä luo erillistä "DevOps-tiimiä". DevOps on käytäntö, ei rooli.
Kulttuurin huomiotta jättäminen: Tekniset muutokset ilman kulttuurista muutosta epäonnistuvat. Investoi ihmisiin ja prosesseihin.
Turvatarkastuksen ohittaminen: Älä kiinnitä turvaa lopussa. Integroi suojaus kautta (DevSecOps).
Liiallinen suunnittelu: Aloita yksinkertaisesta ja lisää monimutkaisuutta vain tarvittaessa. Vältä ennenaikaista optimointia.
Perinnön huomiotta jättäminen: Älä hylkää olemassa olevia järjestelmiä. Suunnittele asteittaiset modernisointistrategiat.
Menestysmallit, jotka kannattaa omaksua:
Aloita vaikuttavilla ja vähäriskisillä muutoksilla: Automatisoi koontiversiot ennen käyttöönottoa
Mittaa kaikki: Määritä lähtötasot ennen muutosten tekemistä
Epäonnistu nopeasti ja opi: Hyväksy kokeilu asianmukaisilla suojatoimilla
Investoi automaatioon: Automatisoi ensin toistuvat, virhealttiit tehtävät
Rakenna palautesilmukoita: Luo mekanismeja, joiden avulla voit oppia sekä onnistumisista että epäonnistumisista
Muistiinpano
Lähdeartikkeli määrittelee DevOpsin tarjoaa lisäkontekstia ja yksityiskohtaisia selityksiä näistä käsitteistä.