Resin Application Server and Cloud discussed by Paul Cowan

  • 1,323 views
Uploaded on

http://www.caucho.com/resin-application-server/resin-professional-application-server/ …

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.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,323
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
17
Comments
0
Likes
3

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n\n\n
  • \n\n\n
  • \n\n\n
  • \n\n\n
  • \n\n\n
  • \n\n\n
  • \n\n\n
  • \n\n\n
  • \n\n\n
  • \n\n\n
  • \n\n\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n

Transcript

  • 1. Resin Application Server Paul Cowan - InfoQ InterviewCaucho Home | Contact Us | Caucho Blog | Wiki | Application Server
  • 2. InfoQ - Paul Cowan Discusses the Resin Application Server and CloudCaucho 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 divisionCaucho 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 itCaucho 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 asCaucho 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 networkCaucho 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 sentCaucho 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 machinesCaucho 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 neededCaucho 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 serversCaucho 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 applicationCaucho 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 updateCaucho 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 trafficCaucho 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 issueCaucho 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 issuesCaucho 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 dumpCaucho 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” PDFCaucho 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 issueCaucho 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 timeCaucho 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 ProfileCaucho 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 issueCaucho 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 debuggingCaucho 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 VideoCaucho Home | Contact Us | Caucho Blog | Wiki | Application Server