SlideShare a Scribd company logo
The More the Merrier, Clustering in ColdFusion 
Elishia Dvorak | ColdFusion Solution Consultant & Evangelist 
Nimit Sharma | Software Engineer, ColdFusion 
© 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Agenda 
 Different ways of clustering in ColdFusion 
 Vertical 
 Horizontal 
 Distributed 
 Load Balancing 
 Failover & Session Management 
© 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 
2
Why Cluster? 
High Availability/Failover 
Redundancy 
© 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 
3
Clustering in ColdFusion 
 JEE Clustering Mechanism in Tomcat 
 Peer to peer at the instance level 
 Will not provide failover for your web server 
 Will need HWLB or use of built-in failover for web server 
ie. IIS failover via Microsoft Network Load Balancing (NLB) 
© 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 
4
Types of Clustering 
 Vertical Cluster “Scale Up” 
 Multiple instances on same box 
 Increased efficiency 
 Greatest utilization of hardware resources 
 Manageability 
 Most cost-effective 
 Protection against software failover 
(localized redundancy) 
 Implications for hardware failure 
© 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 
5
© 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 6
© 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 7
Demo 
Setting Up a Vertical Cluster 
© 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 8
Types of Clustering 
 Horizontal Cluster “Scale Out” 
 Clustered across different physical or virtual servers 
 Protects against hardware failures 
 Not most cost-effective solution 
 Effective management of workloads 
 May be most effective if you have an application that can run efficiently on limited hardware 
 The most common solution typically involves a hybrid vertical + horizontal solution (scale up then out) 
© 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 
9 
CF 
1 
CF 
2 
CF 
3 
CF 
4 
CF 
5 
Web1 Web2 Web3 Web4 Web5
Instance Manager -> 
Register Remote Instance 
© 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 10 
Must be unique for session affinity 
Weighted round robin 
Default 8985/8987 (in 
jetty.xml)
Demo 
Setting Up a Horizontal ColdFusion Cluster 
© 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 11
Clustering in ColdFusion 
A B C A B C A B C 
© 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 
12
Distributed Architecture 
 Web server resides on a separate server than ColdFusion 
 Security 
 Scalability 
 Redundant & Independent 
 Three-Tier Architecture 
 Tier 1: Web Server 
 Tier 2: Application Server (ColdFusion) 
 Tier 3: Data 
© 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 
13
Demo 
Distributed Architecture 
© 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 14
Where is all this stored? 
 Web Server Configuration Utility: CF_Install_Dir/cfusion/runtime/bin 
 Connector Config: CF_Install_Dir/config/ 
 cluster.xml: Stores info about the cluster, including multicast port 
 Instances.xml: Stores info about the instances and where they are located 
 In /config/wsconfig/n/ - config files for connector, logs 
 Isapi_redirect.properties 
 workers.properties 
 CF_Install_dircfusionjettyetcjetty.xml: Admin component ports 
 instance_nameruntimeconfserver.xml: stores port/connector info for server instances 
 AJP Port 
 Connector Port for Built-In Web Server 
 Web root for Built-In Web Server, context path 
© 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 
15
Consideration for architecture 
Code Maintenance 
Maintaining multiple copies of the shared assets 
Requires replication mechanism to keep shared assets up to date 
Always possibility of something getting out of sync 
Using NAS (Network Attached Storage) device 
Centrally located 
Still need failover mechanism 
Possibility of latency 
 
© 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 
16
Load Balancing & Failover 
 Load balancer 
 For distribution of load and failover across web server level 
 Allows proxy based distribution of traffic across multiple servers 
 Hardware or Software Based 
 Example: F5 Big-IP 
 ColdFusion Offers 
 Load balancing via round robin (at instance level) 
 Failover (at instance level) - Requires session replication, or alternative to maintain session at failover 
 Session Management Options: 
 Server Affinity / Sticky Sessions (J2EE sessions must be enabled) 
 Session Replication (J2EE sessions must be enabled) 
 Distributed Caching 
 Client Variables 
