Upload
andrixh
View
89
Download
5
Embed Size (px)
Citation preview
// a strange portal Opens
$meetup[1]
phpalbaniauser group
2015-09-30
Andri [email protected]
Optimizimi i ambientittë zhvillimit
dhe diferencimi nga ambienti i produksionit
Ndryshimet e zhvillimit me produksionin
• Komoditet• Shpejtësi në zhvillim• Pamje e plotë e gjendjes së projektit
Zhvillim
• Disponueshmëri• Siguri• Performancë• Mbrojtje e të dhënave
Produksion
Optimizimi i ambientit te zhvillimitdhe diferencimi nga ambienti i produksionit
2015-09-30
Andri [email protected]
Opsioni 1 : Zhvillimi direkt me FTP(zhvillimi == produksioni)
Optimizimi i ambientit te zhvillimitdhe diferencimi nga ambienti i produksionit
2015-09-30
Andri [email protected]
Opsioni 1 : Zhvillimi direkt me FTP
Optimizimi i ambientit te zhvillimitdhe diferencimi nga ambienti i produksionit
2015-09-30
Andri [email protected]
THAT’S MY SECRET
I ALWAYS CODE IN THE LIVE SERVER
Opsioni 1 : Zhvillimi direkt me FTP
Optimizimi i ambientit te zhvillimitdhe diferencimi nga ambienti i produksionit
2015-09-30
Andri [email protected]
• Mund te kodosh nga kudo, mjafton te kesh nje lidhje interneti.• Kodi i shkruar eshte teknikisht i pershtatshem* per produksion (nuk ka librari qe mungojne ose probleme me kon�gurimin)
Opsioni 1 : Zhvillimi direkt me FTP
Optimizimi i ambientit te zhvillimitdhe diferencimi nga ambienti i produksionit
2015-09-30
Andri [email protected]
• I ngadalte (1 muaj per nje pune qe kerkon max. 1jave)• I demshem (mund te lere sistemin jo funksional per pak minuta ose per ore te tera)• I pasigurt (mund te shfaqe mesazhe ose permbajtje qe ekspozojne vulnerabilitetet e sistemit)• Pa kthim (pasi e mbishkruan nje �le, veshtire se mund ti rikthehesh nje versioni te meparshem)
Te instaluara individualisht, ne menyre manuale
Opsioni 2 : Server zhvillimi lokal
Optimizimi i ambientit te zhvillimitdhe diferencimi nga ambienti i produksionit
2015-09-30
Andri [email protected]
Te instaluara individualisht, ne menyre manuale
Ose te paketuara, me instalim te lehte
Opsioni 2 : Server zhvillimi lokal
Optimizimi i ambientit te zhvillimitdhe diferencimi nga ambienti i produksionit
2015-09-30
Andri [email protected]
• Vihet ne pune pothuajse menjehere• Nuk ndikon drejtperdrejt ne versionin e produksionit.• Nuk kompromenton sigurine dhe disponueshmerine e serverit te produksionit gjate kohes se zhvillimit.• Kodi testohet shume me shpejt (sidomos e nevojshme ne frontend)
Opsioni 2 : Server zhvillimi lokal
Optimizimi i ambientit te zhvillimitdhe diferencimi nga ambienti i produksionit
2015-09-30
Andri [email protected]
• E veshtire te punosh me disa projekte paralele (qe kane kerkesa te ndryshme ndaj serverit)
• Nuk garanton qe kodi i ri do te punoje ne serverin e produksionit (ndryshime ne librari, web-servera dhe kon�gurime).
• Kushtet mund te ndryshojne pa dijenine e programuesit (si pasoje e instalimit te programeve te tjera, sidomos ne Windows)
• Ndryshimi i menyres se ruajtjes se �leve (case-sensitivity) nga sistemi i zhvillimit ne ate te produksionit mund te sjelle probleme qe jane te veshtira per tu identi�kuar.
• Sindroma Works On My Machine™
Opsioni 2 : Server zhvillimi lokal
Optimizimi i ambientit te zhvillimitdhe diferencimi nga ambienti i produksionit
2015-09-30
Andri [email protected]
Opsioni 3 : Server i dedikuar zhvillimi
Optimizimi i ambientit te zhvillimitdhe diferencimi nga ambienti i produksionit
2015-09-30
Andri [email protected]
Opsioni 3 : Server i dedikuar zhvillimi
Optimizimi i ambientit te zhvillimitdhe diferencimi nga ambienti i produksionit
2015-09-30
Andri [email protected]
Qëllimi kryesor:
Ambient sa më i ngjashëm me serverin e produksionit
Opsioni 3 : Server i dedikuar zhvillimi
Optimizimi i ambientit te zhvillimitdhe diferencimi nga ambienti i produksionit
2015-09-30
Andri [email protected]
Makine e dedikuar (lidhur ne LAN)
Opsioni 3 : Server i dedikuar zhvillimi
Optimizimi i ambientit te zhvillimitdhe diferencimi nga ambienti i produksionit
2015-09-30
Andri [email protected]
Makine e dedikuar (lidhur ne LAN)Makine Virtuale (ne kompjuterin nga zhvillohet)
Opsioni 3 : Server i dedikuar zhvillimi
Optimizimi i ambientit te zhvillimitdhe diferencimi nga ambienti i produksionit
2015-09-30
Andri [email protected]
Makine e dedikuar (lidhur ne LAN)Makine Virtuale (ne kompjuterin nga zhvillohet)
Makine Virtuale me provizionim automatik
PuPHPet
• Garancia me e mire per kompatibilitetin e kodit me serverin e produksionit• Ambient zhvillimi i izoluar nga nderhyrjet e programeve te tjera ne kompjuterin nga po punoni.• Mundesi organizimi duke patur nje Makine per projekt, ose te grupimit te projekteve neper makina virtuale sipas ngjashmerise.• Lehtesi ne duplikimin e ambientit te zhvillimit per punen ne skuader dhe per qellime ndihmese (Development->Testing->Staging->Production)
Opsioni 3 : Server i dedikuar zhvillimi
Optimizimi i ambientit te zhvillimitdhe diferencimi nga ambienti i produksionit
2015-09-30
Andri [email protected]
• Kerkon pak* pune paraprake per t'u sistemuar sic duhet
Nje shenim per sistemet operative
Optimizimi i ambientit te zhvillimitdhe diferencimi nga ambienti i produksionit
2015-09-30
Andri [email protected]
“MyPhpFile.php” == “myphp�le.php”
“MyPhpFile.php” == “myphp�le.php”
“MyPhpFile.php” == “myphp�le.php”
“MyPhpFile.php” != “myphp�le.php”
“MyPhpFile.php” != “myphp�le.php”
Situata ideale NE ZHVILLIM
• Pamje e plote e gjithckaje qe ndodh ne sistem• Raportim i plote i gabimeve, sado te parendesishme, per te parandaluar gabime me te medha me pas• Siguri tipikisht e ulet, passworde te thjeshta, akses i lire ne disk, per lehtesi manipulimi gjate punes.• Nuk keshillohen optimizimet e performances (caching)
Optimizimi i ambientit te zhvillimitdhe diferencimi nga ambienti i produksionit
2015-09-30
Andri [email protected]
• Siguria me e larte e mundshme.• Sistemi pothuajse i pa-aksesueshem, pervecse per te permbushur detyrat e aplikacionit.• Te mos ofroje asnje informacion me shume nga sa i duhet per te permbushur detyren (hardening)• Sisteme te optimizimit te performances Opcode Caching, Database Caching, CDN...• Sisteme te garantimit te te dhenave Backups, Redundancy systems, Fail-Safes• Sistem njoftimi i hershem per erroret dhe sulmet
Optimizimi i ambientit te zhvillimitdhe diferencimi nga ambienti i produksionit
2015-09-30
Andri [email protected]
Situata ideale NE PRODUKSION
Optimizimi i ambientit te zhvillimitdhe diferencimi nga ambienti i produksionit
2015-09-30
Andri [email protected]
Error Reporting NE ZHVILLIM
Optimizimi i ambientit te zhvillimitdhe diferencimi nga ambienti i produksionit
2015-09-30
Andri [email protected]
Error Reporting NE PRODUKSION
Erroret qe ndodhin ne produksion nuk duam qe tu shfaqen vizitoreve
(apo keqberesve) por gjithesesi na nevojitet
te jemi te informuar per ekzistencen e tyre
Optimizimi i ambientit te zhvillimitdhe diferencimi nga ambienti i produksionit
2015-09-30
Andri [email protected]
Error Reporting NE PRODUKSION
Optimizimi i ambientit te zhvillimitdhe diferencimi nga ambienti i produksionit
2015-09-30
Andri [email protected]
Error Reporting NE PRODUKSION
xdebug.org github.com/�rephp/�rephp-core
Optimizimi i ambientit te zhvillimitdhe diferencimi nga ambienti i produksionit
2015-09-30
Andri [email protected]
Perdor nje (ose me shume) Debugger
Optimizimi i ambientit te zhvillimitdhe diferencimi nga ambienti i produksionit
2015-09-30
Andri [email protected]
Perdor nje (ose me shume) Debugger
Optimizimi i ambientit te zhvillimitdhe diferencimi nga ambienti i produksionit
2015-09-30
Andri [email protected]
Perdor nje (ose me shume) Debugger
Sigurohu qe debugger-at te jene mos jene aktive
ne produksion
Optimizimi i ambientit te zhvillimitdhe diferencimi nga ambienti i produksionit
2015-09-30
Andri [email protected]
Perdor nje (ose me shume) Debugger
• Kredencialet e Databases• Preferencat e shfaqjes dhe raportimit te gabimeve• Mjetet per debug• Sistemet e optimizimit te performances (caching, etj)
Optimizimi i ambientit te zhvillimitdhe diferencimi nga ambienti i produksionit
2015-09-30
Andri [email protected]
Konfigurime te ndryshmeper ambiente te ndryshme
Jo shume praktike, mundesi e larte per gabim njerezor
Optimizimi i ambientit te zhvillimitdhe diferencimi nga ambienti i produksionit
2015-09-30
Andri [email protected]
Konfigurime me include manuale
Shume me praktike, por varet nga nje variabel qe mund te modi�kohet (nga sysadmini pijedashes)
Optimizimi i ambientit te zhvillimitdhe diferencimi nga ambienti i produksionit
2015-09-30
Andri [email protected]
Konfigurime sipas Variablave te ambientit
Emri i domainit eshte nga te paktat gjera te sigurtaPerdoret $_SERVER("SERVER_NAME") dhe jo $_SERVER("HTTP_HOST")
Optimizimi i ambientit te zhvillimitdhe diferencimi nga ambienti i produksionit
2015-09-30
Andri [email protected]
Konfigurime sipas Hostname
Pyetje? Komente?
Optimizimi i ambientit te zhvillimitdhe diferencimi nga ambienti i produksionit
2015-09-30
Andri [email protected]
Ju faleminderit!
Optimizimi i ambientit te zhvillimitdhe diferencimi nga ambienti i produksionit
2015-09-30
Andri [email protected]