All posts by Tariq

Agile DevOps, (ITIL & Scrum), Digital Transformation, Scrum Master, Product Owner, Service Design/Transition, Product Manager, Technical Delivery Manager

DevelopersInformation

Configuration & Change Management in Agile DevOps – Part 1

We have successfully adopted and transitioned into DevOps, Agile and continuous integration with weekly deployments of code, new features and functionality to the TfL website. This is the first in a series of posts looking at how we manage these processes behind the scenes. 

Change, release, configuration & service transition is moving from gatekeeping to devolved, trusted & collaborative safe continuous delivery

Change, release, configuration & service transition is moving from gatekeeping to devolved, trusted & collaborative safe continuous delivery

Read More

DevelopersInformationNews

TfL Online 2015 Review – How “Every Journey Matters”

I get the honour of the final blog post of 2015, and it’s a pleasing one to be able to write as we look back on what the team in TfL Online have achieved during this year.

We started off the year accomplishing one deployment of new code to the website every two weeks, and that’s increased to the point where we’ve now managed our 57th release to the site in 2015. There are a lot of variables and moving parts that we monitor and co-ordinate simultaneously to deliver a safe, quality assured, zero defect, zero outage deployment to the website every single week.

For more detail, see my posts on Blue/Green deployments and Agile continuous delivery in the cloud (in 3 parts).

While we’ve successfully made these 57 separate releases of code, optimisations, reference data refresh, bug fixes, enhancements and new features to tfl.gov.uk, we’ve managed to do all this seamlessly without a single planned maintenance window, so our customers haven’t experienced any down-time at all while we’ve been making these improvements.

So, here’s how we believe we’ve fed into the ‘Every Journey Matters’ ethos:

It matters that you have access to new features and enhancements on the website quickly, so we do this, e.g. WebCat, Roads VMS/disruptions Unified API, Live Bus Arrivals, Integration of TfL Rail & West Anglia, …. to name but a few,

It matters that you have access to new features and enhancements on the website quickly – WebCAT, Roads VMS, Unified API, Live Bus Arrivals, Integration of TfL Rail & West Anglia, to name but a few

Read More

DevelopersInformation

Agile deployments to tfl.gov.uk – a visual summary

Building on the recent ‘Agile continuous delivery in the cloud’ 4-part series on this blog, this post summarises our approach to agile deployments to tfl.gov.uk.

I was recently in a meeting explaining our release and deployment process to some internal stake-holders and found that sometimes a picture really can say a thousand words, and a visual representation can describe the topic nicely. So this post will be short and sweet, and I’ll let the image below do the talking.

Let’s quickly consider getting products to market; in our context this means new features, enhancements, and updates to the website – doing the right thing, in the right way, over and over, continuously improving tfl.gov.uk.

Our ethos of 'doing the right thing, in the right way, over and over, continuously improving tfl.gov.uk' explained

Our ethos of ‘doing the right thing, in the right way, over and over, continuously improving tfl.gov.uk’ explained

If you have any questions, queries or feedback on this or any of our 4-part series on Agile continuous delivery in the cloud, please do leave a comment below. Thanks.

DevelopersInformationNews

Agile continuous delivery in the cloud – Part 4

In this, the final blog of the series, I’ll discuss some of the advantages of adopting agile continuous integration & delivery.

So far in this series of posts, I’ve talked about continuous integration, the practice in software engineering of merging all developer working copies with a shared trunk frequently. This enables fast feed-back loops and resolution of bugs at source, quickly and early, to prevent issues being introduced into the live system later down-stream.

We discussed that developing software involves teams of people working together and the synergies of adopting a DevOps model. Automating testing, integration and provisioning of environments saves a lot of time, so that “we work smarter, not harder”. Cloud hosted environments enable us to spin up, and automatically provision, pay-as-you-go, on-demand project development environments with a just a few mouse clicks.

The stages involved in agile continuous delivery, from planning through to monitoring live updates.

The stages involved in agile continuous delivery, from planning through to monitoring live updates.

Read More

DevelopersInformationNews

Agile continuous delivery in the cloud – Part 3

In the third part of this blog, I’ll talk about our route to market – the global release pipe-line.

