SlideShare a Scribd company logo
1 of 39
Download to read offline
How to make bullet proof applications
   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
   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
   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 get sued by these guys
 Performance
 Uptime
 Availability
 Failover
    ◦ Accidents
    ◦ Maintenance
    ◦ Uncontrollable events
                              s##t happens
“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
   Things we know
    ◦ Redundancy
    ◦ Routing
    ◦ Replication
   Proven methods/approaches
    ◦ Server Clustering
    ◦ Request Routing
    ◦ Replication/Mirroring
    ◦ Process Delegation
    ◦ Memory Management
   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
      Replication / Sticky Sessions
      Client vs. Session
   Persistence of Data
    ◦ Variables
    ◦ File system
    ◦ Database
   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
   Persistence of Data – File System
    ◦ Multiple copies of your application code
       Code promotion / Release
    ◦ Management of user generated content
   Persistence of Data - Database
    ◦ Identifiers
      Identities/auto incremented primary keys
    ◦ Release
      New data structure
      Structure change/removal
   Configuration
    ◦ Will need to take place in/on:
      Every location
      Every server
      Every environment
        Dev, alpha, beta, testing, prod, etc.
Challenge: Persistence of State




        Make it Easier to Change - Session Façade
session.cfc:




   usage:
Challenge: Persistence of State




   Session/Client Data Management
    ◦ Database
    ◦ Client Scope as Session Scope
    ◦ Caching Servers
   Session/Client Persistence
    ◦ Cookies
    ◦ URL Token Based
Challenge: Persistence of Data - Variables




                   Don’t be a dope
   Use Façades   …wrap you scopes!
    ◦ CGI
    ◦ Session
    ◦ Client
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.
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
Challenge: Configuration




   Centralized Automatic configuration
    ◦   CFAdmin API
    ◦   XML config files
    ◦   Dynamic file paths
    ◦   Datasource configuration
   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
   Verification - Will my application really scale?
    ◦ Load Testing
    ◦ Failover Testing
    ◦ Can I seamlessly add to the hardware?
   Roll your own clustering/deployment
    ◦ JBOSS
    ◦ Tomcat
   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)
   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

More Related Content

What's hot

Virtualization Manager 5.0 – Now with Hyper-V Support!
Virtualization Manager 5.0 – Now with Hyper-V Support!Virtualization Manager 5.0 – Now with Hyper-V Support!
Virtualization Manager 5.0 – Now with Hyper-V Support!SolarWinds
 
San Francisco Cassadnra Meetup - March 2014: I/O Performance tuning on AWS fo...
San Francisco Cassadnra Meetup - March 2014: I/O Performance tuning on AWS fo...San Francisco Cassadnra Meetup - March 2014: I/O Performance tuning on AWS fo...
San Francisco Cassadnra Meetup - March 2014: I/O Performance tuning on AWS fo...DataStax Academy
 
Introducing Xen Server
Introducing Xen ServerIntroducing Xen Server
Introducing Xen ServerStephenRice86
 
Cassandra Day SV 2014: Designing Commodity Storage in Apache Cassandra
Cassandra Day SV 2014: Designing Commodity Storage in Apache CassandraCassandra Day SV 2014: Designing Commodity Storage in Apache Cassandra
Cassandra Day SV 2014: Designing Commodity Storage in Apache CassandraDataStax Academy
 
针对iPad平台的高性能网站架构
针对iPad平台的高性能网站架构针对iPad平台的高性能网站架构
针对iPad平台的高性能网站架构jeffz
 
Get Your GeekOn with Ron - Session One: Designing your VDI Servers
Get Your GeekOn with Ron - Session One: Designing your VDI ServersGet Your GeekOn with Ron - Session One: Designing your VDI Servers
Get Your GeekOn with Ron - Session One: Designing your VDI ServersUnidesk Corporation
 
Xen Virtualization 2008
Xen Virtualization 2008Xen Virtualization 2008
Xen Virtualization 2008mwlang88
 
CaSSanDra: An SSD Boosted Key-Value Store
CaSSanDra: An SSD Boosted Key-Value StoreCaSSanDra: An SSD Boosted Key-Value Store
CaSSanDra: An SSD Boosted Key-Value StoreTilmann Rabl
 
Building a Better Workstation
Building a Better WorkstationBuilding a Better Workstation
Building a Better WorkstationSteve Wake
 
Why does my choice of storage matter with cassandra?
Why does my choice of storage matter with cassandra?Why does my choice of storage matter with cassandra?
Why does my choice of storage matter with cassandra?Johnny Miller
 
