• Speichern
Entwicklungsprozess und Arbeit mit Symfony2 in der fotocommunity GmbH
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Entwicklungsprozess und Arbeit mit Symfony2 in der fotocommunity GmbH

am

  • 1,018 Views

* Vorstellung Entwicklungsprozess fotocommunity GmbH

* Vorstellung Entwicklungsprozess fotocommunity GmbH
* Tools, Services, Techniken
* Arbeit mit Symfony2

Statistiken

Views

Gesamtviews
1,018
Views auf SlideShare
661
Views einbetten
357

Actions

Gefällt mir
1
Downloads
0
Kommentare
0

7 Einbettungen 357

http://www.fotocommunity.de 329
http://fotocommunity.wpengine.com 15
http://www.fotocommunity.com 5
http://10.200.42.11 3
http://www.fotocommunity.fr 2
http://fotocommunity.staging.wpengine.com 2
http://www.fotocommunity.it 1
Mehr ...

Zugänglichkeit

Kategorien

Details hochladen

Uploaded via as Microsoft PowerPoint

Benutzerrechte

© Alle Rechte vorbehalten

Report content

Als unangemessen gemeldet Als unangemessen melden
Als unangemessen melden

Wählen Sie Ihren Grund, warum Sie diese Präsentation als unangemessen melden.

Löschen
  • Full Name Full Name Comment goes here.
    Sind Sie sicher, dass Sie...
    Ihre Nachricht erscheint hier
    Processing...
Kommentar posten
Kommentar bearbeiten

