PHP VERZIÓVÁLTÁS
– avagy hogyan dolgoztunk le 4 évnyi�technológiai adósságot néhány hét alatt?
.
ÉN VAGYOK A MEFI.
Dev team lead az ingatlan.com-nál, blogger, hobbifotós,�két macska lakótársa, az interneteken @mefiblogger
MI TÖRTÉNT�2012. FEBRUÁR 2-ÁN?
2012. FEBRUÁR 2-A:
És megjelenik a PHP 5.3.10-es verziója.
MI IS AZ A TECHNOLÓGIAI ADÓSSÁG?
Gyorsan, okosba’, rosszul – és drágán.
MI IS AZ A TECHNOLÓGIAI ADÓSSÁG?
A többletmunka, amely jellemzoen a triviálisabb fejlesztési feladatoknál keletkezik, amelyek – a rövid határido miatt – bonyolultabb megoldással készülnek el.
,,
,,
TECHNOLÓGIAI ADÓSSÁGOT OKOZHAT MÉG, HA:
És néha ezek együtt.
EZ OKÉ, DE...
...miért csak most frissítettetek?
Őszintén: hányszor választottad a „Majd máskor” opciót, ha frissített volna a telefonod, amikor használni akartad?
Place your screenshot here
MIÉRT CSAK MOST FRISSÍTETTÜNK:
TECH ADÓSSÁGOK
Voltak fontosabb és szükségesebb technológiai feladatok, amiket el kellett végeznünk.
ÁTALAKULÓ SZERVEZET
Zajlott a CIO és a fejlesztők keresése, alakulóban volt a DevOps csapat, lett architectünk.
UBUNTU LINUX
Az egész folyamat az Ubuntu frissítésével kellett kezdődjön: 12.04 → 14.04 (LTS)
EZ OKÉ, DE...
...miért tartott több hétig a PHP frissítése?
569 512+
25
3
sornyi forráskód
Git repóban
hét alatt
1.4
2012 novembere óta nem fejlesztik
1.4
Nem kompatibilis a Symfony2-vel
1.4
4 rendszerünk használja
MIT CSINÁLTUNK?
Mi kellett hozzá, mik voltak a lépései?
AZ IHLETETT GONDOLATTÓL...
Cél: az ingatlan.com összes forráskódja legyen kompatibilis a PHP 5.3.10, 5.5 és 7.0 verzióival.
2 HÉT MASSZÍV�TERVEZÉS…
Közösen hoztuk meg a fontosabb döntéseket, majd az architect és a vezető fejlesztők részletesen megtervezték a feladatokat.
…MAJD UGYANENNYI FEJLESZTÉS
Az 5 csapatból a projekt idejére egyet csináltunk, felvágtuk a feladatokat kompetencia és helyismeret mentén, aztán toltuk az ipart.
FOLYAMATOS�TESZTELÉS ÉS ÉLESÍTÉS
A fejlesztéseket – amennyire lehetett –, próbáltuk a GitFlow alapú workflow szerinti kis egységekben élesíteni.
REGRESSZIÓ ÉS�A GÉPEK FRISSÍTÉSE
Amire ide értünk, egy-két csomag kivételével minden élesben volt. A gépeket (100+ szerver) folyamatosan frissítettük és „lógattuk be”�az éles forgalomba.
AZTÁN MÉG KICSIT RAJTA TARTOTTUK A SZEMÜNK
A közös időszak után visszarendeződtünk a megszokott csapatfelállásba, de még terveztünk erőforrást a felmerülő problémák esetére.
PREVIOUSLY ON THE WALKING DEAD
Avagy élet a legacy kóddal.
SMARTY ;)
v2 → v3
MYSQL → MYSQLI
Az 5.5 óta deprecated.
REGISTER GLOBALS
Az 5.4 óta megszűnt.
STRING, FLOAT, INTEGER STB.
Ezek osztálynevek; pár éve jó ötletnek tűntek, de a PHP 7.0-ban már nem annyira. :)
COMPOSER OUTDATED
A PHP verzióváltás óta tudjuk használni.
A 2 HÉT
Már nem is tűnik olyan soknak, igaz?
NÉHÁNY HASZNOS DOLOG
Nekünk jól jöttek, hátha nektek is!
PHP Migration Guide
LExpress/symfony1
wimg/PHPCompatibility
sstalle/php7cc
ingatlancom/PHPCodesniff...
NINCS PREZENTÁCIÓ GRAFIKON NÉLKÜL
Avagy néhány érdekes számadat.
3620
330
db figyelmeztetés a legacy kódbázison
53
javított hiba
12
perc
7
perc
5.3.10
5.5.9
build ideje kb. 800 felület- és egységteszttel a legacy kódbázison
TANULSÁGOK
Mi volt jó és mit csinálnánk másként?
IDEÁLIS PROJEKT�ÚJ KOLLÉGÁKNAK
Tucatnyi olyan feladat volt (pl. register globals körül), amihez minimális helyismeret, de biztos és türelmes kezek.
HATÉKONYAN DOLGOZTUNK EGYÜTT
Kis csapatok ide, helyismeret oda: 13 fejlesztő dolgozott együtt a 25 különböző kódbázison.�És egyszer sem léptek egymás lábára.
ÚJ HELYISMERET A PROJEKTEKBEN
Mivel nem mindenki a saját kódterületén dolgozott, sokan szerezhettek helyismeretet egy�másik csapat kódjában.
A SZOKÁSOS�CSOMAG
Biztonság, hatékonyság, naprakészség, szép kód, technológiai adósságcsökkentés stb.
LEÁLLÁS ÉLESBEN:�1 ALKALOMMAL
Végig figyeltünk, de egyszer egy alattomos hiba átcsúszott a kezünk között. Két perccel később visszahúztuk, 15 perccel később újra élesítettük.
MEGSZAPORODTAK�A BUGOK
A projekt alatt csak a kritikus és blokkoló hibákat javítottuk. Emiatt viszont viszonylag sok felgyűlt a két hét alatt, amit nehézkesebb volt ledolgozni.
LENDÜLETVESZTÉS�A PROJEKT VÉGÉN
Az utolsó napokban még mindenki lelkesen fogta a feladatokat, de amikor újra beindult a hétköznapi üzem, kicsit elengedtük a gyeplőt.
HOGYAN TOVÁBB?
További lépések, tervek, víziók, álmok.
MIT TERVEZÜNK A TOVÁBBIAKBAN?
GYAKORI FRISSÍTÉS
Nem leszünk early adopterek, de nagy meglepetésekre nem számítunk mostanában. Tervezzük a további frissítéseket.
HHVM
Az új verzió miatt�ez is szóba jöhet. Kipróbáljuk, kísérletezünk vele, aztán elválik.
SYMFONY 1.5
Ahol lehet, próbáljuk majd fogni a projekt kezét; nem csak mi használjuk.
KÉRDÉSEK?
@mefiblogger | nadai.gabor@ingatlan.com
A sablont a SlidesCarnival szállította, köszi nekik!