Website Data Backups with Version Control

I’ve been tasked with revamping the backup strategy at my new job, and I think I am finally happy with what I’ve come up with. As usual, I’m wondering what others have done when they were tackling such a task, and what you, dear reader, think about my setup. Please leave me a comment if you want to share your thoughts, or links to articles you’ve read that relate to anything discussed here (along with a short description of how it relates).

With websites, it appears there are three distinct data components that require backups: Code, content files, and the database. If you implement a well-thought-out version control setup, you can keep only one backup of the current repository, since it in itself contains all the revisions.

  • Code only ever changes when the developer makes an update, and always changes on the development server (I swear!). The developer commits his changes to version control manually, and then uses a deployment automation tool to publish the changes to the production server.
  • With content files and the database, the changes are mainly done on the production server, and since we are not going to ask the user to commit to our version control system, this should be automated, either at intervals, like daily – or if it is plausible – just-in-time, directly triggered through the CMS when content is added.)

With incremental backups to Amazon S3, we used to pay about $1/month for this service at the medium-size call centre I used to work at, so that part should be fairly inexpensive, but the overall cost of this setup is significantly higher if you are paying for a hosted VCS.

Again, I would really appreciate your thoughts on this, and links to articles written based on what others have learned from experience in this area. Thanks for reading!

New Version of the ProjectPier Project Management Web Application

I’ve been using the Basecamp project management web app at work for a while, and although I like certain features, I do not want to use that for my freelance work. I mostly do not want to use it because there is an excellent alternative that is very close to Basecamp in it’s functionality: ProjectPier, which presents a long-awaited opportunity for me to work on the code of an Open Source project.

The excellent PHP project management web application ProjectPier saw a new release, version 0.8.6, on December 31st, 2010. There has been a great number of new features added, and now the system is even more like Basecamp.

I’ve contacted the lead developer, and he is interested in learning more about me, and collaborating. The features I am currently most interested in adding are first the things that it does not have and basecamp does. I expect they will all be done in the theme. I plan to then move on to adding some features that I would like to have in a project management tool that we use at Canada’s Web Shop, which will be additions that will require more extensive work, up to and including additions to the database schema.

Should be fun!

New Project Management Tool for my Freelance Work

Bigger Playground for my Website Building Projects

I’ve recently moved my domain, bernardic.ca, to Network Redux web hosting servers. Chris Lowry originally registered the domain for me, in return for some advice I gave him and out of the goodness of his heart. The network redux account is provided by Mark Johnston for free. Mark is my friend and mentor who I met at a call centre I previously worked at. The new hosting allows for more websites to be hosted, so I installed a project management web app written in PHP, called Project Pier.

Professional Project Management Tool

This app provides me with a way to enter projects I am working on, enter associated tasks, and indicate when the tasks have been completed. I can create accounts for clients, so they can keep up to date with the status of the project, add new tasks, and share files. I hope this will improve the communication, as well as act as a reminder of what is left to be done, and it should work well as a central repository of information and files related to a particular project. It is fairly easy to install and use, and since it is written in PHP, I will probably tweak it to my need, and contribute bug fixes & feature enhancements back to the project.

oDesk

I recently discovered odesk, an online marketplace website, and joined it. The thing I like the most about it currently is the test-taking feature.

You can take tests for knowledge within different areas of Web development, and once you are done, your profile lists that you’ve completed the test, what score you achieved, etc. They even give you badges to put on your website, and they link to the oDesk profile page:

oDesk Certified CSS 2.0 Designer
oDesk Certified SQL Database Administrator
oDesk Certified PHP5 Developer
oDesk Certified Advanced PHP Developer
oDesk Certified HTML 4.01 Designer
oDesk Certified jQuery Professional
oDesk Certified LAMP Developer
oDesk Certified YAML Professional
oDesk Certified XHTML 1.0 Designer
oDesk Certified TCP/IP Consultant
oDesk Certified DHTML Developer
oDesk Certified AJAX Developer
oDesk Certified WordPress Expert
oDesk Certified Twitter Programmer
oDesk Certified Drupal Web programmer

I can write, too:
oDesk Certified English Writer
oDesk Certified English Spelling (U.S. Version) Professional
oDesk Certified English (Sentence Structure) Expert
oDesk Certified Resume Writer

A writing writer! 😀 It’s meant to be Resume Writer.