Entwicklungsprozess und Arbeit mit Symfony2 in der fotocommunity GmbH Presentation Transcript

  • 1. Vorstellung / Use Case fotocommunity Stand: März 2013 Text Text Text Text Zeig uns Deine besten Bilder.
  • 2. Agenda* Vorstellung* Überblick Team* Infrastruktur + Server, Arbeitsumgebungen* Timeline + Überblick Webseite* Eigenheiten bei der Implementation mit Symfony2* Performance* Entwicklung + Q&A, Testing, Deployment* Tools / Services* Painpoints, Erkenntnisse, Ausblick Zeig uns Deine besten Bilder.
  • 3. Wer bin ich ? * Stephan Tijink * Head of Web Development * Beruflich Entwickler seit 1999 * Bei der fotocommunity seit 2005 * Ausbilder Fachinformatiker seit 2012 * Twitter/github: @stijink Zeig uns Deine besten Bilder.
  • 4. Was ist die fotocommunity * Größte Community für Fotografie in Europa * Aktuell in fünf Sprachen verfügbar * Gegründet 2001 als Hobbyprojekt * Komerziell seit 2002 * Schwerpunkt auf Kommunikation Zeig uns Deine besten Bilder.
  • 5. Zahlen * 1,5 Millionen Mitglieder * 15 Millionen Fotos * 100 Millionen Bildkommentare * 120 Millionen Seitenaufrufe / Monat * 172 GB Daten in MySQL Zeig uns Deine besten Bilder.
  • 6. Das Technik Team * 2 Mitarbeiter Infrastruktur/Server * 7 Mitarbeiter Entwicklung * Scrum für Projektmanagement Zeig uns Deine besten Bilder.
  • 7. Infrastruktur* 34 physikalische Server, 23 virtuelle Server* Hosting in Frankfurt* Ubuntu 12.04 LTS (Planziel 2013)* Installation via Kickstart* Provisionierung mit Chef* KVM für Virtualisierung* Amazon S3 + Amazon EC2 als Failover Bildauslieferung Zeig uns Deine besten Bilder.
  • 8. Serversoftware * Nginx - SSL Terminierung, Rewrites * Varnish - Caching / ESI * HA Proxy - Loadbalancing * Apache / PHP (7 Application-Server) * MySQL (Master/Slave), SOLR (noch) * Redis, memcache (Sessions) Zeig uns Deine besten Bilder.
  • 9. Arbeitsumgebungen * Jeder Entwickler hat eine eigene VM via Parallels * VM liegt auf dem Arbeitsgerät (Laptop) * Provisionierung der VM über Chef * Mac oder Linux als Entwicklergeräte * Diverse Testgeräte (Windows, Andriod, iOS) Zeig uns Deine besten Bilder.
  • 10. Timeline EntwicklungBeginn Entwicklung Beginn vollständigerPHP 4, MySQL 3 Rewrite in Symfony 2 2010 heute Spaghetti-Code, Prozedual, PHP4-OOP, register_globals = on ... das volle Programm ;) 2001 2011 Neu-Komponenten 35 % Zugriffe * + API in Symfony 1 über Symfony2 * ca. 120 Millionen Seitenaufrufe Monat insgesamt. Etwa 42 Millionen über Symfony2 (exkl. ESI) Zeig uns Deine besten Bilder.
  • 11. Überblick Webseite * Viele Komponenten noch im Legacy-Code * Wenige Komponenten mit Symfony1 umgesetzt * API für Dritte mit Symfony1 umgesetzt * Neue Komponenten werden in Symfony2 erstellt * 3rd Party: PHPBB 3, MediaWiki, Wordpress Zeig uns Deine besten Bilder.
  • 12. Routing 1. Anlaufstelle Legacy-Code 2. Dump Symfony1 Routen in .htaccess 3. Symfony2 als CatchAll für übrige Requests Zeig uns Deine besten Bilder.
  • 13. ESI als Baukasten * Header und Footer in Symfony2 implementiert * Legacy-Code, Symfony1 und 3rd Party nutzen Implementation aus Symfony2 via ESI-Includes * Invalidierung durch verschiedene Codebasen Zeig uns Deine besten Bilder.
  • 14. Authentication * Legacy Code fungiert als „Master“ * Andere Codebasen + 3rd Party implementieren System aus dem Legacy Code (lesend, schreibend) Zeig uns Deine besten Bilder.
  • 15. PerformanceLegacy Code - 50 ms PHP Symfony2 - 75 ms PHPOhne Grafik: Symfony 1 - 230 ms PHP Zeig uns Deine besten Bilder.
  • 16. Prozess Entwicklung + Q&A * Pro Feature/Bugfix ein Branch in git * Pull-Request in github * Code-Review durch ein Teammitglied * Funktionstest durch ein Teammitglied * Merge in master durch ein Teammitglied Zeig uns Deine besten Bilder.
  • 17. Testing* Gescheites Testen müssen wir noch lernen ;-)* PHPUnit als Testwerkzeug* Aktuell keine Auswertung Code Coverage* Keine Tests im Legacy Code* Etwa 50 Assertions in Symfony1* Aktuell etwa 200 Assertions in Symfony2 Zeig uns Deine besten Bilder.
  • 18. Versionsverwaltung / Deployment * Legacy Code in Subversion * Symfony1 + Symfony2 in git (github.com) * Deployment mit phing * Build per Knopfdruck als .tar.gz (langsam) * Staging (Auf Live-Hardware / UserAgent-Weiche) * Geplant: Atlassian Bamboo für CI / Deployment Zeig uns Deine besten Bilder.
  • 19. Weitere Tools und Services * Amazon S3 + Amazon EC2 * Jira - Issue und Sprintplanung * github.com - Hosting Source (häufiger Ausfälle) * NewRelic.com - Application Monitoring * Icinga für Server-Monitoring * Confluence - Dokumentation, Collaboration Zeig uns Deine besten Bilder.
  • 20. Pain Points beim Umstieg * 10 Jahre Spaghetti-Code * Funktion bestehender Features nicht dokumentiert * Fehlendes Wissen moderner Programmieransätze * Einarbeitung in Symfony2-Struktur (Was wohin ?) * Doctrine2 (Dokumentation ausbaufähig) * Keine Constraints in Datenbank * Testen wollen, aber nicht wissen wie Zeig uns Deine besten Bilder.
  • 21. Was wir gelernt haben * Einführung QA-Prozess * Dokumentieren, auch ausserhalb des Code * Mehr Knowledge-Transfer / Pair Programming * Programmieren nach Coding-Standards * Grundlagen Test-Driven-Development * Einarbeitung neuer Kollegen jetzt deutlich einfacher Zeig uns Deine besten Bilder.
  • 22. Ausblick* Migration auf Symfony >= 2.2* Weiterführung Rewrite* Refactoring/Cleanup neuer Code, wo sinnvoll* ElasticSearch anstatt SOLR* Neues Bilder-Backends in Arbeit (Ceph + S3)* Ausbau Cloud-Fähigkeit (Tests mit OpenStack)* Atlassian Bamboo für CI / Deployment Zeig uns Deine besten Bilder.