Architecting ColdFusion For Scalability And High Availability. Ryan Stewart Platform Evangelist



Similar documents
ColdFusion 8. Performance Tuning, Multi-Instance Management and Clustering. Sven Ramuschkat MAX 2008 Milan

BASICS OF SCALING: LOAD BALANCERS

Amazon Elastic Beanstalk

MID-TIER DEPLOYMENT KB

WEBAPP PATTERN FOR APACHE TOMCAT - USER GUIDE

CS 188/219. Scalable Internet Services Andrew Mutz October 8, 2015

Mark Bennett. Search and the Virtual Machine

.NET UI Load Balancing & Failover

PES. High Availability Load Balancing in the Agile Infrastructure. Platform & Engineering Services. HEPiX Bologna, April 2013

.NET UI Load Balancing & Clustering

MySQL performance in a cloud. Mark Callaghan

Architecting For Failure Why Cloud Architecture is Different! Michael Stiefel

Scalable Architecture on Amazon AWS Cloud

Web Application Hosting Cloud Architecture

MEASURING WORKLOAD PERFORMANCE IS THE INFRASTRUCTURE A PROBLEM?

Deployment Topologies

GeoCloud Project Report USGS/EROS Spatial Data Warehouse Project

Building a Highly Available and Scalable Web Farm

WEBLOGIC ADMINISTRATION

Clustering with Tomcat. Introduction. O'Reilly Network: Clustering with Tomcat. by Shyam Kumar Doddavula 07/17/2002

CHAPTER 1 - JAVA EE OVERVIEW FOR ADMINISTRATORS

Tushar Joshi Turtle Networks Ltd

White Paper. ThinRDP Load Balancing

Liferay Portal Performance. Benchmark Study of Liferay Portal Enterprise Edition

Introduction 1 Performance on Hosted Server 1. Benchmarks 2. System Requirements 7 Load Balancing 7

LOAD BALANCING TECHNIQUES FOR RELEASE 11i AND RELEASE 12 E-BUSINESS ENVIRONMENTS

Oracle WebLogic Server 11g Administration

Winning the J2EE Performance Game Presented to: JAVA User Group-Minnesota

<Insert Picture Here> WebLogic High Availability Infrastructure WebLogic Server 11gR1 Labs

Blackboard Learn TM, Release 9 Technology Architecture. John Fontaine

Drupal Performance Tuning

Exploring Oracle E-Business Suite Load Balancing Options. Venkat Perumal IT Convergence

Chapter 10: Scalability

ELIXIR LOAD BALANCER 2

Configuration Management of Massively Scalable Systems

JBS-102: Jboss Application Server Administration. Course Length: 4 days

Application Performance Testing Basics

Web Application s Performance Testing

How Comcast Built An Open Source Content Delivery Network National Engineering & Technical Operations

bla bla OPEN-XCHANGE Open-Xchange Hardware Needs

Configuring Nex-Gen Web Load Balancer

Load Balancing Web Applications

JBoss Seam Performance and Scalability on Dell PowerEdge 1855 Blade Servers

MagDiSoft Web Solutions Office No. 102, Bramha Majestic, NIBM Road Kondhwa, Pune Tel: /

Web Application Hosting in the AWS Cloud Best Practices

ISPS & WEBHOSTS SETUP REQUIREMENTS & SIGNUP FORM LOCAL CLOUD

How To Monitor A Server With Zabbix

1 How to Monitor Performance

Manjrasoft Market Oriented Cloud Computing Platform

Liferay Portal s Document Library: Architectural Overview, Performance and Scalability

Manjrasoft Market Oriented Cloud Computing Platform

Project Manager 1 Post == Experience years in Project Management in reputed company, Salary Rs.1,20,000/-

Linux Server Support by Applied Technology Research Center. Proxy Server Configuration

Tuning Tableau Server for High Performance

Performance Testing of Java Enterprise Systems

Learn Oracle WebLogic Server 12c Administration For Middleware Administrators

Load Balancing for Microsoft Office Communication Server 2007 Release 2

Chapter 1 - Web Server Management and Cluster Topology

Apache Jakarta Tomcat

Scalability of web applications. CSCI 470: Web Science Keith Vertanen

Configuring and Administering ADOBE COLDFUSION 10

Augmented Search for Web Applications. New frontier in big log data analysis and application intelligence

SDFS Overview. By Sam Silverberg

NetIQ Access Manager 4.1

MEGA Web Application Architecture Overview MEGA 2009 SP4

Cisco Application Networking Manager Version 2.0

