coldfusion im enterprise umfeld - deep dive

47
ColdFusion im Enterprise Umfeld - Deep Dive CFCamp, Germering, 20. Oktober 2014 ColdFusion im Enterprise Umfeld © Richard Carey, Fotolia.com

Upload: bokowsky-laymann-gmbh

Post on 03-Jul-2015

243 views

Category:

Internet


0 download

DESCRIPTION

Dank vieler praktischer Funktionen können Entwickler unter ColdFusion relativ schnell und einfach Applikationen entwickeln und produktiv einsetzen. Doch wie sieht es aus wenn diese Applikationen dann intensiv genutzt werden? Von hunderttausenden Usern in unzähligen Ländern, Sprachen und Zeitzonen? Wenn Inhalte laufend generiert und abgefragt werden? Dieser Talk zeigt, wie ColdFusion in einem Enterprise Projekt eingesetzt werden kann. Welche Architektur für einen sicheren Betrieb rund um die Uhr und die Welt benötigt wird. Welche ColdFusion Enterprise-Funktionen gebraucht werden und welche nicht, welche überhaupt funktionieren, welche Lektionen wir im praktischen Einsatz gelernt haben und warum Optimierungen im Milisekunden-Bereich tatsächlich Tage sparen können.

TRANSCRIPT

Page 1: ColdFusion im Enterprise Umfeld - Deep Dive

ColdFusion im Enterprise Umfeld - Deep DiveCFCamp, Germering, 20. Oktober 2014

ColdFusion im Enterprise Umfeld

© Richard Carey, Fotolia.com

Page 2: ColdFusion im Enterprise Umfeld - Deep Dive

Coldfusion Configuration

-Star ter Edition-

Page 3: ColdFusion im Enterprise Umfeld - Deep Dive

WebserverColdfusion Server

Datenbank

Developer

All-in-one-Ser ver

Page 4: ColdFusion im Enterprise Umfeld - Deep Dive
Page 5: ColdFusion im Enterprise Umfeld - Deep Dive

Content Management System

(CMS)

Page 6: ColdFusion im Enterprise Umfeld - Deep Dive

Content Management

• Out-of-the-Box Features• Flexibilität (Framework)• Skalierbarkeit• Personalisierung• Web 2.0• Staging• Usability• Zukunftssicherheit

Ein professioneller Auswahlprozeß ist unerläßlich

Page 7: ColdFusion im Enterprise Umfeld - Deep Dive

Front-und Backend immer auf getrennten Servern

Redaktion / StagingWeb

Trennung von Front- und Backend

Page 8: ColdFusion im Enterprise Umfeld - Deep Dive

DB und CF-Server immer trennen

Redaktion / StagingWeb

DB-Ser ver

Page 9: ColdFusion im Enterprise Umfeld - Deep Dive

Zur Ausfallsicherheit Datenbank immer replizieren

Redaktion / StagingWeb

Master-Slave-Replikation

Page 10: ColdFusion im Enterprise Umfeld - Deep Dive

Mindestens zwei unabhängige Webserver

Redaktion / Staging

Web 1

Web 2

Webser ver

Page 11: ColdFusion im Enterprise Umfeld - Deep Dive

Redaktion / Staging

Web 1

Web 2

Webser ver

Mindestens zwei unabhängige Webserver

Page 12: ColdFusion im Enterprise Umfeld - Deep Dive

Cluster ing

Page 13: ColdFusion im Enterprise Umfeld - Deep Dive

Coldfusion Cluster

• Performance • Session Replikation aufwändig• unzuverlässiges Feature• Loadbalancer schon für den Webserver

vorhanden• Vorteil in der Applikationsentwicklung

begrenzt (Skalierung)

Aufwand für ein Coldfusion Cluster lohnt sich nicht

Page 14: ColdFusion im Enterprise Umfeld - Deep Dive

Loadbalancer mit Sticky Sessions

• skaliert besser• schneller• geringer Konfigurationsaufwand

Aber:• Sessionverlust bei Ausfall• Applikationen müssen angepasst sein

Loadbalancing über seperaten Loadbalancer ist oft einfacher

Page 15: ColdFusion im Enterprise Umfeld - Deep Dive

Redaktion / Staging

Web 1

Web 2

CDN

Webser ver

Mindestens zwei unabhängige Webserver

Page 16: ColdFusion im Enterprise Umfeld - Deep Dive

