6. Evaluate what tools and systems will be used to build, host, operate and measure the service, and how to procure them.

digital-service-standard-poster-1_png

 

All technology used on the Beta is open source and well supported. A ‘boring is better’ approach has been prevalent where technology choices have been concerned to ensure that while the software may be bespoke the underlying technologies are well understood, supported and sustainable.

The ‘tech stack’ we are primarily working with is;

– Java
– Javascript (JQuery & Handlebars)
– ElasticSearch
– npm
– Git
– Travis
– Docker
– JUnit
– Jasmine
– Selenium (Browserstack)

The Beta is primarily a series of Java applications providing APIs to support user interfaces where required.

These applications include the core publishing service and the data transformation layer with an automated testing framework providing integration testing of APIs and browser testing of user interfaces.

Content and data is stored as JSON in a flat-file directory structure rather than a database and served to the UI layer via the aforementioned APIs.

Search is a separate application provided by ElasticSearch that indexes the JSON directly and provides results to the website UI. ElasticSearch also provides the means to allow manual refinement of results and the ability to easily create ‘promoted results’ for particular search queries.

The UI layer of both the publishing editor and the website is provided via Handlebars semantic templating. This encourages a minimal amount of logic to be built into the templates used to build up the interface and display data.

The platform will be ‘cloud based’ residing in a secure environment provided by Eduserv which should provide flexibility to react to load issues and potential DDoS attacks.

A ‘content delivery network’ (CDN) will be implemented to ensure high levels of performance and availability during high load periods as well as provide additional assurance against DDoS attacks.

To test the performance of the site and the CDN the team will be using Gatling.io (a fork of JMeter that provides automated load testing) and Loader.io another performance tool that provides distributed load testing that mimics DDoS attacks.

On the topic of monitoring we are using Google Universal Analytics for website analytics and Splunk elsewhere to run a series of custom reports (particularly around publishing performance.) Elsewhere Eduserv are providing a full suite of standard monitoring tools, which we have arranged access to outside of their usual managed service, as well as a ‘protective monitoring’ service.

The Beta team embrace the principles of DevOps as outlined by the Government Digital Service (https://www.gov.uk/service-manual/operations/devops.html) in particular as regards;

– team culture
– automation
– measurement
– sharing

This is embodied by a single, co-located team, working together, with responsibility for ongoing development, testing and operation of the ONS website.