Atom helyett Visual studio code --> ftp csatlakozás
2022-06-09T12:07:00+02:00
2022-06-10T10:52:15+02:00
2022-07-20T03:50:05+02:00
  • Én a Remote SSH plugint használom. Ezzel SSH-n keresztül akár fejleszetni is tudsz egy távoli gépen. Én Go-hoz használom egy VPS-emen  és nagyon jól működik.
    Mutasd a teljes hozzászólást!
  • Ott kezdődik a történet, hogy a kódod valamilyen verziókezelőben van tárolva, pl. Git-ben (ami egyébként lehet egy privát szerver is). A CI/CD - mint a neve is mutatja - két részből tevődik össze: Continous Integration és Continous Delivery.

    Mondjuk van egy webshopod, amin van egy reklamáció oldal. Ezen az oldalon leírhatják a vásárlók, hogy mi a problémájuk a megrendelt termékkel. Az oldal tulajdonosától pedig jön az igény, hogy nagyon sokszor a szöveges leírás nem elég, és jó lenne, ha tudnának a vásárlók ezen az űrlapon fényképet is csatolni a reklamációhoz.

    A Git-ben van egy main branch, ami a weblap jelenlegi állapotát tartalmazza. No, nem ebbe fogunk beletúrni, hanem leszármazunk ebből az állapotból és nyitunk egy új branchet, amiben ezt a feature-t fogjuk lefejleszteni. Feltételezvén, hogy igényes fejlesztők vagyunk, miután megvagyunk a funkcionalitással és megcsináltuk az adatbázishoz is a migration-t, szépen tesztet is írunk:
    - unit teszttel ellenőrizzük, hogy a kódunk helyességét
    - Selenium-alapú teszttel pedig megbizonyosodunk arról, hogy a feature, amit fejlesztettünk, az a requirement-eknek megfelelően működik.

    Ekkor a mi kis új branchünket push-oljuk a remote repository-ba, majd beindul a CI pipeline, ami több dolgot is ellenőriz ezen a branch-en:
    - ha valami compile-olható nyelven fejlesztünk (C#, Java, ...), build-eli a kódot
    - lefuttatja a unit tesztet
    - egy ideiglenes tesztadatbázison végigfuttatja a migration-öket, ellenőrizvén, hogy a kért állapot előállítható és nem eredményez SQL hibát a futtatása
    - esetleg felhúzhat egy ideiglenes tesztkörnyezetet, amin a Selenium-alapú teszteket is végrehajtja
    Ha minden lépés sikerült, akkor a CI pipeline zöld, és a kód mergelhető a main-be.

    Miután mergeltük, beindul egy másik CI pipeline, ezúttal a main branchen, ami az előzőekhez képest tartalmaz plusz négy lépést a folyamat végén:
    - ez opcionális (én javaslom), de belefordíthatja a kódba a verzióadatokat is (ez a build milyen verziószámot kap, mely commit-ból készült, stb.)
    - artifactot készít a main branch állapotából, ami egy olyan csomagot jelent, amit ki lehet telepíteni egy adott környezetre (ez lehet Docker image, ZIP fájl, virtuális géphez merevlemez-képfájl, ISO, stb.)
    - az elkészült artifactot feltölti valahová (pl. JFrog Artifactory-ba)
    - beindítja a CD pipeline-t
    Erről az artifactról azt kell tudni, hogy ez nem tartalmaz környezetfüggő információkat (pl. alkalmazás-konfiguráció konkrét értékeit).

    A CD pipeline kitelepíti a környezetre az új feature-t (lehetőleg még nem a prod-ra, hanem mondjuk egy staging-re, amit a megrendelő nyomkodhat kézzel), ami az előzőleg elkészített artifact alapján fog csinálni. Itt szóba jöhet többféle deployment módszer, hogy minimalizáljuk annak az esélyét, hogy egy - valamiért - mégis sikertelen kitelepítés miatt downtime-unk legyen. Itt szóba jöhet canary, blue/green és egyéb deployment stratégiák, a lényeg az, hogy ha hiba kerülne a gépezetbe, a minimálisra vegyük azon felhasználók számát, akik a hibával találkoznak. A CD pipeline során - immáron a környezet-specifikus konfigurációval - ismét lefutnak a tesztjeink, figyeljük a szoftvermetrikákat is (milyen a response time, hibaarány, adatbázis terheltsége, egyéb I/O műveletek, és így tovább). Ha a tesztek és a metrikák is azt mutatják, hogy az új verzió stabil, mehet prodra, ugyanezzel a módszerrel.

    Persze amit itt leírtam, ez inkább enterprise, mintsem kis magánvállalkozás szintje. Ha neked a CI/CD annyiból áll, hogy mindenféle ellenőrzés és automata tesztek nélkül megy ki egyből prodra a feature FTP-n keresztül, akkor is van legalább három előnyöd vele:
    1) lesz esélyed, hogy kipróbáld, hogy amit csinálsz, az tényleg működik (hála annak, hogy side branch-en csinálod),
    2) legalább a kitelepítés automatikusan zajlik, ami csökkenti a hibázás lehetőségét,
    3) mivel rá vagy kényszerülve egy verziókezelő használatára, ha elrontasz valamit, könnyebben visszanézheted, hogy mit.
    Mutasd a teljes hozzászólást!
  • sima tárhelyes weboldalnál is müködhet a ci/cd pipeline megoldás? Már ha tudnám mit takar az

    Milyen megoldással teszed elérhetővé (deploy / install / update) a szoftvered újabb verzióját. Ha kész vagy egy fejlesztéssel, vagy modósítással, esetleg hibajavítással, akkor azt publikálnod kell teszt (uat), illetve az éles szerveren. A CI/CD ennek a folyamatnak a gyakorlati kivitelezése. Bővebben például itt lehet olvasni róla. A te esetedben ahogy a bevezetőben írtad is, a tárhelyed elérésének, és modósításának a megoldása.
    Mutasd a teljes hozzászólást!
  • sima tárhelyes weboldalnál is müködhet a ci/cd pipeline megoldás? Már ha tudnám mit takar az. :)
    Mutasd a teljes hozzászólást!
  • Így a tárhelyeken lévő tartalmakat milyen megoldással tudnám elérni és szerkeszteni?

    Még mindig nem ajánlom senkinek se, hogy így dolgozzon éles rendszeren. Ha már mást nem, legalább lokálban próbáld ki először, hogy amit csinálni akarsz, az működik-e egyáltalán. Ha igen, akkor mehet fel FTP-re. De inkább CI/CD pipeline párti vagyok.

    Egyébként nagyon sok FTP plugin létezik Visual Studio Code-hoz. Miért nem próbálsz ki egy párat?
    Mutasd a teljes hozzászólást!
  • Sziasztok!

    Most olvasom,hogy kukázni akarják Atom szerkesztőt és régebben használtam Visual Studio Code-t de annak a ftp csatlakozós pluginja nem működik sehogy se. 
    Így a tárhelyeken lévő tartalmakat milyen megoldással tudnám elérni és szerkeszteni? Már gondoltam arra,hogy windowson csinálok hálózati meghajtót ami ftpn lévő tartalmat mutatja, de kiderült,hogy mikor meg akarod nyitni a mappastrukturát akkor nem látja azt. 
    Van valami ötlet, tipp mi máshogy lehetne dolgozni visual studio code-vel ftpn elérhető tartalmakkal?
    Mutasd a teljes hozzászólást!
abcd