Masterless Puppet and Declarative provisioning

This is a post by Gordon Clark, one of our Infrastructure Engineers, and Jono Ellis, our Social Media Manager.

This post is the second post in our series covering how we approach continuous delivery, covering the tools that we use.

We are not precious about our servers, they are just tools for a defined purpose and when they’ve reached the end of their usefulness we can get rid of them. They are disposable. This is something you can only do with cloud computing – we don’t own a physical server anywhere; instead we create and configure servers from our cloud providers. The benefits are the speed and agility that this setup offers us. As an example, in order to test a proof of concept we could spin up several servers to do a task, gather whatever stats we needed, and then we could destroy them. With no physical server needing to be purchased, set up, powered, etc. there are significant environmental benefits to this approach.


We use several tools in order to facilitate our server configuration management:

  • Puppet – provisioning and configuration of hosts (we use Puppet in a masterless way);
  • Packer – definition and creation of our base image;
  • Base images – assignment of a role and an environment (based on the rules for the role a host is given, the host will self-provision. This means that the host gathers packages and configuration from a known artifact repository such as Debian);
  • Vagrant – deploying Puppet runs locally for testing purposes.

Roles and Profiles

The role a server is provided with equates to a business need i.e. a web server, an application or a database server.

Each role (e.g. web server) has an accompanying module in Puppet. This Puppet module in turn contains one or more technology profiles, which are also described in Puppet. Each host can only be assigned a single role but each role can contain multiple profiles (which is turn can contain multiple modules). The modules are directly related to an individual technology, e.g. NGINX, Java or PostgreSQL. The diagram below shows how the hierarchy is arranged. It should be noted that the modules are generic, they can be used in any environment and do not contain any configuration related to an individual host. The configuration data is abstracted to Hiera.

Continue reading

Introducing the web analytics initiative

This is a post by Rui Cardoso, Business Analyst and Calum Shepherd, our Head of Digital Strategy 

We’ve been thinking about how we can provide insight into the Scottish public sector web portfolio. The Scottish Government has a large web portfolio, with many organisations providing multiple websites – all with unique propositions. It’s important that we, as Scottish Government, increase our understanding of this landscape.

An exercise has already begun to understand aggregated statistics from this web portfolio. Our initial view focusses on a series of core websites – ones which act as hubs for information provided by organisations. This creates an initial list of websites that can be built upon in the future.

  • Did you know we provide over 6 million content items to users that are available to find in search engines (e.g. Google)?
  • Did you also know that over 31 million links point to these content items?

Launching the web analytics initiative

A few weeks ago our team began working on a new web analytics initiative to help us surface and gain access to web analytics data.

The initiative will help to provide:

  • a collated view of the web portfolio;
  • an opportunity to visualise the relationship between websites;
  • an ability to understand demand from users;
  • insight into the services we all provide.

We can also use the data to help educate our direction of travel for building

The team
There is a small, part-time team working on the web analytics initiative. Communications and daily management are being handled by Rui Cardoso – so Rui will likely be an on-going point of contact for queries via

Getting involved
The initiative has begun with requests being issued to an initial list of organisations from Scottish Government, alongside a number of other Scottish public sector organisations. We will grow this list over the coming months.

The activity to grant access to Google Analytics will likely need undertaken by an analytics manager, web manager or marketing team (depending on where Google Analytics control sits within the organisation).

Access will not be shared out-with Digital Public Services & Business Transformation in the Scottish Government. All access will be read-only as well, so there is no risk to the data itself. We would also like to identify a point of contact for web analytics and performance analysis within organisations – as we have ambitions for a future community to improve efforts across the public sector in this area.

If you would like to get involved and help us build a view of the portfolio of websites – get in touch with us via and we’ll let you know what you need to do next.

We’ll be sharing updates on this, and much more on social, so follow the team via @mygovscot on Twitter for more updates. Want to comment? Get in touch below!

SME Discovery Day

This is a post by Kate Saunderson, one of our user researchers, and Denise Lamond, one of our user experience designers.

