Age UK is the country’s leading charity dedicated to helping everyone make the most of later life. SourceCloud has been working with Age UK providing additional development resource, AWS consultancy and CRM migration expertise over 5 years.
WHAT WAS THE PROBLEM?
Age UK had several web services that had been developed by a previous software company. The services are consumed by the main AgeUK site and other related sites, to display basic information on shop and service location. Over time, the services had become not fit for purpose, this was due to expanding requirements and lack of available data. Such examples were shop opening times, services provided etc. In addition, the original services were written in Java, which is not a technology AgeUK has limited expertise in, the majority of systems are developed in .net
WHAT WERE THE CHALLENGES?
There were two main challenges to the project. Firstly ensuring existing sites continue to operate after the update of services, with full backward compatibility. Secondly, with data coming from many sources, coordination was needed with constant communication, ensuring the ever-changing data schema, remained aligned with the design and developing services continued to function.
WHAT WAS THE SOLUTION?
The starting point was to develop a suite of automated tests using jMeter, that could be used to verify the existing services, and then executed against new endpoints, ensuring backward compatibility. These tests were integrated into the CI (Continuous Integration) environment, again ensuring backward compatibility from the outset. The new and extended services were prototype in swagger, allowing schemas to be discussed across teams and easily changed. The use of ‘Dredd‘ as a testing tool, ensured any schema changes in swagger were reflected in the versions released to CI. With the DevOps pipeline and testing framework in place, development started using dotnetcore hosted in Lambda with an API gateway. This serverless solution ensured scalability and limited the amount of infrastructure resource required. As with all SourceCloud projects the infrastructure was developed as code, allowing it to be deployed from the DevOps pipeline. Several services required the utilization of geo-location calls to the Google API, allowing for the calculation of distances between points after looking up the longitude and latitude of postcodes. As Google API calls are chargeable, a local database of geo-location was built, saving new data and eliminating the need for duplicate calls to Google, saving costs overall.
WHAT WAS THE OUTCOME?
SourceCloud delivered a new set of cost-effective services, these could be consumed from new and existing clients. The new services allowed new front end code to be developed, improving the features and content of the main site, providing better services to their users. By re-writing in dotnetcore it will allow other teams to develop or extend the services going forward.
WHAT TECHNOLOGY DID WE USE?
AgeUK has been using AWS for several years, with many of their systems already in Amazon. SourceCloud, developed a serve-less solution utilizing AWS Lambda, API gateway and MSSQL running on RDS.