Sziasztok,
Szoftverfejlesztéshez kell telepítsek és konfiguráljak 'Continuous Integration'-t és 'Continuous Deployment'-et.
Ki milyen tool-okat és devops eszközöket használ a fentiek megvalósítására?
- 4269 megtekintés
Hozzászólások
Sokat segítene, ha elárulnád, hogy milyen technológiai stack-et használsz a fejlesztéshez.
- A hozzászóláshoz be kell jelentkezni
Php, Java, JavaScript
- A hozzászóláshoz be kell jelentkezni
En PHP-frontend stackre kovetkezoket hasznalok:
- composer betolti a build stacket, beleertve a nodejs-t, stb.
- phing vezerli a buildelest
- SASS foglalkozik a CSS-el
- uglify.js foglalkozik a JS-sel
- PHPUnit, PHPMD, PHPCS stb. eszkozok bekotve kodellenorzesre (bar a PHPCS egy kalap szar, a PHPStorm / TeamCity jobb lenne)
- Jenkins ellenoriz, buildel es deployol. Nem hasznalok kulon deployment eszkozt, mert mindegyik halal bugos es nehez testre szabni.
- Puppet gyartja a Jenkins configot.
Phing helyett hasznalhatsz Ant-et is, majdnem mindegy.
--
Pásztor János
Sole Proprietor @ Opsbears
Development Lead @ IXOLIT
- A hozzászóláshoz be kell jelentkezni
te mivel teszed ki a szerver(ek)re a kesz cuccot? sima rsync?
--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!
- A hozzászóláshoz be kell jelentkezni
Nálunk pl. svn update körbepakolva néhány saját scripttel, ami a "build" lépéseket megteszi.
----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™
- A hozzászóláshoz be kell jelentkezni
A Jenkins SSH modulja ha jol tudom, rsync-el deployol, de van a latokoromben targz-s megoldas is. Minden esetben tortenik symlink atallitas, a live rendszer nginx-ei pedig ugy vannak felconfolva, hogy feloldjak a symlinket, szoval azonnal eletre lep a valtozas. Ezen felul meg az olyan projekteknel, ahol van adatbazis migratio (pl Doctrine Migrations), ott az is lefut scriptelve. (Vagy Jenkins SSH config, vagy phing.)
--
Pásztor János
Sole Proprietor @ Opsbears
Development Lead @ IXOLIT
- A hozzászóláshoz be kell jelentkezni
Capistrano lenne a jo megoldas. Ugyanugy symlinket csinal, csak nem valami egyedi fejlesztes es konnyu visszaforditani a deploy-t, ha valami rosszul sul el.
- A hozzászóláshoz be kell jelentkezni
Egy par projektnel hasznalatban van a Capistrano, de sajnos idonkent eleg nehez debuggolni hogy miert nem akarja az igazat. Sokszor sokkal egyszerubb megirni a Jenkins SSH moduljaval shell scriptben mint a Cappel szivni.
--
Pásztor János
Sole Proprietor @ Opsbears
Development Lead @ IXOLIT
- A hozzászóláshoz be kell jelentkezni
Na ja, de ha jól értelmezem, a kérdező itt most egy admin, aki feladatul kapott egy olyan rendszer kiépítését, amihez a fejlesztők aktív közreműködése kellene. Ez így picit céltalannak tűnik nekem.
----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™
- A hozzászóláshoz be kell jelentkezni
+1, bar a fejlesztok sokszor nem is tudjak, hogy milyen lehetosegek vannak. Foleg a - sajnos gyakori - szemellenzos fejlesztok, akik nem kepezik magukat eleg szeles korben.
--
Pásztor János
Sole Proprietor @ Opsbears
Development Lead @ IXOLIT
- A hozzászóláshoz be kell jelentkezni
Illetve azért egy átlagos dev világképe imho kevés ahhoz, hogy a productionba menés minden fontos részletével tisztában legyen, uh ne próbálja egyedül megoldani.
- A hozzászóláshoz be kell jelentkezni
Sajnos igazad van. Es lassuk be, ez valahol szomoru, mert megis csak ismernie kellene a platformot amire fejleszt.
--
Pásztor János
Sole Proprietor @ Opsbears
Development Lead @ IXOLIT
- A hozzászóláshoz be kell jelentkezni
Részben igen, elég furi figurák vannak. Viszont az üzemeltetés mint olyan az egy kicsit másik állatfaj. Nyilván cégprofilonként eltérő, hogy mennyire tudná magától megugrani egy normálisan kompetens dev csapat legalább a sw deploymentet, és mennyi olyan dolga van a "régi" (vagy inkább klasszikus) deployment / op-nak, amik nem egy development dolgai, de valamennyi mindig lesz.
Jó esetben van egy egymás kompetenciáját a szélein átfedő két társaság, meg akarat, hogy mehessen egy integrált folyamat, rossz esetben meg van egy hülye developer, aki tolja az éppen aktuális buzz deploymentet, dinoszauroszozza az infrás csapatot, hogy mostantól csak dugdossa a kábeleket, miközben egyébként kurvára hülye az egészhez; esetleg a másik oldalról van egy totálisan inflexibilis infra, aki ragaszkodik a 15 éve kialakult toolchainhez, meg a kéthónapra előre bebetonozott change windowhoz egy 2 perces, automatán rollbackelhető kód updatehez, aki nem érti, hogy miért rühelli mindenki ezt...
- A hozzászóláshoz be kell jelentkezni
Össze kell ültetni egy légtérbe a fejlesztőt és az üzemeltetőt, hogy a fejlesztő lássa, mennyi szopásba kerül, ha nem veszi tekintetbe az üzemeltetési szempontokat és viszont, az üzemeltető is lássa, hogy mennyi szopásba kerül, ha nem veszi figyelembe a fejlesztők igényeit...
...csak így megy, ha reggel az üzemeltető kever le egy hatalmas tockost a fejlesztőknek, mert hajnalban felverte egy riasztás, vagy reggel a fejlesztő kever le egy hatalmas tockost az üzemeltetőknek, mert késő estig szopott...
- A hozzászóláshoz be kell jelentkezni
Hehe, valo igaz, bar nem is mindenkinel mukodik, szemelyisegfuggo.
--
Pásztor János
Sole Proprietor @ Opsbears
Development Lead @ IXOLIT
- A hozzászóláshoz be kell jelentkezni
"Hehe, valo igaz, bar nem is mindenkinel mukodik, szemelyisegfuggo."
Hajlok arra, hogy akivel ez nem működik, az nem képes csapatban dolgozni és jelenleg olyan az összes fejlesztési módszertan és üzemeltetési környezet, hogy csapatban KELL dolgozni...
- A hozzászóláshoz be kell jelentkezni
+1
Az informatikusok szeretnek hőzöngeni, ha az első (azaz inkább nulladik, tbh) körös interjún a recruitert nem érdekli, hogy ő milyen penge szakmailag, csak a személyiségre kíváncsiak. Úgy tűnik, ennek is megvan az oka. :)
Programozni/üzemeltetni bárki meg tud tanulni (ofc ez is teljesítmény, nem mondtam, mennyi idő és energia kell hozzá), de csapatjátékost csinálni valakiből már nem egyszerű.
- A hozzászóláshoz be kell jelentkezni
Teny, de ez nem biztos, hogy az OP-nal kovetelmeny volt a fejlesztok felvetelekor.
--
Pásztor János
Sole Proprietor @ Opsbears
Development Lead @ IXOLIT
- A hozzászóláshoz be kell jelentkezni
Nagyon sokat segít, bár ha észnél van a cég, akkor talán enélkül is lehet. Illetve inkább a másik oldalról közelítve, ha szervezetileg nincsenek közel egymáshoz, akkor az egy légtér is tud kevés lenni...
(Ill van még az, hogy fejlesztő nagyon nem szeret ügyelni, és ma a jó fejlesztő tud diktálni a cégnek)
- A hozzászóláshoz be kell jelentkezni
Epp ma:
dev: Hangosan teker a ventilator a laptopomban.
en: He? Miota?
dev: blablablabla
en: Muti. Tenyleg. Hmm, init, meg ilyenek zabaljak a cpu-t, WTF!!?!?
en: tail -f /var/log/syslog, sajat termek service exit 1 -> upstart -> respawn
dev: Ez hogy, ez miez?
en: Te telepitetted.
dev: biztos..
:D
- A hozzászóláshoz be kell jelentkezni
latod, milyen jo a kozos szoba? Csapni a kezere, amelyikkel lenyomta az entert, root/sudo jog elvesz... :-)
--
"nem tárgyszerűen nézem a dolgot, hanem a vádló szerepéből. Sok bosszúságot okoztak, örülnék ha megbüntetnék őket - tudom gyarló dolog, de hát nem vagyok tökéletes." (BehringerZoltan)
- A hozzászóláshoz be kell jelentkezni
Inkabb jo messze ulok, h engem ne zavarjon a venti.
Amugy mar igy ment a gepe vagy 1 honapja, csak most lazadtak fel a kozeli szomszedai.
- A hozzászóláshoz be kell jelentkezni
Cucumber - https://cucumber.io/
PhantomJS - http://phantomjs.org/
Jenkins - https://jenkins-ci.org/
- A hozzászóláshoz be kell jelentkezni
Tulajdonképp miért is nem a fejlesztők mondják meg, hogy mit akarnak?
----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™
- A hozzászóláshoz be kell jelentkezni
Eleg szeles tema kor es teljes out of box megoldas tutira nincs.
--
"ssh in a for loop is not a solution" – Luke Kanies, Puppet developer
- A hozzászóláshoz be kell jelentkezni
Utoljára CI-re egy GNU make-re épülő megoldást.
Kódgenerálásra volt valami modul ami a C++ programot elkészítette a Rational Rose modellből.
Tesztek shell scriptben.
CD nem volt.
- A hozzászóláshoz be kell jelentkezni
>elkészítette a Rational Rose modellből
Jajjj a seggem...
- A hozzászóláshoz be kell jelentkezni
bővebben?
érdekelne, mit akartál vajon mondani.
- A hozzászóláshoz be kell jelentkezni
Hirtelen ez ugrott be, sztem egy paran raismertek: "It’s good because I made it for myself!" :^)
----------------------
"ONE OF THESE DAYS I'M GOING TO CUT YOU INTO LITTLE PIECES!!!$E$%#$#%^*^"
--> YouTube csatornám
- A hozzászóláshoz be kell jelentkezni
:'D
- A hozzászóláshoz be kell jelentkezni
jaj, ez mekkora volt :-)
--
"nem tárgyszerűen nézem a dolgot, hanem a vádló szerepéből. Sok bosszúságot okoztak, örülnék ha megbüntetnék őket - tudom gyarló dolog, de hát nem vagyok tökéletes." (BehringerZoltan)
- A hozzászóláshoz be kell jelentkezni
Mi Javara Jenkins-t használunk. Folyamatosan futnak az funkcionális tesztek VMWare instance-eken minden build után, éjjelente pedig performance tesztek. Némely régi projekt anttal buildelődik, mások már Mavennel. Local repository-nak Sonatype Nexus-t, statikus kódelemzőnek SonarQube-ot használunk. A sprint végén egy job előállít egy installálható iso-t, ehhez viszont az kell, hogy minden zöld legyen pár napig. Ahhoz pedig, hogy rögtön látható legyen, hogy valami baj van, Jenkins alá van egy saját monitor pluginünk (szokták hívni lávalámpának is), ami megjeleníti a jobok státuszát egy TV-n a falon.
- A hozzászóláshoz be kell jelentkezni
A funkcionális és a performance tesztekre mit használtok? Vannak ezekre spéci plugin-ek?
- A hozzászóláshoz be kell jelentkezni
Előbbi sima ant és JUnit, utóbbi JMeter és egy Groovy script a Jenkins-ben.
- A hozzászóláshoz be kell jelentkezni
ci.openstack.org itt érdemes körülnézned, zuul, jenkins, gerrit etc.
- A hozzászóláshoz be kell jelentkezni
Milyen platformra és/vagy nyelvhez kell? Nagyon nem mindegy.
- A hozzászóláshoz be kell jelentkezni
sub
- A hozzászóláshoz be kell jelentkezni
+1
- A hozzászóláshoz be kell jelentkezni
+1
- A hozzászóláshoz be kell jelentkezni
+1
- A hozzászóláshoz be kell jelentkezni
Kezdjuk ott, hogy a projekted egyaltalan tartalmaz-e barmilyen deployment megoldast a jelenlegi formajaban? Vannak-e tesztek a projektben? Egyaltalan, a projekt megirasakor figyelembe lett-e veve a tesztelhetoseg, mint lehetoseg?
Amig ezekre a kerdesekre nem "Igen" a valasz, addig ne keresgelj semmit, hanem kezdd el atstrukturalni a kododat, ez le fog foglalni kb. negyed evre, utana gyere vissza, ird le, milyen megoldasokat alkalmaztok, hogyan epul fel a rendszer, es ajanlunk megoldasokat.
Bocs, de ez egy olyan terulet, amit nem csakannyal szokas piszkalni, hanem precizios vesovel.
--
Blog | @hron84
Üzemeltető macik
- A hozzászóláshoz be kell jelentkezni
Tesztek nélkül is lehet continous deploymentet csinálni, csak kicsit izgalmasabb :D:D:D
- A hozzászóláshoz be kell jelentkezni
lol :)))
(sub)
- A hozzászóláshoz be kell jelentkezni
Én a következő megoldást használom PHP projekt esetén :
- Jenkins, Unit tesztek, egyéb környezet specifikus tesztek
- ha sikeresek voltak a tesztek a Jenkins-ből ssh-zok a deployment szerverre és egy shell szkript elvégzi a deploy-t.
A shell script biztonsági mentést készít, majd frissíti a kódot egy verzió kezelő rendszerből.
- végül küld egy emailt a fejlesztő csapatnak.
Érdekelne, hogy milyen más megoldások vannak.
Köszönöm előre is.
- A hozzászóláshoz be kell jelentkezni
Nagyjabol ezt lehet meg jobban korbebastyazni. Ha pl. van production branch a kodban, akkor ahhoz is lehet Jenkins jobot kotni, ha valaki oda pushol, az kimegy elesben. Bitbucketen lehet branch vedelmet csinalni, hogy csak olyan pusholhasson a prod branchbe, akinek erre joga van (a BB-t hajto szoftver elerheto on-premise is, valami Atlassian termek, fejbol meg nem mondom, mi a neve).
A shell scriptek helyett nezzetek meg a Phinget es/vagy a Capistrano-t, eleg sokat tud segiteni.
Teszt VM-ek epitesehez jo lehet a Vagrant, az OS oldali fuggosegek kezelesehez Chef vagy Puppet.
Felulettesztekhez feltetlenul nezzetek meg a Seleniumot, ezt pl. a deployment szerver egyik elszeparalt vhostjan lehet futtatni, tortenik egy teszt deployment oda, utana lefut a Selenium, es kiad valamilyen eredmenyt. Ez a teszt vhost lehetoleg ne egyezzen meg a staging vhosttal, mert itt akar uzemkeptelen kod is lehet, illetve undefined state.
Generikusan ennyit tudok mondani, a sw behatobb ismerete nelkul konkret deploymentet tervezni nem lehet.
Ha elegedetlenek vagytok a Jenkinssel, vagy tul sok a szivas vele, nezzetek ra a JetBrains TeamCity nevu szoftverere, szinten CI szerver, de sokkal-sokkal okosabb a Jenkinsnel, es sokkal straightforwardabb a menedzsmentje. Sajnos fizetos szoftver, de van ingyenesen hasznalhato verzioja, mely 20 build konfiguraciot tamogat (Jenkins terminologia szerint jobot, de itt a jobokat projektekbe tudod szervezni).
--
Blog | @hron84
Üzemeltető macik
- A hozzászóláshoz be kell jelentkezni
Nalunk .deb csomagok vannak, ennek a buildjet jenkins csinalja. Ha kesz, promote a megfelelo Debian repo-ba (int1/qa/live).
Puppet-et hasznalunk konfig- es csomagkezelesre. Jelenleg sajnos meg nem latest-et hasznalunk a csomagokra (App), hanem fix verziot.
- A hozzászóláshoz be kell jelentkezni
Nem biztos, hogy követendő példa (<-- eufémizmus), de dolgoztam olyan helyen, ahol a continuous deployment azt jelentette, hogy a szerveren futott a Visual Studio, és a build output mappája "véletlenül" pont megegyezett az IIS wwwroot-jával.
Never again. Olcsó és gyors "megoldás" volt, de elég stresszes. :)
- A hozzászóláshoz be kell jelentkezni
riliz orli, riliz ofen? :-)
--
"nem tárgyszerűen nézem a dolgot, hanem a vádló szerepéből. Sok bosszúságot okoztak, örülnék ha megbüntetnék őket - tudom gyarló dolog, de hát nem vagyok tökéletes." (BehringerZoltan)
- A hozzászóláshoz be kell jelentkezni
Jaja. És meglepő módon sosem volt belőle baj. Máig nem értem, hogy élte túl az a szerencsétlen alkalmazás ilyen sokáig. :)
- A hozzászóláshoz be kell jelentkezni
Ameddig nem éles szerver... :)
----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™
- A hozzászóláshoz be kell jelentkezni
Addig sem. Hogy reprodukalod ujra, ugyanolyanra a tesztkornyezetet? Fejbol?:)
- A hozzászóláshoz be kell jelentkezni
Felraksz egy Visual Studiot! Az IIS wwwrootja általában ugyanott van ;)
----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™
- A hozzászóláshoz be kell jelentkezni
azt nem mondta, hogy nincs verziókezelő is mögötte... :)
- A hozzászóláshoz be kell jelentkezni
Nem, de mindenki hozzágondolta. És 2015 van.
- A hozzászóláshoz be kell jelentkezni
A 2015öt nem értem :)
- A hozzászóláshoz be kell jelentkezni
Most igen, de amikor ez téma volt, még messze nem volt 2015. Mondjuk nem is volt sokkal korábban, inkább a 2010-hez lehetett közel. :)
- A hozzászóláshoz be kell jelentkezni
De azt sem, hogy van :)
- A hozzászóláshoz be kell jelentkezni
Hát, öh... :D
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
feliratkozás
- A hozzászóláshoz be kell jelentkezni
Amit nem lehet megirni assemblyben, azt nem lehet megirni.
- A hozzászóláshoz be kell jelentkezni
Jelenleg ezt: https://github.com/Strider-CD/strider
- A hozzászóláshoz be kell jelentkezni