http://www.caucho.com/resin-application-server/resin-professional-application-server/
In this interview Charles Humble talks to Paul Cowan about the Resin Application Server architecture, capabilities, and where it fits in the Cloud market.
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
Resin Application Server and Cloud discussed by Paul Cowan
1. Resin Application Server
Paul Cowan - InfoQ
Interview
Caucho Home | Contact Us | Caucho Blog | Wiki | Application Server
2. InfoQ - Paul Cowan Discusses the Resin
Application Server and Cloud
Caucho Home | Contact Us | Caucho Blog | Wiki | Application Server
3. About Paul Cowan
• Software Engineer working on the Resin
application server at Caucho Technology
• Focusing on dependency injection,
concurrency, high-speed messaging, and
distributed caching
• 11 years of experience
• Started with NetDynamics
• Prior to Caucho worked as Senior Architect
with NAVTEQ
• Traffic.com division
Caucho Home | Contact Us | Caucho Blog | Wiki | Application Server
4. “Where do you see Resin
in terms of the wider
Cloud landscape?”
Caucho Home | Contact Us | Caucho Blog | Wiki | Application Server
5. Resin and the Cloud
Landscape
• Resin fits on the elastic JEE application layer
• We don’t sell the service or provide it to you
• Not PaaS
• Not SaaS
• We are a infrastructure provider/vendor
• You get the Resin software
• You build your Cloud on it
Caucho Home | Contact Us | Caucho Blog | Wiki | Application Server
6. “Can you tell us a little bit
about how your Cloud
support is architected?”
Caucho Home | Contact Us | Caucho Blog | Wiki | Application Server
7. Resin Cloud Support
Architected
• Triad hub-and-spoke
architecture
• Hub
• Three Primary Servers
• Constantly
communicating with
each other
• Spoke
• Elastic Spoke Servers
• Add or Remove as
Caucho Home | Contact Us | Caucho Blog | Wiki | Application Server
8. “Why did you go for a
hub-and-spoke rather
than say a peer-to-peer
cluster?”
Caucho Home | Contact Us | Caucho Blog | Wiki | Application Server
9. Hub-and-Spoke vs. Peer-
to-Peer
• Most cases easier to have 3 primary servers
• IP addresses are known
• No need for auto-discovery
• Creates problems in EC2 environments
• Hub architecture with 3 primary servers
• Responsible for caching data
• Maintaining the knowledge of Cloud architecture
• Eliminates a lot of issues you get with true peer-to-
peer network
Caucho Home | Contact Us | Caucho Blog | Wiki | Application Server
10. Basic Hub-and-Spoke
Configuration
Dynamic&&
Spoke&
Server&
Triad& Triad&
A&
Server& Server&
1& 2&
Triad&
Server& Dynamic&&
3& Spoke&
Server&
B&
Caucho Home | Contact Us | Caucho Blog | Wiki | Application Server
11. Basic Hub-and-Spoke
Configuration
Load(increases.(
Spin(a(new(server((
Dynamic&& Dynamic(( up(
Spoke& Spoke(
Server& Server(
Triad& Triad&
A& C(
Server& Server&
1& 2&
Triad&
Server& Dynamic&&
3& Spoke&
Server&
B&
Caucho Home | Contact Us | Caucho Blog | Wiki | Application Server
12. “How do you keep the network
traffic to a reasonable level as
the number of spikes grows?”
Caucho Home | Contact Us | Caucho Blog | Wiki | Application Server
13. Keeping Network Traffic at
Reasonable Level as Spikes
Grow
• Messaging based on Hessian Network Protocol
(HMTP)
• During distributed sessions
• Only update your session data when the data
changes
• Hashing session
• Triad master will have a hash of what current data is
• Spoke server verifies latest data
• “Here is my hash, do I have the latest data?”
• If hashes match very little data needs to be sent
Caucho Home | Contact Us | Caucho Blog | Wiki | Application Server
14. New Server Dynamically Joining
Cloud
Dynamic((
Spoke(
Triad&Server&1& Server(
192.168.1.10& A(
Triad&Server&2&
192.168.1.11&
Triad&Server&3&
192.168.1.12&
Caucho Home | Contact Us | Caucho Blog | Wiki | Application Server
15. New Server Dynamically Joining
Cloud
Spin up a new VM instance and add it to the cluster. It talks to the triad to
join
Dynamic((
Spoke(
Dynamic((
Spoke(
Ask for latest
Triad&Server&1&
192.168.1.10&
Server( Server(
B(
application
versions
A(
Triad&Server&2&
192.168.1.11&
Triad&Server&3&
192.168.1.12&
Caucho Home | Contact Us | Caucho Blog | Wiki | Application Server
16. “How do I configure the
typology of the cluster?”
Caucho Home | Contact Us | Caucho Blog | Wiki | Application Server
17. Configuring Typology of
Cluster
• Resin keeps it simple
• Primarily a single JAR file with configuration file
• Same configuration file
• Triad
• Web tier
• Any cluster tiers
• Spokes
• Triad servers spun up
• Usually static on different machines
Caucho Home | Contact Us | Caucho Blog | Wiki | Application Server
18. Configuring Typology of
Cluster
• Elastic servers spun up
(continued)
• Using single command line
• Easy to bring them up and down as needed
Caucho Home | Contact Us | Caucho Blog | Wiki | Application Server
19. “How does Resin support Cloud
deployment and distributed
versioning?”
Caucho Home | Contact Us | Caucho Blog | Wiki | Application Server
20. Cloud Deployment and
Distributed Versioning on Resin
• Based on HMTP messaging system
• Forms basis for distributed cache
• Distributed versioning based in Git
• Internal version of Git library
• Pushing a WAR or an application to Triad servers
• Git is used to internally push out to all other servers
Caucho Home | Contact Us | Caucho Blog | Wiki | Application Server
21. Cloud Deployment and
Distributed Versioning on Resin
(continued)
• Sessions in Cloud are tied to Git version of
application
• A number of sessions running off one version of
application
• Push a new version
• Resin keeps that version of application until all
sessions are over
• New sessions coming in will get new version of
application
Caucho Home | Contact Us | Caucho Blog | Wiki | Application Server
22. “You’ve got replicated session
state across the machines?
What’s the overhead like for
that; for actually replicating the
session?”
Caucho Home | Contact Us | Caucho Blog | Wiki | Application Server
23. Overhead for Replicated Session
State Across Machines
• Pretty low
• Only need to replicate to the server that is handling that
session
• Using sticky sessions
• With a lease
• Same session goes to the same server and push session
update to Triad
• Configurable
• When to Push
• Push after every update
Caucho Home | Contact Us | Caucho Blog | Wiki | Application Server
24. Overhead for Replicated Session
State Across Machines (continued)
• Hashing sessions and comparison with master
and spoke servers
• Cuts down on network traffic
Caucho Home | Contact Us | Caucho Blog | Wiki | Application Server
25. “What’s the Watchdog
system and why is that
important for Cloud
deployment?”
Caucho Home | Contact Us | Caucho Blog | Wiki | Application Server
26. Watchdog System
• Resin always runs with two processes
• Watchdog is the secondary process that
controls Resin
• When you start up a Resin server
• Watchdog starts up first and starts up Resin for you
• Monitors health of Resin system
• Automatically restarts if there is an issue
Caucho Home | Contact Us | Caucho Blog | Wiki | Application Server
27. Watchdog System
(continued)
• Cloud environment advantage
• Watchdog system maintains health of servers
• Prevents losing track of elastic servers
• Reports any noticed issues
• Health system is external process
• Can detect when Resin is having issues
Caucho Home | Contact Us | Caucho Blog | Wiki | Application Server
28. “Can you describe some
of the other reports I can
get out of the health
system? You have post-
mortem reports for
instance.”
Caucho Home | Contact Us | Caucho Blog | Wiki | Application Server
29. Health System Reports
• Watchdog Report
• Prior to or leading up to a restart
• Produce a report from the data we were tracking at the
time
• PDF Report
• Tread dump
• Heap dump
• Stack dump
• JMX dump
Caucho Home | Contact Us | Caucho Blog | Wiki | Application Server
30. Health System Reports
(continued)
• PDF Report (continued)
• Goes through all JMX
• Dump out attributes and values
• Can do profiling if you want
• Internal native profiling library
• Can profile for a period of time
• Monitoring other attributes in system, for example:
• CPU Usage
• Memory usage
• File descriptors
• Produces a “snapshot” PDF
Caucho Home | Contact Us | Caucho Blog | Wiki | Application Server
31. “And you do JIT profiling
as well, I think I’m right in
saying?”
Caucho Home | Contact Us | Caucho Blog | Wiki | Application Server
32. JIT Profiling
• Health system is very configurable
• Any period of time
• From a certain end response to a certain issue
Caucho Home | Contact Us | Caucho Blog | Wiki | Application Server
33. “How does what you offer
compare to some of the other
JavaEE vendors? WebLogic has
some similar features, for
instance.”
Caucho Home | Contact Us | Caucho Blog | Wiki | Application Server
34. Comparing Resin to other
JavaEE Vendors
• Positioned between Tomcat and WebLogic
• Enterprise quality server
• Elastic
• Health System
• Administration System
• More lightweight
• Only 23 MB download
• 6 second start-up time
Caucho Home | Contact Us | Caucho Blog | Wiki | Application Server
35. Comparing Resin to other
JavaEE Vendors (continued)
• For customers who want enterprise quality that
don’t need the heavyweight full JEE stack
• Support JEE 6 Web Profile
Caucho Home | Contact Us | Caucho Blog | Wiki | Application Server
36. “You also have an
anomaly detection
feature. Could you tell us
a bit about that and where
that idea came from?”
Caucho Home | Contact Us | Caucho Blog | Wiki | Application Server
37. Anomaly Detection
Feature
• Organically rose from need to support
customers
• As well as a lot of our health system
• Result from an actual customer having thread
spike issues
• Noticed the issue in produced graphs
• Unable to tell what was happening
• Needed a snapshot at the time of issue
Caucho Home | Contact Us | Caucho Blog | Wiki | Application Server
38. Anomaly Detection
Feature
• Monitors virtually any statistic in your JMS
(continued)
• i.e. number of threads
• Sees unusual spike in amount of threads
• Snapshot report is triggered
• Invaluable in providing support
• Detecting something unusual happening while its
happening
• Creating a snapshot of the system to use for
debugging
Caucho Home | Contact Us | Caucho Blog | Wiki | Application Server
39. Title
• Caucho Technology | Home Page
• Resin | Application Server
• Resin | Java EE Web Profile Application Server
• Resin - Cloud Support | 3G - Java Clustering
• Resin | Java CDI | Dependency Injection / IoC
• Resin - Health System | Java Monitoring and Server
Monitoring
• Download Resin | Application Server
• Watch Resin | Application Server Featured Video
Caucho Home | Contact Us | Caucho Blog | Wiki | Application Server