A probléma abból ered, hogy az iparág még mindig hajlamos úgy gondolni a fejlesztésre, a tesztelésre és a szoftverszállításra, mint egy angol nyelvű könyv sorainak olvasására, amivel balról jobbra haladunk. Ha biztonsági sérülékenységeket keresve valaki a fejlesztési folyamat végén (azaz jobb szélén) teszteli a szoftverét, akkor annak azt tanácsoljuk, hogy a tesztelést "tolja balra", vagyis a biztonsági tesztelést végezze el a fejlesztési folyamat korábbi szakaszában. A balra tolásnak azonban nincs sok értelme, mivel a DevOps nem a vízesés modellből ismert lineáris szoftverfejlesztési módszer. A DevOps körkörös, ahogyan azt az alábbi ábra szemlélteti.
Múltból ismert, sokkal inkább lineáris folyamatoktól eltérően a DevOpsnak ezért nincs igazán sem jobb, sem bal vége. A Dev (fejlesztés) persze a jobb oldalon, az Ops (üzemeltetés) pedig a bal oldalon helyezkedik el, de a DevOps folyamata inkább egy fekvő nyolcasra, végtelen hurokra hasonlít, amelynek nincs kezdete és vége. A Dev folyamat sosem ér véget, miként az Ops folyamat sem. Ha valaki balra tolna valamit a felső ábrán, akkor a "bal" merre lenne?
Sokkal hasznosabb tanács ezért a középre tolás, azaz a megoldások alkalmazásbiztonsági tesztelése a Dev folyamat egészén keresztül. Következzen egy hasonlat, amely jobban megvilágítja a balra tolás lényegét és azt is, hogy valójában miért nem illik a DevOps-ba.
Egyenes vonalú kontra körkörös mozgás - egy hasznos hasonlat
Amikor vonaton utazunk, és valaki szeretne fel- vagy leszállni, akkor mit tesz a szerelvény? Megáll, hogy az utasok leszállhassanak és felszállhassanak. A vonat ezt követően lassan elindul, majd felgyorsul, de a vonalon előre haladva a következő állomásnál ismét megáll. Egyértelmű, hogy szoftvermegoldásaink biztonsági tesztelését nem ezen a módon szeretnénk hozzáadni DevOps-kezdeményezéseinkhez, mivel ez szinte biztosan katasztrófához vezetne. A folyamatos integráció és folyamatos szállítás (Continuous Integration and Continuous Delivery, CI/CD) lényege, hogy a "vonat" sosem állhat meg. Lássunk ezért egy jobb hasonlatot, amely segít megérteni a DevOps-folyamatokban történő biztonsági tesztelés új módszerét.
A London Eye a világ egyik legmagasabb óriáskereke, amelynek külön érdekessége, hogy amikor nyitva tart és üzemel, sosem áll meg az utasok be- és kiszállásához. Az emberek persze beszállnak és kiszállnak, de az óriáskerék zavartalanul forog. A kör utasai közül senki sem tudja, hogy a többi gondolába mások mikor szállnak be, vagy azokból mikor szállnak ki, mert ez a saját menetük élményét egyáltalán nem befolyásolja. A vállalatoknak is ebben kell gondolkodniuk, amikor a szoftverbiztonságot hozzáadják DevOps-környezetükhöz - olyan módon tegyék, hogy a fejlesztés és a szállítás folyamatát ez sose állítsa meg. Az új szoftverkezdeményezéseket úgymond a bal oldalon szállítsák fel a "kerékre", miközben a régieket vezessék ki a jobb oldalon, gyakorlatilag szállítsák le őket a menetről.
További érdekessége a koncepciónak, hogy a fenti ábrán látható módon két "kerékkel" van dolgunk. Balra a Dev, jobbra az Ops helyezkedik el. Az új üzleti követelmények által életre hívott, friss szoftverkezdeményezések a Dev folyamat szakaszain - tervezés, kódolás, ellenőrzés, kiadás, tesztelés és minőségbiztosítás - haladnak keresztül, majd az Ops folyamat lépései - bevezetés, üzemeltetés és monitorozás - következnek.
Figyelmet érdemel, hogy a keresztezési ponton a szoftver úgy halad át egyik kerékről a másikra, hogy azok mozgását nem állítja meg, így remélhetőleg nem okoz fennakadást. Egyszerű hasonlattal élve két, egymás mellé épített London Eye óriáskereket képzeljünk el, amelyek egy ponton összeérnek. Az utasok a bal oldali kerék gondoláiból itt menet közben, megállás vagy késlekedés nélkül átszállnak a jobb oldali kerék gondoláiba anélkül, hogy a két menet bármelyikét elhagynák.
Fejtegetésemmel a balra tolás felfogását vitattam, mivel annak a fenti ábrán bemutatott kettős spirál végtelen hurkában nincs sok értelme. A DevOpsban valójában nincs "balra" mozgatás. Hogyan ágyazzák be akkor a szervezetek a biztonságot a bal oldalon látható Dev "kerékbe"? Kezdetnek töltsék le és olvassák el az An Integrated Approach to Embedding Security into DevOps című e-könyvet, amely részletesen bemutatja, hogy a vállalatok miként tolhatják középre és adhatják hozzá a szoftverbiztonságot a Dev folyamat egészéhez.