of 52 /52
ColdFusion Summit 2016

Developing High Performance and Scalable ColdFusion Applications Using Terracotta Ehcache

Embed Size (px)

Text of Developing High Performance and Scalable ColdFusion Applications Using Terracotta Ehcache

  • ColdFusion Summit 2016

  • Developing High Performance and Scalable ColdFusion Applications

    Using Terracotta Ehcache

    By: Shailen Prasad

    Product Management & Strategy

    In-Memory Computing

    Software AG USA, Inc.

  • What is this?

    Growth will happen when efficiency increases. Plow did what

    "In-Memory computing is doing to the human race today"

  • Why you (and I) are here ?

  • What will be covered in this presentation?

    How to scale options (pros and cons)

    Caching basics (various options available)

    Recent updates of Open source Ehcache project.

    Ehcache, Terracotta OSS and BigMemory

    The benefits of distributed caching for building applications where latency and performance is

    crucial.

    Advance caching techniques for scaling your current CF application using Terracotta distribution

    caching (BigMemory)

    To conclude, highlights on some customer use cases where caching was mission critical

    In-Memory caching and data management is becoming mainstream for accelerating

    business applications. This session will introduce :

  • SCALE OUT

    SCA

    LE U

    P

    Scale your existing applicationAlso knowns as Vertical Scaling

    Pros:

    Less power consumption than running multiple servers

    Generally less challenging to implement

    Less licensing costs Cons:

    $$$ VERY EXPENSIVE Greater risk of hardware failure

    causing bigger outages

    Generally severe vendor lock-in and limited upgradeability in the

    future.

    Also knowns as Horizontal Scaling

    Pros:

    $ Much cheaper than scaling vertically

    Easier to run fault-tolerance Generally easier to upgrade

    Cons:

    Bigger datacenter foot print Higher power consumptions Possibly more network resource

    dependency

    Ad

    din

    g m

    ore

    RA

    M/C

    PU

    Adding more machines

  • In-Memory Caching In a nutshell

    On Heap Cache (also known as In-Process Cache) or L1 cache

    ColdFusion Application

    CF Internals

    On Heap

    Cache

    JVM

    Fastest among all other caching tier

    Doesnt require marshalling and un-marshalling of the data

    Limited by Max JVM heap size (limited on 32 bit systems)

    Garbage collection still remains the challenge

  • Caching In a nutshell

    Local Off Heap Cache (in-process caching) or L1 cache

    ColdFusion Application

    CF Internals

    Local On-heap

    Cache

    JVM

    Local Off-heap Cache

    Direct memory buffers

    Access Memory outside of Application heap

    Can Scale as it is not limited by JVM heap size even on a 32 bit machine

    Application doesnt have to worry about Garbage collection for the data stored in off-heap

    Slower than on-heap cache, entries has to serialized and de-serialized.

  • JVM

    Local Off-heap Cache

    Caching In a nutshell

    Distributed Off Heap Cache (also known as Out-of-Process

    Cache) or L2 cacheColdFusion

    Application

    CF Internals

    Local On-heap

    Cache

    JVM

    L1Off-heap Cache

    JVM

    L2 Off-heap Cache Runs outside of the Application Server JVM

    Slower than local offheap reads/writes are over the network

    Highly scalable with its distributed design

    Adds resiliency with more fault tolerance

  • JAVAs MOST WIDELY USED CACHE

  • Seamless integration with many popular Java frameworks/applications

  • Open Source

    Current in CF2016 - Ehcache 2.10.0

    Ehcache 3.x (complete overhaul with lots of improvements!!

    Revamped API that leverages Java generics and simplifies Cache interactions

    Full compatibility with javax.cache API (JSR-107)

    Offheap storage capabilities, including offheap only caches

    Out of the box Spring Caching and Hibernate integration thanks to the javax.cache support

    Significant improvement in performance over all its previous versions

    And many more ... (more at www.ehcache.org)

  • 90% of Data in

    Memory

    MODERNIZE Database

    90% of Data in

    Database

    Memory

    App Response Time

    MillisecondsApp Response Time

    Microseconds

  • Since ColdFusion 9

  • ColdFusion's Ehcache resources

    1. CF2016 Ehcache 2.10.0 (Latest Ehcache in 2.x line: 2.10.2)

    2. CF 2016 Ehcache libs:

    /cfusion/lib/ehcache-2.10.0.jar (core library)

    /cfusion/lib/ehcache-web-2.0.4.jar (web content caching)

    /cfusion/lib/hibernate-ehcache-4.3.10.Final.jar

    3. CF 2016 Ehcache configurations:

    /cfusion/lib/ehcache.xml

    /cfusion/lib/auth-ehcache.xml

    /cfusion/lib/ehcache-default-config.xml

  • ColdFusion's current use of Ehcache

    CF Authentication:

    auth---ehcache.xml: authcache, authtokenmappingcache

    Internal Caching (CF templates, component paths)

    - Cache fragments of html

    - Cache DB calls

  • A Classic CF application

  • A common challenge

    As the application user base increases the user experience starts to get questioned (?)

  • Lets get the plow working

    A quick and simple solution Ehcache Standalone (LOCAL CACHING)

  • Improved caching Ehcache Replication

    Improve Caching with some caveats

  • Coldfusion + Ehcache + Terracotta Opensource

    =

    Seamless, Powerful Distributed In-Memory

    Caching with Free Open-Source Software

  • Just a little tweak on the Ehcache.xml

  • Terracotta 4.x Open Source Offering/Architecture

    Standard Java

    Proven TBs scale capacity

    Not managed by the JVM

    No Garbage Collections

    Predictable latencies

    No specialized appliance needed

  • Easy scalability: New clients can access all cached data

  • Powerful H/A = Automatic failover/no cache data loss

  • ColdFusion + Ehcache +Terracotta

    Terracotta Distributed Ehcache: High Scalability Caching

  • Coldfusion + Ehcache + Terracotta Bigmemory

    =

    Seamless, Powerful Distributed In-Memory

    Caching with Free Open-Source Software

  • Any kind of data can be stored in Terracotta BigMemory to make

    an application speed up & scale out

    Terracotta BigMemory has different tiers for data storage

    that can be configured based on an applications

    requirements

    Terracotta In-Memory Data grid - Rich data storage & Access

  • Terracotta BigMemory Scale out indefinitely

  • Terracotta BigMemory Performance Scaling

    Terracotta BigMemory Max* provides predicable latency and throughput as data volume increases

  • Choose your own cache read consistency

    with simple config change

  • Terracotta Management Console

    View your Terracotta servers and clients topology

  • Terracotta BigMemory Manage & Monitor

    Track performance trends and discovering potential issues.

  • Terracotta Management Console

    Monitor all cache instances and their configuration and manage your cache/cache manager.

  • Terracotta Management Console

    BigMemory SQL queries against your caches

  • Terracotta BigMemory Fast Restart Store

    Big Memory's disk persistence and Fast Restartability

  • Setting up Coldfusion 2016

    with Terracotta 4.3.2

  • Terracotta OSS Setup is just a few steps

    1. Download Terracotta OSS (latest terracotta-4.3.2.tar.gz) at

    http://www.terracotta.org/downloads/open-source/catalog

    2. Extract to the location of your choice

    3. Ensure JAVA_HOME is set

    4. Navigate to /server/bin

    5. Start with default single node config by executing:

    start-tc-server.sh (or .bat)

    6. Terracotta process is now accessible at IP:9510

    Note: If setting up Terracotta in active/mirror setup, tc---config.xml must be created and referenced

    at startup:

    start-tc-server.sh (or .bat) -f /tc-config.xml n

  • Connecting ColdFusion to Terracotta in few steps

    1. Copy Ehcache + Terracotta libs to /cfusion/lib

    /apis/ehcache/lib/ehcache-2.10.1.jar

    /apis/toolkit/lib/terracotta-toolkit-runtime-4.3.2.jar

    2. Add terracotta-specifics configurations in CF ehcache configs:

    /cfusion/lib/ehcache.xml

    /cfusion/lib/auth-ehcache.xml

    3. Restart CF

    4. Notice Terracotta connection in CF logs

  • All the below CF caches are now in Terracotta

    CF Authentication:

    auth---ehcache.xml: authcache, authtokenmappingcache

    Internal Caching (CF templates, component paths)

    - Cache fragments of html

    - Cache DB calls

  • Still so much used and Distributed

    The Picture says it all !!! The power of distributed In-Memory computing.

  • Customer Use cases

  • Success Stories: Fortune 500 online payment processor

    Radically Improving Profitability With Better, Faster

    Fraud DetectionSPEED

    What they wanted

    Before BigMemory

    Dramatically boost bottom-line profit through faster, more accurate fraud detection

    Lost 30 cents on every $100 to fraud With Oracle Exadata, failed to meet 800 ms

    SLA around 10% of time

    Limited to 50 rules, even though each new rule generated $12 million in profit

  • Success Stories: Fortune 500 online payment processor

    SPEEDSPEED

    After BigMemory:

    Savings of tens of millions of dollars in reduced costs from missed SLAs and fraudulent charges

    Meeting stricter 650-millisecond SLA 99% of time

    Savings of $1 million annually in reduced database licenses

    Plans to expand from 4TB to 150TB for new applications and to achieve 250 millisecond SLA

  • Success Stories: Healthcare.gov

  • The team began almost immediately to

    cache the data. The result was encouraging:

    the site's overall response time--the time it

    took a page to load--dropped on the evening

    of Oct. 22 from eight seconds to two. That

    was still terrible, of course, but it represented

    such an improvement that it cheered the

    engineers. They could see that HealthCare.gov

    could be saved instead of scrapped.

    Success Stories: Healthcare.gov

  • Challenges All data access to backend database (many round-trips) 10+ seconds response times Numerous down-times due to concurrent users

    Benefits Provide in-memory data access such as subscriber data and provider

    comparison information Session replication of user profile info Performance & Scalability

    Success Stories: Healthcare.gov

  • App

    Server

    App ServerApp Server

    App ServerApp Server

    Ehcache

    App ServerApp Servers

    App Server

    Ehcache

    Security Gateway

    Presentation Zone Application Zone

    App Server

    App Servers

    JMS

    Individual

    & Families

    Issuers

    3rd Parties

    (B2B)

    SOR

  • Thank you!

    Not new but still makes a difference everyday!

  • Questions?

    www.ehcache.org

    www.terracotta.org

    www.softwareag.com

    Shailen Prasad

    Sr. Mgr, Product Management & Strategy (Terracotta),

    Software AG USA, Inc.

    [email protected]

    www.linkedin.com/in/shailenprasad

    www.twitter.com/shailenprasad

  • Thank you!