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.


Continue reading

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

Continue reading

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.

3 circles

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

Continue reading

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

Continue reading

Changes to advertising on our website

We’ve made some changes today to advertising on tfl.gov.uk, with key pages featuring more prominent advertising in new formats.

For the past few years we have featured advertising on the site. As a public body we reinvest any income to run and improve the services we provide, including the website.

Home page advertising

From today you’ll notice an increased advertising presence on some key pages of our website

Continue reading

TfL website – How and when our traffic arrives

Following the previous post that looked at traffic stats a year on from the launch of our new website, this post delves further into our analytics with a focus on the devices and operating systems most commonly used to access the site. There’s also some interesting insights into how specific services on the site are accessed, as well as the way the time of day influences these metrics.

Device trends

Perhaps unsurpisingly, tfl.gov.uk now receives more than half of its traffic (54%) from mobile phones. This is up from 44% in May 2014, when PCs and laptops still accounted for the bulk of visits, albeit marginally with 45%.

As the graph below shows, mobile phones overtook PCs in August of last year and have steadily increased their share ever since. At these rates of growth, the forecast is for at least 62% of our traffic coming from mobiles by this time next year.

Interestingly, tablets haven’t shared the same growth as mobiles, and visits from these devices have actually been slowing down. Their share of visits has declined from a peak of 11.2% in June & August 2014, to a low of 9.6% in April 2015.

Devices used to access the TfL site

Mobile phone access overtook PCs last August, and has increased ever since

Continue reading

TfL website – Analytics insight one year on

With our new website having launched just over a year ago, the Analytics Team within TfL Online have been looking over the traffic stats for the new site. This post offers an insight into the usage of the site, the traffic peaks and troughs, and how we can use this information to help us.

What is our average daily traffic to tfl.gov.uk?

We get about 715,000 visits to the site per day. These visits are made by 575,000 unique visitors and over the course of a day about 3,100,000 pages are viewed. A visit is like a user session and it’s the key metric we use to measure customer traffic. Unlike the unique visitors metric, if you come to the site more than once a day each separate visit is counted.

Average Daily Visits

Our average daily visits stats show that Friday is the busiest day for traffic to our website.

Continue reading