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