A Folyamatos kézbesítés használata gyorsabb kiadáshoz, kisebb költségekkel és kockázatokkal

Befejeződött

A Folyamatos kézbesítés a DevOps-osztályozás nyolc képessége közé tartozik.

Ismerje meg, miért van szükség a folyamatos kézbesítésre

2012-ben egy szoftvertelepítési hiba 460 millió dolláros veszteséget okozott a Knight Capital Groupnak, az amerikai részvények legnagyobb kereskedőjének.

A veszteségek a piac megnyitásakor kezdődtek. Nem voltak hibák a kódban – a problémát egy olyan hiba okozta, amely a manuális üzembe helyezés során történt a nyolc éles kiszolgálójuk közül csak egynek.

Amikor megpróbálták kijavítani, mind a nyolc kiszolgáló helytelenül lett konfigurálva – így még több pénzt vesztettek. Mivel az összes üzembe helyezés manuális volt, nem tudták automatikusan visszaállítani a módosításokat.

Miután 45 percig próbálta kijavítani a problémát, végül leállították a teljes rendszert. Abban az időben 460 millió dollárt vesztettek.

Ez egy igazi történet. Milyen hatással lenne a szervezetére? Manuális üzembe helyezést végez?

Talán az egyetlen legfontosabb kérdés, amelyet fel kell tenni, hogy segítsen megérteni a kézbesítés teljesítményét egy szervezetben:

Fontos

Mekkora az üzembe helyezési fájdalom az éles környezetben?

Az a félelem és szorongás, amelyet a mérnökök és a műszaki személyzet éreznek, amikor kódokat küldnek az éles környezetbe, sokat elárulhatnak a csapat szoftverkézbesítési teljesítményéről.

Mi a folyamatos kézbesítés?

Fontos

A Folyamatos teljesítés egy szoftvermérnöki megközelítés, amelyben a csapatok rövid ciklusokban állítanak elő szoftvereket, biztosítva, hogy a szoftver a következő legyen:

  • Bármikor megbízhatóan kibocsátható
  • Manuális kiadás

A folyamatos kézbesítés célja:

  • Nagyobb sebességgel és gyakorisággal fejleszthet, tesztelhet és szabadít fel szoftvereket
  • A módosítások költségének, időpontjának és kockázatának csökkentése azáltal, hogy több növekményes frissítést tesz lehetővé az éles alkalmazásokban

A folyamatos kézbesítés a következő esetekben történik:

  • A szoftver üzembe helyezhető az életciklusa során
  • A folyamatos integráció és a kiterjedt automatizálás a szállítási folyamat minden lehetséges részén keresztül elérhető, jellemzően egy üzembehelyezési folyamat használatával
  • A szoftver bármely verziójának nyomógombos üzembe helyezését igény szerint bármilyen környezetben elvégezheti

Diagram shows the difference between continuous delivery and continuous deployment. The stages are the same in both cases: code done - unit tests - integrate - acceptance test - deploy to production. For continuous delivery, deployment to production happens manually. For continuous deployment, it's automatic.

A nagy manuális telepítések magas szintű kockázatot jelentenek azáltal, hogy drasztikusan növelik a kiadott szoftver összetettségét, ami növeli az emberi hibák valószínűségét, és megnehezíti az üzembe helyezési hibák azonosítását és orvoslását. Az üzembe helyezés gyakorisága alacsony, a módosítások átfutási ideje magas, a helyreállítás átlagos ideje hosszú, és magas a változáshibák aránya.

A kijelölt üzemeltetési csapat munkaidőn kívül hajtja végre a manuális üzembe helyezést. Manuális lépésdokumentumra és időre van szükségük a dokumentált lépések manuális teszteléséhez. A nagy üzemelő példányok végrehajtása is hosszabb időt vesz igénybe, sikertelenség esetén nehezebb visszahelyezni, és az üzembe helyezés után nagyobb tesztelési hatókörrel kell dolgozni. Az üzemelő példányonkénti módosítások száma nagyobb, és a visszajelzések végrehajtása több időt vesz igénybe.

A folyamat automatizálásával és annak lehetővé tételével, hogy a folyamatos kézbesítés előnyei jelentősek és számosak:

  • Kevesebb hulladék
  • Gyorsabb megtérülés
  • Alacsonyabb kockázat
  • Jobb minőség
  • Korai visszajelzés
  • Jobb tervezés
  • Gyorsabb együttműködés
  • Mindenki érintett
  • Kevesebb éles probléma
  • A bal oldali váltás lehetősége a biztonságra
  • Sokkal gyorsabban alkalmazkodik és reagál
  • Sokkal kiszámíthatóbb kiadások
  • Üzembe helyezés bármely munkaidőben
  • Gyorsabb válasz a piaci változásokra
  • Jelentős késedelem nélkül leszállított változás
  • A csapat bármely tagja kezdeményezhet üzembe helyezéseket
  • Gyors, megismételhető és konfigurálható üzembe helyezés

Diagram shows the circle of Continuous Delivery. The cycle goes from planning and tracking to development, building and testing, deployment, operation, monitoring and learning, and back to planning.

A 2019-ben a DevOps-jelentés szerint a nagy teljesítményű DevOps-szervezetek az alacsony teljesítményhez képest a következő eredményeket érik el:

  • Több mint 200-szor gyakoribb üzembe helyezés
  • A módosítások több mint 100-szor gyorsabb átfutási ideje
  • A helyreállítás több mint 2600-szor gyorsabb
  • Hétszer alacsonyabb hibaarány

Emellett a CA Technologies globális tanulmánya szerint a szervezetek akár 20%-os javulást is elérnek a piacra lépéshez és a megnövekedett bevételhez.

Diagram shows the advantages of high-performing DevOps organizations using Continuous Delivery over low performers.

Megjegyzés:

A folyamatos kézbesítés néha összekeveredik a folyamatos üzembe helyezéssel. A folyamatos üzembe helyezés azt jelenti, hogy minden változás végighalad a folyamaton, és automatikusan éles környezetbe kerül, ami naponta számos éles üzembe helyezést eredményez. A folyamatos teljesítés csak azt jelenti, hogy gyakori üzembe helyezéseket végezhet, de dönthet úgy, hogy nem, általában azért, mert a vállalkozások lassabb üzembe helyezést preferálnak. A folyamatos üzembe helyezéshez folyamatos kézbesítést kell végeznie.

A folyamatos integráció a folyamatos teljesítés előfeltétele. A jelenleg alkalmazott eljárások lehetővé teszik az alkalmazás bármikor és magas minőségben történő kiépítését és (megbízható) üzembe helyezését a forrásvezérlésből.

Diagram shows the relationship between Continuous Integration, Continuous Delivery and Continuous Integration