San presentation nov 2012 central pa
San presentation nov 2012 central paSan presentation nov 2012 central pa
San presentation nov 2012 central paJoseph D'Antoni
 
Eric Moreau - Samedi SQL - Backup dans Azure et BD hybrides
Eric Moreau - Samedi SQL - Backup dans Azure et BD hybridesEric Moreau - Samedi SQL - Backup dans Azure et BD hybrides
Eric Moreau - Samedi SQL - Backup dans Azure et BD hybridesMSDEVMTL
 
How to build a state-of-the-art rails cluster
How to build a state-of-the-art rails clusterHow to build a state-of-the-art rails cluster
How to build a state-of-the-art rails clusterTim Lossen
 
Micron vPAK 2pp Final no Bleed_TD03
Micron vPAK 2pp Final no Bleed_TD03Micron vPAK 2pp Final no Bleed_TD03
Micron vPAK 2pp Final no Bleed_TD03Peyman Blumstengel
 
Kabir Khan on AS6 at JBUG.be
Kabir Khan on AS6 at JBUG.be Kabir Khan on AS6 at JBUG.be
Kabir Khan on AS6 at JBUG.be Andries Inzé
 
Samedi SQL Québec - Database Backup & copy to Azure par Eric Moreau
Samedi SQL Québec - Database Backup & copy to Azure par Eric MoreauSamedi SQL Québec - Database Backup & copy to Azure par Eric Moreau
Samedi SQL Québec - Database Backup & copy to Azure par Eric MoreauMSDEVMTL
 

What's hot (20)

Virtualization Manager 5.0 – Now with Hyper-V Support!
Virtualization Manager 5.0 – Now with Hyper-V Support!Virtualization Manager 5.0 – Now with Hyper-V Support!
Virtualization Manager 5.0 – Now with Hyper-V Support!
 
NVMe over Fabric
NVMe over FabricNVMe over Fabric
NVMe over Fabric
 
San Francisco Cassadnra Meetup - March 2014: I/O Performance tuning on AWS fo...
San Francisco Cassadnra Meetup - March 2014: I/O Performance tuning on AWS fo...San Francisco Cassadnra Meetup - March 2014: I/O Performance tuning on AWS fo...
San Francisco Cassadnra Meetup - March 2014: I/O Performance tuning on AWS fo...
 
Introducing Xen Server
Introducing Xen ServerIntroducing Xen Server
Introducing Xen Server
 
Cassandra Day SV 2014: Designing Commodity Storage in Apache Cassandra
Cassandra Day SV 2014: Designing Commodity Storage in Apache CassandraCassandra Day SV 2014: Designing Commodity Storage in Apache Cassandra
Cassandra Day SV 2014: Designing Commodity Storage in Apache Cassandra
 
针对iPad平台的高性能网站架构
针对iPad平台的高性能网站架构针对iPad平台的高性能网站架构
针对iPad平台的高性能网站架构
 
Get Your GeekOn with Ron - Session One: Designing your VDI Servers
Get Your GeekOn with Ron - Session One: Designing your VDI ServersGet Your GeekOn with Ron - Session One: Designing your VDI Servers
Get Your GeekOn with Ron - Session One: Designing your VDI Servers
 
Xen Virtualization 2008
Xen Virtualization 2008Xen Virtualization 2008
Xen Virtualization 2008
 
CaSSanDra: An SSD Boosted Key-Value Store
CaSSanDra: An SSD Boosted Key-Value StoreCaSSanDra: An SSD Boosted Key-Value Store
CaSSanDra: An SSD Boosted Key-Value Store
 
Building a Better Workstation
Building a Better WorkstationBuilding a Better Workstation
Building a Better Workstation
 
Why does my choice of storage matter with cassandra?
Why does my choice of storage matter with cassandra?Why does my choice of storage matter with cassandra?
Why does my choice of storage matter with cassandra?
 
San presentation nov 2012 central pa
San presentation nov 2012 central paSan presentation nov 2012 central pa
San presentation nov 2012 central pa
 
Eric Moreau - Samedi SQL - Backup dans Azure et BD hybrides
Eric Moreau - Samedi SQL - Backup dans Azure et BD hybridesEric Moreau - Samedi SQL - Backup dans Azure et BD hybrides
Eric Moreau - Samedi SQL - Backup dans Azure et BD hybrides
 
How to build a state-of-the-art rails cluster
How to build a state-of-the-art rails clusterHow to build a state-of-the-art rails cluster
How to build a state-of-the-art rails cluster
 
Micron vPAK 2pp Final no Bleed_TD03
Micron vPAK 2pp Final no Bleed_TD03Micron vPAK 2pp Final no Bleed_TD03
Micron vPAK 2pp Final no Bleed_TD03
 