© 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 
17
Troubleshooting 
 Verbose Connector Logging 
 Isapi_redirect.properties 
 Set log_level= debug 
 Log files 
 Isapi_redirect.log 
 Ensure ports are open between machines: 
 Check OS Firewalls, External Firewalls, If AWS need to open TCP ports 
 AJP Port for communicating with cluster members (remote) – by default 801X 
 HTTP port, for testing using internal web server would be port 850X 
© 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 
18
© 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 
PDFg Clustering and Scalability 
Nimit Sharma 
19
Agenda 
 PDFg Service(CFHTMLTOPDF) 
 PDFg Service Clustering 
 Vertical 
 Horizontal 
 Troubleshooting tips 
 Performance improvements 
© 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 
20
PDFg Service 
© 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 
21 
 Fully revamped PDF Engine 
 Produces high quality PDFs 
 Re-architected for high performance 
 Cluster Support for Enterprise Edition
PDFg Service 
© 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 
22 
 CFHTMLToPDF 
 CFHTMLToPDFItem
PDF generated using CFDocument and CFHtmlToPdf 
CFDocument CFHtmlToPdf 
© 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 
23
Components of PDFg Service 
 Service: It is process named HTML2PDFConverter. 
 Service Manager: It manages the lifecycle of PDF generation. 
© 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 
24
Request Flow 
© 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 
25 
End-Users ColdFusion 
Server 
ColdFusion 
Add-on Services 
Service 
HTML2PDFConverter 
PDF Service 
Manager
PDFg Service Clustering for Scalability 
© 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 
26 
 Vertical Scaling 
 Horizontal Scaling
PDFg Service – Vertical Scaling 
© 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 
27 
Html2PdfConverter N 
Html2PdfConverter 3 
Html2PdfConverter 2 
Html2PdfConverter 1 
PDF Service Process Pool 
PDF Service process can be increased with load.
PDFg Service – Vertical Scaling 
© 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 
28 
Configuration File 
<cf_install_root>/cfusion/jetty/webapps/PDFgServlet/WEB-INF/web.xml 
<context-param> 
<description> Minimum PDFg process running in Process pool </description> 
<param-name>minService</param-name> 
<param-value>1</param-value> 
</context-param> 
<context-param> 
<description> Maximum PDFg process running in Process pool </description> <param-name> 
maxService</param-name> 
<param-value>2</param-value> 
</context-param>
Demo 
© 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 29
PDFg Service – Horizontal Scaling 
© 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 
Load Balancer 
30 
Html2PdfConverter 2 
Html2PdfConverter 1 
PDF Service Process Pool 
Html2PdfConverter 2 
Html2PdfConverter 1 
PDF Service Process Pool
PDFg Service – Horizontal Scaling 
Login to ColdFusion Administrator, and then navigate to ‘Data & Services’ > PDF Service. 
© 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 
31
List PDF Service Managers 
Login to ColdFusion Administrator, and then navigate to ‘Data & Services’ > PDF Service. 
© 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 
32
Demo 
© 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 33
Troubleshooting Tips 
© 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 
34 
 How to access PDFg service manager remotely 
 How to enable PDFg service logging
Accessing PDFg service manager remotely 
© 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 
35 
Configuration File: 
<cf_install_root>/cfusion/jetty/etc/jetty.xml 
<Call name="addConnector"> 
<Arg> 
<New class="org.mortbay.jetty.bio.SocketConnector"> 
<Set name="Host">127.0.0.1</Set> 
<Set name="port"> 
<SystemProperty name="jetty.port" default="8987"/> 
</Set> 
<Set name="maxIdleTime">50000</Set> 
<Set name="lowResourceMaxIdleTime">1500</Set> 
</New> 
</Arg> 
</Call>
Logging 
End-Users ColdFusion 
Server 
ColdFusion logs PDF service 
© 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 36 
ColdFusion 
Add-on Services 
Service 
HTML2PDFConverter 
logs PDF Service 
Manager
Enabling PDFg service logging 
<context-param> 
<description> 
EnableLogging logs complete details about PDFg service and conversion request life cycle. 
</description> 
<param-name>enableLogging</param-name> 
<param-value>true</param-value> 
</context-param> 
© 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 
37 
Configuration file: 
<cf_install_root>/cfusion/jetty/webapps/PDFgServlet/WEB-INF/web.xml 
It creates PDF service log named pdfg_access.log
Performance Improvements 
120 
100 
80 
60 
40 
20 
© 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 
38 
0 
10 20 40 50 80 100 
Throughput(Request/Sec) 
Virtual Users 
CFDocument 
CFHtmlToPdf
Configuration used for Performance tests 
© 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 
39 
Server details: 
 OS: Windows Server 2012 R2 
 Processors: Xeon with 16 cores 
 RAM: 32 GB 
