Greetings -
I wouldn't be too hard on the customer. It's pretty common that the
customer comes with a solution in mind that makes perfect sense to
them. The challenge is to untangle the tacit assumptions they are
making and read the tea-leaves to get to the problem they are trying
to solve.
Basically, what they want to do is run the entire application within
the Postgres database engine...data, business logic, page rendering,
everything. What that suggests to me on first blush is either lots
of PL/Ruby (and a newly invented internal logical architecture and
framework to structure it), or patching Rails to pull all its view
elements from the database like some Content Management System on
steroids.
Ouch.
Of course, I will probably be pushing back on this architectural
requirement for phase 1, just so we can get something working
quickly and with minimal expense. So far, security is the only
reason given for the database-centric architecture, but we've
secured some pretty sensitive systems using more traditional web
application architectures before.
You might also want to tell your customer that approach is fraught
with its unique perils. Rails, by virtue of being open-source and
widely-deployed, has a community that finds security holes and fixes
them. Personally, I would trust the security in rails over something
of the same scale I wrote myself, simply by virtue of it being pounded
on year after year and all the eyes and hands in the code.
Sure the 'everything in the DB' approach has the advantage of fewer
servers and apps to secure, but I would not be worried about the
security of Postgres itself rather than the consequences of the bugs
introduced by writing a full-stack framework on top of it.
I would also make sure that your client is aware that a lot of
security regulations require that data be stored on a seperate, and
seperately secured network than the applications. That is a
requirement for PCI compliance, at the very least. The best way to
secure the data that they care so much about is to put multiple layers
of security between the outside world and their data.
Also, this architecture would affect our ability to cluster the
application across arrays of cheap servers too...we'd be improvising
so much that's a given in Rails. I'm not so sure that the benefit
would be worth the time and expense over a properly tiered standard
webapp.
I doubt there's really a benefit. I think the key to convincing the
customer to abandon their desire to stash everything in postgres will
be to gain a more detailed understanding of what they really mean when
they say 'security'.
_______________________________________________
Bdrg-members mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/bdrg-members