Move to azure
Move to azureMove to azure
Move to azure
 
Orient db
Orient dbOrient db
Orient db
 
Rails in the Cloud
Rails in the CloudRails in the Cloud
Rails in the Cloud
 
Kabir Khan on AS6 at JBUG.be
Kabir Khan on AS6 at JBUG.be Kabir Khan on AS6 at JBUG.be
Kabir Khan on AS6 at JBUG.be
 
Samedi SQL Québec - Database Backup & copy to Azure par Eric Moreau
Samedi SQL Québec - Database Backup & copy to Azure par Eric MoreauSamedi SQL Québec - Database Backup & copy to Azure par Eric Moreau
Samedi SQL Québec - Database Backup & copy to Azure par Eric Moreau
 

Similar to Architecting for scalability in cf

Cf Summit East 2018 Scaling ColdFusion
Cf Summit East 2018 Scaling ColdFusionCf Summit East 2018 Scaling ColdFusion
Cf Summit East 2018 Scaling ColdFusionmcollinsCF
 
Presentation architecting a cloud infrastructure
Presentation   architecting a cloud infrastructurePresentation   architecting a cloud infrastructure
Presentation architecting a cloud infrastructurexKinAnx
 
Presentation architecting a cloud infrastructure
Presentation   architecting a cloud infrastructurePresentation   architecting a cloud infrastructure
Presentation architecting a cloud infrastructuresolarisyourep
 
Java Support On Google App Engine
Java Support On Google App EngineJava Support On Google App Engine
Java Support On Google App EngineXebia IT Architects
 
More Cache for Less Cash (DevLink 2014)
More Cache for Less Cash (DevLink 2014)More Cache for Less Cash (DevLink 2014)
More Cache for Less Cash (DevLink 2014)Michael Collier
 
Cloud computing 3702
Cloud computing 3702Cloud computing 3702
Cloud computing 3702Jess Coburn
 
Caching for Microservices Architectures: Session I
Caching for Microservices Architectures: Session ICaching for Microservices Architectures: Session I
Caching for Microservices Architectures: Session IVMware Tanzu
 
How Will Going Virtual Impact Your Search Performance?
How Will Going Virtual Impact Your Search Performance?How Will Going Virtual Impact Your Search Performance?
How Will Going Virtual Impact Your Search Performance?IdeaEng
 
More Cache for Less Cash
More Cache for Less CashMore Cache for Less Cash
More Cache for Less CashMichael Collier
 
Azure-Backup-Presentation-Chico-7-22-2019-1.pdf
Azure-Backup-Presentation-Chico-7-22-2019-1.pdfAzure-Backup-Presentation-Chico-7-22-2019-1.pdf
Azure-Backup-Presentation-Chico-7-22-2019-1.pdfbhavyanm2
 
Database Provisioning in EM12c: Provision me a Database Now!
Database Provisioning in EM12c: Provision me a Database Now!Database Provisioning in EM12c: Provision me a Database Now!
Database Provisioning in EM12c: Provision me a Database Now!Maaz Anjum
 
HK-Cinder-Driver-ajauch.pptx
HK-Cinder-Driver-ajauch.pptxHK-Cinder-Driver-ajauch.pptx
HK-Cinder-Driver-ajauch.pptxAnwarAnsari40
 
Share point disaster avoidance architecture for large scale enterprises
Share point disaster avoidance architecture for large scale enterprisesShare point disaster avoidance architecture for large scale enterprises
Share point disaster avoidance architecture for large scale enterprisesSentri
 
OpenStack Cinder, Implementation Today and New Trends for Tomorrow
OpenStack Cinder, Implementation Today and New Trends for TomorrowOpenStack Cinder, Implementation Today and New Trends for Tomorrow
OpenStack Cinder, Implementation Today and New Trends for TomorrowEd Balduf
 
Application acceleration from the data storage perspective
Application acceleration from the data storage perspectiveApplication acceleration from the data storage perspective
Application acceleration from the data storage perspectiveInterop
 
Azure IaaS Tanıtım - Uzun Anlatım
Azure IaaS Tanıtım - Uzun AnlatımAzure IaaS Tanıtım - Uzun Anlatım
Azure IaaS Tanıtım - Uzun AnlatımMustafa
 

Similar to Architecting for scalability in cf (20)

Cf Summit East 2018 Scaling ColdFusion
Cf Summit East 2018 Scaling ColdFusionCf Summit East 2018 Scaling ColdFusion
Cf Summit East 2018 Scaling ColdFusion
 
