A rövid ciklusú fejlesztési eljárás (continuous delivery, CD) egy szoftverfejlesztő megközelítés, amelyben a csapatok rövid ciklusokban gyártanak szoftvereket, biztosítva, hogy a szoftver bármikor megbízhatóan elkészüljenek, és a szoftver kiadásakor manuálisan telepíthető legyen. Célja, hogy nagyobb sebességű és gyakoriságú szoftvereket építsenek ki, teszteljenek és adjanak ki. A megközelítés segít csökkenteni a költségeket, időt és a változások biztosításának kockázatát azáltal, hogy lehetővé teszi az éles alkalmazások további növekményes frissítéseit. Az egyszerű és megismételhető üzembe helyezési folyamat fontos a folyamatos kézbesítéshez.
A CD ellentétben áll a folyamatos telepítéssel (continuous deployment), amely hasonló megközelítést alkalmaz, amelyben a szoftver rövid ciklusokban, de manuális telepítés helyett automatizált telepítéseken keresztül is elkészül.
A rövid ciklusú fejlesztési eljárás és DevOps hasonló a jelentésükben, és gyakran használják együtt a kettőt, de a kettő, két különböző fogalom. DevOps szélesebb körű,és a kulturális változások köré épül, különösen a szoftverszállításban részt vevő különböző csapatok (fejlesztők, műveletek, minőségbiztosítás, menedzsment stb.) együttműködése, valamint a szoftverkézbesítés folyamatainak automatizálása. A rövid ciklusú fejlesztési eljárás viszont a teljesítési szempont automatizálásának egyik megközelítése, és a különböző folyamatok összefogására, gyorsabb és gyakoribb végrehajtására összpontosít. Így a DevOps lehet a rövid ciklusú fejlesztési eljárás terméke, és a rövid ciklusú fejlesztési eljárás közvetlenül a DevOps-ba áramlik.
A rövid ciklusú fejlesztési eljárás célja, hogy olyan szoftvereket szállítson, amelyek bármikor telepíthetők manuális kiadásokon keresztül; ezzel ellentétben áll az automatizált telepítéseket használó folyamatos telepítéssel. Martin Fowler szerint a folyamatos telepítése, folyamatos szállítást igényel. Az akadémiai szakirodalom a telepítési módszer szerint különbséget tesz a két megközelítés között; kézi vs automatizált.
A rövid ciklusú fejlesztési eljárás a telepítési folyamat általános fogalmát Poka-Igaként kezeli :egy sor olyan ellenőrzés , amelyen keresztül egy szoftvernek át kell haladnia a kiadása útján . A kódot szükség esetén lefordítják, majd egy build kiszolgáló csomagolja minden alkalommal, amikor egy módosítást véglegesítenek egy forrásellenőrző tárházban,majd számos különböző technikával tesztelik (esetleg manuális teszteléssel), mielőtt újra lemérhetőként megjelölhető lesz.
Előfordulhat, hogy a hosszú ciklusidőt korábban a fejlesztőknek meg kellett változtatniuk a gondolkodásmódjukat, amikor CD-környezetben dolgoztak. Fontos megérteni, hogy a kódvéglegesítés bármikor kiadható az ügyfeleknek. Az olyan minták, mint például a szolgáltatásváltás, nagyon hasznosak lehetnek a kód korai véglegesítéséhez, amely még nem áll készen a végfelhasználók általi használatra. A NoSQL használatával kiküszöbölheti az adatáttelepítések és sémamódosítások lépéseit, gyakran manuális lépéseket vagy kivételeket használnak a rövid ciklusú fejlesztési eljárás munkafolyamataihoz. A kód külön-külön történő fejlesztésének egyéb hasznos technikái, mint például a kódelágazás, nem elavultak a CD-világban, de azokat a CD-k elveihez kell igazítani - például több hosszú élettartamú kód ág futtatása kivitelezhetetlennek bizonyulhat, mivel a CD-folyamat korai szakaszában újra felszerelhető műterméknek egyetlen kód elágazásból kell megépítenie, ha a csővezeték minden fázisán át kell haladnia.
A rövid ciklusú fejlesztési eljárás engedélyezve van a telepítési folyamaton keresztül. A telepítési folyamat célja három összetevőből áll: láthatóság, visszajelzés és folyamatos üzembe helyezés.
A rövid ciklusú fejlesztési eljárás az automatizálást a forrásvezérléstől egészen a termelésig veszi. Vannak különböző eszközök amik segítenek megvalósítani az egész folyamatot vagy annak egy részét. Ezek az eszközök a telepítési folyamat részét képezik, amely magában foglalja a folyamatos szállítást. A folyamat különböző részeit végrehajtó eszközök típusai a következők: folyamatos integráció, alkalmazáskiadás-automatizálás, buildautomatizálás, alkalmazáséletciklus-kezelés.
A rövid ciklusú fejlesztési eljárás hatékony gyakorlásához a szoftveralkalmazásoknak meg kell felelniük az építészetileg jelentős követelményeknek, például a telepíthetőségnek, a módosíthatóságnak és a tesztelhetőségnek. Ezek a befutó- és befutó-k magas prioritást igényelnek, és nem lehet őket könnyedén elcserélni.
Mikroszolgáltatások gyakran használják, ha a folyamatos szállítás tervezése. A mikroszolgáltatások használata növelheti a szoftverrendszer telepíthetőségét és módosíthatóságát. A megfigyelt üzembe helyezési fejlesztések a következők: üzembe helyezési függőség, rövidebb üzembe helyezési idő, egyszerűbb üzembe helyezési eljárások és nulla állásidő-telepítés. A megfigyelt módosíthatósági fejlesztések a következők: rövidebb ciklusidő a kis növekményes funkcionális változásokhoz, egyszerűbb technológiakiválasztási változások, növekményes minőségi attribútumváltozások, valamint egyszerűbb nyelvi és könyvtár frissítések.
A CD-könyvet Jez Humble írta és David Farley népszerűsítette a kifejezést, de mivel annak létrehozása a meghatározás továbbra is változik, most már egy fejlettebb jelentése van. A vállalatok ma végrehajtják ezeket a folyamatos teljesítési elveket és bevált gyakorlatokat. A domainek közötti különbségek, pl. orvosi vs. web, még mindig jelentősek, és befolyásolják a végrehajtást és a használatot. A jól ismert vállalatok, amelyek ezt a megközelítést közé tartozik a Yahoo!, Amazon, Facebook, Google, Paddy Powerés a Wells Fargo.
A rövid ciklusú fejlesztési eljárás számos előnyéről számoltak be.
Az akadályokat is megvizsgálták.
Chen nyolc további örökbefogadási kihívást vetett fel és dolgozott ki. Ezek a kihívások a szervezeti felépítés, a folyamatok, az eszközök, az infrastruktúra, a régi rendszerek, a CD-k megtervezése, a nem funkcionális követelmények folyamatos tesztelése és a tesztek végrehajtásának optimalizálása területén vannak.
Számos stratégiát jelentettek a rövid ciklusú fejlesztési eljárás bevezetésével kapcsolatos kihívások leküzdésére.
Stratégia | Leírás |
---|---|
CD értékesítése fájdalomcsillapítóként | Azonosítsa az egyes érdekelt felek fájdalompontjait, amelyeket a CD meg oldhat, és adja el a CD-t fájdalomcsillapítóként az érdekelt félnek. Ez a stratégia segít elérni az összesítést az érdekelt felek széles köréből, amelyeket a CD-k megvalósítása igényel. |
Elkötelezett csapat multidiszciplináris tagokkal | Új csapat esetén nehéz lehet a haladást, mert az alkalmazottak gyakran más értékfolyamokon dolgoznak. A multidiszciplináris csapat nem csak biztosítja a CD-implementációhoz szükséges készségek széles skáláját, hanem a kapcsolódó csapatokkal való kommunikációt is. |
Folyamatos szállítás | Szervezze meg a CD végrehajtását oly módon, hogy a lehető leghamarabb értéket nyújtson a vállalatnak, fokozatosan, kis lépésekben, és végül a CD-t az egész szervezetben. Ez a stratégia segít igazolni a szükséges beruházást azáltal, hogy konkrét előnyöket láthatóvá tesz az út mentén. A látható előnyök viszont segítenek elérni a tartós vállalati támogatást és beruházást, amely a CD-re való hosszú és kemény út túléléséhez szükséges. |
Kezdve az egyszerű, de fontos alkalmazásokkal | Amikor kiválasztja az első néhány alkalmazást, amelyet CD-re telepíthet, válassza ki azokat, amelyek könnyen áttelepíthetők, de fontosak a vállalkozás számára. Mivel könnyen vándorolnak segít biztosítani gyorsan a CD az előnyeit, ami megakadályozhatja a végrehajtási kezdeményezés történjen. Mivel fontos, hogy az üzleti segít biztosítani a szükséges erőforrásokat, bizonyítja, világos és vitathatatlan értéket, és növeli a CD láthatóságát a szervezetben. |
Vizuális CD-csővezeték váza | Adjon egy csapatnak egy vizuális CD-folyamat csontvázat, amely a teljes CD-folyamat leírásával rendelkezik, de üres fázisokkal azon helyeken, amiket még nem tudnak megvalósítani. Ez segít felépíteni egy CD gondolkodásmódot, és fenntartja a lendületet a CD elfogadása. A csővezeték csontváz különösen hasznos, ha a csapat munkája nagy erőfeszítést igényel, és a gondolkodásmód hosszú időn keresztül nem változik. |
Szakértői vélemény | Rendeljen hozzá egy CD-szakértőt, hogy a fejlesztőcsapat rangidős tagjaként csatlakozzon a nehéz projektekhez. Miután a szakértő segít a csapatnak a motivációt és a lendületet adni, hogy sikeresen dolgozzon minden tag; segít fenntartani a lendületet, ha a folyamat nagy erőfeszítést és hosszú időt igényel. |