Drive new Revenue With PaaS/IaaS. Ruslan Synytsky CTO, Jelastic

1 How to Monitor Performance

Recommendations for Performance Benchmarking

On- Prem MongoDB- as- a- Service Powered by the CumuLogic DBaaS Platform

TECHNOLOGY WHITE PAPER Jun 2012

HAProxy. Free, Fast High Availability and Load Balancing. Adam Thornton 10 September 2014

Apache Tomcat Clustering

ISPS & WEBHOSTS SETUP REQUIREMENTS & SIGNUP FORM LOCAL CLOUD

Virtualization Technologies and Blackboard: The Future of Blackboard Software on Multi-Core Technologies

Testing Automation for Distributed Applications By Isabel Drost-Fromm, Software Engineer, Elastic

Scaling Analysis Services in the Cloud

Oracle WebLogic Foundation of Oracle Fusion Middleware. Lawrence Manickam Toyork Systems Inc

Oracle Exam 1z0-599 Oracle WebLogic Server 12c Essentials Version: 6.4 [ Total Questions: 91 ]

Configuring Windows Server Clusters

Rackspace Cloud Databases and Container-based Virtualization

DEPLOYMENT GUIDE Version 1.0. Deploying the BIG-IP LTM with Apache Tomcat and Apache HTTP Server

Informatica Master Data Management Multi Domain Hub API: Performance and Scalability Diagnostics Checklist

MONITORING CF WHAT ARE MY OPTIONS AND WHY SHOULD I

LinuxWorld Conference & Expo Server Farms and XML Web Services

Optimization of QoS for Cloud-Based Services through Elasticity and Network Awareness

Weblogic Server Administration Top Ten Concepts. Mrityunjay Kant, AST Corporation Scott Brinker, College of American Pathologist

Alfresco Enterprise on AWS: Reference Architecture

Nagios and Cloud Computing

White Paper. Cloud Native Advantage: Multi-Tenant, Shared Container PaaS. Version 1.1 (June 19, 2012)

Oracle Applications and Cloud Computing - Future Direction

Yahoo! Communities Architectures Ian Flint

Transcription:

Architecting ColdFusion For Scalability And High Availability Ryan Stewart Platform Evangelist

Introduction Architecture & Clustering Options Design an architecture and develop applications that scale linearly across multiple servers and handles failures gracefully. Performance Oriented Development Getting the most out of a single server by optimizing your application code. Performance Tuning ColdFusion server tuning and load testing. Monitoring Tools and approaches for monitoring

Scalability High Availability Scalability - applications and architecture that will allow you to linearly add servers and take on an increasing number of users. High Availability - When stuff breaks, users don t notice

Levels of Clustering to Ensure Availability Web server clustering Round Robin DNS, Hardware, Software ColdFusion Clustering (Application Level) Clustered instances, Connector clustering, session replication Database Server Clustering Database Specific

ColdFusion Clustering simple example Create ColdFusion instances Cluster the instances Enable J2EE Sessions Connect your web server to the cluster Deploy your application Single Server Example Test Web server Cluster CF Instance 1 connector CF Instance 2

ColdFusion Clustering creating instances ColdFusion J2EE installation is needed Using the cfusion instance on port 8300 create your instances

ColdFusion Clustering managing instances Create instance on the same server Register remote instances

ColdFusion Clustering creating cluster Cluster the Instances Enable J2EE Sessions

ColdFusion Clustering sessions After enabling session replication you will need to enable J2EE session variables within the ColdFusion admin. Uses jsessionid in addition to CFID and CFTOKEN

ColdFusion Clustering connector clustering ColdFusion web server connector clustering JRun Webserver Connector allows a webserver to communicate with JRun, runs as a filter or plugin in the webserver Cluster by connecting multiple instances of ColdFusion to a single webserver with the JRun Webserver Configuration Tool Load balancing and Failover built in to the connector Connector load balancing algorithms (round-robin, weighted round-robin, weighted random)

ColdFusion Clustering connecting the web server JRun web server connector clustering Use wsconfig to connect your webserver to the cluster

ColdFusion Clustering Testing Test sticky sessions Test failover Test session replication Identify which server is fulfilling your request <cfif not isdefined("application.jruninstancename")> <cfobject action="create" type="java" class="jrunx.kernel.jrun" name="jr"> <cfset application.jruninstancename = jr.getservername()> </cfif>

