SlideShare una empresa de Scribd logo
1 de 53
Montag, 3. Juni 13
Rock Solid Magento
Development
Presented by
Daniel Pötzinger
Meet Magento - Leipzig 2013
Montag, 3. Juni 13
Montag, 3. Juni 13
danpoetz
Montag, 3. Juni 13
Am Anfang jeder
Entwicklung ist
eine Idee
Montag, 3. Juni 13
oder auch viele...
Montag, 3. Juni 13
$
Der Weg zum Ziel
Lean product/
market fit
(Ideen sammeln und Validieren)
Lean principles
agile Entwicklung
Scrum / Kanban
Betrieb
Montag, 3. Juni 13
$
ist voller Herrausforderungen
ä
Der Weg zum Ziel
Montag, 3. Juni 13
effektives Team ö
Montag, 3. Juni 13
Menschen und Interaktionen
sind wichtiger als Prozesse und
Werkzeuge
Funktionierende Software
ist wichtiger als umfassende Konzeptionsdokumente
Zusammenarbeit mit dem Kunden
ist wichtiger als Vertragsverhandlung Auf Veränderungen eingehen
ist wichtiger als Festhalten an einem Plan
agiles Manifesto
Montag, 3. Juni 13
TeamMontag, 3. Juni 13
Scrum Team
Montag, 3. Juni 13
24H
2-4 WOCHEN
Scrum
Montag, 3. Juni 13
Tuckman Model
Montag, 3. Juni 13
targetprocess
Montag, 3. Juni 13
Pair Programming
Montag, 3. Juni 13
Was ist die Ramp up Time
für neue Entwickler im Team?
Montag, 3. Juni 13
Wie viele Entwickler teilen sich ein System?
Montag, 3. Juni 13
★Am Rechner ein Kommando ausführen, um eine aktuelle
Entwicklungsumgebung zu bekommen
★Einen Kaffee holen
★zurück kommen und loslegen
Wie wäre das...
Montag, 3. Juni 13
ä
Montag, 3. Juni 13
Qualität
„Eine neue Funktion hat vorhandene
Funktionen kaputt gemacht“
„auf meinem Entwicklungssystem hat
es
funktioniert“
„Im Firefox geht es“
„Das hat Mustermann gemacht - keine
Ahnung was der Code macht“
ü
Montag, 3. Juni 13
Kenne die Code Smells
Montag, 3. Juni 13
Magento Core und Module trennen
https://github.com/colinmollenhour/modman
.modman
app/code/local/Mage/Customer/*
app/code/local/Mage/Customer/
style_root/build/css/*
skin/frontend/project/theme/css
style_root/build/files
skin/frontend/project/theme/file
style_root/build/js/*
skin/frontend/project/theme/js
style_root/build/html/*
skin/frontend/project/theme/html
@shell cp $MODULE/.htaccess $PROJECT/.htaccess; echo "Copied .htaccess";
modman deploy-all
Montag, 3. Juni 13
ä
ä
Definition of Done
Ebenen von „Done“
Montag, 3. Juni 13
Continuous Integration
„
„
main
X
v
ä
Montag, 3. Juni 13
Hotfixbranch
Feature Branches
main
Feature1
ü
„
ü
„
ü
Continuous Integration
X
Feature1
Montag, 3. Juni 13
Test
Pyramide
Automated Unit Tests
Automated
Functional Tests
Automated
Integration Tests
Automated
API Tests
Automated
GUI Tests
Manual / Session
Based Testing
Montag, 3. Juni 13
Magicento
Montag, 3. Juni 13
Code Review
Build
Test+Review
Montag, 3. Juni 13
Code Analyse
Montag, 3. Juni 13
Test Pipeline
Komponenten
Functional
Akzeptanz
Performance
Automated Unit Tests
Automated
Functional Tests
Automated
Integration Tests
Automated
API Tests
Automated
GUI Tests
Manual / Session
Based Testing
Montag, 3. Juni 13
• Code Review:
• Gerrit
• Crucible
• Code Analyse
• phpcpd
• php-codesniffer
• phpmd
• phpdepend
• phploc
Nützliche Tools
• CI
• Jenkins
• Bamboo
• Testing:
• PHPUnit
• Cucumber
• Selenium 2
• Menta
• Jmeter
• EcomDev
Montag, 3. Juni 13
Deployment
und Infrastruktur
Montag, 3. Juni 13
Von der
Entwicklungsumgebung zur
Produktivumgebung
Montag, 3. Juni 13
Eine neue Umgebung zu starten,
sollte schneller sein,
als eine existierende zu reparieren
Montag, 3. Juni 13
Infrastructure as code!Montag, 3. Juni 13
Chef & Puppet
Montag, 3. Juni 13
Deployment
ProvisioningSteps Attributes
&
DataBags
infra-structure
cookbooks
Basis Box (AMI,VBOX)
Infrastruktur als Code
site-cookbooks
Montag, 3. Juni 13
Montag, 3. Juni 13
„Virtualized development made easy“
git clone ..../angrybirds/serversetup
vagrant up
Vagrant VirtualBox+
Montag, 3. Juni 13
cookbooks
VCS
Vagrant
VBox1
EC2
CI Chef Server
Staging & Production
Infrastruktur als Code
Montag, 3. Juni 13
Don‘t be scared of
releasing to
production
Es geht nicht nur um den Quellcode!
Montag, 3. Juni 13
Umgebungen
Konfiguration
Quellcode
Daten
Deployment
Montag, 3. Juni 13
Nützliche Tools
• Vagrant
• Chef
• Librarian Chef
• EnvSettingsTool
• EasyDeploy
• EasyDeployWorkflows
Montag, 3. Juni 13
Rollout und Rollback Pattern
Green / Blue
Canary Release Dark Launch
or
Releasefolder
Montag, 3. Juni 13
Betrieb
ä
Montag, 3. Juni 13
Plan deine Infrastruktur wie deinen Code
Montag, 3. Juni 13
RDS
„Deployment Definition“
+ Autoscaling
Varnish Array
Frontend Array Backend Array Worker Array
CloudFront
CDN for Skin
ELB
R53
DNS
RDS
S3
Deployment
ElastiCache
Cache Backend
CloudFront
CDN for Assets
S3
Assets Storage
EC2 EC2
EC2
EC2 EC2 EC2
EC2 EC2
MonitoringAPI
Montag, 3. Juni 13
$
Lean product/
market fit
(Ideen sammeln und
Validieren)
agile Entwicklung
Scrum / Kanban
Betrieb
Build
Komponenten
Vagrant
Provisioning
Monitoring
Functional
Akzeptanz
Performance
Deployment
CodeStyle
Dev
Test+Review
Der Weg zum Ziel
Montag, 3. Juni 13
Montag, 3. Juni 13
Über uns
 Open Web Company
• Seit 1999 profitabel am Markt
positioniert
• 2. Platz im Deloitte Technology Fast 50
Award Ranking 2010
• Über 500 Projekte
• 100 Entwickler und Consultants in 6
Ländern
• Marktführender TYPO3 Dienstleister
• Full Service Verständnis durch starke
Partner für Design, Hosting und
Marketing
Montag, 3. Juni 13
Was wir bieten
 Enterprise Web Content Management
• Entwicklung von ganzheitlichen globalen Enterprise CMS
Lösungen
• Migration bestehender Webseiten in TYPO3
• Entwicklung von Erweiterungen und Einbindung in existierende
Systeme
 E-Commerce
• E-Commerce Anwendungsentwicklung
• Open Source E-Commerce Lösungen und Prozessintegration
(ERP, CRM etc.)
 Online Applikationen
• Vollständige Systemarchitekturentwicklung und Implementierung
von Enterprise
Online Applikationen
• Full Service & Consulting
• Wartung & Pflege
Montag, 3. Juni 13
Danke!
Follow us on Twitter:
AOE: @aoemedia
Daniel P: @danpoetz
Flickr photo contributions in the slide:
http://www.flickr.com/photos/the-wanderers-eye/4494147652/sizes/l/
http://www.flickr.com/photos/51293088@N05/8195327886/sizes/l/
http://www.flickr.com/photos/k1rsch/3818553037/sizes/l/
Montag, 3. Juni 13

Más contenido relacionado

Más de AOE

Re-inventing airport non-aeronautical revenue generation post COVID-19
Re-inventing airport non-aeronautical revenue generation post COVID-19Re-inventing airport non-aeronautical revenue generation post COVID-19
Re-inventing airport non-aeronautical revenue generation post COVID-19AOE
 
Flamingo - Inspiring Commerce Frontend made in Go - Meet Magento 2019
Flamingo - Inspiring Commerce Frontend made in Go - Meet Magento 2019Flamingo - Inspiring Commerce Frontend made in Go - Meet Magento 2019
Flamingo - Inspiring Commerce Frontend made in Go - Meet Magento 2019AOE
 
Flamingo presentation at code.talks commerce by Daniel Pötzinger
Flamingo presentation at code.talks commerce by Daniel PötzingerFlamingo presentation at code.talks commerce by Daniel Pötzinger
Flamingo presentation at code.talks commerce by Daniel PötzingerAOE
 
A bag full of trust - Christof Braun at AOE Conference 2018
A bag full of trust - Christof Braun at AOE Conference 2018A bag full of trust - Christof Braun at AOE Conference 2018
A bag full of trust - Christof Braun at AOE Conference 2018AOE
 
Digitalizing the Global Travel Retail World - Kian Gould at Global Retailing ...
Digitalizing the Global Travel Retail World - Kian Gould at Global Retailing ...Digitalizing the Global Travel Retail World - Kian Gould at Global Retailing ...
Digitalizing the Global Travel Retail World - Kian Gould at Global Retailing ...AOE
 
Frankfurt Airport Digitalization Case Study
Frankfurt Airport Digitalization Case StudyFrankfurt Airport Digitalization Case Study
Frankfurt Airport Digitalization Case StudyAOE
 
This is what has to change for Travel Retail to survive - Manuel Heidler, AOE
This is what has to change for Travel Retail to survive - Manuel Heidler, AOEThis is what has to change for Travel Retail to survive - Manuel Heidler, AOE
This is what has to change for Travel Retail to survive - Manuel Heidler, AOEAOE
 
AOEconf17: Application Security
AOEconf17: Application SecurityAOEconf17: Application Security
AOEconf17: Application SecurityAOE
 
AOEconf17: AOE Tech Radar Insights
AOEconf17: AOE Tech Radar InsightsAOEconf17: AOE Tech Radar Insights
AOEconf17: AOE Tech Radar InsightsAOE
 
AOEconf17: A flight through our OM³ Systems
AOEconf17: A flight through our OM³ SystemsAOEconf17: A flight through our OM³ Systems
AOEconf17: A flight through our OM³ SystemsAOE
 
AOEconf17: AOE Tech Radar Insights
AOEconf17: AOE Tech Radar InsightsAOEconf17: AOE Tech Radar Insights
AOEconf17: AOE Tech Radar InsightsAOE
 
AOEconf17: Pets vs. Cattle - modern Application Infrastructure - by Fabrizio ...
AOEconf17: Pets vs. Cattle - modern Application Infrastructure - by Fabrizio ...AOEconf17: Pets vs. Cattle - modern Application Infrastructure - by Fabrizio ...
AOEconf17: Pets vs. Cattle - modern Application Infrastructure - by Fabrizio ...AOE
 
AOEconf17: Agile scaling concepts
AOEconf17: Agile scaling conceptsAOEconf17: Agile scaling concepts
AOEconf17: Agile scaling conceptsAOE
 
AOEcon17: Searchperience - The journey from PHP and Solr to Scala and Elastic...
AOEcon17: Searchperience - The journey from PHP and Solr to Scala and Elastic...AOEcon17: Searchperience - The journey from PHP and Solr to Scala and Elastic...
AOEcon17: Searchperience - The journey from PHP and Solr to Scala and Elastic...AOE
 
AOEconf17: UI challenges in a microservice world
AOEconf17: UI challenges in a microservice worldAOEconf17: UI challenges in a microservice world
AOEconf17: UI challenges in a microservice worldAOE
 
AOEconf17: Application Security - Bastian Ike
AOEconf17: Application Security - Bastian IkeAOEconf17: Application Security - Bastian Ike
AOEconf17: Application Security - Bastian IkeAOE
 
AOEconf17: Management 3.0 - the secret to happy, performing and motivated sel...
AOEconf17: Management 3.0 - the secret to happy, performing and motivated sel...AOEconf17: Management 3.0 - the secret to happy, performing and motivated sel...
AOEconf17: Management 3.0 - the secret to happy, performing and motivated sel...AOE
 
AOEconf17: How to eat an elePHPant, congstar style - Timo Fuchs & Stefan Rotsch
AOEconf17: How to eat an elePHPant, congstar style - Timo Fuchs & Stefan RotschAOEconf17: How to eat an elePHPant, congstar style - Timo Fuchs & Stefan Rotsch
AOEconf17: How to eat an elePHPant, congstar style - Timo Fuchs & Stefan RotschAOE
 
Joern Bock: The basic concept of an agile organisation
Joern Bock: The basic concept of an agile organisationJoern Bock: The basic concept of an agile organisation
Joern Bock: The basic concept of an agile organisationAOE
 
Magento 2 Best Practice Workfow // David Lambauer // Meet Magento 2017 // Lei...
Magento 2 Best Practice Workfow // David Lambauer // Meet Magento 2017 // Lei...Magento 2 Best Practice Workfow // David Lambauer // Meet Magento 2017 // Lei...
Magento 2 Best Practice Workfow // David Lambauer // Meet Magento 2017 // Lei...AOE
 

Más de AOE (20)

Re-inventing airport non-aeronautical revenue generation post COVID-19
Re-inventing airport non-aeronautical revenue generation post COVID-19Re-inventing airport non-aeronautical revenue generation post COVID-19
Re-inventing airport non-aeronautical revenue generation post COVID-19
 
Flamingo - Inspiring Commerce Frontend made in Go - Meet Magento 2019
Flamingo - Inspiring Commerce Frontend made in Go - Meet Magento 2019Flamingo - Inspiring Commerce Frontend made in Go - Meet Magento 2019
Flamingo - Inspiring Commerce Frontend made in Go - Meet Magento 2019
 
Flamingo presentation at code.talks commerce by Daniel Pötzinger
Flamingo presentation at code.talks commerce by Daniel PötzingerFlamingo presentation at code.talks commerce by Daniel Pötzinger
Flamingo presentation at code.talks commerce by Daniel Pötzinger
 
A bag full of trust - Christof Braun at AOE Conference 2018
A bag full of trust - Christof Braun at AOE Conference 2018A bag full of trust - Christof Braun at AOE Conference 2018
A bag full of trust - Christof Braun at AOE Conference 2018
 
Digitalizing the Global Travel Retail World - Kian Gould at Global Retailing ...
Digitalizing the Global Travel Retail World - Kian Gould at Global Retailing ...Digitalizing the Global Travel Retail World - Kian Gould at Global Retailing ...
Digitalizing the Global Travel Retail World - Kian Gould at Global Retailing ...
 
Frankfurt Airport Digitalization Case Study
Frankfurt Airport Digitalization Case StudyFrankfurt Airport Digitalization Case Study
Frankfurt Airport Digitalization Case Study
 
This is what has to change for Travel Retail to survive - Manuel Heidler, AOE
This is what has to change for Travel Retail to survive - Manuel Heidler, AOEThis is what has to change for Travel Retail to survive - Manuel Heidler, AOE
This is what has to change for Travel Retail to survive - Manuel Heidler, AOE
 
AOEconf17: Application Security
AOEconf17: Application SecurityAOEconf17: Application Security
AOEconf17: Application Security
 
AOEconf17: AOE Tech Radar Insights
AOEconf17: AOE Tech Radar InsightsAOEconf17: AOE Tech Radar Insights
AOEconf17: AOE Tech Radar Insights
 
AOEconf17: A flight through our OM³ Systems
AOEconf17: A flight through our OM³ SystemsAOEconf17: A flight through our OM³ Systems
AOEconf17: A flight through our OM³ Systems
 
AOEconf17: AOE Tech Radar Insights
AOEconf17: AOE Tech Radar InsightsAOEconf17: AOE Tech Radar Insights
AOEconf17: AOE Tech Radar Insights
 
AOEconf17: Pets vs. Cattle - modern Application Infrastructure - by Fabrizio ...
AOEconf17: Pets vs. Cattle - modern Application Infrastructure - by Fabrizio ...AOEconf17: Pets vs. Cattle - modern Application Infrastructure - by Fabrizio ...
AOEconf17: Pets vs. Cattle - modern Application Infrastructure - by Fabrizio ...
 
AOEconf17: Agile scaling concepts
AOEconf17: Agile scaling conceptsAOEconf17: Agile scaling concepts
AOEconf17: Agile scaling concepts
 
AOEcon17: Searchperience - The journey from PHP and Solr to Scala and Elastic...
AOEcon17: Searchperience - The journey from PHP and Solr to Scala and Elastic...AOEcon17: Searchperience - The journey from PHP and Solr to Scala and Elastic...
AOEcon17: Searchperience - The journey from PHP and Solr to Scala and Elastic...
 
AOEconf17: UI challenges in a microservice world
AOEconf17: UI challenges in a microservice worldAOEconf17: UI challenges in a microservice world
AOEconf17: UI challenges in a microservice world
 
AOEconf17: Application Security - Bastian Ike
AOEconf17: Application Security - Bastian IkeAOEconf17: Application Security - Bastian Ike
AOEconf17: Application Security - Bastian Ike
 
AOEconf17: Management 3.0 - the secret to happy, performing and motivated sel...
AOEconf17: Management 3.0 - the secret to happy, performing and motivated sel...AOEconf17: Management 3.0 - the secret to happy, performing and motivated sel...
AOEconf17: Management 3.0 - the secret to happy, performing and motivated sel...
 
AOEconf17: How to eat an elePHPant, congstar style - Timo Fuchs & Stefan Rotsch
AOEconf17: How to eat an elePHPant, congstar style - Timo Fuchs & Stefan RotschAOEconf17: How to eat an elePHPant, congstar style - Timo Fuchs & Stefan Rotsch
AOEconf17: How to eat an elePHPant, congstar style - Timo Fuchs & Stefan Rotsch
 
Joern Bock: The basic concept of an agile organisation
Joern Bock: The basic concept of an agile organisationJoern Bock: The basic concept of an agile organisation
Joern Bock: The basic concept of an agile organisation
 
Magento 2 Best Practice Workfow // David Lambauer // Meet Magento 2017 // Lei...
Magento 2 Best Practice Workfow // David Lambauer // Meet Magento 2017 // Lei...Magento 2 Best Practice Workfow // David Lambauer // Meet Magento 2017 // Lei...
Magento 2 Best Practice Workfow // David Lambauer // Meet Magento 2017 // Lei...
 

Meet Magento - Rock solid development