SRE:n periaatteiden ympärille on rakentunut mittava kokoelma käytäntöjä niin tuotanto-ongelmien tehokkaaseen ratkaisemiseen kuin luotettavien ja itsekorjautuvien järjestelmien kehittämiseen.
Vuonna 2016 julkaistu kirja, Site Reliability Engineering, kertoo Googlen näkemyksen SRE:stä ja kuinka Google hyödyntää SRE:iä heidän sovelluspalveluiden kehityksessä.
1. Kehitystyön ohjaaminen riskejä hallitsemalla
Sen sijaan, että yritettäisiin optimoida jokaisen järjestelmän luotettavuutta loputtomiin, SRE hyväksyy järjestelmien toimivan määriteltyjen palvelutasotavoitteiden (Service Level Objective, SLO) puitteissa. (Esimerkiksi palvelun tavoite on olla alhaalla maksimissaan 3 minuuttia kuukaudessa.)
Mitä matalampi palvelutason tavoite on, sitä enemmän kehitystiimillä on varaa tuottaa virheitä muutoksia julkaistessa. Jos tavoitteissa ei pysytä, vain virheitä korjaavat toimenpiteet sallitaan.
2. Mittaaminen
Jotta riskejä voidaan hallita, tarvitaan keino mitata, kuinka hyvin palvelu pysyy sille määriteltyjen tavoitteiden sisällä. Mittaus voidaan pohjata palveluista saatavaan metriikka- ja lokidataan.
3. Ylläpitotehtävien automatisointi
SRE:ssä palvelujen ylläpito nähdään ensisijaisesti sovelluskehityshaasteena. Tavoitteena on automatisoida mahdollisimman moni ylläpitotehtävistä, sen sijaan, että kehittäjät itse käsin korjaisivat palveluissa havaitut häiriöt. Ilman automatisointia ylläpitäjien määrää olisi kasvatettava palvelun järjestelmien kasvaessa. Tilannetta voidaan hallita asettamalla raja puurtamiselle (engl. toil), eli manuaalisille ylläpitotehtäville.
Esimerkiksi Googlen SRE-kehittäjät saavat puurtaa enintään puolet kehitykseen käytettävästä ajasta, loput ajasta on hyödynnettävä automatisointiin. Näin varmistetaan, että palvelu kehittyy jatkuvasti eteenpäin eikä jää jumiin vikojen korjaamiseen.
DevOps voidaan nähdä ideologiana, jolla digitaalisia palveluja tuotetaan siten, että ohjelmiston kehitykseen, asennukseen, testaukseen ja ylläpitoon liittyviä tehtäviä automatisoidaan ja samalla poistetaan eri yksiköiden väliset siilot.
Site Reliability Engineering eli SRE ei varsinaisesti ole DevOpsin kanssa kilpaileva vaihtoehto, vaan pikemminkin DevOpsin periaatteita noudattava konkreettinen toteutus. DevOps on siis väljä ylätason malli ja SRE hyväksi havaittu tapa toteuttaa sitä käytännössä. SRE:ssä on kiinnitetty huomiota erityisesti toimintamallin ja järjestelmien skaalautuvuuteen ja luotettavuuteen.
Eli lyhyesti, DevOps kertoo, mitä on tehtävä ja SRE taas osoittaa, miten se tehdään käytännössä.
Katso ohesta Googlen tuottama video siitä, miten DevOps ja SRE eroavat toisistaan:
Tervetuloa Site Reliability Engineering (SRE) Foundation℠ -valmennukseen.