Web Server Clustering - Overview Two or more web servers that support one or more domains are grouped together as a cluster of servers Use Load balancing scheme to manage increases in load using roundrobin DNS or a hardware device Failover is used to protect against web server failures, implemented using a hardware or software solution Web Server Clustering Web Server B Web J2EE Container Server CF Server B Web J2EE Container Server Web Server A CF Server A

Web Server Clustering - Hardware Common hardware options F5 Big IP Cisco CSS (new ver Cisco ACE) Advantages Highly scalable Support probes Disadvantages Links Cost Can be difficult to configure CSS with CF - http://www.adobe.com/devnet/coldfusion/articles/css_multi.html F5 Big IP - http://www.adobe.com/devnet/coldfusion/j2ee/articles/balancing_j2ee.html

Web Server Clustering - Software Windows Network Load Balancing (NLB) HAProxy (Unix only) http://www.37signals.com/svn/posts/1073-nuts-bolts-haproxy Speed. It s really, really fast. It s efficient. One of our instances is handling around 700 requests per second and using less than 5% CPU and only around 40MB of RAM on the Xen instance that it s running on. It allows us to make configuration changes gracefully, without breaking any existing connections.

Clustering Examples Two server cluster with DNS round robin and CF cluster DNS Round robin handles distribution of load ColdFusion is clustered across two servers, session replication can be enabled or disabled depending on needs. No web server failover but ColdFusion instances can be shutdown for maintenance Round Robin DNS www1.site.com Web Server B Web CF Container Server www.site.com www2.site.com Web CF Container Server Web Server A

Clustering Examples Two server cluster with software load balancing NLB or software solution handles web server load balancing and failover ColdFusion does not need to be clustered unless session replication is needed. http://www.adobe.com/devnet/coldfusion/articles/nlb_failover.html HAProxy software solution HAProxy Web Container Server Web Server B Web CF Container Server B Windows NLB software solution Web Server B NLB Web CF Container Server B Web CF Container Server A Web CF Container Server A Web Server A Web Server A

Clustering Examples Two server cluster with hardware load balancing Hardware solution handles web server load balancing and failover ColdFusion does not need to be clustered unless session replication is needed. Hardware solution With CF clustering Web Server B Web CF Container Server B Hardware solution Without CF clustering Web Server B Web CF Container Server B CSS Web Or Container BigIP CSS Web Or Container BigIP Web CF Container Server A Web CF Container Server A Web Server A Web Server A

Improving Availability If a failure occurs with a cluster member what do your users experience? Handling user persistence across the cluster Session replication Creating your own persistence mechanism

Clustering in the Clouds Create a robust architecture in a cloud environment with the ability to add on demand servers. Do it without purchasing a single piece of hardware. Amazon Web services Ec2- Elastic Computing Cloud S3 - Simple Storage Service Third party companies make it easier to get started on the cloud RightScale - deploy & scale applications in a turnkey architecture Stax.net - develop & deploy Deployment Apache with Tomcat or JBoss MySQL Archive ColdFusion Applications as a J2EE Archive

Performance Oriented Development

Scalability through Performance Oriented Development Identifying, isolating and fixing bottlenecks during development Load testing features or specific areas during development Tuning Process Measuring Performance Focus on single user baseline performance Load test for multi user performance What are the tunable Application Code ColdFusion settings Application server/jvm settings Web Server/OS Settings

Testing During Development Single user testing Bottleneck testing and isolation with ColdFusion debugging GetTickCount, CFTIMER Load Testing Small test scripts, no wait time Free tools available (OpenSTA, WebStress, ApacheBench) Run single user tests within your browser during load tests Common areas to improve in your code Database queries External Calls Caching (content & queries) - CF_Accelerate

Tuning it up ColdFusion Settings Simultaneous thread or active handler threads Template cache size Query cache size Trusted cache Application Server settings JVM settings Garbage collection OS Specific tuning

Monitoring Performance JRun metrics JVM Output Network Monitoring Disk IO monitoring CPU monitoring ColdFusion 8 Monitor Third party tools Fusion Reactor See Fusion Database monitoring Profile in real time and identify queries by execution time and CPU time.

Monitoring Performance Performance Monitoring in Production CF8 Monitor See Fusion

Monitoring Servers Monitoring Production Servers ColdFusion probes Debugging & Logging -> System Probes Third party monitoring products (Nagios - open source)

Conclusion Architecture & Clustering Options Design an architecture and develop applications that scale linearly across multiple servers and handles failures gracefully. Performance Oriented Development Getting the most out of a single server by optimizing your application code. Performance Tuning ColdFusion server tuning and load testing. Monitoring Tools and approaches for monitoring

Questions Questions