Global release pipe-line
To ensure that projects do not encounter delays in getting code from development into production and for continuous delivery to work smoothly, a robust, repeatable, reliable, fault-tolerant deployment system is required.

Our global release pipe-line is a sequence of cloud based environments that we use to prove that all new products or code are fit for purpose, and quality assured ready to go live. The environments represent real world production environments. We currently have 4 cloud based environments (called Red, Mauve, Amber & Pre-prod) in the global release pipe-line.

The journey down the pipe-line begins when the team checks in code to the version control system. It ends when the change goes to production in between, a lot can happen!

To declare a build to be ready to enter the global release pipe-line, it must pass basic functional tests, so all development teams work from the same code repository, write a test case for the functionality they develop, build and test their functionality locally, refactor, and verify—only then committing their changes (frequently) to the source code repository. At key stages of the pipeline, we tag our code commits to ensure we have a full audit trail and then send the build down-stream towards production and operations.

The TfL Global release pipe-line flushes out any issues before changes reach the live website

The TfL Global release pipe-line flushes out any issues before changes reach the live website

Read More

DevelopersInformationNews

Agile continuous delivery in the cloud – Part 2

In this post, I’ll talk about keeping the lines of communication open, testing & DevOps.

Software is abstract until it is operational

In line with our ethos for all development teams to get code to a production-ready state as quickly as possible, operations, testers, project managers, scrum master and software developers are all part of the same agile process and team-working. DevOps came about from breaking down silos, so that people work together to improve collaboration, whilst at the same time building trust and relationships.

Everyone involved in software development works together on all aspects of delivery, enabling collaboration across functional boundaries. There are lots of moving targets in DevOps & continuous delivery, we have some automation in place (e.g. automatic tests, continuous integration) but we also use tools and engineering practices, e.g. Jira, BitBucket, Confluence, Teamcity, GIT, – the rest we manage by hand.

The way we deliver to the TfL website comes together through Continuous Integration & Delivery, DevOps and Agile

The way we deliver to the TfL website comes together through Continuous Integration & Delivery, DevOps and Agile

Read More

DevelopersInformation

Agile continuous delivery in the cloud – Part 1

This blog builds on the previous blue/green article and is part 1 of 4 posts explaining how we use the latest techniques to continuously deliver new functionality and upgrades to the TfL website. Our highest priority is to keep the website updated, continuously improving, and reducing the cycle time between an idea and useable software. Customers expect real-time updates from us, so we need to deliver new features to the website constantly. Therefore we use a variety of the latest development practices, including; agile, continuous integration and continuous delivery.

This helps us accelerate the release of software and digital services, e.g. improved web page, User experience (UX), a bug fix, or an update, quickly and with reduced manual interventions. We have found that frequent small changes to the website, are not only less risky, but we also get faster and more focused feedback about what works and what doesn’t. Coupling this with an agile development strategy, using cloud hosted, “pay-on-demand” environments, we have significantly accelerated the rate at which we can bring new services and features to the website.

bitbucket

We use BitBucket as a management interface for GIT (our source code repository) used for governance, code reviews & pull requests

Read More

InformationNews

How we make our website fly – Part 2

Part 2 – Auto-scaling and elastic load balancing in the cloud

In Part 1 I looked at the front-end (presentation layer) high availability cache (Varnish) that helps us deliver web pages quickly from a cache (memory). However, there are situations when there are a large number of queries also reaching our back-end, as Varnish hasn’t or can’t cache those queries – during adverse weather or industrial action, when our website traffic can spike at up to 20x usual volumes for example.

Events such as adverse weather or strikes can lead to huge spikes in web traffic

Events such as adverse weather or industrial action can lead to huge spikes in web traffic

Read More

InformationNews

How we make our website fly – Part 1

Part 1 – High availability cache

This is the first of a two-part blog, giving an introduction to the high availability cache at the front-end of the website.

The new responsive TfL Website is not just a mobile make-over, it has been re-developed from the ground up. The site is a fundamentally brand-new, structurally re-designed, responsive website for the modern needs of the travelling public in London.

High availability cache

Varnish is a web accelerator which allows our website to sustain very high traffic and load many times faster by caching static & dynamic content.

Read More