In need of a Rails Application Support Specialist - Please h

Hi all,

Thanks in advance for any help.

I’ve been contracted by a company to develop a website; somewhat of a
‘social networking’ site that’s fairly complicated. I’m
working by myself.

My background is as a developer in Java and .NET. I’ve worked as a
lead developer/architect on dozens of large projects for mid to
large-sized companies.

Though a little off topic for this post, let me say that I chose Ruby
on Rails because of its simple but helpful API. I found ASP.NET to be
ridiculously complex and poorly documented. Its seemingly elegant
solutions prove to be too difficult to implement in practice. Indeed,
you spend way too much time trying to do things that should be simple
and straightforward. Trying to understand the flow of control amongst
web controls is something I never plan to do again. As for Java, there
seemed to be way too many disparate parts/frameworks that one had to
master for the pluming of the application. In my experience, the
pluming is only a small part of an application. I don’t need it to
do too much. Just offer fine grained tools for the basics and stay out
of my way. Also, I enjoy working with interpreted, weakly-typed
languages like Ruby…and it’s perfect since I’m not developing
software for rocket science.

My issue is this: I’m in the midst of developing the code of the
application, but I’m realizing that I need help setting up and
supporting the operation of the application. I’ve been able to learn
what I need, and write code very fast, but the hosting and runtime
support of the application is something that with my limited
experience, I’m spending way too much time making sense of. I’m
not sure what my options are and I was wondering if anyone had some
suggestions.

I chose to go with TextDrive for my hosting, and decided on their
solaris container solution (which is virtually having your own
machine). Once I paid, they simply sent me an IP address and some
passwords and that was it. Thus the offering that I chose assumes that
I’m pretty strong with my system admin and configuration skills,
which I’m not. Only their shared solutions provide some
documentation, but I’m not sure how much it helps, and that you
don’t need to have strong sys admin skills with that solution too.
It’s possible that I didn’t chose the service that suits my needs.

It seems to me that with Ruby and Rails, one can single-handedly
develop pretty sophisticated web applications. But without additional
support to setup and operate the site, this may not be a reality. How
should I connect from my Windows laptop to the Solaris box in terms of
editing my files? What about the setup for Subversion? What’s
inetd? What about backing up my repositories? Which is the best
application server configuration for rails?

Can’t I just get back to the code?

I need an organization who helps set these things up and helps to keep
the system running smoothly, making sure that logs aren’t going to
overflow, that sessions are destroyed, that backups are performed, etc.
Someone who’s done it before.

Is there not an offering of this type? Some organization that provides
these services? Not just a company that offers hosting solutions, but
that has services to help you along the way? Where I can pay for a
full-time person now, and later a part-time person. I can’t afford
to find and pay a local full-time sys admin who would need to ramp up
on supporting rails. Can’t I find some organization that can offer
these services at a lower price since they also do it for dozens if not
hundreds of other rails developers?

Sorry if I’ve been long-winded or repetitive, and thanks again for
your help.

James

Hi James:

I feel your pain, we’re in similar boats. I was a windows coder for
years, and recently turned to RoR. I took to the language right away,
and with a little help from the boards, had a nice app on my hands.

Then came time for deployment.

It’s taken 2-3 times as long for me just to get the environment setup on
a public server than it has taken to design and code the sucker.

I gave up on using any shared host right away, since I was too
restricted. Then I ended up getting my own hosted server at
theplanet.com, I chose Debian as the OS. So now I needed to become a
linux admin, set up Subversion, mySQL, Ruby, Rails, Mongrel to work with
Apache 2, and a Postfix email server.

3 months later (working very part time) and I’m still fighting
configuration problems, albeit small ones. It was a steep learning
curve, and my brain still hurts, but I eventually fought through it.

in hind sight, I might have gone with a windows server rather than a
linux box. I just created a lot of problems having to learn linux on
top of everything. Linux is the way to go, but I would have just been
happy to get everything up and running in a familiar environment and
migrated at my liesure later on.

Joe

PS If you have any questions feel free to email: [email protected]

Thanks for sharing Joe! It’s nice to know I’m not unique.

Mike G. wrote:

On 9/13/06, jkaplan [email protected] wrote:

my suggestion is to learn these things yourself… Application
deployment has gotten a lot easier with great tools such as mongrel
and capistrano. It may be complicated at first, and take away from
your development time, but learn it once, and you’ll never have to pay
another person to do it for you.

