Hogyan szervezzük meg az alkalmazásokat

  • PHP
  • csoportos it
  • bevetés
  • Webfejlesztés


Tegnap rájöttem, hogy én vagyok az ő _dela_ néhány teljesen barbár módon. Segítségével git és bitbucket nem meglepő.


Mivel a folyamatos működést a szállítószalag, amely kerékpárokat gyárt az én elrendezése van szükség, hogy megkönnyítsék egyes munkafázisokat.


Most ott van a PC, amelyet arra terveztek _ocherednoy_ helyszínen, és két számítógépet is lehet nevezni szervereket. A pokolba vele, két hihetetlenül teljes kiszolgáló - fejlesztési és gyártási szerver. (És milyen körben?)


Őszintén Google által használt, egy olyan országban, ahol nincs illegális oldalakat registry, és tudta, hogy az én kis probléma megoldódik:

  • Szolgáltatás POST oldalán bitbucket;
  • Néhány szkript git pull a szerver oldali fejlesztés.


De itt az én kompetencia gyenge - úgy döntöttem, hogy elsajátítsák a tesztet. Bevallom, hogy hagyja, hogy a falu tudta, de nem vette semmiféle vizsgálat, biztosra. Itt az ideje, hogy egy sokkal jobb!


A tesztek maguk valahogy elintézem, de ahol _pravilno_ állna? Én? Már a szerver oldali ingatlanfejlesztés?


És tegyük fel, hogy a kerékpár gyártási derült fény formájában kész site szüzek szerveren. A régi vágású módon, ftp termelés?


Lehetséges, hogy a kerek pull frissítéseket csak fájlokat egy távoli tároló, amely ma már?

Ie van egy vágy, hogy az ilyen műveletek eredményeként, amely a leányok a szerver egyesíti az összes amit találtam az oldalon, de csak egy részük.


Felhívjuk figyelmét, hogy a kérdés fogalmazható meg minden rossz, vagy nem igaz. Ne haragudj. - (

Láttam a két részt a kérdést.

Hogyan szervezzük bevezethető (szóló nyílt dolgozó kódot a szerver)?


A legegyszerűbb esetben, akkor felveszi a kapcsolatot egy csomó ssh + git pull a szerveren. Ebben az esetben a foltok fogják szállítani a szerver vállalkozik, amelyek a tároló, de még nem jelent meg a szerver, azaz „Csak a frissítési fájlokat, hogy most létezik.” Ezt a módszert a fentiekben részletesen a választ egy másik kérdés.

Ha azt szeretnénk, hogy automatizálják a folyamatot, ami dicséretes, látom három rendelkezésre álló eszközök a: Kapisztrán. Mina (személyes kedvencem), és Vlad Deployer. Mindhárom projekt hasonló természetűek. A működési elve a következő:
  1. Kapcsolódni a cél szerver.
  2. Öntsük kód frissítés a tárolóból.
  3. Fuss előírásoknak te (újraindítás démonok állítsa vissza az indexet, frissítse az adatbázis szerkezete, stb.)
  4. .
  5. PROFIT!

Eszközök könnyű átmenet nekik - ez egy napot, és lehet tele van nehézségekkel csak azért, mert az újdonság.

Hogyan szervezzük meg a tesztelési folyamat?


Ha még nem döntött a vizsgálati módszer (Test Driven Development, Viselkedés alapú fejlesztés, lustaság-Driven Development), akkor meg kell kezdeni, hogy nem csak ezt.

Valószínűleg a teszteket végeznek a helyi gépen, amíg írsz kódot. Használata RSpec. Én nyitott marad Guard. Guard pályák változások a kódot, és elindít egy sor unit tesztek, amelyek felölelik a módosított kódot. Az egész folyamat nem tart tovább, mint egy-két perc, és különösen nem törzs. Amint látom a sikertelen teszt, én változott a kódot, amíg ez a zöld. Míg néhány teszt (ez nem a legjobb jel, az úton), akkor egyedül dolgozik, fuss előtt helyben deploem nem lehet elég - például, hogy ellenőrizze a kiadás a rendelkezésre álló kritikus funkciókat: regisztráció, vásárlás, állások létrehozására, stb

Egy bizonyos ponton, akkor mehet a Continious integráció. Ez egy lehetőség, hogy egy stabil építmények bármikor, valamint dönt a érvényességét minden egyes elkövetni. Ez magában foglalja deploem kód integrációs szerver és fuss tesztek rajta. A legvalószínűbb, hogy nem érdekel, ha nem dolgozik a csapat. De ahhoz, hogy teljes legyen a kép, meg lehet nézni épül Travis CI ismert nyílt forráskódú projektek: Symfony 2 és Ruby on Rails.

így


Nem adja meg, milyen konkrét fejlesztési eszközök használata. Ha egy deploem sokkal könnyebb, szerszámok kiválasztása tesztelésére, azt javasoljuk, hogy összpontosítson az őshonos, az alapvető keret és nyelv (PHP, ha jól értem), és hozzá vannak szokva, hogy a felhasználók számára. Ez lehetővé teszi, hogy gyorsan alkalmazni a jól bevált gyakorlat, hogy a projekt és érteni mindent, sőt.

Rendet a lerakat a kóddal, használati mina deploya és futtatni teszteket a helyi asztali gép. Ha úgy érzi, hogy ez nem elég -, akkor valószínűleg már tudja, hol járnak.

Hát nem jobb, hogy az a fajta bash script technológia deploya helyett mindezek kapistranov? előnyei:

1) bash-script egyszerű és rövid. A gyors és könnyű írni. Mindenesetre kapistranah először tanulmányozni a félnapos eszközt, akkor gondolom, hogy mankóval tud rávenni, hogy a helyes dolgot.
2) bash-script, hogy könnyen ellenőrizze a hibákat és a hiányzó, nem szükséges, hogy a debug délben
3) bash-script pontosan mi van írva benne. Mit fog tenni egy komplex rendszer, írta egy másik személy ismeretlen képesítések - senki sem tudja
4) Egy egyszerű megoldás, hogy egy komplex jobban

