Questions for an Enterprise Architect
Erik Dörnenburg answers: What is Enterprise and Evolutionary Architecture?, discussing 4 issues: Turning strategy into execution, Ensuring conformance, Where do the architects sit? Buying or building?
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
Posted by Mirko Stocker on Aug 21, 2008
This list is by no means comprehensive, but should give an overview of the different kinds of Ruby software stacks available.
The RubyWorks Production Stack is an offering from ThoughtWorks and consists of a several open source products, already configured to work together and easily installable and updateable via your Linux distribution's regular tools. It is offered for RedHat Enterprise Linux 4 and 5, CentOS, Debian Etch, and Ubuntu Feisty. Once you've installed the rubyworks package, you'll have a cluster of Mongrels behind HAProxy and monitored using monit. ThoughtWorks also offers paid support for this software stack.
As the name gives away, EC2 on Rails is an image for Amazon's Elastic Computing Cloud EC2. It's an Ubuntu Linux server image and will run a Mongrel cluster behind Apache 2.2, mysql, memcached, monit, and much more for you. It also creates a backup of your data to Amazon S3. The management is done with Capistrano; you'll get all that's needed with the ec2onrails gem.
Elastic Server On-Demand, from CohesiveFT, lets you customize your own server before you can download an image for VMWare, Parallels, Xen, or EC2. You can also download images from other users and rate their images. Certainly a very interesting solution if you want to get a customized system quickly, without the need to install everything by hand.
Bitnami offers a whole range of software stacks, including one for Ruby with Rails, MySQL, Subversion and several gems. The JRuby stack includes JRuby, Rails, Java, Tomcat, GlassFish gem, MySQL and Subversion. Bitnami's stacks are based on an installer and work with Linux, OS X, and Windows, so you don't need a virtual machine to run them.
If you're interested in Engine Yard's hosting services and want to know how one of their slices works, then you should try the Engine Yard Express VMWare image. It starts four mongrels, two of them Rails instances and the other two Merb.
What's your opinion of such software stacks? Are they a good thing or is it better to install or configure everything yourself? Do you know of other stacks?
Free Gartner Cloud Service Brokerage Report
Getting Started with Stratos - an Open Source Cloud Platform
Monitor your Production Java App - includes JMX! Low Overhead - Free download
Agility at scale, become as agile as you can be
Improve Java Garbage Collection, Runtime Execution, and JVM visibility with Zing
And, the FiveRuns Install stack, available at fiveruns.com/products/install.
For Python projects/web apps I use zc.buildout, which is a build tool that allows you to specify all of the parts of a project in a config file(s). You can include everything that makes up your app in a single config file: database, web framework, libraries, web server, http cache, process manager, ldap, even the Python interpreter. Typically the recipes to install these parts build from source, the advantage of this approach is you can check into version control a complete description of the exact parts (and versions) required to run your app - and developers can match their dev and test environments up exactly with what's in production by simply checking out the project and running the build.
For a Rails app that I support, our devs put together a simple bash script, since we couldn't find any Ruby equivalents to this approach. Installing from source is a bit more of a hassle than a pre-packaged stack, but in the long run it can pay off since it can suck to be too closely tied to a particular platform, especially when working w/ distributed teams where the developers may be running a variety of operating systems and you want them to easily reproduce all of the parts of the stack on their system.
Heroku, anyone?? I've heard nothing but nice things about their service.
As you mentioned it lets you try out software much faster without first delving into all the component downloads/setups. Also in a corporate environment managing and testing all software components can be a hassle - e.g. when upgrading (you can't fool around here). I can imagine that a stack can be of help here also: 1) you probably (hopefully) get a stack where the versions of all components work together OK and 2) if the stack also delivers some migration tool for your current applications you will be very happy.
Erik Dörnenburg answers: What is Enterprise and Evolutionary Architecture?, discussing 4 issues: Turning strategy into execution, Ensuring conformance, Where do the architects sit? Buying or building?
Sean Cribbs explains what Map-Reduce and Riak are, why and how to use Map-Reduce with Riak, and how to convert SQL queries into their Map-Reduce equivalents.
Chris Richardson shows how he ported a relational database to three NoSQL data stores: Redis, Cassandra and MongoDB.
Jean Tabaka challenges the audience to reflect on what Agile practices they are employing, how they are using them, ending with the questions “Why have their organization chosen to go Agile?
Andreas talks about the benefits of the Open Web and how it compares to proprietary stacks. He also talks about various projects that push the envelope like Boot to Gecko, Broadway and pdf.js.
Ron Bodkin discusses early adoption of Hadoop, NoSQL and describes MapReduce and related libraries and Frameworks. Other topics include Hive, Pig, multi tenancy, and security in a big data environment
Stephen Bohlen explains how Spring helps with interoperability between Java and .NET, demoing it with the help of a sample application.
Guilherme Silveira mentions some of the turning points in project development that may affect the quality of the code offering advice on avoiding writing crappy code.
4 comments
Watch Thread Reply