It seems to me that with Ruby and Rails, one can single-handedly
develop pretty sophisticated web applications. But without additional
support to setup and operate the site, this may not be a reality. How
should I connect from my Windows laptop to the Solaris box in terms of
editing my files?

I use subversion on a local freebsd machine for all my development.
When I’m ready to go into production or commit the changes, I use
capistrano to push my code to all the servers.

snip
Mike

I agree 100%, it’s totally worth doing yourself. That’s the exact setup
I finally got running - everything except Capistrano is going 100% now,
which is my weekend chore.

I ended up with some troubles using Debian as I couldnt get the exact
versions of some things I wanted (such as apache 2.2 - I’m using
mod_proxy and it’s working for now) if they didn’t have a package for
something made.

On 9/13/06, Joe C. [email protected] wrote:

I ended up with some troubles using Debian as I couldnt get the exact
versions of some things I wanted (such as apache 2.2 - I’m using
mod_proxy and it’s working for now) if they didn’t have a package for
something made.

I’m running RHEL 4 on the production machine with (ugh) plesk and they
didn’t have a package for apache 2.2 either, so I ended up compiling
from source… It’s a pain in the ass, since it doesn’t integrate with
plesk, but it was much easier than trying to get an RPM for 2.2 that
plays nicely with plesk (speaking of which, anyone else here using
Plesk with mod_proxy, Apache 2.2 and mongrel? I’d love to get a binary
version of Apache 2.2 running with plesk, rather than using my self
compiled version).

Mike

On 9/13/06, jkaplan [email protected] wrote:

my suggestion is to learn these things yourself… Application
deployment has gotten a lot easier with great tools such as mongrel
and capistrano. It may be complicated at first, and take away from
your development time, but learn it once, and you’ll never have to pay
another person to do it for you.

It seems to me that with Ruby and Rails, one can single-handedly
develop pretty sophisticated web applications. But without additional
support to setup and operate the site, this may not be a reality. How
should I connect from my Windows laptop to the Solaris box in terms of
editing my files?

I use subversion on a local freebsd machine for all my development.
When I’m ready to go into production or commit the changes, I use
capistrano to push my code to all the servers.

What about the setup for Subversion?

subversion isn’t too difficult, but it’s an absolute necessity to use
some type of version control system as a developer. If you’re not
currently using one, you should seriously consider learning
subversion.

What’s
inetd?

inetd is a server that listens on certain defined ports and launches
the appropriate service for the given port when a connection attempt
is made.

What about backing up my repositories?

I just use a cron job that tars and encrypts my repositories, backs up
the databases and uses rsync for any other files each night.

Which is the best
application server configuration for rails?

The trend these days seems to be Apache 2.2 using mod_proxy_balancer
and a cluster of Mongrel servers, with Capistrano and subversion to
deploy.

I need an organization who helps set these things up and helps to keep
the system running smoothly, making sure that logs aren’t going to
overflow, that sessions are destroyed, that backups are performed, etc.
Someone who’s done it before.

I realize that you weren’t asking these questions to have them
answered, but I thought I’d give you some details just in case you
were interested in going it alone.

Mike

jkaplan wrote:

I need an organization who helps set these things up and helps to keep
the system running smoothly, making sure that logs aren’t going to
overflow, that sessions are destroyed, that backups are performed, etc.
Someone who’s done it before.

Now you know what unix Admins are for :slight_smile: seriously though, I manage
global scale web servers and you need an Admin with experience in web
servers, proxies, Switches, networking, DNS and unix tuning. Operations
and Development should not be the same person. As a Unix admin who’s now
writing enterprise rails code, I know your pain but from the other side.
I can tell you that like languages, there is no “best solution”, only
one that you like working with.

Since you’re on a solaris host, you should be able to find a few million
candidates who would be willing to consult. If you can offer a $100-200
an hour you can get some serious candidates who can whip up some
standards for you to play with pretty quicky and let you get back to
coding. seriously, it’s not expensive to hire a unix geek who’s done
this before. I can write you apache configs, shared drives, log
rotation, backups and code repositories in 2 days. Proxies and switch
configs would be another day. I’m sure others could as well. Or just
find a local geek who will work for much less and have him waste his
free time setting up servers for you. I once had a 14yr old intern who
kicked ass …for free because he was doing geekier stuff then his
peers. he now charges several hundred an hour and flies around the
World ,so he thought it was a good investment.

if you just need to setup apache/mysql then it’s pretty simple and you
should try it yourself. you might loose a day, but gain a lifetime of
knowledge.