2. Presentatie “Magento testomgevingen” - http://slideshare.net/yireo
Jisse Reitsma (jisse@yireo.com) - Twitter @yireo
Mijn naam is Jisse Reitsma
Magento enthousiast
Lead developer van Yireo
EmailTester
DeleteAnyOrder
MageBridge brug met Joomla!
en andere Magento extensies
4. Presentatie “Magento testomgevingen” - http://slideshare.net/yireo
Jisse Reitsma (jisse@yireo.com) - Twitter @yireo
Waarom een testomgeving?
Bij iedere wijziging kan iets fout gaan:
Configuratie-wijzigingen
Extensies of thema-aanpassingen uitproberen
Magento upgrade testen
Liever een fout op de test site dan op de productie site
6. Presentatie “Magento testomgevingen” - http://slideshare.net/yireo
Jisse Reitsma (jisse@yireo.com) - Twitter @yireo
Testomgeving opzetten (1/2)
Eigen URL
test.example.com
www.example.com/test
Andere server?
Toegang
Publiek
Beperkt (HTTP authenticatie, IP restrictie)
7. Presentatie “Magento testomgevingen” - http://slideshare.net/yireo
Jisse Reitsma (jisse@yireo.com) - Twitter @yireo
Testomgeving opzetten (2/2)
Copieer bestanden van productie naar test
FTP of SSH of git
Pas bestand app/etc/local.xml aan
Copieer database van productie naar test
phpMyAdmin of script
Pas table core_config_data aan
Cache verversen / indices verversen
9. Presentatie “Magento testomgevingen” - http://slideshare.net/yireo
Jisse Reitsma (jisse@yireo.com) - Twitter @yireo
Even snel git uitleggen
Alle wijzigingen worden opgeslagen in repository
Repository kan overal zijn
Private repositories: Eigen git server; GitHub; Assembla
Repository kan overal naar toe worden gecopieerd
Decentrale relatie tussen repository clones
Remote repositories: origin
Branches: master, dev
10. Presentatie “Magento testomgevingen” - http://slideshare.net/yireo
Jisse Reitsma (jisse@yireo.com) - Twitter @yireo
Waarom git?
Versiebeheer
Incrementele backups
Restore naar specifieke commit
Logging van iedere wijziging (commits)
Branching
Bundelen van wijzigingen (commits)
Gefaseerd doorvoeren van gebundelde wijzigingen
12. Presentatie “Magento testomgevingen” - http://slideshare.net/yireo
Jisse Reitsma (jisse@yireo.com) - Twitter @yireo
Hetzelfde maar nu met branches
Testomgeving (“master” branch)
git commit file1
git push origin master
Acceptatie omgeving
git pull origin master
git checkout production
git merge master
Productie omgeving (“production” branch)
git pull origin production
13. Presentatie “Magento testomgevingen” - http://slideshare.net/yireo
Jisse Reitsma (jisse@yireo.com) - Twitter @yireo
Tips voor gebruik van git
Gebruik “master” branch voor development, niet productie
Maak een aparte git user per developer
Of iets met SSH public keys
Gebruik een goede gitignore file
Exclude: var/*, app/etc/local.xml
15. Presentatie “Magento testomgevingen” - http://slideshare.net/yireo
Jisse Reitsma (jisse@yireo.com) - Twitter @yireo
Testomgeving aanpassen (1/2)
Development settings
Caching uit
JS / CSS merging uit
Geen performance settings (APC, memcache, Redis)
PHP display_errors aan
/errors/local.xml > print errors (voorbeeld: local.xml.sample)
New Relic
16. Presentatie “Magento testomgevingen” - http://slideshare.net/yireo
Jisse Reitsma (jisse@yireo.com) - Twitter @yireo
Testomgeving aanpassen (2/2)
Geen productie settings
Analytics uit (GoogleAnalytics, Piwik)
Zet demo melding aan
Configuration > Design > HTML Head > Display Demo Store Notice
Zet betaalmethodes om naar sandbox- of test-modus
Configureer extra IP restrictie
.htaccess > AuthName / AuthType / AuthUserFile
17. Presentatie “Magento testomgevingen” - http://slideshare.net/yireo
Jisse Reitsma (jisse@yireo.com) - Twitter @yireo
Toegang voor ontwikkelaars
Optie 1
Git
Optie 2
FTP accounts vooraf aanmaken
Magento folder(s) als Linux filesystem mounten binnen FTP folder
18. Presentatie “Magento testomgevingen” - http://slideshare.net/yireo
Jisse Reitsma (jisse@yireo.com) - Twitter @yireo
Automatisch van productie naar test
Test moet in sync blijven met productie
Script om automatisch test up to date te brengen
git pull origin master
cp ~/settings/local.xml.test app/etc/local.xml
mysql -u root -p testdb < var/sql/production_latest.xml
mysql -u root -p testdb < ~/settings/local.sql