Akamai

• Server über die ganze Welt verteilt • Eigene Leitungen• Speichert alle statischen Objekte• Greift nur auf den Origin zu wenn

Daten nicht vorhanden oder invalide• Sucht zuerst auf anderen EDGE-

Servern• Webservice zum invalidieren

CDN übernimmt die Last für statische Objekte

Page 17: ColdFusion im Enterprise Umfeld - Deep Dive

Akamai

• Kann dynamische Objekte in statische Seiten einbauen (SSI/ESI)

• Kann auch dynamische Seiten speichern

• Bietet Sureroutes für dynamischen Content

CDN übernimmt die Last für statische Objekte

Page 18: ColdFusion im Enterprise Umfeld - Deep Dive

Dedizierte Suche nimmt Last vom Applikationsserver

Redaktion / Staging

Web 1

Web 2

CDN

Suche

Page 19: ColdFusion im Enterprise Umfeld - Deep Dive

Externe Suche (Google)

• Passiert sowieso• Verbraucht keine eigenen Ressourcen• Schlecht steuerbar (Zeit, Umfang, Ziel)• Google Layout• Indiziert dynamischen Content schlecht• Kann hohe Serverlast erzeugen

Externe Suche ist nur eine Notlösung

Page 20: ColdFusion im Enterprise Umfeld - Deep Dive

Interne Suche (Lucene)

• Kostenlos• Unabhängig• Grosse Community• Kein Support• Zu wenige Sprachen• Schlechtes Stemming• Aufwändige Implementierung• User sind Google gewöhnt

Lucene Einsatz verlangt Aufbau von Know-How

Page 21: ColdFusion im Enterprise Umfeld - Deep Dive

Interne Suche (GSA)

• Kann alle Sprachen• Stemming• Reaktion auf spezielle Codewörter• Drei Arten der Indizierung: Crawlen,

Content Pushen, URL Pushen• Kann auch Datenbanken durchsuchen

Google gibts auch für Zuhause

Page 22: ColdFusion im Enterprise Umfeld - Deep Dive

Zeit was zu entwickeln

Entwicklung

Web1

CDN

Web2

Redaktion

Page 23: ColdFusion im Enterprise Umfeld - Deep Dive

Zeit was zu entwickeln

Entwicklung

Web1

CDN

Web2

Redaktion

DEV

Page 24: ColdFusion im Enterprise Umfeld - Deep Dive

Zentrale Entwicklung

• Instanzen auf einem Server• Vollständiger Content des Livesystems• Konfiguration entspricht dem Livesystem • Einheitliche Konfiguration !!!

(komisch, bei mit gings...)• Zentrales Update, Backup etc.

Einheitliche Entwicklungsumgebung für alle

Entwickler schaffen

Page 25: ColdFusion im Enterprise Umfeld - Deep Dive

Zeit was zu entwickeln

Entwicklung

Web1

CDN

Web2

Redaktion

GIT

DEV

RedLive

Dev

Page 26: ColdFusion im Enterprise Umfeld - Deep Dive

Versionsverwaltung

Page 27: ColdFusion im Enterprise Umfeld - Deep Dive

Versions-verwaltung

• Früher SVN / CVS, heute GIT / Mercurial • Verteilte Versionskontrolle• GIT mag keine Netzlaufwerke• GIT vergisst nichts• Eigener Server (z.B. Atlassian) oder Github

Keine Entwicklung ohne Versionskontrolle

Page 28: ColdFusion im Enterprise Umfeld - Deep Dive

Versions-verwaltung

• Kein direkter Zugang der Entwickler zum Livesystem

• Verschiedene kleine Repositories für Applikationen, kein grosses

• Verschiedene Branches für unterschiedliche Server (Dev/Red/Web etc.)

• Automatisches Deployment (Stash vor jedem Update)

Keine Entwicklung ohne Versionskontrolle

Page 29: ColdFusion im Enterprise Umfeld - Deep Dive

Kein Update ohne Test

Testing und Q&A

Web1

CDN

Web2

Redaktion

GIT

DEV

RedLive

Dev

Q&AWeb2

Q&A Redaktion

Q&A Web1

Test

Page 30: ColdFusion im Enterprise Umfeld - Deep Dive

Testing und Q&A

• Nichts kommt ohne Test auf das Livesystem • Q&A ist kein Test- sondern Kontrollsystem• Endabnahme neuer Funktionen durch den

