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

Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 

Recently uploaded (20)

Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 

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