Java EE Application Server Copyright c 2017 Caucho

  • Slides: 32
Download presentation
Java EE Application Server Copyright (c) 2017 Caucho Technology, Inc. All rights reserved. caucho®

Java EE Application Server Copyright (c) 2017 Caucho Technology, Inc. All rights reserved. caucho® , resin®, quercus® and Baratine® are registered trademarks of Caucho Technology, Inc.

Overview ▪ ▪ ▪ ▪ Caucho Technology What is Resin? Resin in the Market

Overview ▪ ▪ ▪ ▪ Caucho Technology What is Resin? Resin in the Market Why Resin? Resin Features High Availability Monitoring Resin Client Cases Copyright (c) 2017 Caucho Technology, Inc. All rights reserved. caucho® , resin®, quercus® and Baratine® are registered trademarks of Caucho Technology, Inc.

Caucho Technology ▪ Founded in 1998 -- 2017: ▪ 2016 – Caucho introduces ultra

Caucho Technology ▪ Founded in 1998 -- 2017: ▪ 2016 – Caucho introduces ultra fast and single-threaded Baratine GPL microservices framework ▪ 2016 – Mitsubishi Corporation, Toyota Administration Corporation and Namco Bandai Holdings Inc. run on Resin as part of Caucho’s partnership with NTT Data Intramart ▪ 2015 – Expanded Resin Reseller Program to over 15 countries ▪ 2014 – Resin website upgraded with new benchmarks against leading competition ▪ 2013 – Celebrate 15 year anniversary ▪ 2012 – Resin solidifies Cloud support and JAMM ▪ 2012 – Netcraft reports 4. 7 million sites deployed on Resin ▪ 2011 – Resin 4. 0 Web Profile certified by Oracle ▪ 2011 – Caucho named “Visionary” in Gartner’s “Magic Quadrant for Enterprise Application Servers” report ▪ 2010 – Web. Socket development ▪ 2010 – Caucho named “Cool Vendor” in Gartner’s “Platform and Middle Integration Platform” report ▪ 2009 – Caucho named “Visionary” in Gartner’s “Magic Quadrant for Enterprise Application Servers” report ▪ 2008 – Resin 4. 0 released with 3 rd generation clustering and CDI ▪ 2006 – Quercus PHP-Java integration engine released ▪ 2004 – Hessian fast and compact messaging released ▪ 2002 – CNET deploys on Resin ▪ 2001 – Caucho and NTT Data Intramart launch partnership ▪ 2000 – Salesforce deploys on Resin ▪ 1999 – Resin Java EE application server released Copyright (c) 2017 Caucho Technology, Inc. All rights reserved. caucho® , resin®, quercus® and Baratine® are registered trademarks of Caucho Technology, Inc.

What is Resin? cau’cho n. The resin derived from the Argentinean Cauchilla tree. -Tech.