PDF Service Configuration details: 
 minService: 8 
 maxService: 12 
CFDocument: 
 No option available to scale
© 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 
Nimit Sharma 
nimsharm@adobe.com 
@nimsharm 
Elishia Dvorak 
elishia@adobe.com 
@elishdvorak

More Related Content

PPTX
The app server, web server and everything in between
PPTX
Load Balancing, Failover and Scalability with ColdFusion
PPT
Migrating from Pivotal tc Server on-prem to IBM Liberty in the cloud
PPTX
WebSphere App Server vs JBoss vs WebLogic vs Tomcat (InterConnect 2016)
PDF
WebSphere Technical University: Top WebSphere Problem Determination Features
PPT
IBM WebSphere Application Server traditional and Docker
PPT
Web Logic Jboss Final
PPTX
Deploying FuseMQ with Fuse Fabric
The app server, web server and everything in between
Load Balancing, Failover and Scalability with ColdFusion
Migrating from Pivotal tc Server on-prem to IBM Liberty in the cloud
WebSphere App Server vs JBoss vs WebLogic vs Tomcat (InterConnect 2016)
WebSphere Technical University: Top WebSphere Problem Determination Features
IBM WebSphere Application Server traditional and Docker
Web Logic Jboss Final
Deploying FuseMQ with Fuse Fabric

What's hot (19)

