Hi Stanley,

See my answers below

From: Stanley C. Burnitt [mailto:[email protected]]
Sent: 13 July 2010 05:34
To: [email protected]
Subject: [Smartfrog-users] Opinions wanted: Is smartfrog the right framework 
for my osgi-based system?

I am one day into learning how to use smartfrog on my home network (fedora12 + 
mac osx platforms).   So far so good.

But I want to know how -- or if -- smartfrog should be used to install and 
configure non-jar artifacts such as db server distributions, hadoop 
distributions, solr distributions, and standalone eclipse-osgi products,  on 
remote linux servers running smartfrog daemons.

If I am not misinterpreting the docs, I could:

1.  Use "cluster ssh" to install a jdk or jvm, smartfrog, and start the 
sf-daemon on each target linux host.
That is one option, especially if all the machines need to be configured at the 
same time. You could also use SF to install the JDK and SF in other machines or 
to have a standard boot image that you use in every machine with SF configured 
to boot automatically.

2.  Use smartfrog to deploy and run bash scripts which download and install db 
distributions (via yum),  edit db configuration files,  ceate db users / 
schemas / tables, and issue startup & shutdown commands.
That is one option, the other is to write special component wrappers to manage 
the lifecycle of your individual app. Also, there is a SF component that allows 
you to use any ANT task directly to manipulate files, directories, apps…

3.  Use smartfrog to deploy and run bash scripts which install cloudera.repo 
files, then install cloudera's hadoop / hbase / zookeeper distributions (via 
yum),  edit configuration files, and issue startup & shutdown commands.
Steve has been working on some especial components to deploy and manage Hadoop 
but he is using Apache’s distro. He is on holiday for two weeks and could give 
you an update on it once he is back.

4.  Use smartfrog to deploy and configure a solr cluster.  (There is no yum pkg 
for solr, to my knowledge.  Can I use smartfrog to deploy & run a bash script 
which scp's, extracts, and configures gzipped solr distributions on a cluster 
of solr servers?)

There are components for SSH and SCP, you can also write components that get 
the file from a webserver for example and perform the operation locally. For 
example, you deploy a component in a machine that then downloads a package 
locally, unzips it and run the app. I would advise you to try the Dynamic 
Webserver example included with SF. It does exactly what you describe here and 
you could reuse most of it.
Check:
http://smartfrog.svn.sourceforge.net/viewvc/smartfrog/trunk/core/smartfrog/docs/sfDynamicWebServerExample.pdf?revision=8357
And:
http://wiki.smartfrog.org/wiki/display/sf/Dynamic+Web+Server


5.  Deploy and manage the dependencies and lifecycles of all of my system's 
OSGi components -- standalone product launchers on top of dozens of plugins.

Does this seem reasonable?  My entire system is implemented in java, and for 
this reason I chose to look at smartfrog first, before bcfg2 or puppet.  But 
this is an OSGi based system, not J2EE, and I will be deploying (then 
extracting) gzipped eclipse products, not jars.
Also, the OSGi bundles are started from native product launchers -- again, not 
java jars.
With the stable release of SF you have to manage your OSGi components using 
either Java and Scripts but there is a version of SF that has full integration 
with OSGi (SF uses it but it also allows you to describe an manage the entire 
environment but is not stable and has not yet been used in production) The 
intention is to merge the branch into the trunk soon but we do not know how 
long it is going to take to merge the code and test it properly.

And I intend to run system / scalability tests on EC2.

I see smartfrog's advantages when all the java components are up and running, 
but is smartfrog the right tool for managing the remote installation and 
configuration of all these subsystems?  I don't know... I would really 
appreciate some feedback.

SF is about deployment, configuration and managing but it is a framework and 
needs the right components to show its potential. We use SF for all the things 
that you have described but to really take advantage of SF sometimes you need 
to add your own components to manage the lifecycle of the app that you want to 
deploy, configure and manage (this can be done by calling native apps also, 
just see the webserver example). Also, you need to think what is the right 
architectural patterns for you app and model them into description templates 
that you can then re-use for multiple deployments or to adapt/adjust your 
deployment.
I would recommend you to first define a simple PoC to prove that the key things 
that you need are available to you, to test key risk issues and to learn how 
the system can help you. Don’t hesitate to ask for help if you encounter any 
problems.

Thanks,
Stan
Best regards,

Julio G
------------------------------------------------------------------------------
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
_______________________________________________
Smartfrog-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/smartfrog-users

Reply via email to