Upload
glembotzky
View
2.011
Download
2
Embed Size (px)
Citation preview
Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin
Raus aus der Garage, rein in den Markt:Skalierung und Performance von
Web-Applikationen
René-Chr. GlembotzkyCommunityCamp Berlin
Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin
Zur Person
René-Chr. Glembotzky 32 Jahre Gründer und Entwickler
von free-sms.de mit 1.8 Mio Mitgliedern
IT Leiter von goolive.deCommunity mit 130 Mio. Seitenaufrufen pro Monat
Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin
Wunschzettel für unsereWebanwendung Hohe Verfügbarkeit Skalierbarkeit Performance Einfache Verwaltung Low Cost Viele Features €€€
Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin
High Availability...
sorgt dafür, dass im Falle eines Ausfalls
unsere Website erreichbar bleibt, unsere Nutzer und Kunden zufrieden sind und weiterhin Revenues generiert werden.
Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin
High Availability...
sorgt dafür, dass im Falle eines Ausfalls
unsere Website erreichbar bleibt, unsere Nutzer und Kunden zufrieden sind und weiterhin Revenues generiert werden.
IT-Leitung behält ihren Job ;-)
Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin
High Availability
Redundanz der Systeme
2 Firewalls 2 Webserver 2 Datenbankserver usw...
Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin
Skalierung
Skalierung ist die Eigenschaft einer Plattform oder Anwendung, wachsenden Anforderungen gerecht zu werden und dahingehend vorbereitet zu sein, dass die Systeme bei Bedarf flexibel erweitert werden können.
Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin
Skalierung
Beispiel:
Kurzfristig steigender Bedarf an Web- oder Datenbankkapazitäten
Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin
Was Skalierung NICHT bedeutet Reine Speed-Performance (2 Ghz vs. 3 Ghz) Betriebssystems (Linux vs. Solaris) Technologie (PHP vs. Python vs. Rails) Hardware (AMD vs. Intel) Code Optimierung (10 vs. 10.000 Zeilen
Quelltext) Storage Technologie (SAN vs. NAS)
Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin
Skalierung und Performance sind nicht das gleiche
Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin
Skalierung und Performance sind nicht das gleiche
Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin
FAKT 1
Eine Anwendung lässt sich nicht skalieren,wenn sie nicht von vornherein dafür
konzipiert wurde.
Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin
FAKT 2
Selbst wenn eine Anwendung für die Skalierungentwickelt wurde, lässt die Entwickler wahnsinnig
werden, sobald es erforderlich ist.
Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin
Unsere neue Website :-)
Ein Server Anwendung,
Datenbank und Media auf einem System
Einfach zu verwalten Keine
Ausfallsicherheit
Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin
Der Programmierer wird unzufrieden
Anwendungs- und Datenbankebene werden auf getrennte Server verlagert.
Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin
Hurra: 1.000 Nutzer
Media Files werden auch ausgelagert, um die Webserve mit weniger unnützen Prozessen zu belasten...
Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin
Das typische Startup-Setup Firewall/Load-
Balancer Mehrere Webserver Datenbankserver Internes Storage Leicht zu verwalten Keine Redundanz Günstiger Betrieb
Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin
Das Startup wird erfolgreicher Redundante Firewall Redundante Load Balancer Mehr Webserver für mehr Performance Datenbank Storage zieht um -> SAN Aus Anwendungssicht relativ simpel...
Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin
Immenser Gewinn an Popularität Nennung des Startups z.B. bei Digg oder
Techcrunch Caching: Reverse Proxy (Squid/Varnish) Mehr Webserver Replikation der Datenbank Applikation überarbeiten :-)
Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin
Immenser Gewinn an Popularität
Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin
Point of no return...
Caching mit Memcached Datenbankreplikation „gibt auf“ Datenbankpartitionierung macht Sinn Mediacluster für Content Neustrukturierung der Applikation und
Datenbank erforderlich
Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin
Point of no return...-
Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin
Wir erinnern uns....
Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin
PANIK!
Überdenken des Geschäftsmodells Überarbeitung der gesamten Applikation Datenbankstrukturierung anhand von
„weichen“ Features
Partitionierung nach Herkunft, Nutzer ID, Themengebiet
Einsatz eines „Finde-Mechanismus“, um herauszufinden, welcher Nutzer in welchem Cluster beheimatet ist
Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin
Zurücklehnen...
Applikation und Datenbank sind skalierbar Performance ist „in Ordnung“ Neue Features werden wieder entwickelt Code wird teilweise optimiert Wachstum, aber managebares Wachstum
Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin
Best Practices
Trennung des IT-Bereichs in Development & Operations
Das Rad nicht zweimal erfinden. Vorhandene Lösungen nutzen.
Einfaches soll so einfach wie möglich gemacht werden (aber nicht einfacher *g*)
Gutes Equipment verwenden (Sun, Dell) Dienste trennen, „sanfte Updates“
-> Troubleshooting
Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin
Best Practices
Keine Über-Optimierung der Software-> bei Bedarf step-by-step anpassen
Last-Tests der Applikation-> bevor es live zu Problemen führt
Caching! Caching! Caching! Memory! Memory! Memory! (64 bit) Nice to have vs. have to have
-> Performance Analyse neuer Features
Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin
Best Practices
Software-Dokumentation Release Management
-> Entwickeln, Testen, Releasen Source Control