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 How to make bulletproof applications

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 How to make bulletproof applications (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

Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
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
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
[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
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
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
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
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
 
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
 
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
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
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
 
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
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
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
 

Recently uploaded (20)

Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
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...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
[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
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
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
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
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
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
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
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
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
 
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
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
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
 

How to make bulletproof applications

  • 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