Kunden• Kopie der Live-Architektur• Automatisierte Rückspielung der Live-Daten• Eigener Branch

Kein Update ohne Test

Page 31: ColdFusion im Enterprise Umfeld - Deep Dive

Bugtracking

Page 32: ColdFusion im Enterprise Umfeld - Deep Dive

Bugtracker

Ticketing

Page 33: ColdFusion im Enterprise Umfeld - Deep Dive

Bugtracker

Ticketing

Page 34: ColdFusion im Enterprise Umfeld - Deep Dive

Bugtracker

Ticketing

Page 35: ColdFusion im Enterprise Umfeld - Deep Dive

Bereit zum Einsatz

Fer tig

Web1

CDN

Web2

Redaktion

GIT

DEV

RedLive

Dev

TestQ&AWeb2

Q&A Redaktion

Q&A Web1

Page 36: ColdFusion im Enterprise Umfeld - Deep Dive

Applikations-entwicklung

Page 37: ColdFusion im Enterprise Umfeld - Deep Dive

Entwicklung

• Zukunftssicherheit bei der Produkt / Framework- Wahl

• Nach Möglichkeit Kommunikation über Webservices

• Nie auf das Netz verlassen • Coldfusion - Frontend Funktionen

(<cfmediaplayer> etc.) sind meist zu unflexibel

Komfortfunktionen sind meist zu unflexibel

Page 38: ColdFusion im Enterprise Umfeld - Deep Dive

Entwicklung

• Lokalisierung in CF ist unzureichend• Eigene Datumsformatierungen• Zeitzonen• Alternativfelder vorsehen • Andere Sprachen / Darstellungen

berücksichtigen (RTL)

Komfortfunktionen sind meist zu unflexibel

Page 39: ColdFusion im Enterprise Umfeld - Deep Dive

Multiser ver

• Trennung von Front- und Backend• Nach Aussen nur benötigte Funktionen zur

Verfügung stellen• User können auf unterschiedlichen Servern

landen• Session Verlust berücksichtigen

Nur das nötigste nach aussen zur Verfügung stellen

Page 40: ColdFusion im Enterprise Umfeld - Deep Dive

CDN

• Von Anfang an mit planen• Möglichst viel statischer Content• Dynamische Daten nachladen• Nur Content laden, kein Layout• CDN kann als Cache genutzt werden• Content muss bei Änderung zum richtigen

Zeitpunkt invalidiert werden

CDN als Entlastung nutzen

Page 41: ColdFusion im Enterprise Umfeld - Deep Dive

Suche

• Beim Aufbau mit planen • Dynamischer Content sollte direkt beim

erzeugen gepusht werden• Dynamischer Content kann unnötige

Einträge erzeugen (Filterung)

Suche von Anfang an einplanen

Page 42: ColdFusion im Enterprise Umfeld - Deep Dive

Entwicklung / Testing

• Realistische Datenbasis und Umgebung in der Entwicklung

• Kein root!• Abläufe entkoppeln und parallelisieren

(ActiveMQ etc.)• Dimensionen beachten• Sprachen beachten

Eine realistische Testumgebung schaffen

Page 43: ColdFusion im Enterprise Umfeld - Deep Dive

Performance

• Virtuelle Server lassen sich leicht bei RAM und CPU skalieren

• Bottlenecks sind meist DB, Filesystem und Netzwerk

• Nie auf das Netzwerk oder externe Systeme verlassen

Filesystem und DB skalieren oft nur mit sehr grossem Aufwand

Page 44: ColdFusion im Enterprise Umfeld - Deep Dive

Club Mate and fritz-kola for free

Come and see us

Page 45: ColdFusion im Enterprise Umfeld - Deep Dive

AND Oculus Rift

Come and see us

Page 46: ColdFusion im Enterprise Umfeld - Deep Dive

Diese Folien und noch viel mehr gibt‘s unter

www.bokowsky.net/de/knowledge-base/

Page 47: ColdFusion im Enterprise Umfeld - Deep Dive

Vielen Dank

Matthias [email protected]

Bokowsky + Laymann GmbHwww.bokowsky.de@BokowskyLaymannsowie auf Facebook, Slideshare, YouTube, Flickr

P.S: Bokowsky + Laymann sucht ColdFusion EntwicklerFest oder Frei.

[email protected] oder im Social Network Ihres Vertrauens