At thetrainline.com we are always striving to deliver the best user experience for our customers. We want to get great ideas from conception to the customer as quickly as possible, to enhance our offerings and streamline our processes. This post talks about how we helped achieve this by harnessing Continuous Delivery.
Following on from the post (Moving to Multiple Deployments Per Week at thetrainline.com) that Matt Richardson and I published in December 2013 we have since evolved our deployments to allow us to achieve automated continuous delivery of our components from development through to production – with zero downtime.
At thetrainline.com we use Opscode Chef for managing our build infrastructure. Like many other tools running on Windows, the chef-client ohai framework relies on WMI for extracting information about the server machine on which scripts are being run. We found that Windows WMI repository corruption can cause chef-client runs to fail due to missing WMI classes, which causes the node to remain out of policy. The WMI repo can be repaired using winmgmt /salvagerepository, and the WMI errors can be monitored using the WMIDiag script to alert on WMI repository corruption before future chef-client runs. This post details how we detected and fixed the problem, and how to monitor for WMI repository corruption.
At thetrainline.com we have been using Opscode Chef since 2012 for automation of parts of our server infrastructure, particularly the build (CI) machines. We recently had several days of intensive Chef training with Chef expert Stephen Nelson-Smith (@LordCope on Twitter) of Atalanta Systems, spread over a few weeks, in preparation for scaling up our use of Chef. Here are some details of how we structured the Chef training, and what we got out of it (and why).
Testing Tools for Chef – following the outside-in GOOS-style/BDD approach
We in the engineering team at thetrainline.com hold an ‘open day’ every six months to share what we do with other (less ‘techy’) teams in the company. The most recent Engineering Day, in February 2013, saw members of the HR, Legal, Commercial, Marketing, Finance, and other teams (plus our Exec) attend presentations and demonstrations from members of our tech teams covering: web performance, service versioning, deployments, infrastructure automation, testing, ticket retailing, and even a workshop on ‘How to build your own website‘. Continue reading
On 17th January the engineering team at here at thetrainline.com hosted a meetup of the London Continuous Delivery group at our offices in central London. About 50 group members were joined by 15 or so staff from thetrainline in a discussion led by Andy Hawkins from Opscode, originators of infrastructure automation tool Chef. We saw a demo of Chef working with ThoughtWorks GO to build EC2 instances, and there were interesting discussions on auto-scaling and organisational change.
Update: podcast now available…