Academy DevOps: Cloud Based Device Monitoring Solution

The Customer

Our client is a market-leading medical tech solutions provider developing their own hardware, software and services. Specialising in the use of smart technology, their products and services provide practical support and non-invasive monitoring by relatives and carers, enabling older people to remain in their own homes for longer as they age.

The Project

Our Ten10 Academy Engineers worked with our client on their own custom developed, cloud-based software service to manage the thousands of devices they have deployed at their client’s locations throughout the world. This service is built using the .NET framework and hosted using Azure Services.

All of our clients’ digital hub and associated peripheral devices deployed in the field are monitored and managed by the service, allowing operators to check units for availability, to ensure correct functionality and act if issues are found. The software also creates data logs of usage and monitors performance.

The Challenge

The service had initially been developed by an external software company, with our client wishing to bring this back under their management and control. Our Academy Engineers were brought in to facilitate the handover process.

The primary challenge from a DevOps perspective was the need to migrate the various code repositories from GitLab into Azure, as well as replacing all of the automated processes that had previously been self-hosted, on virtual machines at the external company’s site. The code is written in both JavaScript and C# and thus required different testing approaches for the different stacks.

The original system utilised shell scripts to run a large number of batch commands for the various pipeline stages, integrating well with the merge request processes developers utilised for code analysis. However, due to the self-hosted nature of the implementation, the configuration management would often prove problematic with frequent manual updates and maintenance required to ensure the stability of the automation process. This was a situation everyone wanted to avoid going forward.

The Solution

It became apparent a change in approach was required. The shell scripts proved difficult to maintain and were closely tied to the solution, this was compounded as the original creators of the service were no longer available, and documentation was often lacking in detail around the implementation of the solution.

Therefore the decision was taken to entirely rebuild the automation service from scratch, leveraging the power and flexibility of Azure’s DevOps tools including (Azure Pipelines, Azure Portal, Azure Storage Account and Azure SQL Server) to facilitate our client’s needs.

We also opted to integrate the static analysis system SonarQube, providing data to the Development team regarding the quality of the code (Vulnerabilities, Code Smells, Bugs, etc.).

Finally, the build artifacts were ready to be published to an Azure App Service for deployment and staging environments using a Deployment Pipeline.

Benefits

  • Automated workflow for developer commits, testing, and code analysis, helping to speed up the peer review process.
  • Merged code and artifacts are published to Azure, allowing them to be linked to work items as evidence, or reviewed for project analytics.
  • Improved maintainability, pipeline tasks are modular and designed to avoid bespoke implementations.
  • Entirely hosted in Azure, therefore no manual updates are required for dependencies or the virtual machines running the solution.
  • Enhanced security, utilising Azure Variable Groups to store secret keys (e.g. connection strings) that are accessible across different services, without compromising their contents.

Get In Touch