Conceptric
  1. Sorting out my workflow

    As I’m get busier the point has come where I need to get a grip of my workflow. I seem to spend more time working around problems than actually doing any work.

    The background.

    I’ve tried using the web server function of my NAS to test PHP and HTML based code and keep the load on my Mac mini down, but it’s just not configurable enough; there’s no XML support, controlling file permissions is a nightmare. On top of it all I’m doing more Java based work and would like to delve into Ruby on Rails.

    To counter this I use a headless Mini-ITX machine running Fedora Core 4 for jobs needing these features. I end up with working copies lying around all over the place, and the right machine is never switched on when I need it!

    The platform.

    So I’ve decided to rationalise: the NAS device for general file storage; a remote web server for testing, production, and as a Subversion server; and a my G4 Mac mini for all my development work. I’m sure the Mini-ITX machine will come in useful for other linux projects.

    I want have everything I need to code and test on my local work machine. That means that, in addition to my development tools, services like Apache HTTP Server, Apache Tomcat, Mongrel and MySQL database server need to be installed and running locally on the Mac mini. Of course, this has crippled the 512Mb of RAM, so I’ve just upgraded it; four inch filling knives and all; but that’s another story. I’ll admit that the ultimate goal is to upgrade to a MacBook, so that I can work wherever I like.

    The workflow.

    That done, this is how it’s going to work:

    1. Checked out two copies of my projects to the local work machine;
      • the first is the most recent, or trunk, version of the development, allowing me to modify and test as it evolves prior to committing changes to the Subversion server;
      • the second is the current stable release, I can take a look at new releases before deploying them on the staging server, like I have one!
    2. The staging server is going to comprise of a sub-domain of my existing website. Ideally it would be a separate machine from the production server, but that would be very very expensive considering my current income. At least the hardware and set-up will be identical and it’ll be updated by Subversion hook scripts.
    3. Finally, I’ll write a few more deployment scripts to execute manually when I decide to upgrade production to a new release. I use a combination of shell scripts, Apache Ant, and I’m considering trying Capistrano.

    Well that’s the meat of it, but I expect I’ll find there’s a lot I’ve missed.

    There are no comment for this post at the moment. Please feel free to let me know what you think.

    What do you think?

    XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

    You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.