Presentation architecting a cloud infrastructure
Presentation   architecting a cloud infrastructurePresentation   architecting a cloud infrastructure
Presentation architecting a cloud infrastructure
 
Presentation architecting a cloud infrastructure
Presentation   architecting a cloud infrastructurePresentation   architecting a cloud infrastructure
Presentation architecting a cloud infrastructure
 
Java Support On Google App Engine
Java Support On Google App EngineJava Support On Google App Engine
Java Support On Google App Engine
 
More Cache for Less Cash (DevLink 2014)
More Cache for Less Cash (DevLink 2014)More Cache for Less Cash (DevLink 2014)
More Cache for Less Cash (DevLink 2014)
 
Cloud computing 3702
Cloud computing 3702Cloud computing 3702
Cloud computing 3702
 
Caching for Microservices Architectures: Session I
Caching for Microservices Architectures: Session ICaching for Microservices Architectures: Session I
Caching for Microservices Architectures: Session I
 
Windows Azure Essentials V3
Windows Azure Essentials V3Windows Azure Essentials V3
Windows Azure Essentials V3
 
KUMAR_RESUME_1_
KUMAR_RESUME_1_KUMAR_RESUME_1_
KUMAR_RESUME_1_
 
How Will Going Virtual Impact Your Search Performance?
How Will Going Virtual Impact Your Search Performance?How Will Going Virtual Impact Your Search Performance?
How Will Going Virtual Impact Your Search Performance?
 
More Cache for Less Cash
More Cache for Less CashMore Cache for Less Cash
More Cache for Less Cash
 
AppFabric Velocity
AppFabric VelocityAppFabric Velocity
AppFabric Velocity
 
Azure-Backup-Presentation-Chico-7-22-2019-1.pdf
Azure-Backup-Presentation-Chico-7-22-2019-1.pdfAzure-Backup-Presentation-Chico-7-22-2019-1.pdf
Azure-Backup-Presentation-Chico-7-22-2019-1.pdf
 
Database Provisioning in EM12c: Provision me a Database Now!
Database Provisioning in EM12c: Provision me a Database Now!Database Provisioning in EM12c: Provision me a Database Now!
Database Provisioning in EM12c: Provision me a Database Now!
 
HK-Cinder-Driver-ajauch.pptx
HK-Cinder-Driver-ajauch.pptxHK-Cinder-Driver-ajauch.pptx
HK-Cinder-Driver-ajauch.pptx
 
Share point disaster avoidance architecture for large scale enterprises
Share point disaster avoidance architecture for large scale enterprisesShare point disaster avoidance architecture for large scale enterprises
Share point disaster avoidance architecture for large scale enterprises
 
OpenStack Cinder, Implementation Today and New Trends for Tomorrow
OpenStack Cinder, Implementation Today and New Trends for TomorrowOpenStack Cinder, Implementation Today and New Trends for Tomorrow
OpenStack Cinder, Implementation Today and New Trends for Tomorrow
 
Application acceleration from the data storage perspective
Application acceleration from the data storage perspectiveApplication acceleration from the data storage perspective
Application acceleration from the data storage perspective
 
SQL Saturday San Diego
SQL Saturday San DiegoSQL Saturday San Diego
SQL Saturday San Diego
 
Azure IaaS Tanıtım - Uzun Anlatım
Azure IaaS Tanıtım - Uzun AnlatımAzure IaaS Tanıtım - Uzun Anlatım
Azure IaaS Tanıtım - Uzun Anlatım
 

Recently uploaded

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 

Recently uploaded (20)

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 

Architecting for scalability in cf

  • 1. How to make bullet proof applications
  • 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
  • 6. Explanations  Solutions  Suggestions  Demos
  • 7. The Big Idea  Concerns  Considerations  Challenges  Solutions  Additional Considerations
  • 8.  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
  • 9.  Performance  Uptime  Availability  Failover ◦ Accidents ◦ Maintenance ◦ Uncontrollable events s##t happens
  • 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
  • 13.
  • 14. Clustering ◦ High-availability  Failover  Redundancy ◦ Load Balancing
  • 15. Request Routing ◦ Routing Rules ◦ Server Farms ◦ Load Balancing ◦ Programmatic failover ◦ Asset Caching
  • 16. Clustering & Routing
  • 17. Replication/Mirroring
  • 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.
  • 29.
  • 30. Challenge: Persistence of State  Make it Easier to Change - Session Façade session.cfc: usage:
  • 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
  • 35. Challenge: Configuration  Centralized Automatic configuration ◦ CFAdmin API ◦ XML config files ◦ Dynamic file paths ◦ Datasource configuration
  • 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