How to make bullet proof applications
   BBA in ISYS & Mgmt, Minor CS UND   ImageTrend, Inc. 4+ years    ◦ Currently: Lead Developer   cf.Objective() attende...
   BS Computer Science, University of    Minnesota, 2005   ImageTrend, 5+ years    ◦ Currently: Application Architect  ...
   Framework Sale   Buy my blog   Group Think   Miracle Drug
   Explanations   Solutions   Suggestions   Demos
   The Big Idea   Concerns   Considerations   Challenges   Solutions   Additional Considerations
 We want to make a website… We’re going to call it Spacebook… We’re going to be millionaires…*           * If we don’t ...
 Performance Uptime Availability Failover    ◦ Accidents    ◦ Maintenance    ◦ Uncontrollable events                  ...
“Okay, let me tell you the                                    difference between                                  Facebook...
   Things we know    ◦ Redundancy    ◦ Routing    ◦ Replication
   Proven methods/approaches    ◦ Server Clustering    ◦ Request Routing    ◦ Replication/Mirroring    ◦ Process Delegati...
   Clustering    ◦ High-availability      Failover      Redundancy    ◦ Load Balancing
   Request Routing    ◦ Routing Rules    ◦ Server Farms    ◦ Load Balancing    ◦ Programmatic failover    ◦ Asset Caching
   Clustering & Routing
   Replication/Mirroring
   Process Delegation    ◦ Asynchronous task completion    ◦ Work queues
   Memory    ◦ Scale Out      Many small CF instances    ◦ Scale Up      Fewer large instances/servers
   Persistence of State   Persistence of Data   Configuration
◦ Persistence of State   ◦ Session Management      Browser Session & Server session      Session/logged in      Replica...
   Persistence of Data    ◦ Variables    ◦ File system    ◦ Database
   Persistence of Data - Variables    ◦ CGI scope      Cannot rely on web servers or proxy servers to       set them con...
   Persistence of Data – File System    ◦ Multiple copies of your application code       Code promotion / Release    ◦ M...
   Persistence of Data - Database    ◦ Identifiers      Identities/auto incremented primary keys    ◦ Release      New ...
   Configuration    ◦ Will need to take place in/on:      Every location      Every server      Every environment     ...
Challenge: Persistence of State        Make it Easier to Change - Session Façadesession.cfc:   usage:
Challenge: Persistence of State   Session/Client Data Management    ◦ Database    ◦ Client Scope as Session Scope    ◦ Ca...
Challenge: Persistence of Data - Variables                   Don’t be a dope   Use Façades   …wrap you scopes!    ◦ CGI  ...
Challenge: Persistence of Data – File system   File System Design Strategies    ◦ Database files    ◦ Network shared file...
Challenge: Persistence of Data – Database   Database Design Strategies    ◦ Identifiers      GUIDS      Ranges      Cl...
Challenge: Configuration   Centralized Automatic configuration    ◦   CFAdmin API    ◦   XML config files    ◦   Dynamic ...
   Globalization    ◦ Time zones    ◦ Multiple Languages   Caching    ◦ Distributed cache stores (ehcache, memcached)  ...
   Verification - Will my application really scale?    ◦ Load Testing    ◦ Failover Testing    ◦ Can I seamlessly add to ...
   ColdFusion:    ◦   Administrator API    ◦   Environment Configuration    ◦   CF design patterns (sessions)    ◦   Mana...
   ARR:    ◦ IIS Application Request Routing    ◦ Using the Application Request Routing Module    ◦ ARR without sea leg (...
Architecting for scalability in cf
Architecting for scalability in cf
Architecting for scalability in cf
Architecting for scalability in cf
Architecting for scalability in cf
Upcoming SlideShare
Loading in...5
×

Architecting for scalability in cf

1,286

Published on

Architecting for Scalability from cfObjective() 2011

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,286
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
17
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Architecting for scalability in cf

  1. 1. How to make bullet proof applications
  2. 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. 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. 4.  Framework Sale Buy my blog Group Think Miracle Drug
  5. 5.  Explanations Solutions Suggestions Demos
  6. 6.  The Big Idea Concerns Considerations Challenges Solutions Additional Considerations
  7. 7.  We want to make a website… We’re going to call it Spacebook… We’re going to be millionaires…* * If we don’t get sued by these guys
  8. 8.  Performance Uptime Availability Failover ◦ Accidents ◦ Maintenance ◦ Uncontrollable events s##t happens
  9. 9. “Okay, let me tell you the difference between Facebook and everyone else, we dont 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
  10. 10.  Things we know ◦ Redundancy ◦ Routing ◦ Replication
  11. 11.  Proven methods/approaches ◦ Server Clustering ◦ Request Routing ◦ Replication/Mirroring ◦ Process Delegation ◦ Memory Management
  12. 12.  Clustering ◦ High-availability  Failover  Redundancy ◦ Load Balancing
  13. 13.  Request Routing ◦ Routing Rules ◦ Server Farms ◦ Load Balancing ◦ Programmatic failover ◦ Asset Caching
  14. 14.  Clustering & Routing
  15. 15.  Replication/Mirroring
  16. 16.  Process Delegation ◦ Asynchronous task completion ◦ Work queues
  17. 17.  Memory ◦ Scale Out  Many small CF instances ◦ Scale Up  Fewer large instances/servers
  18. 18.  Persistence of State Persistence of Data Configuration
  19. 19. ◦ Persistence of State ◦ Session Management  Browser Session & Server session  Session/logged in  Replication / Sticky Sessions  Client vs. Session
  20. 20.  Persistence of Data ◦ Variables ◦ File system ◦ Database
  21. 21.  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
  22. 22.  Persistence of Data – File System ◦ Multiple copies of your application code  Code promotion / Release ◦ Management of user generated content
  23. 23.  Persistence of Data - Database ◦ Identifiers  Identities/auto incremented primary keys ◦ Release  New data structure  Structure change/removal
  24. 24.  Configuration ◦ Will need to take place in/on:  Every location  Every server  Every environment  Dev, alpha, beta, testing, prod, etc.
  25. 25. Challenge: Persistence of State  Make it Easier to Change - Session Façadesession.cfc: usage:
  26. 26. Challenge: Persistence of State Session/Client Data Management ◦ Database ◦ Client Scope as Session Scope ◦ Caching Servers Session/Client Persistence ◦ Cookies ◦ URL Token Based
  27. 27. Challenge: Persistence of Data - Variables Don’t be a dope Use Façades …wrap you scopes! ◦ CGI ◦ Session ◦ Client
  28. 28. 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.
  29. 29. 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
  30. 30. Challenge: Configuration Centralized Automatic configuration ◦ CFAdmin API ◦ XML config files ◦ Dynamic file paths ◦ Datasource configuration
  31. 31.  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
  32. 32.  Verification - Will my application really scale? ◦ Load Testing ◦ Failover Testing ◦ Can I seamlessly add to the hardware? Roll your own clustering/deployment ◦ JBOSS ◦ Tomcat
  33. 33.  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)
  34. 34.  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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×