Rövid ciklusú fejlesztési eljárás

A Wikipédiából, a szabad enciklopédiából

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.

Kapcsolat a DevOps-tal[szerkesztés]

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.

Kapcsolat a folyamatos telepítéssel[szerkesztés]

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.

Alapelvek[szerkesztés]

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.

Telepítési folyamat[szerkesztés]

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.

  • Láthatóság – A kézbesítési rendszer minden aspektusa, beleértve az építést, a telepítést, a tesztelést és a kiadást, a csapat minden tagja számára látható az együttműködés elősegítése érdekében.
  • Visszajelzés – A csapattagok a lehető leghamarabb megismerik a problémákat, hogy a lehető leggyorsabban ki tudják javítani őket.
  • Folyamatos üzembe helyezés – Egy teljesen automatizált folyamat révén a szoftver bármely verzióját bármilyen környezetbe telepítheti és felszabadíthatja.

Eszközök/eszköztípusok[szerkeszté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 folyamatos kézbesítés megszervezése[szerkeszté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.

Megvalósítás és használat[szerkesztés]

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.

Előnyök és akadályok[szerkesztés]

A rövid ciklusú fejlesztési eljárás számos előnyéről számoltak be.

  • Gyorsított idő a piacra: CD lehetővé teszi, hogy az értékesítendő szoftver gyorsabban jusson el az ügyfelekhez. Ez segít a vállalatnak abban, hogy egy lépéssel a versenytársaik előtt maradjanak.
  • A megfelelő termék létrehozása: A gyakori kiadások lehetővé teszik, hogy az alkalmazásfejlesztő csapatok gyorsabban szerezzenek be felhasználói visszajelzéseket. Ez lehetővé teszi számukra, hogy csak a hasznos funkciókat vegyék alapul. Ha úgy találják, hogy egy funkció nem hasznos, nem pazarolnak rá további erőfeszítéseket. Ez segít nekik a termék megfelelő felépítésében.
  • Nagyobb termelékenység és hatékonyság: Jelentős időmegtakarítás a fejlesztők, a tesztelők, a műveleti mérnökök stb.
  • Megbízható kiadások: A kiadással kapcsolatos kockázatok jelentősen csökkentek, és a kiadási folyamat megbízhatóbbá vált. A CD-vel lehetőség van a központi telepítési folyamat és a parancsfájlok tesztelésére üzembe helyezés előtt éles környezetben. Így a legtöbb hibát a telepítési folyamat alatt és a parancsfájlokban már felfedezték. A gyakoribb kiadások esetén az egyes kiadásokban csökken a kódváltozások száma. Ez megkönnyíti a felmerülő problémák megtalálását és kijavítását, csökkentve a hatásuk idejét.
  • Jobb termékminőség: A nyílt hibák és a gyártási incidensek száma jelentősen csökkent.
  • Jobb ügyfél-elégedettség: Magasabb szintű ügyfél-elégedettség érhető el.

Az akadályokat is megvizsgálták.

  • Vásárlói preferenciák: Egyes ügyfelek nem szeretnék folyamatosan frissítik a rendszereiket. Ez különösen igaz egyes műveleteket kritikus szakaszában.
  • Tartományi korlátozások: Egyes területeken, például a távközlési és az orvosi területeken a szabályozások kiterjedt tesztelést igényelnek, mielőtt az új verziók beléphetnek a működési fázisba.
  • A tesztautomatizálás hiánya: A tesztautomatizálás hiánya a fejlesztői bizalom hiányához vezet, és megakadályozhatja a folyamatos kézbesítést.
  • A környezetek közötti különbségek: A fejlesztéshez, teszteléshez és éles környezethez használt különböző környezetek észrevétlen különbséget eredményezhetnek az éles környezetben.
  • Emberi orákulumot igénylő tesztek: Nem minden minőségi attribútum ellenőrizhető automatizálással. Ezek az attribútumok lassítják a szállítási folyamat.

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.

Stratégiák leküzdésére elfogadása kihívások[szerkesztés]

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égiák leküzdésére CD elfogadása kihívások
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.

Lásd még[szerkesztés]

Továbbá[szerkesztés]