Re: Using smart-frog to automate management of JBoss

[email protected] Fri, 22 Feb 2008 11:37:06 -0500
Newsgroups gmane.comp.java.smartfrog.devel
Message-ID <OFB4F5BC03.17DE15AC-ON852573F7.004EC41D-852573F7.005B4992@wiley.com>
HI Steve,

Sorry for this late follow up. Other work interfered. 

I used the time to read SF documentation. There s lots of documentation 
and I am still going through it. I am trying to understand how to combine 
different components to accomplish usual administrative tasks with the 
application servers. 

To make things simpler I would try to use some of the infrastructure that 
is already in place. There is a bash script can reliably stop, start and 
restart JBoss and Apache servers in predefined sequence. My first goal 
would be to integrate this script with SF. I have noticed that SF provides 
ShellScript and SSH under core and optional services. The ShellScript 
service could be used to run the bash control script and SSH to transfer 
the new application file (EAR or WAR) to all of the targeted hosts. I 
would also like to test SmartFrog installer component. It could help us 
push SF to new nodes from a central location.

Initially I would like to do the following thing
1) Control JBoss and apache using SF and our control bash script. It would 
be nice if the SF component could report back to the server about the 
status of JBoss.

2) Implement deploy procedure. 
        - The admin should signal SF nodes that they should start the 
deployment
        - Each node downloads the EAR/WAR file from a central repository. 
We must use SFTP/SCP for this task. FTP service is not enabled for 
security reasons.
        - The integrity of the EAR file is checked (jar -tf foo.ear)
        - JBoss/Apache stopped using the bash script
        - New EAR file deployed
        - JBoss/Apache started using the bash script

In parallel we could work with Cargo to replicate all the features that 
the bash script provides. I have the feeling that would take some time to 
complete.  If I understood you correctly you need to finish the 
integration of Cargo with SF first. 

And one more thing. I believe that the jboss4.sf declaration is tied to 
the use of Cargo, right?

Please let me know if everything I said make sense. If, yes, I will start 
implementing #1 and #2. I might need some help from you to complete them. 
I will work with you on using and testing a configuration that 
incorporates Cargo.

Thanks,

Dimitar Georgievski
----------------------------------------
Senior Unix Admin
Electronic Support Services
John Wiley & Sons, Inc.
Tel: 201.748.5867
Cell: 917.295.1462
email: [email protected]
----------------------------------------



Steve Loughran <[email protected]> 
Sent by: smartfrog-developer-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
01/09/2008 09:46 AM

To
[email protected]
cc
smartfrog-developer-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
Subject
Re: [Smartfrog-developer] Using smart-frog to automate management of JBoss






[email protected] wrote:
> Hi,
> 
> I am new to the list and SmartFrog. I would like to find out if anyone 
has 
> used SmartFrog to automate deployments and configuration management of 
> JBoss servers.  Our company in increasingly using them for hosting of 
> large volume Web applications. We reached the point when the automation 
of 
> their administration is needed. 
> 
> I've  already read the documentation and was pleased with the 
capabilities 
> of SmartFrog. Our concerns are related in great part to reliability, 
> scalability and performance penalties (CPU mainly) caused by 
introduction 
> of SmartFrog on a production host. It would be nice to hear expereinces 
> from other users.

One things are running, there's minimal CPU overhead. The only load on 
running systems is liveness, where a thread walks down the tree checking 
that everything is alive, according to their sfPing() methods. 
Components that do heavier work here (such as issue SQL commands or GET 
urls) can put load on the system. To manage this you can control the 
frequency of liveness checks. Memory footprint is a function of how many 
components are deployed...you can get away with the SmartFrog JVM being 
relatively small, and starting JBoss in its own process.


> Since SmartFrog is a framework we would need to invest significant 
effort 
> in building and testing the components required to support our 
> requirements. 

There is already a declaration to start up JBoss, extending the 
server-neutral deploy-by-copy www server, that handles deployment of 
things underneath just by copying the JAR files to a target directory. 
Here's the URL to the descriptor

http://smartfrog.svn.sourceforge.net/viewvc/smartfrog/trunk/core/components/www/src/org/smartfrog/services/www/servers/jboss4.sf?view=markup


To actually start JBoss, we just set up the Java component with the 
right arguments, and add the JDK's tools.jar to the classpath, which is 
needed to compile JSP pages.

I've also played with using Cargo under SmartFrog to manage the 
start/stop; Cargo is the tool from codehaus that can start/stop lots of 
different application servers:  http://cargo.codehaus.org/

As I recall, Cargo 0.8 was breaking with an NPE, and when I moved up to 
cargo 0.9. all our tests broke ( 
http://jira.smartfrog.org/jira/browse/SFOS-138 ). I haven't been doing 
any work on cargo since may/june.

Beyond that, there is JMX configuration. We do have a jmx component 
bundle, sf-jmx, that uses MX4J; we've been pondering moving to Java 5 
JMX instead, which would make for a lighter distribution. The JMX 
integration is two way: SF components become JMX configurable; JMX 
MBeans can be set under SmartFrog.  We've not looked at starting JBoss 
this way -yet.


I'd recommend you start with the jboss4.sf template, which ships within 
the sf-www component, then put enough pressure on me to bring the Cargo 
component up to cargo 0.9 and get the tests working again. Once we have 
those tests stable we can turn them on in the continuous integration 
servers, which stops any regressions creeping in to the SmartFrog side 
of the codebase. Any tests you can contribute here would be beneficial 
-currently we create a test WAR that we deploy in jetty, tomcat and 
jboss -I don't test EAR files, or the JBoss-specific SAR files. It would 
be good to create some of these and something that deploys anything else 
that is JBoss-specific.

As you're interested in JBoss support, I can put more some time into it, 
especially if you are willing to help with testing what I'm doing. What 
platform are you likely to run underneath -windows/unix? and which JVM?


>I am curious if anyone has tried to build a GUI that would 
> simplify the automation tasks. 

We have an Eclipse plugin, and a NetBeans component was contributed 
-I've been working on the latter recently but I havent cut a release of 
it yet. These are both essentially text editor modes with some ways of 
running SmartFrog.


-Steve

-----------------------
Hewlett-Packard Limited
Registered Office: Cain Road, Bracknell, Berks RG12 1HN
Registered No: 690597 England

-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace

_______________________________________________
Smartfrog-developer mailing list
Smartfrog-developer-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
https://lists.sourceforge.net/lists/listinfo/smartfrog-developer



-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/