LFCA: Naučite se okolj za uvajanje programske opreme – 23. del


Izvajanje DevOps-a je ključni element za vsako ekipo, ki dela in vzdržuje velike projekte. Kot je bilo razloženo v prejšnjih podtemah, DevOps zagotavlja ekipam orodja in procese, ki so potrebni za poenostavitev delovnih tokov in zagotavljanje agilnosti, potrebne za učinkovito delo, kar ima za posledico večjo produktivnost. Če torej želite, da vaše podjetje ostane pomembno v nenehno spreminjajočem se in konkurenčnem sodobnem okolju, potem sprejetje DevOps ni možnost.

[ Morda vam bo všeč tudi: Naučite se osnovnih konceptov DevOps ]

Ne glede na različna orodja in procese DevOps, za katere ste se odločili, najboljša praksa priporoča uporabo več okolij za uvajanje v vašem življenjskem ciklu razvoja programske opreme, da zagotovite, da so vaše aplikacije strogo preizkušene v vsaki fazi, preden so končno na voljo končnim uporabnikom.

Kaj je uvajanje pri razvoju programske opreme

Pri razvoju programske opreme se uvajanje nanaša na kombinacijo procesov in korakov, potrebnih za uvedbo ali dostavo popolne programske aplikacije končnemu uporabniku. Uvajanje poteka v fazah, zadnja faza pa je običajno vrhunec tednov ali mesecev temeljitega testiranja, da se zagotovi, da so napake in druge pomanjkljivosti odkrite in odpravljene.

Uporaba več okolij pri uvajanju zagotavlja, da je programska oprema temeljito preizkušena in da so potrebne posodobitve in funkcije potisnjene pred uvedbo končnega izdelka. Klasični model uvajanja je tristopenjska postavitev, ki vključuje naslednja okolja uvajanja.

Razvojno okolje je faza, kjer razvijalci uvedejo kodo. Idealno je stopnja, kjer imajo razvijalci prvo priložnost, da kodo preizkusijo za napake in pomanjkljivosti ter jih odstranijo.

To se šteje kot prva obrambna linija pred kakršnimi koli nedoslednostmi ali težavami z aplikacijo. Včasih je razvojno okolje lahko lokalni računalnik razvijalca, kjer delajo na kodi iz udobja svojih postaj.

Vse napake ali pomanjkljivosti programske opreme se najprej obravnavajo v razvojnem okolju, preden se nadaljuje v naslednjo fazo. To je intenziven postopek, ki se ponavlja, dokler ni mogoče razglasiti, da je aplikacija primerna za nadaljevanje na naslednjo stopnjo.

Ko se koda šteje za dokaj stabilno in robustno, se nato potisne v fazo uprizarjanja za dodatno testiranje. V uprizoritvenem okolju ekipa za zagotavljanje kakovosti (QA) dostopa do uprizoritvenega strežnika in izvaja preizkuse delovanja aplikacije, da zagotovi, da deluje, kot bi morala.

Testi pomagajo pri prepoznavanju področij, ki jih je treba izboljšati. Vse ugotovljene napake se sporočijo razvijalcem, po katerih se postopek zadovoljivo ponovi, koda pa se prenese na naslednjo stopnjo.

Ko je koda prestala vsa preverjanja zagotavljanja kakovosti, se nato razporedi v produkcijsko okolje. V produkcijskem okolju je aplikacija končno dostopna odjemalcu ali končnemu uporabniku. Produkcijsko okolje je lahko omrežje strežnikov v lokalnem podatkovnem centru ali arhitektura strežnikov v oblaku, ki se nahajajo na več geografskih lokacijah za redundanco in visoko razpoložljivost.

OPOMBA: Zgornja nastavitev je zelo poenostavljen pristop k uvajanju kode. Glede na zahteve vašega projekta so lahko dodatna okolja ali manj. Nekatere organizacije se lahko na primer stisnejo v predprodukcijsko okolje za natančnejše testiranje in zagotavljanje kakovosti tik preden lahko stranka dostopa do končnega izdelka v fazi proizvodnje. V drugih primerih je zagotavljanje kakovosti abstrahirano iz uprizoritvenega okolja in obstaja kot samostojno okolje.

Ko smo si ogledali poenostavljen 3-stopenjski model uvajanja, si oglejmo nekaj prednosti več okolij za uvajanje.

Prednosti uporabe več okolij za uvajanje

Da bi zagotovili, da je končni izdelek v skladu z oznako in čim bolj brez napak, je zelo priporočljivo temeljito testiranje v več okoljih. Toda to je le eden od razlogov za vzdrževanje več okolij za uvajanje. Druge prednosti vključujejo:

Eden od glavnih razlogov za uporabo različnih okolij uvajanja je zmanjšanje verjetnosti zloma aplikacije, če bi sprememba, ki je bila potisnjena v aplikacijo, negativno vplivala.

Večje spremembe je mogoče udobno izvajati v ločenih okoljih (razvoj in uprizoritev) namesto neposredno v živi aplikaciji v produkciji. Pri tem je lahko razvojna skupina mirna, da spremembe v drugih okoljih za testiranje ne bodo vplivale na aplikacijo.

Ker vam ni treba skrbeti, da bi zlomili aplikacijo v živo, lahko v drugih okoljih uvajanja naredite kakršne koli spremembe, ki se vam zdijo primerne. Poleg tega lahko po preizkušanju vse te spremembe potisnete v živo okolje naenkrat, ne da bi to storili v ločenih korakih, kar vam prihrani dragoceni čas.

Omejevanje dostopa do produkcijskih podatkov, ki se nahajajo v produkcijskih strežnikih, je v veliki meri pri zaščiti zaupnih in občutljivih informacij, kot so uporabniška imena, gesla in številke kreditnih kartic, pred nepooblaščenimi osebami. Razvijalci lahko uporabljajo navidezne podatke v razvojnem okolju za testiranje aplikacije, namesto da bi dostopali do občutljivih proizvodnih podatkov, kar predstavlja resno tveganje.

Več okolij zagotavlja vaši razvojni ekipi svobodo, da eksperimentirate v okoljih za testiranje in kar najbolje izkoristite svoje ustvarjalne ideje, saj ni tveganja, da bi posegali v živo kodo. Razvijalci lahko implementirajo boljše ideje in namestijo kodo na namenske testne strežnike, kjer lahko drugi preizkuševalci razmišljajo in posredujejo povratne informacije o tem, ali naj spremembe uvedejo v glavni kodni bazi.

V večini nastavitev DevOps boste zagotovo naleteli na več okolij uvajanja. Upoštevajte, da čeprav ima vsaka organizacija svojo edinstveno nastavitev, primarni koraki uvajanja ostajajo bolj ali manj enaki.

Na koncu dneva vam več okolij pomaga veliko hitreje pridobiti takojšnje povratne informacije od različnih ljudi in dosledneje odkrivati hrošče in druge pomanjkljivosti. Vsi preizkusi zmogljivosti in integracije se izvajajo brezhibno, preden se aplikacija končno uvede v produkcijo.