What is Resin? cau’cho n. The resin derived from the Argentinean Cauchilla tree. -Tech. Empower Framework Benchmarks (https: //frameworkbenchmarks. readthedocs. io/en/lates t/Project-Information/Expected-Questions/) Copyright (c) 2017 Caucho Technology, Inc. All rights reserved. caucho® , resin®, quercus® and Baratine® are registered trademarks of Caucho Technology, Inc.

What is Resin? Copyright (c) 2017 Caucho Technology, Inc. All rights reserved. caucho® ,

What is Resin? Copyright (c) 2017 Caucho Technology, Inc. All rights reserved. caucho® , resin®, quercus® and Baratine® are registered trademarks of Caucho Technology, Inc.

The Resin Stack ▪ ▪ ▪ Resin Smart Load Balancer Resin HTTP Proxy Cache

The Resin Stack ▪ ▪ ▪ Resin Smart Load Balancer Resin HTTP Proxy Cache Resin Web Server Resin Application Server Resin Distributed Cache Focused & efficient 27 MB technology stack Benchmarked as the fastest servlet container by Tech. Empower Copyright (c) 2017 Caucho Technology, Inc. All rights reserved. caucho® , resin®, quercus® and Baratine® are registered trademarks of Caucho Technology, Inc.

Resin in the Market ▪ Resin is a fast, ultra-reliable Java EE integrated solution

Resin in the Market ▪ Resin is a fast, ultra-reliable Java EE integrated solution for web applications spanning hundreds of servers. ▪ Scaling multiple 3 rd party components is difficult and expensive. (load balancer + cache implementation + web server + app server + monitoring) ▪ Optimized components to work together ▪ Built-in features including: • Clustering allows you to dynamically scale up within Amazon EC 2 or your own private cloud • Distributed caching reduces your reliance on traditional databases • Adaptive health monitoring detects and reports anomalies in your running application • Embeddable: allows a standalone application to receive and respond to requests with minimal overhead Copyright (c) 2017 Caucho Technology, Inc. All rights reserved. caucho® , resin®, quercus® and Baratine® are registered trademarks of Caucho Technology, Inc.

Resin Success Stories Arris - Uses Resin as gateway product around the world serving

Resin Success Stories Arris - Uses Resin as gateway product around the world serving content to millions of end devices that must meet strict government support level agreements. Countries include Brazil(GVT), France, Germany, Spain (Talk), UK, US (Time Warner Cable) Saunalahti Group- In Helsinki, Finland, Resin is used to support the number one Video on Demand website in Finland. It is also used within an application processing 27 million invoices a month. Salesforce - Largest event of the year, Dreamforce, utilized Resin for their application server stack. Before the conference, had a brief call about performance. Salesforce reported zero issues as they scaled to meet millions of end devices accessing their application

Resin Success Stories Copart - Use Resin as backbone of specialized Auction application that

Resin Success Stories Copart - Use Resin as backbone of specialized Auction application that grosses in the hundred of millions in sales per year. Utilize the entire Resin stack and minimize outside dependencies as much as possible Recently completed training session to facilitate a move to Resin 4. Do not believe they could have been reaching the ease of operations without using Resin 4 health system and distributed scaling. IHG - Inter. Continental Hotels and Group have upgraded to an enterprise contract to now utilize Resin as the backbone for operating all of their hotel chain sites: over 710, 000 rooms and 4, 800 hotels across nearly 100 countries. Also:

Why use Resin? “Though it rarely happens, whenever one of our domains goes down,

Why use Resin? “Though it rarely happens, whenever one of our domains goes down, Resin’s watchdog monitor restarts it automatically. We have been using Resin for five years and have achieved 99. 99% up time. It is very reliable and fast. We host several websites and we particularly like the ability to run each domain in its own isolated java virtual machine. ” -Peter Bet. Basoo / CTO / aina. org “After using almost every available application server on the market, Resin’s stability, reliability, and advanced load-balancing make it the obvious choice for us. We selected Resin because of the demands that our high-visibility web site puts on server performance. ” -Brandon Cruz / CTO / Go. Health Insurance “We selected Caucho Resin after evaluating many application server vendors. Caucho’s raw speed, scalability features, simplicity, open source model, and cost model made it no contest. Our high availability assessment applications need to run on a large farm of servers and demand reliability and scalability for enormous loads. Other application servers are just filled with extensive and unnecessary components that add complexity, decrease performance and reliability, and add unnecessary costs. ” -Brian Maguire / Director of Product Development / Vantage Copyright (c) 2017 Caucho Technology, Inc. All rights reserved. caucho® , resin®, quercus® and Baratine® are registered trademarks of Caucho Technology, Inc.

Why use Resin? ▪ Bug fixes & feature requests overall: ▪ 180+ bugs and

Why use Resin? ▪ Bug fixes & feature requests overall: ▪ 180+ bugs and feature requests have been fulfilled since release of 4. 0. 30 ▪ Ability to provide snapshot releases for testing have been critical ▪ Users who deploy the health system within Resin are able to spot potential issues before they happen Copyright (c) 2017 Caucho Technology, Inc. All rights reserved. caucho® , resin®, quercus® and Baratine® are registered trademarks of Caucho Technology, Inc.

Resin Stack

Resin Stack

Resin Load Balancer ▪ Seamless Maintenance - Allows servers to be taken down for

Resin Load Balancer ▪ Seamless Maintenance - Allows servers to be taken down for maintenance with no impact to current users ▪ Supports sticky sessions - Default support to prevent unnecessary and costly replication across servers ▪ Improves reliability - Instantaneous application failover for uninterrupted service on the client end, automatically shares load ▪ Simple configuration - Provides powerful and detailed URL matching and decoding ▪ Keep hardware resources low - Does not stress hardware individually ▪ Security - Maintain security with SSL termination through load balanced redirects ▪ Multiple host support - Allows you to load balance based upon virtual hosts or URLs Copyright (c) 2017 Caucho Technology, Inc. All rights reserved. caucho® , resin®, quercus® and Baratine® are registered trademarks of Caucho Technology, Inc.

Resin HTTP Proxy Cache ▪ Speed - For many applications, enabling the proxy cache

Resin HTTP Proxy Cache ▪ Speed - For many applications, enabling the proxy cache can improve your application's performance dramatically. ▪ Customizable - Control cache responses for logged in vs anonymous users ▪ Performance - For database heavy pages, caching can improve performance and reduce database load by several orders of magnitude ▪ Every Layer - Caching can be exposed at the web-tier independently from the business logic found in the app tier ▪ Reactive Logging - Cache hit/miss ratio allows users to fine tune their cache and improve application response time Copyright (c) 2017 Caucho Technology, Inc. All rights reserved. caucho® , resin®, quercus® and Baratine® are registered trademarks of Caucho Technology, Inc.

Resin Web Server ▪ Fast, optimized HTTP Server - Serves pages faster than Apache

Resin Web Server ▪ Fast, optimized HTTP Server - Serves pages faster than Apache HTTPD and Nginx ▪ HTTP Proxy Caching - Built-in for super fast static content ▪ Fast. CGI Proxy - Compatible with native PHP, Python, Ruby and more ▪ URL Rewrite Rule - Powerful & easier to configure than Apache’s mod_rewrite plus dispatch capability and extensible architecture ▪ Security - Integrated Open. SSL support ▪ Virtual Hosting - Simplified configuration for multiple sites ▪ Reverse Proxy - Simplifies access to data reducing risk Copyright (c) 2017 Caucho Technology, Inc. All rights reserved. caucho® , resin®, quercus® and Baratine® are registered trademarks of Caucho Technology, Inc.

Resin Application Server ▪ Java EE 6 Certified - Core features for web app

Resin Application Server ▪ Java EE 6 Certified - Core features for web app ▪ Scalable - Built-in clustering, multi-level caching and designed to scale in cloud environment (public and private) ▪ Unparalleled Reliability - Extensive Resin JAMM (Java monitoring and management system) ▪ Fast - Servlet, JSP, JSTL, Integrated proxy cache, JNI-based NIO to deliver pages as fast as C-based servers ▪ Dev. Ops and Sys. Admin focused – CLI, built-in Admin console, interface with JMX and REST Administration ▪ Lightweight & small footprint- Java Dependency Injection (CDI) based from core to configuration ▪ Complete – Web Profile support, Web Server, Cache Server, Messaging Server, JAMM (Health System), Cloud Support, Quercus Copyright (c) 2017 Caucho Technology, Inc. All rights reserved. caucho® , resin®, quercus® and Baratine® are registered trademarks of Caucho Technology, Inc.

Resin Distributed Cache ▪ Larger cache size - based on host OS disks and

Resin Distributed Cache ▪ Larger cache size - based on host OS disks and not RAM size ▪ Automatic data persistence - Data persists to disk when cache is full ▪ Triple redundancy - backed by Triad servers and available to all nodes in cluster ▪ Interface with JCache - can have characteristics of an infinite cache or fine grain controls and configuration of caches ▪ Garbage Collection-less (GC-less) in-memory cache ▪ Configurable - Cache dynamically updated in cloud environment ▪ Memcached wire protocol support Copyright (c) 2017 Caucho Technology, Inc. All rights reserved. caucho® , resin®, quercus® and Baratine® are registered trademarks of Caucho Technology, Inc.

Resin Cloud Support ▪ 3 rd generation clustering ▪ Cloud aware supports Amazon EC

Resin Cloud Support ▪ 3 rd generation clustering ▪ Cloud aware supports Amazon EC 2, Open. Stack, Rackspace, etc. ▪ Works with Iaa. S Platforms ▪ Resin Cloud for Cloud Deployments ▪ Atomic and consistent app updates based on GIT version control algorithm ▪ Automatically propagates to all servers ▪ Supports versioned deployment ▪ Staging and preview on live server ▪ Application replicated across cluster ▪ Deployment options ▪ CLI, Resin Admin UI, REST, Ant task Copyright (c) 2017 Caucho Technology, Inc. All rights reserved. caucho® , resin®, quercus® and Baratine® are registered trademarks of Caucho Technology, Inc.

Resin Cloud Support ▪ Cloud Aware Load Balancer Distribution ▪ Elastic Server - dynamically

Resin Cloud Support ▪ Cloud Aware Load Balancer Distribution ▪ Elastic Server - dynamically expand or shrink capacity by spinning up/down Resin instances on-demand ▪ Triad Servers – redundancy and maintain cluster state ▪ Web-Tier Cluster - load balancer, http proxy/cache ▪ App-Tier Cluster - runs web apps ▪ Load Balancer Strategy: ▪ Round Robin ▪ Green Adaptive ▪ Adaptive Copyright (c) 2017 Caucho Technology, Inc. All rights reserved. caucho® , resin®, quercus® and Baratine® are registered trademarks of Caucho Technology, Inc.

High Availability Monitoring ▪ Resin Watchdog Process ▪ Monitors Resin Health for recoverability and

High Availability Monitoring ▪ Resin Watchdog Process ▪ Monitors Resin Health for recoverability and troubleshooting ▪ Resin Health Reports in PDF: ▪ Restart diagnostics ▪ GC metrics ▪ Log messages ▪ CPU Usage / Load ▪ Anomaly detection and alerts ▪ App health status and statistics (DB connection, memory, requests, network activities, threads) ▪ JIT Profiling, thread dumps, heap dumps Copyright (c) 2017 Caucho Technology, Inc. All rights reserved. caucho® , resin®, quercus® and Baratine® are registered trademarks of Caucho Technology, Inc.

High Availability Monitoring ▪ Monitor state of servers in the cluster ▪ Examine Memory,

High Availability Monitoring ▪ Monitor state of servers in the cluster ▪ Examine Memory, Thread dumps and Socket states ▪ Analyze heap usage and understand memory profile of an application ▪ Probe performance bottlenecks dynamically ▪ Investigate web app activity with request graphs ▪ Audit database use with data source usage reports ▪ Review any critical messages ▪ Tune Caching settings ▪ Automatic server restart when server crashes Copyright (c) 2017 Caucho Technology, Inc. All rights reserved. caucho® , resin®, quercus® and Baratine® are registered trademarks of Caucho Technology, Inc.

Requests for Application /resin-admin keeps track of Active Requests per server, session size, cache

Requests for Application /resin-admin keeps track of Active Requests per server, session size, cache hits, current configuration, & more. Can be used as a gauge for how many requests per server are currently active Copyright (c) 2017 Caucho Technology, Inc. All rights reserved. caucho® , resin®, quercus® and Baratine® are registered trademarks of Caucho Technology, Inc.

Watchdog Process • Lightweight process : Used to stop and start Resin instances •

Watchdog Process • Lightweight process : Used to stop and start Resin instances • Can restart an instance if Java Monitoring / Server Monitoring / Health issue • Parent process of Resin Server • Opens socket to Resin Server • Sends are-you-alive ping? • If a Denial of Service or unexpected Spike or Bug knocks down JVM, Resin restarts • Beyond that Resin can detect critical problems and do critical diagnostics so Dev. Ops and Developers can get to root of problem • Resin has long been product of choice for embedded devices, network appliances and large deployments • Non Stop mode makes Resin perfect for cloud deployments Copyright (c) 2017 Caucho Technology, Inc. All rights reserved. caucho® , resin®, quercus® and Baratine® are registered trademarks of Caucho Technology, Inc.

Health Checks & Actions Copyright (c) 2017 Caucho Technology, Inc. All rights reserved. caucho®

Health Checks & Actions Copyright (c) 2017 Caucho Technology, Inc. All rights reserved. caucho® , resin®, quercus® and Baratine® are registered trademarks of Caucho Technology, Inc.

Actions Based on Condition • Actions can be grouped • If in critical state

Actions Based on Condition • Actions can be grouped • If in critical state for two minutes perform group of actions • Dump JMX values, Dump Threads, Dump Heap, CPU Profile, Restart • If actions longer than 10 m, restart Copyright (c) 2017 Caucho Technology, Inc. All rights reserved. caucho® , resin®, quercus® and Baratine® are registered trademarks of Caucho Technology, Inc.

Resin High Availability 1. Versioned Deployment 2. Removing live servers for maintenance 3. Automatic

Resin High Availability 1. Versioned Deployment 2. Removing live servers for maintenance 3. Automatic Health Action Restart Copyright (c) 2017 Caucho Technology, Inc. All rights reserved. caucho® , resin®, quercus® and Baratine® are registered trademarks of Caucho Technology, Inc.

Fine Tuning with Resin: Client Case On 10/24/16 8: 58 AM, Bob wrote: >

Fine Tuning with Resin: Client Case On 10/24/16 8: 58 AM, Bob wrote: > Hi Support, we had a customer get an out of memory error on Monday. Unfortunately they restarted Resin and didn't get us a pdf summary. > My question to Caucho is could a lot of blocked threads cause an out of memory error? > Thanks! > -Bob Hi Bob, From my experience, it's the other way around because of GC thrashing. Low memory would usually trigger a bunch of blocked threads. -- Support Copyright (c) 2017 Caucho Technology, Inc. All rights reserved. caucho® , resin®, quercus® and Baratine® are registered trademarks of Caucho Technology, Inc.

Fine Tuning with Resin: Client Case Hi Support, this same customer had to restart

Fine Tuning with Resin: Client Case Hi Support, this same customer had to restart their app server on 2016 -10 -15 as well with an out of memory error. In the jvm-log it was at 2016 -10 -15 17: 42: 43. That time a report was generated. It looks like the cpu shot up to 100% but I can't tell from the report why. Do you see anything I'm missing? LOG FILE Copyright (c) 2017 Caucho Technology, Inc. All rights reserved. caucho® , resin®, quercus® and Baratine® are registered trademarks of Caucho Technology, Inc.

Fine Tuning with Resin: Client Case resin-port-8080 -14964485 RUNNABLE (JNI) [1496448 5] java. net.

Fine Tuning with Resin: Client Case resin-port-8080 -14964485 RUNNABLE (JNI) [1496448 5] java. net. Socket. Input. Stream. socket. Read 0 (Socket. Input. Stream. java: -2) java. net. Socket. Input. Stream. read (Socket. Input. Stream. java: 152) java. net. Socket. Input. Stream. read (Socket. Input. Stream. java: 122) oracle. net. ns. Packet. receive (Packet. java: 283) oracle. net. ns. Data. Packet. receive (Data. Packet. java: 103) oracle. net. ns. Net. Input. Stream. get. Next. Packet (Net. Input. Stream. java: 230) oracle. net. ns. Net. Input. Stream. read (Net. Input. Stream. java: 175) oracle. jdbc. driver. T 4 C 8 Oall. do. OALL (T 4 C 8 Oall. java: 523) oracle. jdbc. driver. T 4 CPrepared. Statement. do. Oall 8 (T 4 CPrepared. Statement. java: 207) 2016 -02 -15 18: 16 Page 19 2016 -02 -15 18: 16 00 - app-0 Restart Report Thread Dump oracle. jdbc. driver. T 4 CPrepared. Statement. execute. For. Rows (T 4 CPrepared. Statement. java: 1010) oracle. jdbc. driver. Oracle. Statement. execute. Maybe. Describe (Oracle. Statement. java: 1185) oracle. jdbc. driver. Oracle. Statement. do. Execute. With. Timeout (Oracle. Statement. java: 1275) oracle. jdbc. driver. Oracle. Statement. do. Scroll. Execute. Common (Oracle. Statement. java: 4656) com. netopia. nbbs. dao. Caching. Profile. Dao$Loader. load (Caching. Profile. Dao. java: 41) com. netopia. nbbs. cache. Non. Peer. Aware. Cache$Loader. Adapter. load (Non. Peer. Aware. Cache. java: 44) -- locked java. lang. Object@1739778568 Copyright (c) 2017 Caucho Technology, Inc. All rights reserved. caucho® , resin®, quercus® and Baratine® are registered trademarks of Caucho Technology, Inc.

Fine Tuning with Resin: Client Case likely cuplrit: com. netopia. nbbs. cache. Unbounded. Local.

Fine Tuning with Resin: Client Case likely cuplrit: com. netopia. nbbs. cache. Unbounded. Local. Cache. Store CMS Old Gen: used 7. 5 GB out of 8 GB So they're running out of JVM memory. The following stack trace looks highly suspicious. 1) If the value was not found in the cache, it loads it from the database. 2) Other threads trying to get a value from the cache cannot proceed because it has been locked by 1) above. In Summary: The primary issue is that Unbounded. Local. Cache. Store may be storing too much into memory. The secondary issue is that Unbounded. Local. Cache. Store is blocking other threads if the database or JVM is slow for any reason. Copyright (c) 2017 Caucho Technology, Inc. All rights reserved. caucho® , resin®, quercus® and Baratine® are registered trademarks of Caucho Technology, Inc.

Fine Tuning with Resin: Client Case Copyright (c) 2017 Caucho Technology, Inc. All rights

Fine Tuning with Resin: Client Case Copyright (c) 2017 Caucho Technology, Inc. All rights reserved. caucho® , resin®, quercus® and Baratine® are registered trademarks of Caucho Technology, Inc.

Thank You! Email: wiley@caucho. com Offices: 4455 Morena blvd. suite 210 Copyright (c) 2017

Thank You! Email: wiley@caucho. com Offices: 4455 Morena blvd. suite 210 Copyright (c) 2017 Caucho Technology, Inc. All rights reserved. caucho® , resin®, quercus® and Baratine® are registered trademarks of Caucho Technology, Inc.