PDF
Open Mic - IBM Sametime Proxy Clustering
PPTX
WAS vs JBoss, WebLogic, Tomcat (year 2015)
PPT
Open Mic IBM connections and IBM Verse on premise integration
PPTX
Java EE 8: What Servlet 4.0 and HTTP/2 mean to you
PDF
Realtime with-websockets-2015
PPTX
WebSphere App Server vs JBoss vs WebLogic vs Tomcat
PDF
Auto scaling and dynamic routing for was liberty collectives
PDF
How do I securely deploy Internet websites in PHP on my IBMi?
PDF
Installing ibm tivoli directory server v6.0 (web sphere partner gateway v6.1 ...
PDF
Enabling Oracle EM12c-based DBaaS on VMware with the Blue Medora Plugin for V...
PDF
Building A Simple Web Service With CXF
PPTX
Oracle WebLogic Server 12.2.1 Do More with Less
DOCX
Web service through cxf
PPT
WebSphere 6.1 admin Course 3
PPT
Oracle WebLogic Server Basic Concepts
DOC
Websphere interview Questions
PDF
Changes in WebLogic 12.1.3 Every Administrator Must Know
PPTX
How to build a cloud adapter
PDF
APACHE WEB SERVER FOR LINUX
Open Mic - IBM Sametime Proxy Clustering
WAS vs JBoss, WebLogic, Tomcat (year 2015)
Open Mic IBM connections and IBM Verse on premise integration
Java EE 8: What Servlet 4.0 and HTTP/2 mean to you
Realtime with-websockets-2015
WebSphere App Server vs JBoss vs WebLogic vs Tomcat
Auto scaling and dynamic routing for was liberty collectives
How do I securely deploy Internet websites in PHP on my IBMi?
Installing ibm tivoli directory server v6.0 (web sphere partner gateway v6.1 ...
Enabling Oracle EM12c-based DBaaS on VMware with the Blue Medora Plugin for V...
Building A Simple Web Service With CXF
Oracle WebLogic Server 12.2.1 Do More with Less
Web service through cxf
WebSphere 6.1 admin Course 3
Oracle WebLogic Server Basic Concepts
Websphere interview Questions
Changes in WebLogic 12.1.3 Every Administrator Must Know
How to build a cloud adapter
APACHE WEB SERVER FOR LINUX
Ad

Viewers also liked (20)

PDF
I am-designer
PDF
My charts can beat up your charts
PDF
Garbage First & You
PDF
Dependency Injection
PDF
Who Owns Software Security?
PDF
Realtime with websockets
PDF
Monetizing Business Models: ColdFusion and APIS
PDF
Dependency Injection Why is it awesome and Why should I care?
PDF
Marketing for developers
PDF
Paying off-emotional-debt-2
PDF
In The Trenches With Tomster, Upgrading Ember.js & Ember Data
PDF
Building Multi-Tenant Saas Apps
PDF
Dev objecttives-2015 auth-auth-fine-grained-slides
PPTX
Cold fusion is racecar fast
PDF
ColdFusion in Transit action
PDF
Setting up your multiengine environment Apache Railo ColdFusion
PDF
PDF
Building Software in a weekend
PDF
PostCSS: A dumb name for an awesome thing
PDF
Node withoutservers aws-lambda
I am-designer
My charts can beat up your charts
Garbage First & You
Dependency Injection
Who Owns Software Security?
Realtime with websockets
Monetizing Business Models: ColdFusion and APIS
Dependency Injection Why is it awesome and Why should I care?
Marketing for developers
Paying off-emotional-debt-2
In The Trenches With Tomster, Upgrading Ember.js & Ember Data
Building Multi-Tenant Saas Apps
Dev objecttives-2015 auth-auth-fine-grained-slides
Cold fusion is racecar fast
ColdFusion in Transit action
Setting up your multiengine environment Apache Railo ColdFusion
Building Software in a weekend
PostCSS: A dumb name for an awesome thing
Node withoutservers aws-lambda
Ad

Similar to 2014 cf summit_clustering (20)

PPTX
CFSummit ColdFusion 2015 Load Balancing, Failover and Scalability
PPTX
ColdFusion 11 Overview - CFSummit 2013
PPTX
Upgrade to cf 2016 1
PDF
Migration to ColdFusion 11 – making it seamless and easy anit
PPTX
Effective Hadoop Cluster Management - Impetus Webinar
PDF
Webcast urbancodemobiltomainframe
PPTX
Private Cloud Academy: Backup and DPM 2010
PDF
.NET Cloud-Native Bootcamp
PDF
Part 2: Architecture and the Operator Experience (Pivotal Cloud Platform Road...
PDF
VMworld 2013: Protecting Enterprise Workloads Within a vCloud Service Provide...
PPTX
Securing Containers - Sathyajit Bhat - Adobe
PPTX
Cloud Community Engineering - Holiday readiness
PDF
Pure Systems Patterns of Expertise - John Kaemmerer and Gerry Kovan, 11th Sep...
PPTX
Windows Azure & How to Deploy Wordress
PDF
Red Hat for IBM System z IBM Enterprise2014 Las Vegas
PDF
Pivotal Platform - December Release A First Look
PPTX
AEM (CQ) Dispatcher Security and CDN+Browser Caching
PDF
The Fastest Way to Redis on Pivotal Cloud Foundry
PDF
S903 palla
PDF
PureSystems on the Public Cloud John Kaemmerer and Gerry Novan, 11th Sep 14
CFSummit ColdFusion 2015 Load Balancing, Failover and Scalability
ColdFusion 11 Overview - CFSummit 2013
Upgrade to cf 2016 1
Migration to ColdFusion 11 – making it seamless and easy anit
Effective Hadoop Cluster Management - Impetus Webinar
Webcast urbancodemobiltomainframe
Private Cloud Academy: Backup and DPM 2010
.NET Cloud-Native Bootcamp
Part 2: Architecture and the Operator Experience (Pivotal Cloud Platform Road...
VMworld 2013: Protecting Enterprise Workloads Within a vCloud Service Provide...
Securing Containers - Sathyajit Bhat - Adobe
Cloud Community Engineering - Holiday readiness
Pure Systems Patterns of Expertise - John Kaemmerer and Gerry Kovan, 11th Sep...
Windows Azure & How to Deploy Wordress
Red Hat for IBM System z IBM Enterprise2014 Las Vegas
Pivotal Platform - December Release A First Look
AEM (CQ) Dispatcher Security and CDN+Browser Caching
The Fastest Way to Redis on Pivotal Cloud Foundry
S903 palla
PureSystems on the Public Cloud John Kaemmerer and Gerry Novan, 11th Sep 14

More from ColdFusionConference (20)

PDF
Api manager preconference
PDF
PDF
Building better SQL Server Databases
PDF
API Economy, Realizing the Business Value of APIs
PDF
Don't just pdf, Smart PDF
PDF
Crafting ColdFusion Applications like an Architect
PDF
Security And Access Control For APIS using CF API Manager
PDF
Become a Security Rockstar with ColdFusion 2016
PDF
Developer Insights for Application Upgrade to ColdFusion 2016
PDF
Where is cold fusion headed
PDF
ColdFusion Keynote: Building the Agile Web Since 1995
PDF
Instant ColdFusion with Vagrant
PPT
Restful services with ColdFusion
PDF
Super Fast Application development with Mura CMS
PDF
Build your own secure and real-time dashboard for mobile and web
PDF
Why Everyone else writes bad code
PDF
Securing applications
PDF
Testing automaton
PDF
Rest ful tools for lazy experts
PDF
Herding cats managing ColdFusion servers with commandbox
Api manager preconference
Building better SQL Server Databases
API Economy, Realizing the Business Value of APIs
Don't just pdf, Smart PDF
Crafting ColdFusion Applications like an Architect
Security And Access Control For APIS using CF API Manager
Become a Security Rockstar with ColdFusion 2016
Developer Insights for Application Upgrade to ColdFusion 2016
Where is cold fusion headed
ColdFusion Keynote: Building the Agile Web Since 1995
Instant ColdFusion with Vagrant
Restful services with ColdFusion
Super Fast Application development with Mura CMS
Build your own secure and real-time dashboard for mobile and web
Why Everyone else writes bad code
Securing applications
Testing automaton
Rest ful tools for lazy experts
Herding cats managing ColdFusion servers with commandbox

Recently uploaded (20)

PDF
Design an Analysis of Algorithms II-SECS-1021-03
PPTX
Monitoring Stack: Grafana, Loki & Promtail
PDF
Autodesk AutoCAD Crack Free Download 2025
PPTX
history of c programming in notes for students .pptx
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PPTX
Log360_SIEM_Solutions Overview PPT_Feb 2020.pptx
PDF
CCleaner Pro 6.38.11537 Crack Final Latest Version 2025
PPTX
Oracle Fusion HCM Cloud Demo for Beginners
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PPTX
Computer Software and OS of computer science of grade 11.pptx
PDF
Cost to Outsource Software Development in 2025
PPTX
Patient Appointment Booking in Odoo with online payment
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
iTop VPN Free 5.6.0.5262 Crack latest version 2025
PDF
medical staffing services at VALiNTRY
PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
PDF
Tally Prime Crack Download New Version 5.1 [2025] (License Key Free
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PPTX
Why Generative AI is the Future of Content, Code & Creativity?
Design an Analysis of Algorithms II-SECS-1021-03
Monitoring Stack: Grafana, Loki & Promtail
Autodesk AutoCAD Crack Free Download 2025
history of c programming in notes for students .pptx
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Odoo Companies in India – Driving Business Transformation.pdf
Log360_SIEM_Solutions Overview PPT_Feb 2020.pptx
CCleaner Pro 6.38.11537 Crack Final Latest Version 2025
Oracle Fusion HCM Cloud Demo for Beginners
Navsoft: AI-Powered Business Solutions & Custom Software Development
Computer Software and OS of computer science of grade 11.pptx
Cost to Outsource Software Development in 2025
Patient Appointment Booking in Odoo with online payment
Design an Analysis of Algorithms I-SECS-1021-03
iTop VPN Free 5.6.0.5262 Crack latest version 2025
medical staffing services at VALiNTRY
wealthsignaloriginal-com-DS-text-... (1).pdf
Tally Prime Crack Download New Version 5.1 [2025] (License Key Free
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
Why Generative AI is the Future of Content, Code & Creativity?

2014 cf summit_clustering

  • 1. The More the Merrier, Clustering in ColdFusion Elishia Dvorak | ColdFusion Solution Consultant & Evangelist Nimit Sharma | Software Engineer, ColdFusion © 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
  • 2. Agenda  Different ways of clustering in ColdFusion  Vertical  Horizontal  Distributed  Load Balancing  Failover & Session Management © 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 2
  • 3. Why Cluster? High Availability/Failover Redundancy © 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 3
  • 4. Clustering in ColdFusion  JEE Clustering Mechanism in Tomcat  Peer to peer at the instance level  Will not provide failover for your web server  Will need HWLB or use of built-in failover for web server ie. IIS failover via Microsoft Network Load Balancing (NLB) © 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 4
  • 5. Types of Clustering  Vertical Cluster “Scale Up”  Multiple instances on same box  Increased efficiency  Greatest utilization of hardware resources  Manageability  Most cost-effective  Protection against software failover (localized redundancy)  Implications for hardware failure © 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 5
  • 6. © 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 6
  • 7. © 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 7
  • 8. Demo Setting Up a Vertical Cluster © 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 8
  • 9. Types of Clustering  Horizontal Cluster “Scale Out”  Clustered across different physical or virtual servers  Protects against hardware failures  Not most cost-effective solution  Effective management of workloads  May be most effective if you have an application that can run efficiently on limited hardware  The most common solution typically involves a hybrid vertical + horizontal solution (scale up then out) © 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 9 CF 1 CF 2 CF 3 CF 4 CF 5 Web1 Web2 Web3 Web4 Web5
  • 10. Instance Manager -> Register Remote Instance © 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 10 Must be unique for session affinity Weighted round robin Default 8985/8987 (in jetty.xml)
  • 11. Demo Setting Up a Horizontal ColdFusion Cluster © 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 11
  • 12. Clustering in ColdFusion A B C A B C A B C © 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 12
  • 13. Distributed Architecture  Web server resides on a separate server than ColdFusion  Security  Scalability  Redundant & Independent  Three-Tier Architecture  Tier 1: Web Server  Tier 2: Application Server (ColdFusion)  Tier 3: Data © 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 13
  • 14. Demo Distributed Architecture © 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 14
  • 15. Where is all this stored?  Web Server Configuration Utility: CF_Install_Dir/cfusion/runtime/bin  Connector Config: CF_Install_Dir/config/  cluster.xml: Stores info about the cluster, including multicast port  Instances.xml: Stores info about the instances and where they are located  In /config/wsconfig/n/ - config files for connector, logs  Isapi_redirect.properties  workers.properties  CF_Install_dircfusionjettyetcjetty.xml: Admin component ports  instance_nameruntimeconfserver.xml: stores port/connector info for server instances  AJP Port  Connector Port for Built-In Web Server  Web root for Built-In Web Server, context path © 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 15
  • 16. Consideration for architecture Code Maintenance Maintaining multiple copies of the shared assets Requires replication mechanism to keep shared assets up to date Always possibility of something getting out of sync Using NAS (Network Attached Storage) device Centrally located Still need failover mechanism Possibility of latency  © 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 16
  • 17. Load Balancing & Failover  Load balancer  For distribution of load and failover across web server level  Allows proxy based distribution of traffic across multiple servers  Hardware or Software Based  Example: F5 Big-IP  ColdFusion Offers  Load balancing via round robin (at instance level)  Failover (at instance level) - Requires session replication, or alternative to maintain session at failover  Session Management Options:  Server Affinity / Sticky Sessions (J2EE sessions must be enabled)  Session Replication (J2EE sessions must be enabled)  Distributed Caching  Client Variables © 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 17
  • 18. Troubleshooting  Verbose Connector Logging  Isapi_redirect.properties  Set log_level= debug  Log files  Isapi_redirect.log  Ensure ports are open between machines:  Check OS Firewalls, External Firewalls, If AWS need to open TCP ports  AJP Port for communicating with cluster members (remote) – by default 801X  HTTP port, for testing using internal web server would be port 850X © 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 18
  • 19. © 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. PDFg Clustering and Scalability Nimit Sharma 19
  • 20. Agenda  PDFg Service(CFHTMLTOPDF)  PDFg Service Clustering  Vertical  Horizontal  Troubleshooting tips  Performance improvements © 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 20
  • 21. PDFg Service © 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 21  Fully revamped PDF Engine  Produces high quality PDFs  Re-architected for high performance  Cluster Support for Enterprise Edition
  • 22. PDFg Service © 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 22  CFHTMLToPDF  CFHTMLToPDFItem
  • 23. PDF generated using CFDocument and CFHtmlToPdf CFDocument CFHtmlToPdf © 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 23
  • 24. Components of PDFg Service  Service: It is process named HTML2PDFConverter.  Service Manager: It manages the lifecycle of PDF generation. © 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 24
  • 25. Request Flow © 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 25 End-Users ColdFusion Server ColdFusion Add-on Services Service HTML2PDFConverter PDF Service Manager
  • 26. PDFg Service Clustering for Scalability © 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 26  Vertical Scaling  Horizontal Scaling
  • 27. PDFg Service – Vertical Scaling © 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 27 Html2PdfConverter N Html2PdfConverter 3 Html2PdfConverter 2 Html2PdfConverter 1 PDF Service Process Pool PDF Service process can be increased with load.
  • 28. PDFg Service – Vertical Scaling © 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 28 Configuration File <cf_install_root>/cfusion/jetty/webapps/PDFgServlet/WEB-INF/web.xml <context-param> <description> Minimum PDFg process running in Process pool </description> <param-name>minService</param-name> <param-value>1</param-value> </context-param> <context-param> <description> Maximum PDFg process running in Process pool </description> <param-name> maxService</param-name> <param-value>2</param-value> </context-param>
  • 29. Demo © 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 29
  • 30. PDFg Service – Horizontal Scaling © 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Load Balancer 30 Html2PdfConverter 2 Html2PdfConverter 1 PDF Service Process Pool Html2PdfConverter 2 Html2PdfConverter 1 PDF Service Process Pool
  • 31. PDFg Service – Horizontal Scaling Login to ColdFusion Administrator, and then navigate to ‘Data & Services’ > PDF Service. © 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 31
  • 32. List PDF Service Managers Login to ColdFusion Administrator, and then navigate to ‘Data & Services’ > PDF Service. © 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 32
  • 33. Demo © 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 33
  • 34. Troubleshooting Tips © 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 34  How to access PDFg service manager remotely  How to enable PDFg service logging
  • 35. Accessing PDFg service manager remotely © 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 35 Configuration File: <cf_install_root>/cfusion/jetty/etc/jetty.xml <Call name="addConnector"> <Arg> <New class="org.mortbay.jetty.bio.SocketConnector"> <Set name="Host">127.0.0.1</Set> <Set name="port"> <SystemProperty name="jetty.port" default="8987"/> </Set> <Set name="maxIdleTime">50000</Set> <Set name="lowResourceMaxIdleTime">1500</Set> </New> </Arg> </Call>
  • 36. Logging End-Users ColdFusion Server ColdFusion logs PDF service © 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 36 ColdFusion Add-on Services Service HTML2PDFConverter logs PDF Service Manager
  • 37. Enabling PDFg service logging <context-param> <description> EnableLogging logs complete details about PDFg service and conversion request life cycle. </description> <param-name>enableLogging</param-name> <param-value>true</param-value> </context-param> © 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 37 Configuration file: <cf_install_root>/cfusion/jetty/webapps/PDFgServlet/WEB-INF/web.xml It creates PDF service log named pdfg_access.log
  • 38. Performance Improvements 120 100 80 60 40 20 © 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 38 0 10 20 40 50 80 100 Throughput(Request/Sec) Virtual Users CFDocument CFHtmlToPdf
  • 39. Configuration used for Performance tests © 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 39 Server details:  OS: Windows Server 2012 R2  Processors: Xeon with 16 cores  RAM: 32 GB PDF Service Configuration details:  minService: 8  maxService: 12 CFDocument:  No option available to scale
  • 40. © 2014 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Nimit Sharma [email protected] @nimsharm Elishia Dvorak [email protected] @elishdvorak