Plusz, ahogy a Mina leírás, rendkívül nehéz és bonyolult eszköz: felvesz egy pár sor a fájlban, akkor logikus, hogy töltse fel a megváltozott szerver fájl fél másodpercig, hogy megnyugodjon, de ez nem egy adattár kicsikarni valamit gyűjteni, feltölteni ... Félek ez nem kedvez a gyors fejlődés.

Ismét tanácsot használni unit tesztek. És azt tanácsolom, hogy használja funkitsonalnye teszteket. Miért? mert funkcionális próbák azt igazolják, hogy az alkalmazás megfelelően működjön. Ha minden rendben van - ez lehet öntjük Productions. Egy elhaladó unit tesztek nem garantálja a helyes működését a kérelmet. És az időt rájuk. A kérdés az, miért vannak, akkor szükség van.

Development Tools? PHP, MySQL, a kerékpárok (nincs Yii).
Vizsgálati módszerek? TDD. )

Nagyon jó! Ezekkel a kérdéseket újra! Köszönöm.
Így a termelés könnyebb a régi módon, nem igaz?
Mégis, hogy git leereszteni egyes mappák egy bizonyos ágat a megadott távoli repository?

shebanoff. valójában a kerékpár különböző modellek jönnek állandó sebességgel.
Néha ezek a fejlemények alattomos hibákat és szükség különböző helyein, hogy ugyanazt a fájlok módosításait _yadra_ kerékpár.

Sajnos, hogy javítsa egy termék szállítószalag kitaláltam egy másik - párhuzamos vonal kiadás. Legyen úgy, hogy a elkövetni a mester ág változások történtek kernelfájlok különböző helyeken donor ügyfelek.

Anélkül absztrakció ez valahogy így néz ki: ott van a mikro-keretet, amely megvalósítja az alapvető funkciókat egy egyszerű site - hívtam a kernel. És az összes modult is, mint például galéria egy több operációs képeket. Az egyik oldalon, egy ilyen modul van szükség - a másik nem. De a lényege minden ugyanaz.

A kérdés tehát az: hogyan kell frissíteni a fő összetevői a helyszínen (a kernel), és nem mászik minden oldalon FTP?

Fejlesztem, de van, hogy fenntartsák több weboldalak én gyártás. Kritikus dolgot kell megjavítani. Azt hittem, hogy ezt a trükköt gitom megoldja a problémát.

Van-e megoldás? Akkor hívja a tapasztaltabb elvtársak skaypoobschenie?