What do Small and Medium Enterprises (SMEs), business advisors and funders think about the challenges faced by SMEs when they seek advice and funding to grow their business? That is the question that the Business Development Bank team, the user research and engagement team, and the team collaborated on to understand.

Together we designed and organised an SME Discovery day workshop to explore who SMEs are, the challenges they face and the changes we can make. Each team had a different role and agenda, but the core focus of the day was the user; the approach was with, not for.


Room capture from the afternoon session

Continue reading

Using feedback to improve content for victims and witnesses

This is a post by Angela Morrison, one of our content designers.

Feedback is an essential part of our content lifecycle on, especially when our users – such as victims of crime – are experiencing complex and often stressful life events and need the right help and support at the right time.

To help us make sure our new victims and witnesses content is meeting the needs of our users, we reached out to a community of subject matter experts from across the public and third sectors and asked for feedback.

Here are just a few examples of the comments we received, and how we’re using them to improve content for victims and witnesses on

Plain English

You said

We should consider ways to make the content more accessible to people who may have difficulty reading and writing.

We did

Half of the UK working population have a reading age of 11-years-old or younger, so we use plain English as best practice so all audiences can understand our content, no matter what their literacy levels are.

We’re investigating ways we can continually improve how we write in plain English – this includes testing readability through ‘SMOG’ tests which calculate reading age based on sentence lengths and syllables.


Continue reading

How we approach continuous delivery

This is a post by Gordon Clark, one of our Infrastructure Engineers, and Jono Ellis, our Social Media Manager.

Over the next few weeks, we have a series of blog posts coming up which cover our approach to continuous delivery. This first post is a high-level overview of our work, mostly written for our readers who work in government, the individual posts will be more detailed and will be aimed at infrastructure engineers, developers and testers. We’d love to hear your comments and questions, so let us know either at the comments section below or via Twitter.

Over the coming weeks we aim to cover:

The site is built from the ground up around the needs of the user. To find out if we’re building the right thing we want to be able to quickly get our work in front of our users – this ensures that we receive feedback early and often, and allows us to change direction accordingly. We also want to ensure that we are delivering consistently, and with quality. The model that we have in place to control how we work is called continuous delivery.

Continue reading

Design style guide

This is a post by Chay Nicholson, our Creative Lead.

The first pass of our Design style guide has just been published to the resources site. The Design style guide aims to provide guidance to developers and designers in producing digital services for or aligned with

The guide covers design thinking and approach, as well as providing inline working examples of components. In this sense it is an amalgamation of design elements and style guide – putting the what, and the why in the same place. By providing the context around decisions that we have made, we can hopefully help designers and developers come up with solutions in situations where there may not be a pre-prescribed solution. An example of this is where it may be necessary to fine-tune spacing to compensate for the css interpretation of line-height.


Some fine-tuning of text margins is sometimes required to compensate for the css interpretation of line-height, which takes its reference from the centre line rather than the baseline of the type.

Continue reading

What we’re doing about content debt

This is a post by Kate Ho, our Head of Product.

Understanding content debt

In software development, there’s a term technical debt: it’s a metaphor used to describe the amount of work required to tidy up a system in order to keep the code clean. Cleaner code means it’s easier to make changes and updates.

Code debt becomes a problem as a system gets bigger and matures. For example, over time you’ll have parts of code which might have been written a long time ago (legacy code), and may not reflect the current requirements of the system.

Why does no one talk about content debt?

Doing a quick search on Google for technical debt throws up a lot of articles, but do the same for content debt, and you’ll see that it’s a hardly-used phrase with nowhere near the same popularity. With a big site like, we’re constantly adding more and more information about how to access information… but one of the biggest issues is how to make sure that we keep our information up to date and relevant.

Content debt can look like:

  • broken links
  • changes in policy, and not reflected in the information
  • changes required as a result of user feedback
  • inconsistent content across multiple pages
  • badly designed/poorly linked content

Continue reading