Kihagyás

5. Build, release, run

Szigorúan elkülönített építési és futási fázisok

Egy kódbázis három fázison keresztül alakul át egy (nem fejlesztési) telepítéssé:

  • Az építési fázis átalakítja a kódtárat egy végrehajtható csomaggá, amit építésnek nevezünk. Az építési fázisban a telepítési folyamat által meghatározott commiton lévő kódverzióval a függőségeket letölti és a binárisokat és erőforrásokat lefordítja.
  • A kiadási fázis összekapcsolja az építési fázisban létrehozott buildet a telepítés aktuális konfigurációjával. Az eredményül kapott kiadás tartalmazza mind az épített kódot, mind a konfigurációt, és azonnal futtatható a futási környezetben.
  • A futási fázis (más néven "futásidejű") az alkalmazást futtatja a végrehajtási környezetben, a kiválasztott kiadás valamelyikét használva, indítva az alkalmazás folyamatainak valamilyen készletét.

A kód válik építetté, amit összekapcsolnak a konfigurációval, hogy kiadás jöjjön létre.

A tizenkét tényezős alkalmazás szigorúan elkülöníti az építési, kiadási és futási fázisokat. Például, lehetetlen a kódot futás közben módosítani, mivel nincs mód ezeket a változtatásokat visszajuttatni az építési fázisba.

A telepítési eszközök általában kiadáskezelő eszközöket is kínálnak, különösen a korábbi kiadásra való visszalépés lehetőségét. Például, a Capistrano telepítési eszköz a kiadásokat a releases nevű almappában tárolja, ahol az aktuális kiadás egy szimbolikus hivatkozás a jelenlegi kiadás könyvtárára. A rollback parancs segítségével könnyedén visszatérhetünk egy korábbi kiadáshoz.

Minden kiadásnak mindig egyedi kiadásazonosítóval kell rendelkeznie, például a kiadás időbélyegével (például 2011-04-06-20:32:17) vagy egy növekvő számmal (például v100). A kiadások egy append-only nyilvántartást képeznek, és a kiadás nem módosítható, miután létrejött. Bármely változtatásnak új kiadást kell létrehoznia.

Az építések a fejlesztők által kezdeményezett események, amikor új kód kerül telepítésre. A futási végrehajtás viszont automatikusan megtörténhet olyan esetekben, mint például a szerver újraindítása vagy egy összeomlott folyamat újraindítása a folyamatkezelő által. Ezért a futási fázist minimális mozgó alkatrészekkel kell tartani, mivel olyan problémák, amelyek megakadályozzák az alkalmazás futását, éjszaka, a fejlesztők távollétében okozhatnak hibákat. Az építési fázis bonyolultabb lehet, mivel a hibák mindig előtérben vannak egy telepítést irányító fejlesztő számára.