2. BBA in ISYS & Mgmt, Minor CS UND
ImageTrend, Inc. 4+ years
◦ Currently: Lead Developer
cf.Objective() attendee 5 years
MAX 2008 (San Francisco) Attendee
Contact:
◦ twitter: tedsteinmann
◦ tedsteinmann@gmail.com
3. BS Computer Science, University of
Minnesota, 2005
ImageTrend, 5+ years
◦ Currently: Application Architect
cf.Objective() attendee 4 years
Contact:
◦ twitter: timlmeyer
◦ tim.l.meyer@gmail.com
4.
5. Framework Sale
Buy my blog
Group Think
Miracle Drug
10. “Okay, let me tell you the
difference between
Facebook and everyone
else, we don't crash EVER!
Scalability if those servers are down
for even a day, our entire
◦ Popularity problems: reputation is irreversibly
destroyed! “
Increased traffic/load
Hardware limitations
Complexity
11. Things we know
◦ Redundancy
◦ Routing
◦ Replication
12. Proven methods/approaches
◦ Server Clustering
◦ Request Routing
◦ Replication/Mirroring
◦ Process Delegation
◦ Memory Management
18. Process Delegation
◦ Asynchronous task completion
◦ Work queues
19. Memory
◦ Scale Out
Many small CF instances
◦ Scale Up
Fewer large instances/servers
20.
21.
22. Persistence of State
Persistence of Data
Configuration
23. ◦ Persistence of State
◦ Session Management
Browser Session & Server session
Session/logged in
Replication / Sticky Sessions
Client vs. Session
24. Persistence of Data
◦ Variables
◦ File system
◦ Database
25. Persistence of Data - Variables
◦ CGI scope
Cannot rely on web servers or proxy servers to
set them consistently
Cannot set CGI variables
◦ Session scope
◦ Client scope
26. Persistence of Data – File System
◦ Multiple copies of your application code
Code promotion / Release
◦ Management of user generated content
27. Persistence of Data - Database
◦ Identifiers
Identities/auto incremented primary keys
◦ Release
New data structure
Structure change/removal
28. Configuration
◦ Will need to take place in/on:
Every location
Every server
Every environment
Dev, alpha, beta, testing, prod, etc.
31. Challenge: Persistence of State
Session/Client Data Management
◦ Database
◦ Client Scope as Session Scope
◦ Caching Servers
Session/Client Persistence
◦ Cookies
◦ URL Token Based
32. Challenge: Persistence of Data - Variables
Don’t be a dope
Use Façades …wrap you scopes!
◦ CGI
◦ Session
◦ Client
33. Challenge: Persistence of Data – File system
File System Design Strategies
◦ Database files
◦ Network shared file system
◦ Automatic replication of files
Automate code deployments
◦ ANT, .bat, etc.
34. Challenge: Persistence of Data – Database
Database Design Strategies
◦ Identifiers
GUIDS
Ranges
Clustered primary keys
Server name/location/identifier
Roll your own
◦ Release
Backwards compatibility
Location specific updates
36. Globalization
◦ Time zones
◦ Multiple Languages
Caching
◦ Distributed cache stores (ehcache, memcached)
Database Role Segmentation
◦ One or many databases for reads / one for writes
at each location
37. Verification - Will my application really scale?
◦ Load Testing
◦ Failover Testing
◦ Can I seamlessly add to the hardware?
Roll your own clustering/deployment
◦ JBOSS
◦ Tomcat
38. ColdFusion:
◦ Administrator API
◦ Environment Configuration
◦ CF design patterns (sessions)
◦ Managing the client state
◦ Configuring and using session variables:
◦ JVM Memory Management
◦ JRUN Configuring Individual JVM Settings
◦ JRUN Clustering
◦ ColdFusion 9 on JBOSS
◦ ColdFusion Clustering
◦ Enabling clustering for load balancing and failover
◦ House of Fusion
◦ Database Your Files (Tim’s Presentation from TCCFUG)
39. ARR:
◦ IIS Application Request Routing
◦ Using the Application Request Routing Module
◦ ARR without sea leg (setting up ARR to work locally)
SQL
◦ Replication
◦ Mirroring
◦ SQL Mirroring in CF
Scalability
◦ HighScalability.com
Other:
◦ The Social Network
◦ CFSelenium
◦ MXUnit