Blog

Talk: How build and deployment should shape software architectures – IASA Ignite talks

I gave an ignite talk* at IASA UK’s second ignite series, slightly cryptically entitled “Architecting the Impossible“. Having seen just how strongly build and deployment concerns can shape the software that we put into production, I spoke on How build and deployment should shape software architectures, ending with the slightly (and deliberately) controversial point that:

software architecture  is a function of build and deployment concerns (for some systems)

The slides are on SlideShare and SpeakerDeck:

architecture = f (build & deploy)   ...   [for some systems]

Thanks to the good folks at IASA, especially Matt Deacon, and Endava, who hosted the event in London.

*(5 mins, 20 slides, 15 secs per slide, auto-forwarding)

Moving a News Website to a Different Content Management System

How does a small but nationally visible non-profit organisation go about moving their news-focused website to a different content management system? A good friend of mine works for a non-profit news organisation and asked me this question recently, so I put together some very brief notes based on some of the website migrations I have done over the last few years for similar organisations (a charity, an industry trade body, and a specialist news publisher).

moving books

The client being a small non-profit organisation constrains the solution to license-free (non-commercial) content management system (CMS), because at an industry standard of around $20k and upwards, the license costs for commercial CMS products tend to be out of the range of small non-profit budgets.

There are therefore five key things to consider for migrating an existing news-focused website for a non-profit organisation to a new CMS:

  1. What open-source technology should you use?
  2. To what extent should you customise the technology and how?
  3. What is a reasonable cost – one-off and ongoing support?
  4. Who should undertake the implementation?
  5. Where should the site be hosted?

There are plenty of other problems to solve once the initial decisions have been taken, but for a simple, news-focused website, with content only in English, we don’t need to worry about managing translations or dealing with transactional workflows. So what’s next?

Continue reading Moving a News Website to a Different Content Management System

Avoiding Legacy with Deployment Automation and Infrastructure-as-Code

Learning from ‘Working Effectively with Legacy Code’ by Michael C. Feathers

Working Effectively with Legacy Code by Michael C. Feathers is a classic software development text. Not only is it still completely relevant when working with code, seven years after it was published, but also the approaches it advocates at the source code level are becoming essential to apply at the component and system integration levels too as our software systems become more complicated and polyglot, and we learn to fully automate our deployments and treat our infrastructure as code.

Book cover: Working Effectively with Legacy Code

For an overview of the book itself, read my review of ‘Legacy Code’ on Amazon.co.uk. I describe the different sections and how each is useful in a particular context. The rest of this article will focus on other aspects of Legacy Code, particularly the ‘why’ of changing code, and the implications for Continuous Delivery, infrastructure-as-code, and deployment automation.

Continue reading Avoiding Legacy with Deployment Automation and Infrastructure-as-Code

Event-Sourced Architectures by Martin Thompson at QConLondon 2012

Software performance guru Martin Thompson (@mjpt777) gave an illuminating talk on event-sourced architectures, and why event-driven, state-machine designs are the way forward for complex, multi-path software systems (Event Sourced Architectures and what we have forgotten about High-Availability”, [slides: 700KB PDF]).

QConLondon 2012 blog posts
See all QConLondon 2012 blog posts…

Continue reading Event-Sourced Architectures by Martin Thompson at QConLondon 2012

Using LogParser and Log Replay to Bootstrap Load Test Scripts

In a previous post I mentioned how Microsoft LogParser can be used to discover HTTP endpoints in legacy applications. Another great use for LogParser is to generate files to drive load test scripts.

Loaded truck by jcurtis4082 (Flickr)

Continue reading Using LogParser and Log Replay to Bootstrap Load Test Scripts